WLAN Capture-File mit Pyrit prüfen
Wo ich gerade einen Artikel über Pyrit geschrieben habe – fällt mir noch was ein.
Pyrit bietet eine nützliche Funktion der Analyse für die Capture Datei.
Syntax:
pyrit –r /pfad/zur/wlan-sniff.cap analyse
Das ganze sieht dann so aus:
root@bt:~# pyrit -r /root/wpa.cap analyze
Pyrit 0.4.1 (C) 2008-2011 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3+
Parsing file '/root/wpa.cap' (1/1)...
Parsed 5 packets (5 802.11-packets), got 1 AP(s)
#1: AccessPoint 00:0d:39:eb:b0:8d ('test'):
#1: Station 00:09:5b:71:51:5d, 1 handshake(s):
#1: HMAC_MD5_RC4, good, spread 1
root@bt:~/#
Es prüft ob in der Capture File ein brauchbarer "Handshake" enthalten. Natürlich können es auch andere Programme welche mit BackTrack kommen prüfen. Aber wer gerade mit pyrit am Werk ist...
WPA Key’s mit GFX-Power cracken – Pyrit
Das Cracken von WPA Keys kann schon sehr lange dauern. Eine Grafikkarte welche CUDA unterstützt leistet hier erstaunliches an Rechenpower um schneller an den Key zu kommen. Bei NVIDIA gibt es eine Liste der unterstützen Karten welche mit CUDA Support kommen.
In Backtrack 5 müssen erst einmal die Treiber für die CUDA Unterstützung kompiliert und installiert werden. Hierzu gibt es ein sehr gutes HowTo im BackTrack Wiki --> CUDA on BackTrack 5. Somit werde ich hier nicht weiter darauf eingehen. Pyrit sollte ebenfalls direkt aus dem SVN geholt werden wie es im HowTo beschrieben wird, da in BT5 aktuell nur die Version 0.4.0 im Repository vorhanden ist.
In Pyrit selber gibt es einige checks welche erst mal gestartet werden sollten um sicher zu gehen das die Grafikkarte(n) mitgenutzt werden.
root@bt:~# pyrit list_cores Pyrit 0.4.1-dev (svn r308) (C) 2008-2011 Lukas Lueg http://pyrit.googlecode.com This code is distributed under the GNU General Public License v3+ The following cores seem available... #1: 'CUDA-Device #1 'GeForce GTX 295' #2: 'CPU-Core (SSE2)' #3: 'CPU-Core (SSE2)'
Hier muss nun die Grafikkarte neben den CPU's angezeigt werden. Falls nicht - passt etwas mit den Treibern nicht. Desweiteren kann pyrit mit einem "selftest" und einem "benchmark" gestartet werden. Im Benchmark wird gleich die Anzahl der Key's per Device ausgegeben.
root@bt:~# pyrit benchmark Pyrit 0.4.1-dev (svn r308) (C) 2008-2011 Lukas Lueg http://pyrit.googlecode.com This code is distributed under the GNU General Public License v3+ Running benchmark (11551.1 PMKs/s)... \ Computed 11551.1 PMKs/s total. #1: 'CUDA-Device #1 'GeForce GTX 295: 10558.8 PMKs/s (RTT 3.0) #2: 'CPU-Core (SSE2)': 503.2 PMKs/s (RTT 2.7) #3: 'CPU-Core (SSE2)': 489.1 PMKs/s (RTT 2.8)
Hier ist jetzt ganz klar die Power der GTX 295 mit der GPU im Vergleich zur CPU zu sehen!
Kommen wir nun mal zum eigentlichen Teil und verwenden pyrit um die Keys zu knacken. Pyrit verfügt über mehrere Arten einen Keys zu knacken bzw. zu importieren. PMK's können aus einer Datenbank, einer cowpatty Datei oder als passthrough mit einer wordlist verarbeitet werden.
Wir nehmen in dem Fall den attack_passthrough mit einer wordlist um die Keys direkt zu verarbeiten. So müssen nicht unnötige TerraBytes von Dateien (tables) auf die Festplatte geschrieben werden.
root@bt:~# pyrit -e DIE-ESSID -i /der/pfad/zur/wordlist.txt -r /pfad/zur/wlan-sniff.cap attack_passthrough
Jetzt sollte pyrit loslegen und zusätzlich die Grafikkarte(n) nutzen um den Key zu finden.
Klar ist dass wir hier nicht über große Wunder reden und nun in Sekunden den Key finden. Zumal der Key auch in der Wordlist enthalten sein muss! Sicher ist aber dass es deutlich schneller gehen wird. Wem das ganze immer noch zu langsam ist kann sich mehrere Grafikkarten einbauen und zusätzlich noch über das Netzwerk verteil auf mehreren Maschinen starten. Yeah!
Mehr Infos zu Pyrit gibt es direkt bei Google Codes wo das Projekt gehostet ist.
SSH Public Key
Hier ein kleines Script welches hilft den SSH Public Key auf andere Maschinen zu übertragen
#!/bin/sh echo echo This script will help you setup ssh public key authentication. host=dummy while [ -n "$host" ]; do echo -n "SSH server: " read host if [ -n "$host" ]; then echo -n "user[$USER]: " read usr if [ -z "$usr" ]; then usr=$USER fi echo "Setting up RSA authentication for ${usr}@${host}..." if [ -f ~/.ssh/id_rsa.pub ]; then echo "RSA public key OK." else ssh-keygen -t rsa -f ~/.ssh/id_rsa -N "" fi scp -P22 ~/.ssh/id_rsa.pub ${usr}@${host}:~/ ssh ${usr}@${host} -p22 "if [ ! -d ~/.ssh ]; then mkdir ~/.ssh fi cat ~/id_rsa.pub >> ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys rm ~/id_rsa.pub" echo echo "You should see the following message without being prompted for anything now..." echo ssh ${usr}@${host} "echo !!! Congratulations, you are now logged in as ${usr}@${host} !!!" echo echo "If you were prompted, public key authentication could not be configured..." echo echo "Enter a blank servername when done." echo fi done echo "End of configuration."
