Op Linux en Unix gebaseerde besturingssystemen vormen de kern van de gebieden informatiebeveiliging, netwerkbeveiliging, cryptografie, enz. Ze worden geleverd met een breed scala aan tools die bedoeld zijn voor cyberbeveiligingsdoeleinden.
Laten we eens kijken naar drie van dergelijke tools: Aircrack-ng, Jack The Ripper en Radare2.
Aircrack-ng Suite
De Aircrack-ng-suite is misschien wel de meest gebruikte set tools voor het snuiven van wifi-netwerken en het vastleggen van wachtwoorden. Het is bedoeld om IEEE 802.11-protocol draadloze netwerkwachtwoorden te kraken, die meestal worden beschermd door Wifi Protected Access (WPA) of Wifi Protected Access 2 (WPA2) standaarden en geverifieerd door Pre-Shared Key (PSK) authenticatiemethode.
Het biedt afzonderlijke programma's voor het bewaken van de status van netwerkapparaten, het vastleggen van pakketten en het dumpen in bestanden, het kraken van wachtwoorden, enz.
Merk op dat het kraken van WPA/WPA2 met behulp van crypto-algoritmen door onderzoekers bijna onmogelijk is gebleken. Daarom is de manier om WPA/WPA2 te kraken door programma's zoals aircrack-ng, Brute Force en vereist een woordenboek met wachtwoorden om het te kraken. Dat betekent dat het wachtwoord alleen kan worden gekraakt als het wachtwoord een woordenboekwoord is.
U kunt Aircrack-ng eenvoudig op uw systeem installeren met behulp van het installatiescript van packagecloud.io. Open de terminal en voer de volgende opdrachten uit op basis van uw Linux-besturingssysteemtype.
Op op Debian gebaseerde distributies, voer de volgende opdracht uit:
curl -s //packagecloud.io/install/repositories/aircrack-ng/release/script.deb.sh | sudo bash
Voor Red-hat Package Manager (RPM), voer de volgende opdracht uit:
curl -s //packagecloud.io/install/repositories/aircrack-ng/release/script.rpm.sh | sudo bash
Laten we nu proberen het wachtwoord van een lokaal wifi-netwerk te kraken met Aircrack-ng.
Ten eerste, voer opdracht uit iwconfig
om de naam van uw draadloze netwerkinterface te vinden.
iwconfig
Hier, wlp2s0
is de naam van mijn draadloze interface. ESSID, d.w.z. de netwerknaam is "tmp", de naam van het wifi-netwerk waarmee ik ben verbonden.
We gebruiken de airmon-ng
opdracht om een netwerkmonitorinterface te starten op wlp2s0
.
sudo airmon-ng start wlp2s0
Zoek naar de regel aan het einde om de interface voor de monitormodus te vinden. In het bovenstaande voorbeeld is dat: mon0
. We beginnen nu met het opvangen van netwerkpakketten door de airodump-ng
Aan mon0
.
sudo airodump-ng mon0 -w log
Het toont een monitor van netwerkpakketten die van verschillende netwerken zijn opgevangen. De -w log
een deel is voor het opslaan van de netwerkpakketten in logbestanden. Het prefix van de logbestanden is het gedeelte dat na -w is gespecificeerd, in dit geval 'log'.
Om het programma de hash-sleutel van de wachtwoordzin te laten vangen, moet een WPA-handshake op het netwerk plaatsvinden, d.w.z. een gebruiker moet proberen er verbinding mee te maken. Gebruiker kan zelf zijn Wifi loskoppelen en er opnieuw verbinding mee maken. In de rechterbovenhoek wordt nu gemeld dat er een WPA-handshake is opgevangen.
Druk nu op Ctrl + C
om de stortplaats te beëindigen. U kunt de gegenereerde logbestanden in de huidige map zien.
De volgende en laatste stap is om aircrack-ng uit te voeren met een woordenboek om te zien welk woord overeenkomt met de onderschepte hash-sleutel van de handdruk.
aircrack-ng log-01.cap -w tmpdict.txt
Hier log-01.cap is het logbestand gegenereerd door airodump-ng
commando en tmpdict.txt is het woordenboekbestand. Er zijn verschillende grote woordenboeken online beschikbaar die u hier kunt downloaden en gebruiken.
Om een doelnetwerk te selecteren, voert u het indexnummer voor het netwerk in uit de lijst met netwerken die op het scherm wordt weergegeven.
Als een sleutel wordt gevonden in het woordenboek, stopt deze en wordt het volgende bericht weergegeven.
Het is duidelijk dat in het geval van grotere woordenboekbestanden, het programma meer tijd nodig heeft om te draaien, omdat het op elk item in het woordenboek controleert.
Zoals eerder vermeld, kan het wachtwoord alleen worden gekraakt als het aanwezig is in het woordenboekbestand. WPA-beveiliging is sterk genoeg dat het gebruik van een crypto-algoritme het kraken van het wachtwoord niet mogelijk maakt. Daarom is het een goede gewoonte om een sterk lang wachtwoord met meerdere speciale tekens op je wifi-apparaat te hebben, zodat elke vorm van wachtwoordkraakactiviteit nooit lukt.
John The Ripper
John the Ripper is een tool die wordt gebruikt om zwakke Unix-wachtwoorden te kraken. Het is een zeer eenvoudig te gebruiken tool die wordt aangeroepen op wachtwoordbestanden. Het werkt in drie modi.
Enkele modus
Controleert alle GECOS-velden op wachtwoord, d.w.z. controleer op wachtwoord in gebruikersaccountinformatie; gebruikersnaam, voornaam, achternaam, enz.
sudo john --single /etc/shadow
Woordenlijstmodus
Controleert het wachtwoord bij elke invoer uit een woordenlijstbestand (woordenboek).
sudo john --wordlist=passlist.txt /etc/shadow
Hier is het wachtwoord van gebruiker 'user3' 'admin'. John kon het kraken omdat de zin 'admin' aanwezig was in het passlist.txt-bestand.
Incrementele modus
Controleer alle mogelijke combinaties voor een geconfigureerd bereik. Standaard worden alle tekens in de ASCII-tekenset en alle lengtes van 0 tot 13 in aanmerking genomen. Het is onnodig om te zeggen dat, afhankelijk van het geconfigureerde bereik, deze modus enorm veel tijd in beslag kan nemen.
De configuratie hiervoor kan worden gewijzigd in /etc/jan/jan.conf
het dossier.
sudo john --incremental /etc/shadow
Radare2
Radare2 (alias r2) is een reverse engineering-tool voor Linux. Het kan een uitvoerbaar binair bestand demonteren, debuggen, met een enorme lijst aan opties om gegevens tijdens runtime te manipuleren.
Laten we eens kijken hoe we een heel klein C-programma kunnen demonteren met r2. Merk op dat een basiskennis van assembler vereist is om de tool te gebruiken.
Maak eerst een klein C-programma in vim of in een editor naar keuze.
/*test.c*/ #include int main() { int i = 0; printf("%d\n", ik); retourneer 0; }
Zoals je kunt zien, slaat dit programma alleen het cijfer 0 op in een variabele en opent het de variabele om het af te drukken.
We gaan nu het programma compileren.
gcc test.c -o test
Er wordt een uitvoerbaar bestand gemaakt in de huidige map met de naam 'test'. Voer het uit om uitvoer '0' te zien.
./test
Laten we nu r2 installeren. De pakketnaam in Ubuntu en vergelijkbare distributies is radare2.
sudo apt install radare2
Opmerking: Voor oudere Ubuntu-versies (versie 14.04 en lager), moet u gebruik maken van apt-get
moet worden gebruikt in plaats van geschikt
.
We zullen nu de r2-opdrachtprompt starten met ons uitvoerbare bestand, 'test'.
r2 test
Om een lijst met subcommando's te krijgen, typt u ?
. bijv. om een lijst met subopdrachten voor de opdracht te krijgen een
, binnenkomen een?
een?
We zullen de subopdracht uitvoeren: aa
, die het volledige binaire bestand zal analyseren. Het zal niets opleveren. Maar na analyse van het binaire bestand kunnen we de P?
subopdrachten om de code te demonteren.
Vervolgens gaan we naar de voornaamst
functie van het programma. Elk uitvoerbaar C-programma heeft de voornaamst
als uitgangspunt dienen.
de belangrijkste
U kunt zien dat het voorvoegsel van de prompt het huidige geheugenadres heeft gewijzigd, d.w.z. het programma wordt nu gezocht naar het adres van de functie voornaamst
.
Vervolgens gebruiken we het subcommando pdf
, waarmee de demontage van een functie wordt afgedrukt. We noemen het met sym.main
, wat de naam is van de hoofdfunctie in assembler.
pdf sym.main
Zoals we in de bovenstaande schermafbeelding kunnen zien, hebben we de volledige demontage van ons C-programma. We kunnen nu analyseren wat het programma doet door de assembly te lezen.
Bijvoorbeeld, mov dword [rbp-0x4], 0x0
is toewijzing van een waarde (0) aan een geheugenlocatie rbp – base pointer, 0x4 — Geheugengrootte vereist voor een geheel getal.
We hebben bel sym.imp.printf
, die de inhoud van het register zal afdrukken eax
, d.w.z. de waarde 0.
Er zijn veel meer opties voor het manipuleren en debuggen van de stroom van een programma in r2. U kunt andere opties proberen die worden weergegeven met de ?
opdracht. Om logboek- of demontage-uitvoer naar een bestand op te slaan, kunt u de uitvoer als volgt pipen:
pdf hoofd > hoofd.s
Dit was het overzicht van enkele van de meest gebruikte hacktools in Linux. Als je deze pagina nuttig vond, deel hem dan op je favoriete online communities.