Scapy. Manipulación avanzada e interactiva de paquetes. Parte 3

Seguimos con la tercera parte de la serie dedicada a Scapy. Las dos primera:

scapy  en seguridad y redes alfon

En este caso trataremos el passive OS fingerprinting con p0f, OS  y nmap_fp, traceroute con graph, conversations(), etc. Usaremos BackTrack para algunos ejemplos con Linux.

Detección SO. Passive OS fingerprinting con Scapy y p0f.

P0f es una herramienta para realizar OS fingerprinting de forma pasiva, con lo que no generamos tráfico adicional o redundante. Scapy necesita para el módulo p0f las bases de datos de firmas. Para ello descargaremos de:

Los archivo siguientes:

  • p0f.fp
  • p0fr.fp
  • p0fa,fp
  • p0fo.fp 

Estos archivos los ubicaremos, por ejemplo en: C:\Python25\Lib\site-packages

scapy como capturador de paquetes sniffer en seguridad y redes alfon

Bien, vamos ahora a ver, para cambiar un poco, como funciona scapy en linux. Los cambios son pocos pero, en algunos casos, como P0f, hay que cargar el módulo correspondiente. Para este artículo voy a usar BlackTrack 4 en VMWare player.

Una vez que lo tenemos cargado en el player, en mi caso:

ifconfig eth0 up

ifconfig eth0 192.168.1…..

route add default gw 192.168…. 

echo nameserver 192.168… > /etc/resolv.conf

Con todo esto, hemos levantado la interface de red eth0, asignamos una IP, añadimos gateway y DNS para que se conecte correctamente a internet y al resto de red local.  Decir, también, que en la configuración de la máquina virtual, en Network connection, marcaremos la opción Bridged.

Abrimos consola y:

Tenemos que descargar la sbases de datos .fp de:

http://lcamtuf.coredump.cx/p0f.tgz

usamos para ello, por ejemplo wget:

cd /etc/p0f

wget  http://lcamtuf.coredump.cx/p0f.tgz

y descomprimimos *.fp con tar

termina esta operación tecleamos:

scapy

load_module(«p0f»)

sniff(prn=prnp0f)

Con este último comando, usamos sniff() para volcar todas nuestras capturas al módulo p0f y ver los rersultados por pantalla.

Obtendremos algo parecido a esto:

192.168.1.147:33721 – Linux 2.6 (newer, 2) (up: 463 hrs)
-> 147.210.19.96:www (S) (distance 0)
72.233.113.162:www – UNKNOWN [49980:52:1:64:N,N,T,M1460,N,W0,N,N,S:AT:?:?] (up: 234 hrs)
-> 192.168.0.97:33721 (SA)

……

Las notaciones S y SA nos dice que base de datos .pf se usó. En este caso p0f.fp y p0fa.fp respectivamente.

Con p0f y scapy podemos manipular los resultados. Lo veremos más adelante.

Detección SO. Passive OS fingerprinting con Scapy y nmap_fp.

Para usar nmap_fp tendremos que descargar el archivo http://nmap.org/nmap-os-fingerprints con wget para volcarlos en /usr/share/nmap. Cargaremos el modulo nmap:

load_module(«nmap»:

scapy  en seguridad y redes alfon

TCP Traceroute y Scapy. Función graph.

Realizamos un traceroute con scapy tal como hemos aprendido en artículos anteriores:

scapy  en seguridad y redes alfon

Casi parece un ping. Añadamos algunas funciones, como TTL, puerto de destino…:

scapy  en seguridad y redes alfon

Vamos a usar la función graph para ver las interacciones del traceroute:

a,b=traceroute([«www.google.es»,»www.elpais.es»,»www.terra.es»],dport=[80,443],maxttl=20,retry=-2)

a.graph()

La imagen es bastante grande. Se nos abrirá  una ventana ImageMagick, por la cual nos podremos desplazar para ver los resultados:

scapy  en seguridad y redes alfon

Avanzaremos más con traceroute usando SYN y DNS traceroute en próximos capítulos.

Funciones gráficas. Conversations.

Existe en Wireshark la opción Statistics > conversations. Con esta opción podemos ver el diálogo entre los hosts presentes en una captura.DE forma análoga pero gráfica, tenemos la función conversations() en scapy:

c=sniff(count=50)

c.conversations()

Se nos abrirá una ventana ImageMagick con la información de las conversaciones o diálogos de los host involucrados en los 50 paquetes de la captura:

scapy  en seguridad y redes alfon

Esta entrada fue publicada en Scapy, Seguridad y redes y etiquetada , , , , , , . Guarda el enlace permanente.

Una respuesta a Scapy. Manipulación avanzada e interactiva de paquetes. Parte 3

  1. Pingback: Seguridad Python (manipulación de paquetes) | darkuskyo.net

Deja un comentario