Nmap — Análisis de puertos
- yccyyc9
- 12 ene
- 4 Min. de lectura

Hola hola, ¡bienvenido/a!
Recuerda que tienes el blog pasado que sigue a este llamado “2. Nmap & Metasploitable — Hosts”. Por si quieres darle un vistazo y así seguir el hilo de los blogs, ya que están relacionados uno con otro.
En esta primera parte voy a realizar a lo que se conoce como Escaneo SYN. Si aún no conoces lo que es, ¡quédate a leerlo!
En primer lugar, voy a ejecutar los siguientes comandos y vamos a ver que ocurre. Al igual que en el blog pasado, estaré utilizando la misma IP de la máquina vulnerable Ubuntu:
Escaneo de puerto concreto mediante TCP SYN, por ejemplo: “-p 80", “-p 22”, etc.
sudo nmap -sS 192.168.211.133 -p 80
Cómo vimos en el blog pasado, la interacción se da de forma similar a través ARP, dónde “pregunta y responde”. Básicamente, trata de determinar si el Host se encuentra activo.
Sin embargo, hay un punto interesante a tener en cuenta, y es que, la conexión se queda a medias. ¿Recuerdas en el blog pasado que se producían dos RST cuando finalizaba la conexión?
Bueno, esta vez se produce solamente uno. Esto se debe a que el escaneo SYN sólo comienza el proceso de conexión con TCP. Al recibir una respuesta “SYN/ACK” quiere decir que el puerto está abierto. Aún así, la conexión se queda incompleta.
Pero para comprenderlo mejor, puedes imaginar este proceso cómo si tratase de una conversación. Por ejemplo, puedes imaginar que le haces una pregunta a alguien por la calle. La persona simplemente te responde a la pregunta, pero vuestra conversación ya no sigue más. El funcionamiento del escaneo SYN es similar.
Por ende, como pudiste suponer, esta es una técnica que genera mucho menos ruido y, es menos intrusiva en comparación con otros métodos de escaneo de puertos.

Por ende, el resultado que recibimos sobre el servicio “HTTP”, realmente no es 100% verídico. Ya que, al no completarse una conexión completa, Nmap no puede determinar por completo si ese servicio se está ejecutando. Más bien, es un resultado que nos da a entender que “probablemente” sea el servicio HTTP.
Ahora sí, vamos a ver algunas variaciones más que puedes utilizar:
Escaneo de todos los puertos del sistema en una dirección IP especifica:
sudo nmap -sS 192.168.211.133

Aquí básicamente se están realizando muchísimas conexiones TCP a todos los puertos de la máquina para identificar cuales están abiertos. Al ser este ejemplo en una máquina vulnerable, encontrará muchos. Igualmente, la imagen no es todo el resultado completo, ya que se generan demasiadas conexiones. Pero básicamente, inicia igual que la otra conexión con un ARP. Seguidamente irá buscando todos los puertos. Por ejemplo, si el puerto está cerrado al intentar conectarse, se inicia la conexión SYN, y justo después nos devolverá un RST al no estar abierto, como puedes observar en la imagen.
Esta técnica es útil cuando necesitamos averiguar todos los servicios disponibles en una máquina especifica. Además, como puedes comprobar, se genera un nivel moderado de ruido en la red. Lo cual, puede ser más fácilmente detectado por los sistemas de detección o Firewalls.
Escaneo de red completa de todas las IP’s dentro de la subred “0/24”:


Como ves, esta es una técnica mucho más agresiva que las anteriores. Aún así puede resultar útil cuando necesitamos identificar todos los servicios en todas las máquinas dentro de la misma red. Igualmente, esta también se puede detectar por los sistemas de detección y Firewalls.
Básicamente, funcionará de manera similar, ya que irá preguntando para descubrir cuales Hosts están activos mediante ARP:

Luego comenzará a dirigir las peticiones TCP, y irá encontrando los puertos que estén abiertos:

Pero, ¿qué ocurre si queremos escanear direcciones dentro de un rango sin necesidad de recurrir al conjunto de todo?
¡También es posible! Para ello:
sudo nmap -sS 192.168.211.120-130En este caso, el rango se encuentra entre la 120 y 130 (.120–130). Pero puedes poner el que quieras.

Como ves, en el resultado dentro del rango especificado se pudo encontrar la 192.168.211.128 y los puertos y servicios relacionados con el mismo.
¡Muy bien!
Por cierto, existe una maravillosa forma de guardar los resultados obtenidos para informes profesionales. Además se organiza todo y se ve muy limpio. Me ha gustado mucho, así que te dejo a ti también este truquito:
sudo nmap -v --reason -sS -oX informe.xml --stylesheet="https://svn.nmap.org/nmap/docs/nmap.xsl" 192.168.211.128 -v: “Verbose” Esto hará que nuestro informe sea más detallado ya que arrojará más información extra durante el escaneo. Por ejemplo, detalles sobre los puertos, el estado del host, etc.
— reason: Este nos agregará información sobre la razón por la que un puerto está abierto, o en el estado que esté.
-oX informe.xml: Aquí indicamos a Nmap que guarde los resultados obtenidos en un archivo de tipo XML con el nombre que le indiquemos. En mi caso he puesto “informe.xml”, aunque puedes elegir el que quieras.
— stylesheet: Esta es una hoja de estilo propia de Nmap del repositorio SVN de Nmap.
Por último, he agregado la dirección IP de la cual quiero obtener el resultado. Pero tu puedes añadir también especificaciones si así lo deseas. Por ejemplo, los comandos que hemos visto a lo largo del blog, resultados de un escaneo completo de la red, en un rango, etc.
Por último, una vez que hayas ejecutado este comando, simplemente elige el navegador con el cual vas a abrir el archivo. En mi caso Firefox:
firefox informe.xml¡Tachán!


Ha quedado chulísimo, ¿verdad?
Por cierto, si esta técnica no te funciona, recuerda que yo me encontraba en modo “Host Only”. Recuerda cambiarte a modo NAT para tener acceso a internet.
Y cómo siempre, si tienes alguna sugerencia y/o pregunta, no dudes en dejarme un comentario. ¡Nos vemos en el siguiente blog!



Comentarios