Giter Club home page Giter Club logo

modwifi's Introduction

Advanced Wi-Fi Attacks Using Commodity Hardware

We provide tools to perform low-layer attacks such as reactive and constant jamming using commodity devices. Reactive jamming allows you to block specific Wi-Fi packets. For example, all beacons and probe responses of a specific Access Point (AP) can be jammed. It has been tested with the following devices:

This work was the result of the paper Advanced Wi-Fi Attacks Using Commodity Hardware presented at ACSAC 2014. If you use these tools in your research, please reference this paper. Most code is open source, and contributions are welcome. The code of the constant jammer can be requested but is not available publicly. Don't worry, we won't bite.

  • April 2016: we now support Linux kernels 3.0 up to and including 4.4! See the modwifi-4.4-1.tar.gz release! This has been tested on Arch Linux and Ubuntu 15.10.
  • September 2019: we have a release that supports kernels 5.3 and below. See the modwifi-5.3-rc4-1.tar.gz release. This was tested on kernel 4.9.0-9 and 5.2.9.

Table of Contents

Quick Start

You can download a VMWare image that has the drivers, firmware, and user-land tools preinstalled. Just boot it, plug-in the USB dongle, and start experimenting! The password of the account modwifi is modwifi. Once booted, you can execute (the public) attacks below.

Basic Usage

This section describes the attacks that can be executed. We assumed you already downloaded the VMWare image or manually installed the drivers and firmware (see the section "Installation" to install drivers on your existing machine).

Before doing any attacks it is recommended to disable WiFi. In particular I mean disabling WiFi in your network manager. Most graphical network managers have an option somewhere named "Enable Wi-Fi". Make sure it's not selected. If you can't find it, perhaps you can disable in the terminal with sudo nmcli nm wifi off. Once you have disabled WiFi your OS won't interfere with our attacks.

If RF-kill is enabled we'll have to turn it off. Some distributions set RF-kill on after disabling WiFi. But we still want to actually use our WiFi devices. So execute:

sudo apt-get install rfkill
sudo rfkill unblock wifi

Reactive Jamming

Our current implementation of our reactive jammer allows you to block an Access Point. More precisely, all beacons and probe responses will be jammed. Execute it using:

modwifi@ubuntu:~/modwifi/tools$ sudo rfkill unblock wifi
modwifi@ubuntu:~/modwifi/tools$ sudo iw wlan0 set type monitor
modwifi@ubuntu:~/modwifi/tools$ sudo ifconfig wlan0 up
modwifi@ubuntu:~/modwifi/tools$ sudo iw wlan0 set channel 11
modwifi@ubuntu:~/modwifi/tools$ sudo ./reactivejam -i wlan0 -s "Home Network"

The first three commands need to be executed only once after plugging in your dongle. To get the interface name of the wireless card you can execute iwconfig. In this case our targeted AP was on channel 11, but remember that your targeted AP may be on a different channel.

You can stop the reactive jammer using CTRL+C. It may take a few seconds before it actually stops. By modifying the firmware you can reactive jam any kind of packets you like. For example, you could jam all packets of a specific client. Note that only medium to large packets can be reliably jammed (see our paper).

You can verify that this works by monitoring the channel with a second device. Make sure that this device also reports corrupted frames using:

sudo iw wlan1 set monitor fcsfail

This will instruct the driver to also pass corrupted frames to the userland (when in monitor mode). Be warned though, not all drivers properly support this flag. Some will always show corrupted frames. Others will never show corrupted frames. Our drivers and firmware handle this flag correctly!

Disabling Carrier Sense

Want to disable carrier sense in order to perform an experiment? Then execute this:

modwifi@ubuntu:~$ sudo su
root@ubuntu:~$ mount -t debugfs none /sys/kernel/debug
root@ubuntu:~$ cd /sys/kernel/debug/ieee80211/phy*/ath9k_htc/registers/
root@ubuntu:~$ echo 1 > force_channel_idle
root@ubuntu:~$ echo 1 > ignore_virt_cs

Writing 1 to force_channel_idle disables physical carrier sense (channel is busy). Writing 1 to ignore_virt_cs disables virtual carrier sense (RTS/CTS). Random backoff parameters can also be changed.

Constant Jamming

If you have the firmware capable of doing constant jamming, you can execute:

modwifi@ubuntu:~/modwifi/tools$ sudo iw wlan0 set type monitor
modwifi@ubuntu:~/modwifi/tools$ sudo ifconfig wlan0 up
modwifi@ubuntu:~/modwifi/tools$ sudo ./constantjam wlan0 6

This performs constant jamming on channel 6. Because channels overlap, nearby channels will also be jammed. Remember that the constant jamming implementation is not public, but can be requested privately.

Unfair Channel Usage

The specific scripts we used to easily configure a device to act unfairly are not public. The reason behind this is that it's hard to defend against these kind of attacks. However, some parameters can still be accessed as debugfs entries in /sys/kernel/debug/ieee80211/phy*/ath9k_htc/registers/.

Forcing Corrupt Packets

You can force the wireless chip to calculate a wrong CRC (FCS) using:

modwifi@ubuntu:~$ sudo su
root@ubuntu:~$ mount -t debugfs none /sys/kernel/debug
root@ubuntu:~$ cd /sys/kernel/debug/ieee80211/phy*/ath9k_htc/registers/
root@ubuntu:~$ echo 1 > diag_corrupt_fcs

Channel MitM and TKIP Broadcast Attack

Update: if you want to prototype multi-channel MitM attacks, consider using the Python implementation instead. It is based on Python/Scapy and easier to modify, at the cost of being slower when processing a lot of data.

This is an advanced attack and not for the fainthearted. It clones an existing Access Point on a different channel. This allows us to reliably manipulate encrypted traffic. We used this to break TKIP. See our paper for details. An example on how we used it to verify that our awesome-sauce attacks work:

modwifi@ubuntu:~/modwifi/tools$ sudo ./channelmitm -a wlan4 -c wlan5 -j wlan3 -s testnetwork -d mitm.pcap --dual

A-MPDU Injection

You can inject A-MPDUs using ModWifi by adding a special trailer to injected frames. This trailer data will be removed before transmitting the frame to the air. All frames in an A-MPDU except the last must be appended with the trialer b"\x00AGGR". The last frame to be part of the A-MPDU must be appended with the trailer b"\xFFAGGR". For example, to inject an A-MPDU that aggregates three frames in scapy, you should use:

sendp(RadioTap()/Dot11()/Raw(b"\x00AGGR"))
sendp(RadioTap()/Dot11()/Raw(b"\x00AGGR"))
sendp(RadioTap()/Dot11()/Raw(b"\xFFAGGR"))

The firmware will then automatically aggregate these three frames into an A-MPDU. For background, see the function modwifi_txampdu_check.

Firmware Debugging

There is support to add short debug messages to the firmware. You can access these debug messages as follows:

root@ubuntu:~$ mount -t debugfs none /sys/kernel/debug
root@ubuntu:~$ cd /sys/kernel/debug/ieee80211/phy*/ath9k_htc/
root@ubuntu:~$ cat dmesg

In the firmware you can make calls to printk to debug the firmware. Because the firmware has a low amount of memory, it is recommended to only add short debug messages. The debug log is implemented as a ringbuffer on the firmware, meaning new debug messages will overwrite old messages to prevent running out of memory.

Troubleshooting

If an attack or device is not working, you can try the following steps to get it working again:

  1. Change the channel of the device. This will reset the wireless chip in the dongle, and perhaps fix the issue.
  2. Bring the device up and down using ifconfig or ip link. This should reset even more settings than just changing the channel.
  3. Unplug the device and plug it back it. This reloads the complete firmware.
  4. If all else fails, reboot your computer.

If you can reproduce a bug, feel free to file a bug report.

Another few remarks when using our tools, and doing wireless hacking in general:

  • You can only change the channel of a monitor device when no other (virtual) interface is active. So if you have a monX interface, you need to bring down (ifconfig wlanX down) all other interfaces (which use that device) first.
  • In general you want to kill other processes that are trying to use/configure your WiFi device. Tools like airmon-zc can help detect which processes might be interfering. Note that airmon-zc is the successor of the older airmon-ng tool.

Installation and Source Code

You can also install the latest drivers and firmware on your own machine. The quickest method is to grab one of our release packages. Only your wireless stack and drivers will be replaced, all other drivers will remain the same (if you use other wifi devices as well, compile them too). Normal usage of WiFi still works perfectly when these drivers are installed (I use these drivers myself :).

Ubuntu 15.10

ModWiFi was originally tested on Ubuntu 15.10. You can download and install this older version of Ubuntu in a virtual machine as follows. First download Ubuntu 15.10 and install it in your VM. Then update your sources.list so that you can still install packages using apt. Note that these packages are no longer recieving updates. You can now download and install the modwifi-4.4-1.tar.gz package according to the general instructions below.

General Instructions

The installation instructions are:

mkdir modwifi && cd modwifi
wget https://github.com/vanhoefm/modwifi/raw/master/releases/modwifi-4.4-1.tar.gz
tar -xf modwifi-4.4-1.tar.gz

apt-get install build-essential libncurses-dev bison flex libssl-dev
cd drivers && make defconfig-ath9k-debug
make
sudo make install
cd ..

# Note: the location and name of firmware files on your machine may be different
compgen -G /lib/firmware/ath9k_htc/*backup || for FILE in /lib/firmware/ath9k_htc/*; do sudo cp $FILE ${FILE}_backup; done
sudo cp target_firmware/htc_7010.fw /lib/firmware/ath9k_htc/htc_7010-1.4.0.fw
sudo cp target_firmware/htc_9271.fw /lib/firmware/ath9k_htc/htc_9271-1.4.0.fw

sudo apt-get install g++ libssl-dev libnl-3-dev libnl-genl-3-dev cmake
cd tools && cmake CMakeLists.txt && make all

Reboot so our new drivers will be used. After that you should be good to go. That is, plug in your dongle, and execute the compiled tools.

Note that this only compiles and installs the ath9k drivers. If you want to use modwifi, and at the same time control other wireless networks cards on the kernel, modify and use the appropriate defconfig-* file (e.g. include the appropriate flags in defconfig-ath9k-debug so the drivers you need are also compiled).

If you want to compile the firmware as well, clone the ath9k-htc repository, and follow the instructions there. If you want to modify the driver, you can modify the downloaded code in modwifi-YYYYMMDD.tar.gz. You can put that code in your own repository to keep track of changes, and send us patches based on this. Alternatively, the more correct but also significantly more tedious method, would be to clone the research branch of our forked Linux kernel. The driver can be extracted from the kernel code using the backports project. You can then install the drivers only (so without modifying your own kernel).

Raspberry Pi Support

Our drivers and firmware can be run on a Raspberry Pi. We tested this using raspbian. In order to get it working first download and update some dependencies:

sudo apt-get install linux-image-3.12-1-rpi linux-headers-3.12-1 g++-4.7 iw
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.7 50

As you can see, we tested this on the 3.12-1-rpi kernel. You can use another kernel if you want, just be sure to download the kernel headers. To enable the 3.12-1-rpi kernel we just downloaded edit /boot/config.txt and append:

kernel=vmlinuz-3.12-1-rpi
initramfs initrd.img-3.12-1-rpi followkernel

And to assure our raspberry pi will recognize the device when we plug it in, execute:

echo "ath9k_htc" | sudo tee -a /etc/modules

Everything is now ready to install our drivers and firmware. Just follow the instructions under section "Installation". Compilation of the drivers can take a while. Finally we have to prevent raspbian from automatically trying to enable and manage WiFi (this interferes with our attacks). First edit /etc/network/interfaces and comment out the following two lines:

#allow-hotplug wlan0
#iface wlan0 inet manual

Now edit /etc/default/ifplugd and change the INTERFACES and HOTPLUG_INTERFACES to:

INTERFACES="eth0"
HOTPLUG_INTERFACES="eth0"
ARGS="-q -f -u0 -d10 -w -I"
SUSPEND_ACTION="stop"

This will prevent raspbian from automatically enabling and managing the wireless interface (so we can first put the device in monitor mode and only then enable it). You can now compile the tools and execute the attacks!

Repositories

The work is divided over several git repositories:

  1. Linux: Forked Linux kernel to make driver modifications.
  2. Backports: Fork of the backports projects so we can backport our drivers to older kernels.
  3. Ath9k-htc: Forked firmware code to implement the core of our attacks.
  4. Tools: New repository for our user-land tools.

You can download all repositories at once using the following commands:

mkdir modwifi && cd modwifi
bash <(curl -s https://raw.githubusercontent.com/vanhoefm/modwifi/master/init.sh)

To compile the Linux and ath9k-htc firmware, read the documentation of these projects. To backport the modified drivers using the backports project, also see the official documentation of that project. Finally, our tools can be compiled using a simple make all. Apart from the tools repositories, all work and modifications are performed on the research branch. When a new Linux kernel (or firmware) is released, we can easily merge with it. As a result our code is relatively easy to keep up-to-date.

For those who also want to start hacking away at the driver and firmware, I recommend first reviewing our patches. This allows you to study what our changes do, and inspect the firmware code at small chunks one at a time. That way it's easier to learn step by step. Maybe you will even find bugs or can make improvements (let us know). Also, in the ath9k-htc repository, there is a directory called docs. While still terse to read, these documents should be an excellent guide while reading and understanding the code.

If you have any questions, don't hesitate to send us a mail.

Supporting new kernels

We rely on the driver backports project to ship our modified drivers (as installable modules) to older kernels. This provides two advantages: (1) the drivers can be installed as modules, meaning user don't have to (re)compile a linux kernel; and (2) these drivers (i.e., modules) are compatible with many recent kernel versions. Officially the backports project tracks the linux-next tree. This means it extracts, and backports, recents drivers (as loadable modules) from the linux-next tree. However, we base our code on Linus' tree, because basing code on linux-next is not really possible.

To target a new kernel there are two cases:

  1. There is a linux-x.y.z branch of the kernel you want to target. Checkout this branch, use it to extract modified drivers. Should be relatively simple.
  2. We need to create our own linux-x.y.z branch. I call my own batches of this type mathy-x.y.z. It is best to first get backports working against a linux-next tag that was tested by the backports project itself. Then I found that, with some minor patches, backports will also work against Linus' tree of a specific version tag that is close to the tested linux-next snapshot. So find the latest linux-next snapshot that is compatible with the backports project. How to get linux-next. You may need to use linux-next-history for this, which contains all linux-next tags ever created. It may be that backports cannot cleanly extract the driver code. If so, crease a new research branch in the backports repository, and modify the patches so everything cleanly applies and compiles.

Use python2 when using backports. Some scripts may fail if python3 is the default.

Note that branches named mathy-x.y.z are custom branches, I personally use them to create backports for my currently running linux kernel. For example, mathy-4.7.y can take code from linux-next, and will compile on Linux 4.7.4. However, it may not compile on older kernels! While working on backports, you may find it useful to use rediff from the patchutils package to manually change patch files.

Publications and Systems Using ModWifi

Below you can find a list papers and systems that either use or build upon ModWifi. They are listed in chronological order.

If you have used or extended ModWifi and would like to have your paper listed here, please open a pull request at https://github.com/vanhoefm/modwifi/pulls or send an email to [email protected].

modwifi's People

Contributors

ieguiguren avatar vanhoefm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

modwifi's Issues

.

.

Truly Disabling RTS/CTS

After carefully following the installation instructions, I attempted to disable carrier sensing. Even after setting 'force_channel_idle' and 'ignore_virt_cs' to '1' I still witnessed (via WireShark captures) RTSs initiated from the wireless interface to the target AP. This occurrence, however somewhat infrequent, only happened during layer 3 (TCP,ICMP) packet RE-transmissions. Is it possible to disable this aspect of RTS/CTS as well? Seem like this type of collisions avoidance is controlled at the HW level.

Thanks in advance!

Error

Hey, guys.

I get an error when I do a make in drivers folder.

root@kali: /modwifi/drivers# make
CC [M] /root/modwifi/drivers/net/wireless/nl80211.o
/root/modwifi/drivers/net/wireless/nl80211.c: In function ‘nl80211_send_iface’:
/root/modwifi/drivers/net/wireless/nl80211.c:2405:6: error: implicit declaration of function ‘nla_put_u64’ [-Werror=implicit-function-declaration]
nla_put_u64(msg, NL80211_ATTR_WDEV, wdev_id(wdev)) ||
^

cc1: some warnings being treated as errors
/usr/src/linux-headers-4.8.0-kali1-common/scripts/Makefile.build:294: recipe for target '/root/modwifi/drivers/net/wireless/nl80211.o' failed
make[8]: *** [/root/modwifi/drivers/net/wireless/nl80211.o] Error 1
/usr/src/linux-headers-4.8.0-kali1-common/scripts/Makefile.build:445: recipe for target '/root/modwifi/drivers/net/wireless' failed
make[7]: *** [/root/modwifi/drivers/net/wireless] Error 2
/usr/src/linux-headers-4.8.0-kali1-common/Makefile:1488: recipe for target 'module/root/modwifi/drivers' failed
make[6]: *** [module/root/modwifi/drivers] Error 2
Makefile:150: recipe for target 'sub-make' failed
make[5]: *** [sub-make] Error 2
Makefile:8: recipe for target 'all' failed
make[4]: *** [all] Error 2
Makefile.build:6: recipe for target 'modules' failed
make[3]: *** [modules] Error 2
Makefile.real:88: recipe for target 'modules' failed
make[2]: *** [modules] Error 2
Makefile:40: recipe for target 'modules' failed
make[1]: *** [modules] Error 2
Makefile:30: recipe for target 'default' failed
make: *** [default] Error 2
root@kali:~/modwifi/drivers#

Failed to ping wlan0 using masked MAC

After running channelmitm -a wlan0 -c wlan1 -s SSID -vv -d mitm.pcap
it fails with:

...
Testing ACK generation...
	Pinging 00:7b:4b:ab:b9:b4 (wlan0) with mask ff:ff:ff:ff:ff:ff
	 [TEST] rval=10
	Pinging 00:7b:4b:ab:b9:b5 (wlan0) with mask ff:ff:ff:ff:ff:fe
	 [TEST] rval=0
Failed to ping wlan0 using masked MAC

I am using a TL-WN722N v1.1 and a WNDA3200 on a RaspberryPi, kernel version 4.19.118-v7+. Both doggles are in monitor mode. There are no other tasks using the interfaces (airmon-zc returns non).

Any ideas what the problem could be?

Reactive jam does not work

I tried the "reactivejam" tool here targetting my home AP but it seems not to work. It does not drop the connection to the AP and beacons still arrive on the receiver.

TP-Link TL-WN722N support

Hello Vanheof,

I would like to thank you for the great work you presented here. I tried to run the experiments using TP-Link TL-WN722N but it seems that TP-Link started producing this device using different chipset (Broadcom). Furthermore, I couldn't be able to find the TP-Link TL-WN722N v1.0 that supports the ModWiFi driver. I used Netgear Wireless USB adapter WNA1100 (the older version) and it works fine. The problem is empowered since most of manufacturers doesn't announce the chipsets in the product technical details. You may consider indicating the exact version on the web page, since manufacturers sometimes change the chipsets in the newer versions.

Best regards,
Mohammad

tested virtualMachine but wireless extension disappeared

tested modwifi virtualMachine Constant Jamming in vmplayer but back to Ubuntu 18.04 found atheros adapter missing..? Is it vmplayer issue!?
I'd like to play the "TKIP Broadcast Attack" really evil! :D but 2 atheros disappeared. Any clue please?

vmnet1    no wireless extensions.

vmnet8    no wireless extensions.

wlp1s0    IEEE 802.11  ESSID:"TIM_22026888"  
          Mode:Managed  Frequency:2.412 GHz  Access Point: 9A:88:CB:A9:3B:D8   
          Bit Rate=58.5 Mb/s   Tx-Power=20 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          Link Quality=47/70  Signal level=-63 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:1  Invalid misc:0   Missed beacon:0

lo        no wireless extensions.

modes

do i need to set all the adapters to monitor mode, or do i set the ap interface access point mode ? (for channelmitm specifically)

Question

Please do i need external wifi dongle to execute this tests, is there any way to do this with just my internal wifi card ? using a real ubuntu installed not virtual

Errors Compiling modwifi on ubuntu 16.04 LTS

I am getting compiling on ubuntu 16.04 LTS with the example script commands provided in readme. I have listed only error here.

modwifi/drivers/backport-include/linux/kconfig.h:25:28: error: implicit declaration of function ‘config_enabled’ [-Werror=implicit-function-declaration]
 #define IS_BUILTIN(option) config_enabled(option)
./include/asm-generic/qrwlock.h:156:37: error: ‘CONFIG_CPU_BIG_ENDIAN’ undeclared (first use in this function)
  return (u8 *)lock + 3 * IS_BUILTIN(CONFIG_CPU_BIG_ENDIAN);

/media/masood/30C28E79C28E43581/modwifi/drivers/backport-include/linux/kconfig.h:25:28: error: implicit declaration of function ‘config_enabled’ [-Werror=implicit-function-declaration]

Although tools compile successfully and i have also put correct firmware files

Modwifi Build Error on Raspberry Pi 4

I am trying to compile ath9k driver on raspberry pi 4 with 64bit Raspberry Pi latest OS but getting errors. The kernel version is 6.21.1
On running the command make defconfig-ath9k-debug, it gives error your kernel headers are incomplete/ not installed. Please install kernel headers.

When I follow instructions for compilation on raspberri pi, i.e sudo apt-get install linux-image-3.12-1-rpi linux-headers-3.12-1 g++-4.7 iw then I get error that image does not exists.

Can you provide any solution please.

FCS fails to Ath9k?

Hello,

Sorry to disturb you again. Is it complicated to integrated only the FCS FAIL functionality on ath9k?
Which file should be modify please ?

Thanks,

Regards,

Eric

Stop chip from dropping with erroneous FCS in ad-hoc mode

how can I force the chip to accept all incoming packets, including packets with an incorrect FCS & pass it up the stack as if it had a correct FCS?

I know that you suggested using sudo iw wlan1 set monitor fcsfail which does not allow me to see the data packets. I only see probes and beacons.

I am operating in an wpa2 ad-hoc/mesh network and using your modwifi-5.3-rc4-1.tar.gz release.

Handling of WMI_CONSTANTJAM_CMDID.

Hi, I want to know Handling of WMI_CONSTANTJAM_CMDID command. Where it is handled and where I can get code for this.

Thank-you
Sachin

Apply this work to Ath9k driver?

Hello,

You think it's possible to apply modwifi on ath9k_htc driver to ath9k driver please ?
If yes, how to do that please?

Because I have a device which works with Ath9k drivers.

Thanks,

Regards,

Eric

constant jammer

hi, How can I request a code for The code of the constant jammer
I'm working on Network security project, and may use it in wifi security part.
would be a good part of my final project. if it really works.

Regards

Max

how to set txpower

Hi, I'm researching how to create power adaptive over the AR9271 with raspberry pi 2,I want to change txpower in monitor mode, But when I use "iw dev wlan0 set txpower fixed 500".It looks like no problem.But the txpower won't change, it's still 20 dBm Now,I have the source firmware source,can you give me some suggestion?

Tools won't compile due to the lack of Makefile

Both, Debian stretch and Ubuntu trusty, won't compile tools due to the lack of the Makefile file. Thus, this fails:

cd tools && make all

[~/dev/modwifi]>cd tools/ [~/dev/modwifi/tools]>make all make: *** No rule to make target all'. Stop.
[~/dev/modwifi/tools]>ls
CMakeFiles MacAddr.cpp SeqnumStats.h channelmitm.cpp constantjam.cpp crypto.h fastreply.cpp osal_nl.cpp pcap.cpp util.cpp
CMakeLists.txt MacAddr.h SeqnumType.cpp chopstate.cpp crc.cpp eapol.cpp ieee80211header.h osal_nl.h pcap.h util.h
ClientInfo.cpp SeqnumInfo.h SeqnumType.h chopstate.h crc.h eapol.h libutil.a osal_wi.cpp reactivejam
ClientInfo.h SeqnumStats.cpp channelmitm constantjam crypto.cpp fastreply nl80211.h osal_wi.h reactivejam.cpp
`

error complilig

I'm having an issue compiling

using Kali 2,
kernel : 4.3.0-kali1-amd64
as per your advice on the page trying to use modwifi-4.4-1

cmake CMakeLists.txt && make all
-- The C compiler identification is GNU 6.3.0
-- The CXX compiler identification is GNU 6.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /root/Desktop/modwifi/tools
Scanning dependencies of target util
[  4%] Building CXX object CMakeFiles/util.dir/osal_wi.cpp.o
[  9%] Building CXX object CMakeFiles/util.dir/osal_nl.cpp.o
[ 14%] Building CXX object CMakeFiles/util.dir/util.cpp.o
[ 19%] Building CXX object CMakeFiles/util.dir/MacAddr.cpp.o
[ 23%] Building CXX object CMakeFiles/util.dir/crc.cpp.o
[ 28%] Building CXX object CMakeFiles/util.dir/eapol.cpp.o
[ 33%] Building CXX object CMakeFiles/util.dir/crypto.cpp.o
/root/Desktop/modwifi/tools/crypto.cpp: In function ‘int decrypt_eapol_key_data_rc4(uint8_t*, uint8_t*, uint8_t*, size_t)’:
/root/Desktop/modwifi/tools/crypto.cpp:74:17: error: aggregate ‘EVP_CIPHER_CTX ctx’ has incomplete type and cannot be defined
  EVP_CIPHER_CTX ctx;
                 ^~~
CMakeFiles/util.dir/build.make:206: recipe for target 'CMakeFiles/util.dir/crypto.cpp.o' failed
make[2]: *** [CMakeFiles/util.dir/crypto.cpp.o] Error 1
CMakeFiles/Makefile2:104: recipe for target 'CMakeFiles/util.dir/all' failed
make[1]: *** [CMakeFiles/util.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

I also did try kali latest with kernel 4.6 and modwifi-4.7.4-experimental-1
very similar issue when coupling on last stage...

any help would be appreciated

compat: module verification failed

It doesn't work at all after i compile these code. I got some message when i make install the modules:
"SSL error:2006D080:BIO routines:BIO_new_file:no such file: bss_file.c:178
sign-file: certs/signing_key.pem: No such file or directory”
And I got the message
"[ 177.032667] compat: module verification failed: signature and/or required key missing - tainting kernel
[ 177.033199] Loading modules backported from Linux version v4.4-18-gd7fd3d9
[ 177.033201] Backport generated by backports.git v4.4.2-1-5-g6b791b0
"
when I use "dmesg"
Could you please tell me how to fix it ,Thank you for your time.

Exposing additional registers

I'm trying to expose the AR9271 PHY Error Mask (MAC_PCU_PHY_ERROR_MASK) register, specifically bit 26, in an attempt to stop the CCK CRC header error from dropping frames with an invalid FCS.
How can I control this register via debugfs? Is it just a matter of following the structure in your commit to htc_drv_debug.c?
If not, how else can I force the "crc_error" flag of "Rx Status Descriptor" (Word 12, Bit 2) to always have a value of zero?

Also, when you have a chance... I'd appreciate talking to you about your private code via email

How to confirm if the continuous jammer is working?

Hi. Many thanks for the work done.
I try to work with Xubuntu-Modwifi (official image) and continuous Jamming seems not work ... (tested with spectral scan tool )
Can I acquire attack samples with spectral analysis feature of AR9271 chipset?

What equipment do I use:

  1. TLWN722N v.1 + Xubuntu-Modwifi (official image)
  2. TLWN722N v.1 + Xubuntu-Modwifi (official image) + modwifi-4.4-1.tar.gz (installed in the official manual, the drivers (fw) are replaced!)
  3. TLWN722N v.1 + Xubuntu-Modwifi (official image) + modwifi-4.7.4-experimental-1.tar.gz (installed in the official manual, the drivers (fw) are replaced!)

Unable to compile the tools in Raspberry Pi

The current kernel version in my Raspberry Pi is: 4.14.44-v7+.
When I tried to execute:
sudo apt-get install linux-headers-$(uname -r)
==> E: Unable to locate package linux-headers-4.14.44-v7
So, I have updated the firmware using:
$sudo rpi-update
$sudo reboot
Then I search for available linux-headers and linux-image through:
$apt update
$apt-cache search linux-headers
==> raspberrypi-kernel-headers - Header files for the Raspberry Pi Linux Kernel
$ sudo apt-get install raspberrypi-kernel-headers
$apt-cache search linux-image
==> raspberrypi-kernel - Raspberry Pi Bootloader
$ sudo apt-get install raspberrypi-kernel

After this, when I try to execute make defconfig-ath9k-debug,
It is showing: your kernel headers are incomplete/ not installed. Please install kernel headers.
Could you please help me in this regard?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.