Intrusiones en redes de area local por Man in the Middle

mono dsniffDsniff nos demuestra lo inseguras que son nuestras redes, sobretodo si nos empeñamos en enviar contraseñas en formato texto plano. Con este sniffer, nos daremos cuenta de los realmente importante que puede llegar a ser la utilizacion de la encriptacion en nuestras comunicaciones diarias …

Dsniff es una suite para redes de area local como el aircrack lo es en las redes wifi. Es muy potente y el autor advierte que no abusemos de este software. Esta suite incluye muchos programas, que ire explicando uno a uno:


dsniff – Un simple sniffer de contraseñas. Puede esnifar contraseñas de FTP, Telnet, HTTP, POP, NNTP, IMAP, SNMP, LDAP, Rlogin, NFS, SOCKS, X11, IRC, AIM, CVS, ICQ, Napster, Citrix ICA, Symantec pcAnywhere, NAI Sniffer, Microsoft SMB, y Oracle SQL*Net.
arpspoof – Se encarga de enviar los paquetes “arp reply” falsos a la maquina que le indiquemos como “target” para suplantar la dirección MAC de la segunda máquina que le indiquemos. Esta será nuestra herramienta de envenenamiento ARP en redes conmutadas.
dnsspoof – Permite falsificar respuestas DNS para ataques basados en nombres de hosts (y para determinados ataques Man in the Middle = MiM).
filesnarf – captura y guarda ficheros pasados a través de NFS. La mayoría de nosotros pocas veces nos encontraremos este tipo de recursos monstados, pero nunca se sabe.
macof – Inunda la red local con MAC aleatorios esto hace que algunos switches entren en modo “hub” permitiendo el esnifado de toda la red.
mailsnarf – Permite capturar todo e tráfico de correo entre las máquinas que hemos suplantado (o de toda la red si la red es compartida). Esto incluye tráfico SMTP y POP. Guarda los resultados en formato mbox (para poder leer los correos con cualquier cliente decorreo estándar).
msgsnarf – Registra determinados mensajes (según el patrón especificado) de las sesiones chat abiertas con los programas AOL Instant Messengerm, ICQ 2000, IRC, MSN Messenger o Yahoo Messenger. (Tener en cuenta que son versiones viejas de clientes de MI …)
sshmitm – Reenvía(proxy) y esnifa tráfico SSH redirigido hacia nuestra máquina por dnsspoof, capturando claves SSH!, y permitiendo el hijacking de sesiones interactivas. Sus caracteristicas son impresionantes. Solo soporta SSH v1 (principalmente por eso todos usamos SSH v2, y si no lo hace esta jodido)
sshow – Es una beta, no lo he probado. Permite analizar tráfico SSH (versiones 1 y 2) como intentos de autenticación, longitud de las passwords en sesiones interactivas, longitud de los comandos, etc… Su aplicación no es tan simple como sshmitm, pero no deja de ser impresionante dado que suministra información acerca de conexiones vía SSH2.
tcpkill – Muy bueno y útil. Permite matar conexiones ya establecidas. Tiene múltiples utilidades, pudiendo usarse, por ejemplo, para matar una sesión telnet establecida por un usuario antes de que empezásemos a esnifar, obligándolo a empezar de nuevo (y a meter su clave ). Admite filtros al estilo tcpdump.
tcpnice – Igual que el tcpkill pero permite hacer insufriblemente lentas algunas conexiones.
urlsnarf – Registra todas las referencias a URL existentes en el tráfico esnifado. Gran utilidad para conocer que webs han sido o están siendo visitadas desde un equipo.
webmitm
– similar a sshmitm, hace de proxy transparente y esnifa conexiones HTTP y HTTPS redirigidas a nuestra máquina usando dnsspoof. Sus posibilidades SSL asustan, permitiendo capturar la mayoría de las claves en formularios y web seguras (p. ej. HotMail … ). Otra herramienta que “acojona”.
webspy – Y esto es una… umm… “frivolidad” ;). Webspy os permitirá ver en vuestro navegador lo mismo que esté viendo la máquina esnifada en el suyo “on the fly”. Lo que hace es capturar las URL esnifadas on line y pasárselas a vuestro navegador en el momento. Es decir: Si él navega, ambos navegáis por los mismos sitios y a la vez sin que tengas que hacer otra cosa que mirar tu navegador :P.

Para haceros una idea de las posibilidades del dsniff, vamos a probar las aplicaciones más utilizadas de la suite:

  • Para instalarlo simplemente ponemos : sudo apt-get install apt-get dsniff
  • Tecleamos : sudo dsniff -i wlan0 donde wlan0 es el nombre de nuestro interfaz de red(si es una tarjeta de red, lo más normal es que se llame eth0).
  • Ahora bajaros el correo, entrad en algun servidor/servicio que os pida contraseña y vereís como por arte de magia vais capturando los pares usuario:contraseña. Si utilizais el POP de GMail pues no habra que nada que se pueda entender.
  • Daros cuenta la facilidad para esnifar protocolos que trabajan en texto plano por ello es el motivo de obsesión del movimiento cyberpunk de encriptar todo en Internet, para que ni centralitas ni gobiernos puedan espiarles=esnifarles. Muy recomendable leer el manifiesto cyberpunk.
  • Antes de probar ningun mega wachi esnifer, debemos entender toda la teoría, como funciona un hub, como funciona un switch y en que consiste un man in the middle. En este Taller de TCP/IP lo explican muy extensansamente.

Supongamos que tenemos un poco de base en redes:

  • Evidentemente lo interesante es poder esnifar al ordenador que yo quiera, por que esnifarme a mi mismo es lo máximo que os van a enseñar en la uni. (Ya os lo confirmaré, este viernes tengo la práctica con WireShark(!…))
  • Para poder practicar esto necesitais 2 ordenadores al menos y 1 router. Con un hub ya habriamos acabado pero con un switch, suponer una red minima con estas ips:
    • Router : 192.168.1.1
    • Atacante o Intruder : 192.168.1.2
    • Victima : 192.168.1.3
  • Las comunicaciones Router -> Victima y Victima -> Router en principio no pasan por el Intruder. Os he recalcado que hay 2 sentidos. Abrimos 2 consolas y ponemos:
  • Nos ponemos como root: (sudo su o su simplemente si teneis activada la cuenta de root) y escribimos echo 1 > /proc/sys/net/ipv4/ip_forward con esto permitimos que los paquetes nos puedan “atravesar” alegremente. Es decir si recibimos un paquete cuyo destinatario no es nuestro ordenador, automaticamente se lo envio a su verdadero destinatorio, todo esto de forma transparente.
  • En la consola 1 dejamos el proceso bloqueante : sudo arpspoof -i wlan0 -t 192.168.1.1 192.168.1.3
  • En la consola 2 dejamos el proceso bloqueante : sudo arpspoof -i wlan0 -t 192.168.1.3 192.168.1.1
  • Lo alucinante es que ya hemos terminado … todas las comunicaciones entre la víctima y el router (en los 2 sentidos por eso hay 2 consolas) las podríamos esnifar, y todo protocolo en texto plano puede darnos información. Cualquiera sin conocimientos de lo que esta haciendo podría hacerse un script Kiddie
  • Lo que esta pasando es la siguiente, con arpspoof estamos enviando cada cierto tiempo un paquete arp reply(Es un paquete que informa de la correspondencia entre la MAC y la IP) que modifica la tabla de MACs, normalmente los routers y sistemas operativos cuando reciben un paquete arp reply sencillamente se lo creen. La única forma de evitar un MiM es que el router o el sistema operativo tenga una tabla estática con la relación de MAC – IP y esta tabla tenga más jerarquía que la dinámica, es decir solo se consulta la tabla dinámica si no esta en la tabla estática, y si tampoco esta en la dinámica entonces nos lo tendremos que creer lo que nos diga el paquete.
  • En resumen: El router se cree que la victima somos nosotros, y la victima se cree que el router somos nosotros por tanto todas las comunicaciones entre ellos nos la envian a nosotros y como tenemos activado el ip_forward a 1 las conexiones nos atraviesan de forma transparente. Pero ojo no tenemos por que permitir que pasen todos, podemos matar alguna (tcpkill) o relantizarla (tcpnice) o simplemente esnifamos en busca de paquetes no encriptados.

Ya estamos esnifando a la victima nos sacamos una tercera consola para probar las aplicaciones de la suite(las más importantes por que todavía no he probado todos). Primero debeis empoyaros un poco la sintaxis de los filtros tipo tcpdump, porque casi todos los programas de la suite permiten utilizar este tipo de filtro.

  • sudo tcpkill -i wlan0 port 135 or port 139 or port 445 : matamos las conexiones involucradas en NetBIOS/Samba, mata no solo a la victima, tambien a ti … habría que añadir condiciones mediante (and y or) para acotar el esnifido seleccionado. La única utilidad que le veo es para obligar aque se vuelva a auntentificar por un protocolo que creamos poder esnifar correctamente.
  • sudo tcpkill -i wlan0 src 192.168.1.3 and dst 192.168.1.1 and dst port 23 : mata un poco más selectivamente, las conexiones que van desde victima a router por el puerto 23(telnet).
  • sudo tcpkill -i wlan0 host http://www.microsoft.com or http://www.ibm.com : No se puede entrar en mocosoft e ibm por motivos varios…
  • sudo mailsnarf -i wlan0 : esnifa el correo tanto entrada como salida, SMTP y POP.
  • sudo dsniff -i wlan0 : esnifa en busca de contraseñas pasadas por texto en plano en los protocolos especificados arriba.
  • sudo dnsspoof -i wlan0 -f fakes.hosts : Engaña a la victima sobre las ips de destino, el fake esta en el fichero fakes.hosts.
  • sudo webmitm -d : no lo he probado, pero teniendo un certificado (webmitm.crt) valido por una CA (el ataque tendrá exito seguro), si es un certificado generado y no valido al usuario le aparecerá la típica ventanita de aceptar certificado que todo usuario suele decir que si, este programa se combina con el anterior para reemplazar la dns del que emite el certificado, webmitm hara el resto y esnifará una conesión https como si fuera texto plano, un peligro…

Evidentemente el articulo es con fines educativos, el uso de sniffers, la intercepción de correo, la intercepción de conexiones SSL, en la mayoría de las redes es una práctica ilegal. El que avisa no es traidor…

Es el primer articulo técnico que pongo en mi blog así decirme en los comentarios cualquier puntualización o duda.

Fuentes:
Revista número 11 : PC Paso a paso: HaxkXCrack , Wikipedia , Bulma …

About these ads

11 comentarios

  1. Quiero saber mmasss sobre hacking :P
    un 10 te pongo

  2. gracias anónimo!. Pondre más posts sobre el tema … Estoy abierto a sugerencias pero tenía pensando explicar un poco todos los parametros del nmap.

  3. Weenas, e intentado hacer ” sudo dsniff eth0″
    pero me un error ,
    dsniff: nids_init: Libnids not initialized
    Que ocurre?

  4. dsniff usa como interface por defecto eth0, asi que para tu caso no hay que especificar el interzaf, te funcionara simplemente con:

    sudo dsniff

    Si vas por wifi o tienes otro interfaz por el motivo que sea, lo mejor es que se lo especifiques con -i interface:

    sudo dsniff -i wlan0

    Lo que tu has escrito hubiera funcionado si hubieras puesto la bandera -i

  5. muy bueno

  6. una pequeña correccion el termino correcto es “Man in the middle” no “Main in the middle” buen articulo keep the good work :D

    Saludos

  7. gracias claudio, vaya fallo xD

    La verdad es que yo siempre escribía “main in the middle” y mentalmente lo traducía como hombre del medio sin nisiquiera pararme a pensar que era “man in the middle”. Lo curioso es que en google encuentras bastante información poniendo main in the middle :o

  8. Hola,

    Enhorabuena por tu artículo.

    Podrías completar el artículo explicando como protegerse de estas herramientas, ya que mucha gente se conecta a routers abiertos en bares y demás y nunca se sabe quien comparte la red.

    He encontrado esto:

    http://byteinformatico.com/sistemas-operativos/arp-spoofing/ y buscad el texto “DETECCIÓN Y PREVENCIÓN” en el texto de la web.

  9. Si no dudes que lo haré, gracias por la fuente.

    Tengo que hacer un trabajo para la asignatura “conectividad en sistemas abiertos” y iba pensado titular el trabajo “Seguridad en LAN / WLAN”. Y Coger cosas de mi propio articulo, y completarlo con cracking WIFI y lo que tu me comentas. Detección y prevención.

    Un saludo.

  10. muuuuuuuuuuuuuuuuy bueno tus conocimientos compañero…
    solo me gustariaa saves como secrean los certificados “firmados” por la CA…

    eso muchisimas gracias…

    bendiciones.oO*

  11. Buenisimo hermano,
    no lo conocía y ayer que lo localicé
    empecé a recomendarlo a los camaradas de
    la uni que estudiamos sistemas, y un poco de redes
    siempre con el ideal del software libre por delante.
    Gracias por compartir.

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: