IEEE 802.11 protocol

Mirage includes components allowing to manipulate and communicate with WiFi interfaces, along with other components implementing some attacks on the IEEE 802.11 stack. This page presents some of those components, and provides some usage examples.

Warning

Please note the fact that this protocol stack is partially implemented. It’s mainly included as a proof of concept for now.

WiFi modules

Mirage includes many modules allowing to analyse the security of WiFi communications. The available modules and the links to the corresponding documentation pages are listed in the following table :

Name

Description

Documentation

wifi_info

This module displays useful informations about a given interface.

here

wifi_deauth

This module performs a deauthentication attack.

here

wifi_rogueap

This module creates a basic rogue access point (not connectible).

here

wifi_scan

This module discovers Access Points and WiFi stations.

here

Importing the WiFi software components

Every software component described in this page can be easily imported from a module or a scenario environment using the following statement :

from mirage.libs import wifi

Then, every component is available using the wifi namespace:

packet = wifi.WifiBeacon(channel=11, srcMac="AA:BB:CC:DD:EE:FF", cypher="WEP")

Interacting with the protocol

Mirage can use a standard WiFi interface to interact with the protocol. Each device can be used to send and/or receive IEEE 802.11 frames, and possibly provide some specific features by providing shared methods. The supported Devices are listed here.

To manipulate a device, you need to use the corresponding Emitter and/or Receiver with an interface related to you device. The following page explains how to use these software components.

Wifi frames

Mirage manipulates WiFi frames as child classes of WifiPacket (mirage.libs.wifi_utils.packets.WifiPacket), which is itself a child class of Packet (mirage.libs.wireless_utils.packets.Packet. The following list describes the available packets and provides some links to the corresponding documentation pages :