How To: Build a Pumpkin Pi — The Rogue AP & MITM Framework That Fits in Your Pocket

Build a Pumpkin Pi — The Rogue AP & MITM Framework That Fits in Your Pocket

A man-in-the-middle attack places you between your target and the internet, pretending to be a Wi-Fi network while secretly inspecting every packet that flows through the connection. The WiFi-Pumpkin is a rogue AP framework to easily create these fake networks, all while forwarding legitimate traffic to and from the unsuspecting target.

Today, we'll learn to set up this framework on a low-cost Raspberry Pi running Kali Linux. You may want to look into getting a Raspberry Pi 3 kit or Raspberry Pi 3 B+ kit for this guide. If you already have one, great, let's go!

Man-in-the-Middle Pumpkin Pie

On the Raspberry Pi 3 running Kali Rolling, some Kali Linux tools can be broken out into standalone, almost disposable devices. One perfect example is the WiFi-Pumpkin, an attack framework for creating rogue access points to stage man-in-the-middle (MitM) attacks. This allows an attacker to lure victims to their evil access point and begin monitoring internet traffic, effectively seizing control over the flow of data to any connected victims.

A rouge device for creating fake Wi-Fi hotspots from a Raspberry Pi. Image by SADMIN/Null Byte

When to Use the WiFi Pumpkin

The WiFi-Pumpkin is a great tool to use when you can bridge an existing Ethernet or Wi-Fi connection, serving internet access to anyone willing to connect to an open network without asking too many questions. It comes stuffed with features, including rogue Wi-Fi access points, deauth attacks on client APs, a probe request and credentials monitor, transparent proxy, Windows update attack, phishing manager, ARP Poisoning, DNS Spoofing, Pumpkin-Proxy, and image capture on the fly.

Following up from a previous tutorial, wireless probe frames can reveal networks a phone or laptop is probing for. One way we can use the WiFi-Pumpkin is to monitor probe frames and create a network in response. We can use the WiFi-Pumpkin to conduct a "Karma" attack and create a network with the same SSID that the target device is expecting, or has connected to before.

The name of your network will have a significant effect on how people interact with it. If you are in a crowd, creating a network with names like "Starbucks" can cause a startling number of devices to connect to you in under a minute. Be creative in how you trick users into connecting to your evil AP. When you want precision control over the various elements of a man-in-the-middle attack, the WiFi-Pumpkin's easy GUI is straightforward enough for most beginners to grasp.

What You'll Need to Get Started

The setup to create a WiFi-Pumpkin is minimal and requires only a few components. To put this together, you'll need the following.

A simple setup for a portable rouge AP, easy to hide or leave behind. Image by SADMIN/Null Byte

Installing & Running WiFi-Pumpkin (Kali Linux)

As before any new install, ensure that your system is fully updated. WiFi-Pumpkin will require that you have an up-to-date Python installed on your machine.

sudo apt-get update

WiFi-Pumpkin has a number of dependencies you will need to have installed before it can run smoothly. Install the following if you don't already have them on your Kali-Pi.

Step 1: Install Dependencies

Python's package manager, Pip, will help us manage the rest of the installation. To install it on Kali Linux, run the following commands.

sudo apt-get install -y python-pip

The next three dependencies will allow WiFi-Pumpkin to verify certificates, add HTTP layer support, and intercept and inspect traffic flows. Install each as shown below.

pip install service_identity

pip install scapy_http

sudo apt-get install mitmproxy

Step 2: Install WiFi-Pumpkin

Download WiFi-Pumpkin by cloning the GitHub repository:

git clone

Then go inside the folder:

cd WiFi-Pumpkin

And change the permission of the installer file:

chmod +x

And then run the installer by entering the following.

./ --install

This may take a little time, during which you can go grab a cookie.

Step 3: Run WiFi-Pumpkin

When it's complete, run WiFi-Pumpkin by simply entering the following.

sudo wifi-pumpkin

You're ready to get started creating fake APs!

The Wi-Fi Pumpkin in action. Image by Sadmin/Null Byte

Some Considerations with the WiFi-Pumpkin

Keep in mind, in order for WiFi-Pumpkin to work, you will need to have access to at least one Kali Linux compatible wireless adapter with AP/Monitor mode support. You will need your Pi to be connected to the internet while also capable of monitoring wireless traffic around you.

You can achieve this by using one wireless network adapter and your Pi's internal Wi-Fi card in tandem or a wired Ethernet connection and one wireless network adapter. In the case your particular Pi isn't Wi-Fi capable, you'll need two wireless network adapters. If you are unsure if the wireless adapter you have supports AP/Monitor mode, you can check in terminal with iw list. If there is an "AP" in the list of "Supported interface modes," then your device supports it.

If you're in need of a Kali Linux compatible wireless adapter with the appropriate functionality, check out the following linked article. You can ask me questions here or @sadmin2001 on Twitter or Instagram.

Cover photo by SADMIN/Null Byte


Hi, great tutorial however, I am having an issue.

When loading up wifi-pumpkin using sudo, I get the following message:

X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x100001a

This message continues to repeat itself over and over again. The GUI is completely grey. I have searched the forums and found something to do with updating the /etc/environment file with the following code:


However, this hadn't made any difference.
Can anyone help?

Thanks in advance

is there a non GUI version of the program? I want to automate it so it's a lug and go kinda thing

I have a cheap wifi adapter which does not supports AP mode but rpi3 internal wifi chip does so by nexmon Kali putting rpi3's wifi chip in monitor mode and connecting to internet via the other cheap wifi adapter can I use it

Can I do it with RPi3 internal wifi chip and connecting to internet with another cheap wifi adapter which doesn't supports AP mode.

Nice tuto Sadmin..thanks for the work
My advice is only for education purpose !!

most phones, laptops etc. is set to auto connect to known AP's .. so all you really need to do is copy the ESSID they are looking for and they will auto connect to it. ;)..

I will not explain it in details how to do this but it should give you an idear how to exploid that ;)...


how does the 036NEH compare to 036NHA performance wise?



How would you set this up with a headless rpi3 using ssh, similar to in the picture

As it uses a GUI then to remotely control the PI you can use VNC viewer.

To enable it on the PI use the command:


And then set up VNC viewer on another machine

What is the need of a wireless adapter as the Raspberry pi 3 has inbuilt WiFi and Bluetooth connectivity??

Are you kidding? The inbuilt wifi connectivity is almost useless! What range do you think is its maximum? It cannot even be compared with an external adapter!

I completed everything and wifi-pumpkin installed with all dependancies, however I encountered this:

root@kali:~# sudo wifi-pumpkin
Traceback (most recent call last):
File "", line 37, in <module>
from core.utility.application import ApplicationLoop
File "/usr/share/WiFi-Pumpkin/core/utility/", line 3, in <module>
from core.main import version
File "/usr/share/WiFi-Pumpkin/core/", line 24, in <module>
from core.utils import (
File "/usr/share/WiFi-Pumpkin/core/", line 14, in <module>
import configparser
ImportError: No module named configparser

Good job Sadmin..thanks for the video...
Could U help me please ?

You do not have a working installation of the serviceidentity module: 'cannot import name opentype'. Please install it from <> and make sure all of its dependencies are satisfied. Without the serviceidentity module, Twisted can perform only rudimentary TLS client hostname verification. Many valid certificate/hostname mappings may be rejected.

Traceback (most recent call last):
File "", line 50, in <module>
from Core.Main import Initialize
File "/usr/share/WiFi-Pumpkin/Core/", line 52, in <module>
from import frm_ReportLogger
File "/usr/share/WiFi-Pumpkin/Core/helpers/", line 2, in <module>
from PyQt4.QtWebKit import QWebView
ImportError: No module named QtWebKit

I already install ....service_identity....but still the same message...


Share Your Thoughts

  • Hot
  • Latest