WiFi Jammer met Raspberri Pi en Kali-Pi Sticky Fingers 1/3
Tijd voor een nieuw project. Hoe leuk zou het zijn om een WiFi Jammer te hebben. Één druk op de knop en je vrienden, familie of collega’s zijn afgesloten en hebben ineens weer tijd om echt sociale dingen te doen zoals een bordspel of een goed gesprek. Vet he! Dit project omvat echter wel iets meer dan alleen het uitvoeren van een “jammer” script. We gaan werken met een Raspberry Pi, KaliPi Sticky Fingers en een klein beetje elektronica. Maar eerst….super belangrijk: de disclaimer!
Wat wil ik graag bereiken met dit project:
- Raspberri Pi met Kali-Pi Sticky Fingers installeren
- Raspberry Pi voorzien van een LCD scherm
- Jammer Script activeren en deactiveren via touchscreen
Als we gaandeweg ook nog het volgende kunnen bereiken dan zou dat het project alleen maar mooier maken:
- WPA handshakes verzamelen
- LED laten knipperen tijdens de-auth (gewoon omdat het er cool uitzier)
In deze post gaan we de Raspberry Pi voorzien van het Kali-Pi Sticky Fingers OS. In post nummer 2 gaan we de Raspberry Pi voorzien van een LCD scherm en in de laatste post gaan we aan de slag met de Jammer functionaliteit.
Laten we voorop stellen dat ik niet alles in deze post zelf gemaakt en verzonnen heb. Ik heb een aantal zaken getweakt, uitgebreid en verbeterd. Als code ontwikkeld is door iemand anders dan zal ik deze persoon in de post vermelden zodat alle credits naar de juiste persoon gaan.
Wat is Kali-Pi Sticky Fingers?
Kali-Pi Sticky Fingers is een speciale (onofficiële) Kali Distributie van Re4son. Het unieke aan Kali-Pi Sticky Fingers is dat het geoptimaliseerd is voor de Raspberry Pi met een touchscreen. Ik heb een 2.8 inch Adafruit touchscreen (zoals gebruikt in het kersthuis). Dit scherm is nogal klein en eigenlijk te klein om op te werken. Het voordeel is dat het een touchscreen in. Kali-Pi Sticky Fingers maakt het mogelijk om knoppen te maken waarmee taken uitgevoerd kunnen worden. Zo is het de bedoeling om straks met 1-druk-op-de-knop de jammer te activeren en deactiveren.
Welke hardware hebben we nodig
Ons boodschappenlijstje is als volgt:
- Raspberry Pi 3 – Model B+
- Kingston MicroSD XC 64GB
- TP-Link TL-WN722N Wireless WiFi Dongle
- AdaFruit PiTFT ILI9341 2.8 inch 320×240 TFT Touchscreen
- Paar elektronica componenten zoals een LEDje, Breadboard, Weerstandje e.d.
- Optioneel een batterypack
- Optioneel een bluetooth toetsenbord voor beheer via het TFT scherm
In eerste instantie ben twijfelde ik om de WiFi Jammer te maken met een Raspberry Pi Zero W, maar de toevoeging van een touchscreen maakt dit project veel leuker. Juist hierom heb ik ervoor gekozen om een Raspberry Pi 3 Model B+ te gebruiken. Je kunt hiervoor overigens ook een gewone Model B gebruiken. Daarnaast willen we het “jam” gedeelte laten uitvoeren door een krachtigere dongel (De TP-Link TL-WN722N) welke prima in staat is om packet injection uit te voeren. De default on-board Broadcom BCM43438 is niet in staat om packet injection uit te voeren. De community heeft echter een patch gemaakt voor de Broadcom Onboard WiFi adapter om wel packet injection uit te voeren genaamd “Nexmon”. Dit is een onofficiele patch en kan potentieel de hardware beschadigen. Nexmon is aanwezig op het Kali-Pi Sticky Fingers OS en dus kunnen we eventueel de interne adapter gebruiken. Omdat de TP-Link echter meer power heeft kiezen we ervoor om die te gebruiken. De Raspberry Pi 3 Model B+ is toch al aardig groot. Als ik gekozen had voor de Raspberry Pi Zero W dan had ik wel graag de onboard Broadcom adapter gebruikt. Op die manier blijft de jammer stealthy en klein. Let op, wij kunnen remote management blijven uitvoeren via de onboard WiFi kaart. Zou de de onboard WiFi kaart voor het jammen gebruiken dan kan hier geen remote management meer op uitgevoerd worden.
Vervolgens gebruiken we een 64GB SD kaart. Een kaartje van 16GB zou al voldoende zijn maar 64GB geeft ons de mogelijkheid om een hoop data op te slaan. Ook kun je ervoor kiezen om andere soorten touchscreens te gebruiken. Er zijn vele soorten op de markt. Deze had ik toevallig liggen. Ook lijkt het me gaaf om een LEDje te laten knipperen tijdens het jammen. Leuk voor een testomgeving maar niet als je stealthy te werk wilt gaan. Je kunt dus zelf weten of je het LEDje toevoegt aan je setup of niet. Tenslotte is een batterypack erg handig zodat je altijd en overal kunt jammen zonder dat je bij een netstroom aansluiting aanwezig bent.
Laten we aan de slag gaan.
Kali-Pi Sticky Fingers Installeren
Er zijn 2 manieren om Kali-Pi Sticky Fingers te installeren. De eerste is handmatig door eerst Vanilla Kali (Kali op Raspberry Pi incl. scherm support) te installeren en deze uit te breiden met de Sticky Fingers tools. Er is echter ook gewoon een AIO image beschikbaar. Laten we de blauwe pil nemen en kiezen voor de makkelijke oplossing. We downloaden de AIO image van https://whitedome.com.au/re4son/sticky-fingers-kali-pi-pre-installed-image/. Voor ons model hebben we de “armhf” image nodig.
Na het downloaden van het image schrijven we deze naar de SD kaart. Omdat ik het image op een Windows PC gedownload heb doe ik dit met Etcher.
Na het flashen is het tijd om het OS te starten. In dit stadium doe ik dat nog terwijl er een gewone monitor aangesloten zit.
De default inloggegevens zijn:
Gebruikersnaam: root
Wachtwoord: toor
Het eerste wat we gaan doen is het apparaat voorzien van een IP adres. Het makkelijkste is via een ethernetkabel een DHCP adres toe laten wijzen, kijken in de router wat zijn IP adres is en deze gebruiken om in het apparaat te SSHen.
In mijn geval gebruik ik WiFi. Ik maak dus een verbinding met het WiFi netwerk en reserveer het gekregen IP adres zodat ik voorlopig altijd middels SSH op deze Kali-Pi kan komen.
SSH staat standaard aan. En dus kunnen we aan de slag.
Laten we eerst even wat zaken aanpassen in de “normale” config. Deze benaderen we met het commando “kalipi-config”.
1 – Change User Password
Je kunt hier voor alle gebruikers de wachtwoorden aanpassen. Dit is aan te raden maar toch laat ik ze in mijn testomgeving op de default waardes staan. Deze zijn:
root=toor
pi=raspberry
ftp=raspberry
vnc=toortoor
2 – Network Options
N1 – Hostname = wifi-friend
N2 – Wi-fi = Deze configureren als je dat nog niet in de grafische shell gedaan hebt en Wi-Fi wilt gebruiken.
4 – Localisation Options
Verander de waardes van je toetsenbordindeling, landinstelling en Wi-Fi landinstelling als je dat nodig vind. Ik hou mijn settings gewoon op default.
Op dit moment kun je gebruik maken van Kali op je Raspberry Pi, heb je een internetverbinding en hebben we toegang met SSH. Het eindresultaat is dus bijna vergelijkbaar met een eerdere post, namelijk “Kali Linux op een Raspberry Pi”. Hou er echter wel rekening mee dat dit een custom installatie is waarbij sommige functies extra zijn en sommige functies afwezig zijn. Dit gaan we zien in de volgende post waar we het Sticky Fingers OS gaan activeren en het LCD scherm op de Raspberry Pi gaan plaatsen.