hcxdumptool - missing frames w/ filtering
#23
After going open source, I got several feature requests and pull requests and added them to hcxdumptool. But every feature and every option has a price tag and hcxdumptool became a Dinosaur:
A beautiful real time display will take CPU cycles.
On the fly decoding calculating a PSK/PMK (weak candidate) will take CPU cycles.
Remote connection to a CLIENT will take CPU cycles.
Easy to use filter lists (options filter mode and filter list will take CPU cycles.
EAP attack (TLS) will take CPU cycles.

WiFi laboratory (hcxlabtool series) is highly experimental and ultra fast. It is designed to test new attack modes (which are later on added to hcxdumptool). It is designed to run completely headless.
There are no CPU cycle expensive options. Instead of using options, we compile the features directly into the tool. That result in several different tools, made by a single source file:
Code:
hcxlabgetm1 = request PMKID hcxlabgetm2 = request EAPOL M2 from CLIENT hcxlabgetm2wc = transmit wild card BEACONs and request EAPOL M2 from CLIENT hcxlabgetm2pr = transmit 10 different PROBERESPONSEs to a single PROBEREQUEST and EAPOL M2 from CLIENT hcxlabgetm2wcpr = combination of hcxlabgetm2wc and hcxlabgetm2pr hcxlabgetm1234 = get full 4way handshake hcxlabgetmall = do all mentioned above (except ...wc and ...pr) hcxlabgetmallwc = do all mentioned above (except ...pr) hcxlabgetmallpr = do all mentioned above (except ...wc) hcxlabgetmallwcpr = do all mentioned above hcxlabdumpall = store data and unhandled frames to pcapng file

This tools are designed to test new features (to be added to hcxdumptool). They are designed to run headless on systems like this ones:
https://github.com/ZerBea/hcxdumptool/wi...g-system-1
https://github.com/ZerBea/hcxdumptool/wi...g-system-2

Operation system is a minimalist Debian (bookworm - unfortunately Arch stopped supporting armv6):
No GUI
No unwanted tasks.
No unwanted services.
No unwanted tools.
Everything uninstalled what we don't need.
No monitor.
No keyboard (Raspberry is controlled via GPIO).
Onboard chips (HDMI, BT and Broadcaom WiFI disabled.
Onboard LED disabled.

It will run on other systems, too. But it will slowed down.

Installation is very simple:
Code:
$ git clone https://github.com/ZerBea/wifi_laboratory $ sudo make install cc -O3 -Wall -Wextra -o hcxlabgetm1 hcxlabtool.c -DGETM1 -DSTATUSOUT cc -O3 -Wall -Wextra -o hcxlabgetm2 hcxlabtool.c -DGETM2 -DSTATUSOUT cc -O3 -Wall -Wextra -o hcxlabgetm2wc hcxlabtool.c -DGETM2 -DBEACONUNSET -DSTATUSOUT cc -O3 -Wall -Wextra -o hcxlabgetm2pr hcxlabtool.c -DGETM2 -DGETM2PR -DSTATUSOUT cc -O3 -Wall -Wextra -o hcxlabgetm2wcpr hcxlabtool.c -DGETM2 -DGETM2PR -DBEACONUNSET -DSTATUSOUT cc -O3 -Wall -Wextra -o hcxlabgetm1234 hcxlabtool.c -DGETM1234 -DSTATUSOUT cc -O3 -Wall -Wextra -o hcxlabgetmall hcxlabtool.c -DGETM1 -DGETM2 -DGETM1234 -DSTATUSOUT cc -O3 -Wall -Wextra -o hcxlabgetmallwc hcxlabtool.c -DGETM1 -DGETM2 -DGETM1234 -DBEACONUNSET -DSTATUSOUT cc -O3 -Wall -Wextra -o hcxlabgetmallpr hcxlabtool.c -DGETM1 -DGETM2 -DGETM2PR -DGETM1234 -DSTATUSOUT cc -O3 -Wall -Wextra -o hcxlabgetmallwcpr hcxlabtool.c -DGETM1 -DGETM2 -DGETM2PR -DGETM1234 -DBEACONUNSET -DSTATUSOUT cc -O3 -Wall -Wextra -o hcxlabdumpall hcxlabtool.c -DDUMPIPV4 -DDUMPIPV6 -DDUMPWEP -DDUMPWPA install -D -m 0755 hcxlabgetm1 /usr/local/bin/hcxlabgetm1 install -D -m 0755 hcxlabgetm2 /usr/local/bin/hcxlabgetm2 install -D -m 0755 hcxlabgetm2wc /usr/local/bin/hcxlabgetm2wc install -D -m 0755 hcxlabgetm2pr /usr/local/bin/hcxlabgetm2pr install -D -m 0755 hcxlabgetm2wcpr /usr/local/bin/hcxlabgetm2wcpr install -D -m 0755 hcxlabgetm1234 /usr/local/bin/hcxlabgetm1234 install -D -m 0755 hcxlabgetmall /usr/local/bin/hcxlabgetmall install -D -m 0755 hcxlabgetmallwc /usr/local/bin/hcxlabgetmallwc install -D -m 0755 hcxlabgetmallpr /usr/local/bin/hcxlabgetmallpr install -D -m 0755 hcxlabgetmallwcpr /usr/local/bin/hcxlabgetmallwcpr install -D -m 0755 hcxlabdumpall /usr/local/bin/hcxlabdumpall rm -f hcxlabgetm1 rm -f hcxlabgetm2 rm -f hcxlabgetm2wc rm -f hcxlabgetm2pr rm -f hcxlabgetm2wcpr rm -f hcxlabgetm1234 rm -f hcxlabgetmall rm -f hcxlabgetmallwc rm -f hcxlabgetmallpr rm -f hcxlabgetmallwcpr rm -f hcxlabdumpall rm -f *.o *~ $ hcxlabgetmall -v hcxlabgetmall 1.0.1 (C) 2023 ZeroBeat
This set of tools is installed to /usr/local/bin (not like hcxdumptool to /usr/bin)

Now you're ready to go. Example of command lines:
Code:
$ hcxlabgetmallpr --onsigterm=exit --ongpiobutton=poweroff --ontot=reboot --onerror=reboot --gpio_button=4 --gpio_statusled=17 --bpfc=own.bpfc --essidlist=standard.essidliste --essidmax=50 --m2attempt=4 -c 13,1,6,11,2,1,6,11,3,1,6,11,4,1,6,11,5,1,6,11,7,1,6,11,8,1,6,11,9,1,6,11,10,1,6,1,12,1,6,11 & $ hcxlabgetm2 --onsigterm=exit --ongpiobutton=poweroff --ontot=reboot --onerror=reboot --gpio_button=4 --gpio_statusled=17 --tot=4320 --bpfc=own.bpfc --essidlist=standard.essidliste --essidmax=25 --m2attempt=4 -t 600 -c 1,2,3,4,5,6 & $ hcxlabgetm2pr --onsigterm=exit --ongpiobutton=poweroff --ontot=reboot --onerror=reboot --gpio_button=4 --gpio_statusled=17 --tot=4320 --bpfc=own.bpfc --essidlist=standard.essidliste --essidmax=25 --m2attempt=4 -t 600 -c 1,2,3,4,5,6 &

This options should be used in combination with a hardware modified (GPIO LED and GPIO button) Raspberry Pi), only:
Code:
--ongpiobutton=poweroff --ontot=reboot --onerror=reboot --gpio_button=4 --gpio_statusled=17 This command lines are started by automatic and run in background after Raspberry Pi is powered on. This is done via .bash_profile: #!/bin/bash [code] iw reg set IN chmod 777 -R /home cd /home #hcxlabgetmallpr --onsigterm=exit --ongpiobutton=poweroff --ontot=reboot --onerror=reboot --gpio_button=4 --gpio_statusled=17 --bpfc=own.bpfc --essidlist=standard.essidliste --essidmax=50 --m2attempt=4 -c 13,1,6,11,2,1,6,11,3,1,6,11,4,1,6,11,5,1,6,11,7,1,6,11,8,1,6,11,9,1,6,11,10,1,6,1,12,1,6,11 & #hcxlabgetmallpr --onsigterm=exit --ongpiobutton=poweroff --ontot=reboot --onerror=reboot --gpio_button=4 --gpio_statusled=17 --bpfc=own.bpfc --essidlist=standard.essidliste --essidmax=50 --m2attempt=4 -c 128,1,36,2,124,3,40,4,120,5,44,6,116,7,48,8,112,9,52,10,108,11,56,12,104,13,60,1,100,6,64,11 & #hcxlabgetmallpr --onsigterm=exit --ongpiobutton=poweroff --ontot=reboot --onerror=reboot --gpio_button=4 --gpio_statusled=17 --bpfc=own.bpfc --essidlist=standard.essidliste --essidmax=50 --m2attempt=4 -c 13,36,1,40,2,44,3,48,4,52,5,56,6,60,7,64,8,100,9,104,10,108,11,112,12,116,1,120,2,124,3,128,4,132,5,136,6,140,7,144,8,149,9,153,10,157,11,161,12,165,1,169,6,173,11 & #hcxlabgetm2 --onsigterm=exit --ongpiobutton=poweroff --ontot=reboot --onerror=reboot --gpio_button=4 --gpio_statusled=17 --tot=4320 --bpfc=own.bpfc --essidlist=standard.essidliste --essidmax=25 --m2attempt=4 -t 600 -c 1,2,3,4,5,6 & #hcxlabgetm2pr --onsigterm=exit --ongpiobutton=poweroff --ontot=reboot --onerror=reboot --gpio_button=4 --gpio_statusled=17 --tot=4320 --bpfc=own.bpfc --essidlist=standard.essidliste --essidmax=25 --m2attempt=4 -t 600 -c 1,2,3,4,5,6 & systemctl start dhcpcd.service systemctl start ssh.service

The simplest command line (and the most aggressive) is:
Code:
$ sudo hcxlabgetmall -i wlp39s0f3u1u1u1 --bpfc=protect.bpfc -c 1,6,11 where wlp39s0f3u1u1u1 is your interface name

make uninstall will remove them:
Code:
$ sudo make uninstall rm -f /usr/local/bin/hcxlabgetm1 rm -f /usr/local/bin/hcxlabgetm2 rm -f /usr/local/bin/hcxlabgetm2wc rm -f /usr/local/bin/hcxlabgetm2pr rm -f /usr/local/bin/hcxlabgetm2wcpr rm -f /usr/local/bin/hcxlabgetm1234 rm -f /usr/local/bin/hcxlabgetmall rm -f /usr/local/bin/hcxlabgetmallwc rm -f /usr/local/bin/hcxlabgetmallpr rm -f /usr/local/bin/hcxlabgetmallwcpr rm -f /usr/local/bin/hcxlabdumpall


BTW:
"I couldn't find the way to install them."
This is deliberate. Detailed knowledge is mandatory:
Code:
* knowledge of radio technology * knowledge of electromagnetic-wave engineering * detailed knowledge of 802.11 protocol * detailed knowledge of key derivation functions * detailed knowledge of Linux * detailed knowledge of filter procedures (Berkeley Packet Filter, capture filter, display filter)
Reply


Messages In This Thread
RE: hcxdumptool - missing frames w/ filtering - by ZerBea - 01-18-2023, 10:44 AM