Trasteando con el protocolo TCP/IP

Cuando te gusta en serio la informática, y más concretamente el tema de redes, antes o después terminas enfrentándote con el protocolo TCP/IP. En mi caso fue antes, hace años, gracias a una magnífica serie de tutoriales publicados por la (difunta) revista HackXCrack. Tutoriales que, gracias a alguien que se entretuvo en escanear estas revistas y subirlas a la red, aun releo de vez en cuando.

El caso es que teniendo una idea clara de cómo funciona esta familia de protocolos, y con alguna pequeña ayuda, podemos hacer algunas “guarradas” (no de ese tipo, degenerado! ¬¬). Veamos cómo podemos generar paquetes TCP/IP a la carta y de qué nos pueden ser de utilidad :)

Gspoof

Gspoof (en cuya página de proyecto deberían añadir algunas ‘@’ al código PHP) es un generador de paquetes TCP/IP. Corre en modo consola o en GTK+ y nos permite configurar, como debe ser, cualquier number o flag del paquete. No es tan completo como Némesis, pero es desde luego mi preferido.

Gspoof en modo GTK+

Gspoof en modo consola

Némesis/jNémesis

Némesis es sin duda la packet injection suite más completa. Genera e inyecta paquetes TCP, UDP e ICMP, además de “encolar” (queue) paquetes.

Aunque la versión UNIX de Némesis funciona en línea de comandos, hay una excelente interfaz gráfica escrita en Java (es un proyecto parado desde 2004): jNémesis, que hace su uso intuitivo a más no poder. Aquí hay un vídeo-tutorial en flash sobre su uso.

jNémesis TCP

jNémesis UDP

jNémesis ICMP

TTpU

Quiero nombrar también, aunque sólo sea de pasada, a TTpU. De pasada digo porque no es open source, sólo está disponible el binario para descarga. Y porque tampoco aporta nada más, estando los que ya he nombrado…

¿Y qué hacemos con esto?

Generar paquetes TCP/IP “a medida” tiene muchas utilidades: evasión de cortafuegos, de IDS’s, IP spoofing… aunque voy a nombrar algunos de los más básicos. Si te interesa el tema y quieres profundizar, ya sabes, toca leer muuucho.

Escaneos syn y connect

El concepto de syn scan es muy simple. Mandamos un paquete con el flag SYN levantado al host remoto a un puerto determinado. Si el puerto está cerrado deberíamos recibir un paquete con los flags RST y ACK levantados. Si en cambio no recibimos nada podemos sospechar que el puerto está filtrado (firewalled).

Si queremos hacer un connect scan tenemos que intentar establecer una conexión mandando un paquete SYN. Si el puerto remoto está abierto recibiremos un paquete SYN y ACK envíado por el host remoto.

Aprovecho este tema de los tipos de escaneo para recomendar encarecidamente el magnífico tutorial Sabuesos en la red de Death Master.

Ataques DoS

Con un spoofer (como también son llamados este tipo de programas) podemos “comprobar” vulnerabilidades en los sistemas operativos (naturalmente, de un host remoto :P). Por ejemplo, sabemos que podemos provocar un DoS en un sistema Windows XP SP2 con el firewall desactivado si le enviamos un paquete spoofeado que declare un mismo host y puerto de origen y de destino. Y, como lo sabemos, queremos comprobarlo in situ. Ejem.

Como ya he dicho, hay técnicas mucho más avanzadas, como el IP spoofing, el firewalking, etc. A leer tocan ;)

:wq

Por ~aKira~ el Domingo 23 de Marzo de 2008 a las 12:20 | Categoría: Hacking, Software | Feed para los comentarios | Trackback


9 comentarios para 'Trasteando con el protocolo TCP/IP'

  1. kumo, el 23 de Marzo de 2008 a las 15:16.

    Y esos tutos escaneados, para leer muuucho… No los tendras colgados por ahi, no? hihihi

  2. Usando Mozilla Firefox 2.0.0.12 en Ubuntu Linux


  3. ~aKira~, el 23 de Marzo de 2008 a las 16:24.

    Bueno, según creo siguen en el iMules. Me consta que los zip están llenos hasta los ojos de virus, pero eso tampoco nos importa demasiado, sabiendo que somos inmunes… ;)
    En cualquier caso, si no los encuentras y de verdad te interesan te los pongo en un FTP y listo.

  4. Usando Opera 9.26 en Linux


  5. Neobius, el 23 de Marzo de 2008 a las 21:35.

    Me gusta el gspoof, pero no me funciona en el portatil :’-(

    Según las pocas pruebas que he hecho va bien con interfaces “cableadas” tipo eth0 o eth1, pero con wifi no funciona, no arranca con ath0 que es como me conecto en el portátil.

    A ti te funciona via wifi?

    Saludos ;-)

  6. Usando Mozilla Firefox 2.0.0.12 en Ubuntu Linux


  7. ~aKira~, el 23 de Marzo de 2008 a las 22:07.

    Pues nunca he tenido ningún problema con eso. Simplemente asegura que pones el nombre correcto de la interfaz en el apartado iface o, si lo usas en modo consola (gspoof -c) en el apartado 1.1

  8. Usando Opera 9.26 en Linux


  9. John Doe, el 23 de Marzo de 2008 a las 22:33.

    Interesante Debiano, espero lo puedas ampliar un poco más ;)

  10. Usando Mozilla Firefox 2.0.0.12 en Ubuntu Linux


  11. Neobius, el 23 de Marzo de 2008 a las 22:37.

    Si, pero es que directamente no carga el programa si no tengo configurado eth0, si solo tengo configurado ath0 al ejecutarlo este es el error que da:

    # gspoof

    ————————
    Running in Graphics Mode
    ————————

    GTK Accessibility Module initialized
    Error: autodetect device ip address failed: libnet_get_ipaddr4(): ioctl(): No se puede asignar la dirección solicitada

    Critical error! Quitting!

    Y no se abre el programa.

    Sin embargo si configuro eth0, aunque no esté conectada a ninguna red, simplemente si le doy una ip, el programa arranca, luego ya puedo cambiar la interfaz de eth0 a ath0 desde la interfaz, pero lo suyo sería que me arrancara directamente con ath0…

    Gracias por lo respuesta, ya por lo menos he conseguido que programa arranque :-)

  12. Usando Mozilla Firefox 2.0.0.12 en Ubuntu Linux


  13. ~aKira~, el 23 de Marzo de 2008 a las 22:59.

    Neobius: Pues me dejas fuera de juego. Quizá sea cosa de los drivers atheros, lo cierto es que no lo sé. En fin, me alegro de que al menos consiguieras arrancarlo :)

    Juan Nadie: Aquí me limito (no en este post en particular, hablo del blog en general) a enseñar las posibilidades, para que cada uno investigue por su cuenta, según su interés. A “despertar el gusanillo”, y que cada cual siga su camino :) Aunque siempre estoy dispuesto a echar una mano :)

  14. Usando Opera 9.26 en Linux


  15. Neobius, el 23 de Marzo de 2008 a las 23:22.

    Gracias de todas formas, aunque sea un poco mas “complicado” arrancarlo el programa por lo menos puedo usarlo :D

    Saludos y felicidades por tu blog

  16. Usando Mozilla Firefox 2.0.0.12 en Ubuntu Linux


  17. vlan7, el 22 de Mayo de 2008 a las 14:55.

    A mi personalmente me encantan las enormes posibilidades de scapy…

    vlan7

  18. Usando Opera 8.52 en Linux


Despáchate a gusto:

XHTML: Etiquetas permitidas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>