WiFi Pineapple Tetra – HAK5
Een tijdje terug hebben we het al even over de HAK5 WiFi Pineapple gehad. Dit was in het artikel “Rogue Access Point”. In dit artikel hebben we een aantal tests gedaan met een WiFi Pineapple Nano. In deze post wil ik zijn grotere broertje, de Pineapple Tetra wat nader gaan bekijken. Laten we eens in de configuratie duiken en kijken of het grote broertje zijn centjes waard is.
De Pineapple Tetra is een zogenaamde Rogue AccessPoint ofwel een tool die hackers en penetration testers gebruiken om het WiFi netwerk te controleren. De Pineapple Tetra kan gebruikt worden voor verschillende doeleinden zoals:
- Reconnaissance
- Man-in-the-Middle
- Tracking
- Logging
- Rapportage
- …en nog veel meer
De Pineapple Nano kost 99,99 USD en de Pineapple Tetra kost 199,99 USD en is dus 100 dollar duurder. Beide Pineapple producten zijn producten van het bekende HAK5. De producten zijn dan ook gemakkelijk te bestellen vanuit de HAK5 shop. Het nadeel is echter dat HAK5 niet met resellers werkt en dat je dus ook echt in de eigen webshop moet bestellen. Je besteld dus een product vanuit Amerika en betaald dus invoerrechten bij de douane. Voordat je de Pineapple Tetra in ontvangst kunt nemen moet je er dus rekening mee houden dat je een dikke 200 Euro armer bent. Dikke tip: bestel meerdere producten in een keer zodat je maar 1x invoerrechten hoeft te betalen voor alle bestelde producten.
De Pineapple Tetra is verkrijgbaar in een “Basic” uitvoering en in een “Tactical” uitvoering. De Tactical variant is echter nog 100 USD duurder en kost dus 299,99 USD. Hiervoor krijg je naar de Pineapple Tetra wel een mooie EDC Case, een heuptas waar de Pineapple Tetra in “verboren” kan worden samen met nog veel meer gear. Vervolgens ontvang je ook nog een coole Pineapple patch die je op de case kunt plakken met klittenband, een USB adapter en een Anker PowerCore Slim 5000 batterij waar de Tetra een aantal uur stand-alone op kan draaien.
De Pineapple Tetra wordt geleverd in een mooie zwarte doos:
De Pineapple Tetra kan draaien op netvoeding, batterij en USB voeding middels de bijgeleverde USB-Y kabels. Aangeraden wordt echter om de Pineapple te voorzien van netvoeding waarmee hij betere prestaties en een groter vermogen krijgt. Let er ook op dat als je de Pineapple Tetra besteld je een US AC adapter geleverd krijgt welke dus een pin layout heeft die we hier niet kunnen gebruiken. Wil je zelf met een AC adapter werken moet je dus nog een NL AC adapter kopen met 12V/2A output.
Pineapple Tetra Hardware
De Pineapple Tetra is groter dan de Nano en heeft 4 i.p.v. 2 antennes. De webinterfaces van beide zien er (met dezelfde firmware) nagenoeg hetzelfde uit en qua functionele toepassingen is er niet veel verschil tussen de Nano en de Tetra. De 2 grootste verschillen tussen beide apparaten zijn:
- Banden:
Nano: 2.4 GHz b/g/n Atheros
Tetra: 2.4/5 GHz a/b/g/n Atheros 2:2 MIMO - Vermogen:
Nano: 400 mW per radio (met meegeleverde antennes)
Tetra: 800 mW per radio (met meegeleverde antennes)
De Tetra is groter en verbruikt meer stroom. De Nano is een stuk zuiniger met zijn stroom en makkelijker te verstoppen. Als je gaat voor het beste bereik en je zowel de Pineapple op 2.4 GHz en de 5 GHz band wilt gebruiken dan is de Tetra de beste optie. Als je alleen gaat werken op de 2.4 GHz band dan is de Pineapple Nano de betere keuze.
De WiFi Pineapple Tetra is voorzien van console-toegang middels de geïntegreerde seriële UART via micro-USB-poort. Ook wordt Ethernet-connectiviteit geboden middels de standaard RJ45-poort en via de ingebouwde USB Ethernet-controller (micro-USB). De Tetra is voorzien van 2GB onboard NAND geheugen. NAND geheugen is flash geheugen welke data ook zonder stroomvoorziening vasthoud. Dit NAND geheugen wordt gebruikt om toepassingen en logboeken in hoge snelheid op te slaan. Ook heeft de Tetra verschillende uitbreidingsmogelijkheden via de USB 2.0-hostpoort. Denk hierbij aan moderne CDC_Ether gebaseerde LTE-modems, radio’s en HD’s.
Vanaf hier ga ik de Tetra niet meer vergelijken met de Nano en is het de bedoeling om de Tetra wat beter te bekijken.
Starten met de Pineapple Tetra
Het aansluiten van de Pineapple Tetra is kinderspel. Wil je alleen data verzamelen dan is het simpelweg instellen en de Tetra voorzien van stroom. Wil je als Man-in-the-Middle fungeren dan wil je de verbonden cliënts waarschijnlijk voorzien van netwerk en dus heb je een geldige netwerkaansluiting nodig. Je hebt hiervoor 4 opties:
- Wired Connection – Via de WAN poort (eth0) (RJ45 verbinding). De Tetra zal proberen een DHCP adres te verkrijgen van een DHCP server.
- ICS (Internet Connection Sharing) – Dit is een van de populairste methodes. Via ICS verkrijgen clients internetverbinding via de host PC
- USB Tethering van b.v. Android – Veel devices zoals de meeste Android toestellen kunnen hun internet delen. De Pineapple Tetra kan hier gebruik van maken en het internet van de gegenereerde hotspot gebruiken om cliëntverkeer over te routeren.
- WiFi Client Mode – Via deze method maakt de Pineapple Tetra verbinding met een WiFi network en deeld de toegang naar dit netwerk. In deze mode wordt er minimaal 1 antenne gebruikt voor de verbinding en kunnen niet alle Pineapple Tetra functies gebruikt worden. Ook is deze methode over het algemeen wat trager dan de andere methodes.
In ons voorbeeld gaan we een ICS verbinding opzetten via Linux. Laten we voor het gemak de Pineapple aansluiten op onze Linux computer middels de ETH1 aansluiting. Vervolgens zal de computer aangeven dat hij verbonden is via een USB Internet Dongle en krijgt hij een IP adres uit de 172.16.42.x range:
ifconfig -a |
Nu gaan we eerst de nieuwste firmware downloaden van https://www.wifipineapple.com. Dit bestand sla je op.
Nu kunnen we naar de web interface (172.16.42.1:1471) browsen waar we verwelkomd worden met een eerste setup. Deze eerste setup is simpel. Allereerst wordt gevraagd om de resetbutton aan de onderkant in te drukken. Hierdoor worden de radio antennes tijdelijk uitgeschakeld en voorkom je dat iemand anders snel draadloos verbinding maakt en de setup overneemt. Mocht je de nieuwste firmware gedownload hebben kun je deze meteen inlezen. Het upgraden duurt 5 tot 10 minuten. Als er geen nieuwere firmware is of als je klaar bent met de upgrade wordt je gevraagd om een root wachtwoord te maken. Dit is het wachtwoord waarmee de Pineapple Tetra beheerd wordt (SSH en webinterface), zorg er dus voor dat het een sterk wachtwoord is. Vervolgens kun je er nog voor kiezen om een “Management Access Point” aan te maken. Dit is voor beheer van de Tetra over het WiFi netwerk. Maak dus een duidelijk SSID met een sterk WPA2 wachtwoord om ook deze toegang tot de beheerconsole zo veilig mogelijk te houden.
Vervolgens kun je inloggen en heb je toegang tot de Pineapple Tetra web interface.
Nu gaan we eerst ICS instellen zodat we later, als man-in-the-middle onze cliënts toegang kunnen geven tot het internet. Omdat al het internetverkeer dan via ons loopt kunnen we het verkeer onderscheppen, monitoren en analyseren. Om deze verbinding in te stellen moet de Pineapple Tetra met de Linux computer verbonden zijn via de ETH1 poort. Als de Pineapple Tetra verbonden is worden de IP tables zo geschreven dat het internetverkeer via de Pineapple Tetra loopt. Dit is niet de bedoeling. We kunnen deze IP Tables zelf herschrijven, maar aangezien hier een speciaal script voor is kunnen we die beter gebruiken. Dit script kun je via deze link www.wifipineapple.com/wp6.sh downloaden en heet “wp6.sh”.
wget www.wifipineapple.com/wp6.sh |
Als het script eenmaal op de computer staat is het zaak om het bestand de juiste rechten te geven:
chmod +x wp6.sh |
Nu kunnen we het wp6.sh script draaien.
In het script hebben we een aantal methodes. In de meeste gevallen is het afdoende om de “Guided setup” te draaien. Tijdens deze setup wordt er gevraagd om de Pineapple te verwijderen, vervolgens moet je je gateway opgeven (deze zal hij waarschijnlijk zelf vinden) en selecteer je de primaire internetadapter. Tenslotte wordt je gevraagd de Pineapple weer aan te sluiten. Als dat gedaan is dan vindt het script ook de Pineapple en ben je klaar.
Je merkt dat alles werkt doordat je op je laptop nog gewoon kunt internetten en de Pineapple kunt benaderen. Het gebeurt weleens dat het nog niet meteen werkt. Draai dan nogmaals het script en kies voor de optie “Connect using saved settings”. Het script slaat de laatst gebruikte settings op en zal deze nogmaals toepassen. Dit werkt in de meeste gevallen voortreffelijk.
Je bent nu klaar om aan de slag te gaan met de Pineapple Tetra.
Toegang middels SSH
Toegang met SSH is gemakkelijk. Via SSH kun je namelijk je Pineapple upgraden en instellen. SSH staat standaard aan op de Pineapple Tetra en hoeft dus niet geactiveerd te worden. Om in te loggen met SSH heb je een SSH cliënt nodig (voor Windows bijvoorbeeld Putty). Op Linux kun je vanuit de terminal een SSH verbinding initiëren door het volgende commando uit te voeren:
ssh root@172.16.42.1 |
“root” is je gebruikersnaam en “172.16.42.1” is het IP adres van je Pineapple Tetra. Na het invullen van dit commando wordt je gevraagd om je root wachtwoord in te vullen (welke je ook gebruikt voor de web interface) en there you go! Je bent ingelogd middels SSH op je Pineapple Tetra:
Je kunt nu bijvoorbeeld naar de temp directory browsen:
cd /tmp/ |
Hier zou je nieuwste firmware kunnen plaatsen en vervolgens kun je de Pineapple kun je upgraden met het commando:
sysupgrade –n –v /tmp/upgrade-filename.bin |
Uiteraard kunnen we meer doen. Bekijk bijvoorbeeld de netwerksettings:
ifconfig |
Of schakel een antenne uit:
ifconfig wlan1 down |
Ook kunnen we config bestanden aanpassen in:
cd /etc/config |
Om bijvoorbeeld de Tetra radio’s aan te passen bewerk je de system configuratiebestanden:
nano system
nano network |
Etc. Door te verbinden met SSH heb je volledige vrijheid in het configureren van je Pineapple Tetra. Je moet echter exact weten wat je doet en waar het e.e.a. te vinden is. De web interface geeft een veel groter gebruikersgemak, beter overzicht en biedt alle opties om de normale handelingen te kunnen uitvoeren.
Pineapple Tetra Web Interface
Nadat je ingelogd bent op de Pineapple Tetra web interface ziet deze er als volgt uit:
Het eerste wat opvalt is de duidelijke structuur. De structuur (in firmware V2.02) is als volgt opgebouwd:
- Dashboard – Het dashboard geeft een overzicht van de Pineapple Tetra zoals de status, landing pagina, browser statistieken etc.
- Recon – Recon geeft een goed overzicht van het WiFi landschap door te scannen naar access points en hun (verbonden of niet verbonden) cliënts. De Tetra doet dit door te luisteren naar beacons en data activity
- Profiling – Middels profiling wordt een gedetailleerd beeld geschetst van een specifiek gedeelte van het WiFi landschap. Access points worden in kaart gebracht alsmede hun verbonden en niet verbonden cliënts. Profiling resultaten worden opgeslagen en kunnen terug opgehaald worden voor latere inzage
- Clients – Hierin worden de cliënts weergegeven welke met de PineAP verbonden zijn
- Modules – Modules zijn extra functionaliteiten die aan de Pineapple Tetra toegevoegd kunnen worden
- Filters – Hier kun je verschillende filters toepassen om zoekresultaten te verfijnen
- PineAP – Hier stel je de access point (rogue access point) feature in
- Tracking – Dit is de tracking feature welke continue zoekt naar een specifiek opgegeven client en welke vervolgens een specifiek tracking script uitvoert.
- Logging – Dit is het log overzicht waarin verschillende logs bekeken kunnen worden zoals de PineAP log, System log en Reporting log
- Reporting – Vanuit hier kunnen rapportages ingesteld worden welke periodiek gegenereerd en opgeslagen worden. Rapportages kunnen ook worden gemaild
- Networking – Vanuit hier kan verbonden worden met “WiFi Client Mode” en kunnen routeringen, AP settings en MAC adressen ingesteld worden.
- Configuration – Hier kunnen de tijdzone en de wachtwoorden veranderd worden. Ook kan hier de captive portal ingeschakeld en getuned worden
- Advanced – Overzicht van system resources, file system tabel, CSS en de mogelijkheid om vanuit hier de Tetra te upgraden
- Help – Uitleg van alle instellingen
Reconnaissance
Als we puur en alleen willen weten hoe het draadloze landschap in elkaar steekt dan maak je gebruik van de Recon en Profiling modules. Meestal start je met een Recon welke je minimaal 10, maar beter is 30 seconde laat draaien. Deze laat vervolgens zien welke draadloze apparaten er allemaal in de buurt zijn. Deze scans worden ook weer opgeslagen en kunnen later weer ingekeken worden.
Vanuit dit overzicht kun je gemakkelijk zien welke AccessPoints er zijn en welke cliënts er gevonden zijn die met dat access point geassocieerd zijn.
Vanuit dit overzicht kun je access points gemakkelijk toevoegen aan de profiling lijst (om er later extra profiling op toe te passen) en kun je cliënts zogenaamde de-auth pakketten sturen (als de AP module gestart is) waardoor ze ontkoppeld worden van hun huidige access point en opnieuw gaan zoeken naar beschikbare access points. Op deze manier kan de handshake onderschept (en later gekraakt) worden of kun je proberen cliënts te laten connecten met jou rogue access point. Hiervoor moet je rogue access point wel hetzelfde draadloze netwerk uitzenden met dezelfde authenticatie, wachtwoorden en een sterker signaal. Je kunt alle cliënts van een access point de-auth pakketten sturen of je kunt dit gericht naar een specifiek apparaat doen. Cliënts kun je toevoegen aan de “tracking” lijst voor tracking doeleinden en access points kun je toevoegen aan de AP pools zodat hetzelfde WiFi uitgezonden kan worden. Kortom, “recon” is het startpunt van je reconnaissance.
Om uitgebreidere informatie van een specifiek netwerk te verkrijgen voeg je bijvoorbeeld de access point van dat netwerk toe aan de “profiling” lijst en pas je hier gedurende langere periode profiling op toe. Wanneer je de profiling stopt (deze draait continue) krijg je de resultaten te zien.
Zoals je ziet geeft “profiling” meer cliënts retour dan dat “recon” dat zojuist deed. Met deze resultaten kun je vervolgens niets.
Access Point
Via de “PineAP” module kunnen we de access point module inschakelen:
Het inschakelen van de access point module alleen doet nog niet zoveel. Je kunt nu cliënts een de-auth pakketje sturen maar er zijn hier meer instellingen mogelijk.
- Allow Associations – Als dit ingeschakeld staat zal de WiFi Pineapple alle probes accepteren voor elk netwerk. Als een client zoekt naar netwerk “XXX” dan zal de Tetra terug reageren met “ja ik ben netwerk XXX” waardoor de clients vervolgens een connectie met de Tetra zal proberen te starten
- Log PineAP Events – Logt client probe requests en client associations (zichtbaar in de “logging” module
- PineAP Deamon – De deamon is ingeschakeld of uitgeschakeld. Als de deamon uitgeschakeld is kunnen de PineAP functie niet uitgevoerd worden. De deamon moet dus ingeschakeld worden
- Beacon Response – De beacon response is een melding vanuit de Pineapple Tetra naar specifieke cliënts dat het gepubliceerde netwerk aanwezig is en dat de cliënt hier dus mee kan verbinden. Dit zijn geen broadcasts en niet zichtbaar voor andere devices.
- Capture SSIDs to Pool – Alle SSID’s die de sniffer onderschept van ondvangen probe requests worden toegevoegd aan de SSID pool
- Broadcast SSID Pool – Deze feature zend alle SSID’s uit welke vermeld zijn in de SSID Pool. Deze SSID’s worden uitgezonden met de source + target MAC adressen die hier gespecificeerd zijn.
- Source MAC – Dit is het MAC adres welke uitgezonden wordt als Source MAC adres en is standaard het MAC adres van wlan0.
- Target MAC – Dit is het MAC adres welke uitgezonden wordt als Target MAC adres en is standaard FF:FF:FF:FF:FF:FF.
- Broadcast SSID Pool Interval – De interval waarmee SSID’s uitgezonden worden
- Beacon Response Interval – De interval waarmee beacon responses worden uitgezonden
- Save as Default on Boot – Als deze setting aangezet wordt dan worden de PineAP settings onthouden en meteen ingeschakeld bij het opstarten van de Pineapple Tetra
Om dus een nieuw netwerk te publiceren kun je de PineAP als volgt instellen:
Wanneer cliënts nu verbonden zijn met je rogue access point kun je hun verkeer loggen, opslaan en analyseren. Via de “configuration” module kun je een captive portal instellen. Verbonden cliënts moeten dan eerst akkoord geven op bijvoorbeeld de gebruikersvoorwaarden in een portal pagina voordat ze toegang tot het internet krijgen. Op deze manier lijkt het veel meer op een “hotel” WiFi en dat komt (afhankelijk van de toepassing) vertrouwelijker over bij veel gebruikers.
Pineapple Tetra Modules
Nu we in essentie de kracht van de Tetra begrijpen wil ik nog heel even naar de modules kijken. Met de modules kunnen we de kracht van de Pineapple Tetra vergroten door mee opties toe te voegen. Let op: modules worden verwijderd als je later de firmware van je Pineapple Tetra upgrade. Kijk hier dus mee uit.
Om extra modules toe te voegen ga je naar het onderdeel “modules” – “manage modules”. In dit overzicht zie je alle geïnstalleerde modules en kun je zoeken naar modules door op de button “Get Modules from Pineapple.com” te klikken. Zodra je dat doet worden alle compatible modules geladen welke je simpelweg toe kunt voegen door op de “Install” button te klikken. Als de installatie klaar is dan is de functionaliteit beschikbaar.
Zoals je kunt zien kun je geïnstalleerde modules beheren onder de “Modules” optie. Modules stellen je bijvoorbeeld in staat om DNS spoofing toe te passen op verbonden cliënts, MAC adressen op te zoeken, poortscans uit te voeren, extra informatie van clients te achterhalen etc. Vaak is het zo dat na installatie van een module nog extra dependencies geïnstalleerd moeten worden, maar ook dat is zo simpel als een druk op de knop!
Conclusie
De Pineapple Tetra doet helemaal niks meer dan de Pineapple Nano (vergelijk ik ze toch weer) met uitzondering van de 5GHz band en de krachtigere antennes. En dat geeft helemaal niks. Je weet exact wat je krijgt voor je centjes en het is aan jou om die afweging te maken.
Natuurlijk kunnen we hetzelfde als de Pineapple Tetra met een Linux laptop. Kali Linux, paar WiFi dongles en de command line. Dat ziet er veel cooler uit ook. Maar de Pineapple producten maken het allemaal zo simpel en zijn (met name de Nano) een stuk beter te verbergen. Het is niets nieuws maar het werkt allemaal fantastisch. Ik gebruik de Tetra vaak om rond een gebouw te lopen (of te rijden) en om op die manier het hele spectrum in beeld te brengen en dat werkt gewoon prachtig. Ook het inzetten als rogue access point is gemakkelijk en werkt perfect. Dit is HAK5 ten voeten uit. Het afleveren van gepolijste producten waar de beheerder, door de open-source opzet alle kanten mee op kan en waar zogenaamde script kiddies fanatiek mee aan de slag kunnen om zo de interesse aan te wakkeren en dus het vak beter te leren. Ook de Pineapple Tetra is een prachtig HAK5 product!