Saltar al contenido

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript... y lo que venga ;)

18 años online

el blog de José M. Aguilar

Inicio El autor Contactar

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web
ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript...

¡Microsoft MVP!
Mostrando entradas con la etiqueta escaneo de puertos. Mostrar todas las entradas
Mostrando entradas con la etiqueta escaneo de puertos. Mostrar todas las entradas
lunes, 24 de diciembre de 2007
Árbol de NavidadPara conocer si un equipo remoto tiene un puerto abierto existen multitud de técnicas. Hace tiempo describí una muy potente llamada idle scan y hoy, haciendo honor a la fecha en que nos encontramos, describiremos el escaneo "Xmas Tree" (árbol de navidad).

Esta técnica consiste en enviar un segmento TCP al puerto deseado del dispositivo a investigar con los bits FIN, URG y PUSH activos. Esto hace que el byte de flags contenga "00101001", lo cual parece ser que recuerda a las luces de un árbol de navidad, y de ahí su nombre. Imaginación y espíritu navideño que no falte. ;-)

Cuando la víctima del escano recibe este segmento, según dictan las directrices marcadas por el protocolo,

  • si el puerto está cerrado, devuelve un segmento con el bit RST activo, indicando que se resetee la conexión en cliente.
  • si el puerto está abierto, ignora el paquete recibido y no responde nada.
Atendiendo a la respuesta (o ausencia de ella), el atacante puede determinar el estado del puerto que está investigando de una forma realmente silenciosa, puesto que no inicia ninguna conexión (como los sondeos SYN, que inician un 3-way-handshake), y sorteando a veces filtros que no esperan este tipo de combinaciones en los flags.

Sin embargo, como aspectos negativos, podemos decir que es bastante sencillo de filtrar y detectar, y que ponen al descubierto la dirección del atacante, por lo cual es conveniente realizarlos desde zombies o intermediarios. También es complicado determinar la veracidad del resultado, puesto que:

  • la respuesta puede ser la misma (o sea, ninguna) si un puerto está abierto o si el paquete ha sido interceptado por un elemento de seguridad (como un firewall).
  • también un puerto puede parecer cerrado sin estarlo debido a una interpretación errónea de la RFC.
En cualquier caso, podemos realizarlo de forma muy sencilla utilizando la herramienta nmap (si usas alguna distribución de linux basada en Debian, como Ubuntu, puedes descargar e instalarla haciendo un apt-get install nmap.). El escaneo lo realizaríamos con la orden (siendo w.x.y.z la dirección IP de la víctima):
nmap -sX w.x.y.z

Ah, por cierto, ¡feliz navidad!

Publicado en: http://www.variablenotfound.com/.