Skip to content

WifiForge is a tool developed by Black Hills InfoSec to help train Pentesters on different Wi-Fi attack vectors and Wireless capabilities.

License

Notifications You must be signed in to change notification settings

blackhillsinfosec/Wifi-Forge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wi-Fi Forge Banner

Wi-Fi Forge

Wi-Fi Forge provides a safe and legal environment for learning WiFi hacking. Based on the open source Mininet-Wifi, this project automatically sets up the networks and tools needed to run a variety of WiFi exploitation labs, removing the need for the overhead and hardware normally required to perform these attacks.

Disclaimer/Notes

  • The installation script will only run on Ubuntu, Debian, Fedora, or Kali.
  • It is suggested to run Wifi Forge on Ubuntu version 14.04 or the lastest version of Kali.
  • The Wifi Forge installation script may disrupt normal operating system use, it is suggested to use a fresh install, virtual machine, or build using the provided dockerfile (see Set-Up Guide/Docker)

Compatibility

Wifi-Forge should work on any linux operating system using the docker image. The following Operating Systems have been tested and are confirmed to work.

Kali Linux kali

Parrot OS Parrot OS

Ubuntu Ubuntu

Set-Up Guide

Note: As of June, pulling from Dockerhub is the most up-to-date version of wififorge. Installing from any other method (including building directly from the Dockerfile) will not guarantee a stable release.

Docker (recommended)

Note: Dockerfile will fail if mininet-wifi is already installed locally

Install from release (best option)

  1. Pull image from dockerhub
sudo docker pull redblackbird/wififorge:v1.0.0

2.. Start a new container

sudo docker run --privileged=true -it --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" -v /tmp/.X11-unix:/tmp/.X11-unix:rw -v /sys/:/sys -v /lib/modules/:/lib/modules/ --name mininet-wifi --network=host --hostname mininet-wifi redblackbird/wififorge:v1.0.0 /bin/bash

3.. Within docker, initiate the controller to simulate APs

RUN service openvswitch-switch start

4.. Run wififorge.py

sudo python3 Framework/WifiForge.py

Build from Dockerfile

  1. Install Docker
sudo snap install docker
  1. Clone the repository
git clone https://github.com/her3ticAVI/Wifi-Forge
  1. Run the Dockerfile (may take up to 10 minutes)
sudo docker build -t wififorge .
  1. Start a new container (command should automatically initiate a docker shell)
sudo docker run --privileged=true -it --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" -v /tmp/.X11-unix:/tmp/.X11-unix:rw -v /sys/:/sys -v /lib/modules/:/lib/modules/ --name mininet-wifi --network=host --hostname mininet-wifi wififorge /bin/bash
  1. Within docker, initiate the controller to simulate APs
RUN service openvswitch-switch start
  1. Within docker, run WifiForge.py
sudo python3 Framework/WifiForge.py

Build from Source

NOTE: While the setup script is generally stable, running the auto installer directly on your machine may disrupt your operating system in a way that renders it unusable.

  1. Clone the repository
git clone https://github.com/her3ticAVI/Wifi-Forge
  1. Run setup.sh
cd Wifi-Forge/Framework/
sudo ./setup.sh
  1. Run Wi-Fi Forge
sudo python3 WifiForge.py

Labs and Featured Tools

Wi-Fi Forge provides pre-built labs that cover the following:

  • Evil twin AP
  • WEP PIN Recovery
  • WPA2 4 Way Handshake
  • WPS Pixie Attacks
  • WifiPhisher
  • Eaphammer
  • etc...

Common Issues

Xterm does not work!

Intializing graphical interfaces as root between the docker image and host machine is restricted on most modern distributions. Run the following command to provide the appropriate permissions -

xhost si:localuser:root

If other issues are encountered, start a thread in the issues section of the repo! :)

Dockerfile stops at apt update!

Once in a while, the dockerfile will fail before installing packages. Though unconfirmed, this error usually occurs after running Wifi-forge (either on baremetal or within a docker). Rebooting and running the Dockerfile again typically solves the issue.

Links and Further Reading