From 2ac5aed8c61d9e4094dc4e39f38c1e638ed38242 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 11 Jan 2022 23:03:29 +0100 Subject: [PATCH] Initial commit --- README.md | 22 +++++++- cms.png | Bin 0 -> 38757 bytes cms.py | 128 +++++++++++++++++++++++++++++++++++++++++++++++ cms275.png | Bin 0 -> 25852 bytes cms300.png | Bin 0 -> 28293 bytes cms350.png | Bin 0 -> 34474 bytes install.sh | 45 +++++++++++++++++ trackerjacker.sh | 4 ++ 8 files changed, 197 insertions(+), 2 deletions(-) create mode 100644 cms.png create mode 100644 cms.py create mode 100644 cms275.png create mode 100644 cms300.png create mode 100644 cms350.png create mode 100644 install.sh create mode 100644 trackerjacker.sh diff --git a/README.md b/README.md index d2a3c4e..d265406 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,21 @@ -# wifi-printer +# Wi-Fi Printer -Thermal printer automatically prints addresses and vendors of Wi-Fi devices nearby. \ No newline at end of file +This project prints all SSIDs, MAC addresses, and their vendors on a thermal printer using a Wi-Fi adaptor in monitor mode. + + +## Overview + + +## Usage +1. Setup a Raspberry Pi with Raspbian/Raspberry OS +2. Connect to Internet +3. Run ``install.sh``-Script +4. Wait +5. Set up for further usage, i.e.: + * Remove Internet connectivity (not needed anymore) + * Connect printer and Wi-Fi adaptor + * Include everything into nice device :) + +## Important +* You might need to adapt the printer configuration in ``cms.py`` depending on the printer you use +* You might need to change the name of the network adaptor in ``install.sh`` diff --git a/cms.png b/cms.png new file mode 100644 index 0000000000000000000000000000000000000000..39165025661e419334609326734d2ef96079454a GIT binary patch literal 38757 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 Z^!b`ENo{^~2CHxAjJY+w)a**k{{cRj%Nqay literal 0 HcmV?d00001 diff --git a/cms.py b/cms.py new file mode 100644 index 0000000..65a8688 --- /dev/null +++ b/cms.py @@ -0,0 +1,128 @@ +# Chaos macht Schule +# Wi-Fi Printer +# Prints SSIDs, MAC addresses, and their vendors on a thermal printer. + +import os, sys +import pickle +import collections +import trackerjacker + +from escpos import printer + + +__config__ = {'trigger_cooldown': 10} # No need to call more than once for a single device +REPORT_FILE = 'top_manufacturers.txt' + + +class Trigger: + def __init__(self): + self.manufacturer_to_count = collections.Counter() + self.devices_seen = set() + self.packets_seen = 0 + self.ssids_seen = [] + + path = os.path.dirname(trackerjacker.__file__) + + self.p = printer.Usb(0x0493, 0x8760, in_ep=0x81, out_ep=0x03) + self.p.text("\n\n") + self.p.image(path+"/plugins/cms.png") + + self.p.text("Chaospott Essen\n") + self.p.text("Wir sind da wat am hacken dran!\n") + self.p.text("https://www.chaospott.de/\n") + self.p.text("\n\n") + + print("") + print("") + print("Chaos macht Schule") + print("Chaospott Essen - Wir sind da wat am hacken dran") + print("https://www.chaospott.de") + print("") + + + + # Called when new device is found + def __call__(self, dev_id=None, vendor=None, ssid=None, bssid=None, iface=None, power=None, **kwargs): + + # Store SSID in list if its not already in there + if ssid not in self.ssids_seen: + self.ssids_seen.append(ssid) + + # Output on screen + print('Neues Netzwerk: {}, Netzwerke insgesamt: {}\n\n' + .format(ssid, len(self.ssids_seen))) + + # Output on printer + self.p.text('SSID: {},\nNetzwerke insgesamt: {}\n\n' + .format(ssid, len(self.ssids_seen))) + + + # Check if the device's new + if vendor and dev_id not in self.devices_seen: + self.devices_seen |= {dev_id} + self.manufacturer_to_count[vendor] += 1 + + # Output on screen + print('Neues Gerät: {}) von Hersteller: {};\n Anzahl Geräte von Hersteller {}: {}\n' + .format(dev_id, vendor, vendor, self.manufacturer_to_count[vendor])) + + # Output on printer + self.p.text('Ger\20\204\04t: {}\nHersteller: {}\n\n'.format(dev_id, vendor)) + + + # Print each n packets a summary + self.packets_seen += 1 + if self.packets_seen % 100 == 0: + self.output_report() + + + # Print report + def output_report(self): + + # Calculate results + descending_order = sorted([(count, vendor) for vendor, count in self.manufacturer_to_count.items()], reverse=True) + + total_ssid_count = len(self.ssids_seen) + + total_device_count = 0 + for (count, vendor) in descending_order: + total_device_count += count + + + # Output to file for plot and further evaluation + with open(REPORT_FILE, 'w') as f: + for (count, vendor) in descending_order: + f.write('{}: {}\n'.format(count, vendor)) + + + # Output on printer + self.p.text("\n\n") + self.p.text("############\n") + self.p.text("# Ergebnis #\n") + self.p.text("############\n\n") + + self.p.text('Netzwerke gefunden: {}\n\n' + .format(total_ssid_count)) + + self.p.text('Ger\20\204\04te gefunden: {}\n\n' + .format(total_device_count)) + + for (count, vendor) in descending_order: + self.p.text('{0:1}: {1}\n'.format(count, vendor)) + + self.p.text("\n\n\n") + + + # Output to screen + print('\n{}\n Ergebnis\n {}\n\n'.format('='*100, '='*100)) + + print('Netzwerke gefunden: {}\n\n' + .format(total_ssid_count)) + + print('Geräte gefunden: {}\n\n' + .format(total_device_count)) + + + for (count, vendor) in descending_order: + print('{0:8}: {1}\n'.format(count, vendor)) + diff --git a/cms275.png b/cms275.png new file mode 100644 index 0000000000000000000000000000000000000000..c727640b3cd5a4faa6014a83b46d873d1e140261 GIT binary patch literal 25852 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 AB>(^b literal 0 HcmV?d00001 diff --git a/cms300.png b/cms300.png new file mode 100644 index 0000000000000000000000000000000000000000..51ed7dfd9185fce9bdea13b6d054e44d808be5b0 GIT binary patch literal 28293 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 literal 0 HcmV?d00001 diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..6fd838f --- /dev/null +++ b/install.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +######################################################## +# Installation Script for CMS Plugin for Trackerjacker # +######################################################## + +# Check if root +if [ "$EUID" -ne 0 ] + then echo "Please run as root" + exit +fi + + +# Update OS +apt-get update +apt-get dist-upgrade --yes + +# Install Python3 and additional stuff +apt-get install python3-pip libopenjp2-7-dev python3-serial python3-pil --yes + +# Remove old trackerjacker +pip3 uninstall -y trackerjacker + +# Fix bug in current ubuntu +ln -s -f /usr/lib/arm-linux-gnueabihf/libc.a /usr/lib/arm-linux-gnueabihf/liblibc.a + +# Get trackerjacker, add plugin and install it +cd /tmp +git clone https://github.com/calebmadrigal/trackerjacker.git + +git clone https://git.chaospott.de/sirgoofy/wifi-printer.git +cp wifi-printer/cms.py trackerjacker/trackerjacker/plugins +cp wifi-printer/*.png trackerjacker/trackerjacker/plugins + +pip3 install escpos + +cd trackerjacker +python3 setup.py install + + +# Automatically start trackerjacker on startup +cp wifi-printer/trackerjacker.sh /etc/rc.local/ +chmod +x /etc/rc.local/trackerjacker.sh + +reboot diff --git a/trackerjacker.sh b/trackerjacker.sh new file mode 100644 index 0000000..7a160ed --- /dev/null +++ b/trackerjacker.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +# Run trackerjacker with cms plugin +trackerjacker -i wlan1 --trigger-plugin cms --track