Popular channels

ARP spoofing usando libtins

libtins


Hola! Hoy les traigo este programita que hice usando libtins, una librería que estoy desarrollando con unos amigos. Esta librería permite crear paquetes(léase paquetes que se envían por una interfaz de red..) a partir de capa de enlace y hasta capa de transporte y aplicación.

La forma de armar paquetes es ir apilando los diferentes PDU que se quieren enviar, por ejemplo podemos apilar un paquete IP(con sus respectivas direcciones de origen, destino, y demás atributos), y luego montar un segmento TCP encima. Luego se puede enviar fácilmente los paquetes creados, sin preocuparse por el manejo de sockets a bajo nivel. Por otro lado, la librería permite hacer sniffing e interpretar los paquetes sniffeados, sin necesidad de andar manejando las estructuras de cada PDU.

La librería esta hecha en C++. Todavía no hicimos ninguna release, pero no falta mucho para eso. Si alguien quiere chusmearla, pueden clonar el repositorio git, pueden encontrar el repo en sourceforge: https://sourceforge.net/projects/libtins/.

ARP spoofing


Bueno, ahora ya promocioné la librería . Ahora paso a contarles el programita de ejemplo que hice. Es un programa que lleva a cabo un ataque de ARP spoofing(también conocido como ARP poisoning y otros nombres). Si quieren leer sobre este ataque, pueden leer aca: http://en.wikipedia.org/wiki/ARP_spoofing.

Este es un ataque muy simple, básicamente se aprovecha del protocolo ARP y la incapacidad de los hosts/switchs de darse cuenta si alguien está mintiendo al mapear una dirección IP a una dirección física(o dirección MAC).

El protocolo ARP


El protocolo ARP sirve para poder, a partir de una dirección IP, obtener la dirección física de un host. Cuando se quiere saber la dirección física de un host, se envía un request ARP y se espera que algún host lo responda. Ahora, como este request se envía a una dirección broadcast física, cualquier host podría ver el request y responderlo, incluyendo información falsa.



Qué pasa si nuestro router, por ejemplo, pregunta quien tiene la dirección 192.168.0.5, y nosotros le decimos que esa es nuestra dirección IP(dandole nuestra dirección MAC)? El router va a comenzar a mandarnos todo el tráfico que debería ir al host que realmente tiene esa dirección IP, a nosotros. Y ahora, que pasa si al host 192.168.0.5 le decimos que la dirección MAC del router es nuestra dirección? Pasará lo mismo, el host enviará todo el tráfico que debería llegarle al router, a nuestra PC. Si además de esto, habilitamos port forwarding(echo 1 > /proc/sys/net/ipv4/ip_forward), todo el tráfico que ese host mantenga con el router, pasará transparentemente por nuestra PC, permitiéndonos sniffear todo lo que ese host esté haciéndo en internet.

Es un ataque mucho mas simple de lo que parece, y libtins lo convierte en una boludez . Hay muchos programas que hacen esto, pero la idea era demostrar la simplicidad con la que se puede hacer utilizando esta librería.

Para ver el código, pueden descargarlo acá: http://average-coder.blogspot.com/2011/09/arp-spoofing-using-libtins.html

Saludos!
0
0
0
0No comments yet