Visualización gráfica Nmap Scan con Afterglow.

Me piden por mail una configuración para realizar una gráfica nmap scan. Como me parece interesante, paso a responder mediante una pequeña reseña en forma de artículo al respecto.

afterglow cabecera tcp grafica fdp clustering scapy range

Paso por alto explicaciones sobre funcionamiento de AfterGlow/Nmap que ya hemos visto, en algunos casos de forma extensa, en anteriores ocasiones.

(8-03-2011) Actualizado con conclusiones, fdp y clustering. Se incluye nueva gráfica.

Visualización gráfica nmap scan con Afterglow.

Para ello vamos a tomar como referencia el campo tcp.flags. Como sabéis este campo toma valores para los flags TCP como pueden ser ACK/SYN/RST, etc y las combinaciones que se pueden dar, por ejemplo SYN-ACK.

Para un:

  • SYN el valor de tcp.flags sería 0x02
  • ACK el valor de tcp.flags sería 0x10
  • para SYN-ACK tcp.flags tendría valor 0x12
  • …….

cabecera segmento tcp tcp.flags

Atendiendo a todo esto y con lo aprendido sobre propiedades del archivo configuración AfterGlow y usando label, solor.source, expresiones perl, etc, contruímos el siguiente archivo de propiedades que llamaremos color.nmap:

#######################

color.source=»salmon» if ($fields[1]=~/0x02/); # normal syn
color.source=»orange» if ($fields[1]=~/0x12/); # normal syn-ack
color.source=»lightcyan» if ($fields[1]=~/0x10/); # normal ack
color.source=»red» if ($fields[1] eq «0x14»); # rst-ack
color.source=»gray» if ($fields[1] eq «0x18»); # psh-ack.
color.source=»yellow» if ($fields[1] eq «0x04»); # rst
color.source=»gray20″;

label.event=»SYN» if ($fields[1] eq «0x02»); # normal syn
color.event=»salmon» if ($fields[1] eq «0x02»); # normal syn
label.event=»SYN-ACK» if ($fields[1] eq «0x12»); # normal syn-ack
color.event=»orange» if ($fields[1] eq «0x12»); # normal syn-ack
label.event=»ACK» if ($fields[1] eq «0x10»); # normal ack
color.event=»lightcyan» if ($fields[1] eq «0x10»); # normal ack
label.event=»RST-ACK» if ($fields[1] eq «0x14»); # rst-ack
color.event=»red» if ($fields[1] eq «0x14»); # rst-ack
label.event=»PSH-ACK» if ($fields[1] eq «0x18»); # psh-ack.
color.event=»gray» if ($fields[1] eq «0x18»); # psh-ack.
label.event=»RST» if ($fields[1] eq «0x04»); # rst
color.event=»yellow» if ($fields[1] eq «0x04»); # rst
color.event=»lightcoral»;
shape.event=»box»;

color.edge=»blue»;

#######################

Nmap.

Para nmap, he usado -sS (TCP SYN Scan), que consiste en lo siguiente;  enviamos un paquete o varios con el flag SYN activado. Sería como simular un establecimiento de conexión. El host remoto puede responder con un paquete con SYN+ACK activado con lo que el puerto está abierto o con RST+ACK con lo que el puerto estára cerrado.

Quedaros con esto porque os servirá para interpretar la gráfica, tomando en cuenta que el host que realiza el scan es 192.168.1.106.

Además he usado la opción Decoys y -P0:

nmap -sS -P0 -p -D192.168.1.10,192.168.1.11,192.168.1.29 80.XXX.XX.XXX

Mientras, con tcpdump, captura todos los segmentos TCP y los vuelco al archivo nmap001.pcap.

Ahora voy a crear la gráfica:

AfterGlow.

alfon@alfonubuntu:~/afterglow/src/perl/graph$ tshark -nn -r nmap001.pcap -R «tcp» -T fields -E separator=, -e # ip.src -e tcp.flags -e ip.dst | sort -u > nmap001.csv

alfon@alfonubuntu:~/afterglow/src/perl/graph$ cat nmap001.csv | perl afterglow.pl -c color.nmap > nmap001.dot

alfon@alfonubuntu:~/afterglow/src/perl/graph$ dot -Tpng -o nmap001.png ./nmap001.dot

El resultado es:

visualizacion grafica scan nmap tcp syn

Brévemente…:

como veis, 192.168.1.106 host que realiza el scan, envía segmentos mediante Nmap SYN usando los Decoys 192.168.1.10-11-29 a la víctima 80.xxx.xx.xxx. Esta responde con SYN-ACK para puertos abiertos y RST-ACK para puertos cerrados, segmentos que son enviados a 192.168.1.106 que responde con RST para terminar la conexión.

Algunas conclusiones. AfterGlow clustering.

La gráfica es muy simple porque el scan nmap, entre otras cosas, también lo es. Se puede complicar todo lo que queramos mediante scapy scan range, scapy scan python, y con diversas opciones de nmap. Para tales casos las gráficas resultarán complejas con superposición de nodos.

Para solventar esta inconveniencia, podemos usar clustering y otros tipos de gráficas como fdp.

Si os interesa podemos verlo en otros capítulos.

Una gráfica fdp con clustering y modificación de nodos:

afterglow clustering en seguridad y redes

.

Relacionados con scan nmap, detección, etc:

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

(2008) Analizando la Red con WinDump/TCPDump. (Parte III)

Snort. Preprocesadores. SfPortscan. Pruebas nmap y scapy.

NetGrok, InetVis, Scapy y Nmap. Detección y visualización scan de puertos. Parte I

Nmap NSE Scripting:

===

Haasta aquí por hoy. Hasta la próxima.

Esta entrada fue publicada en AfterGlow., Nmap, Seguridad y redes. Guarda el enlace permanente.

2 respuestas a Visualización gráfica Nmap Scan con Afterglow.

  1. silverhack dijo:

    Vaya guapada de post tio!!
    Cómo van los carnavales?? 😉

  2. Alfon dijo:

    Gracias silverhack por tu comentario. Pues prepárate que estoy con otro pero con visualización para barridos de puertos, desde múltiples IPs, etc.
    Los carnavales poco. Con el niño no me atrevo a menterme en muchas juergas.

Deja un comentario