Pt2. Nmap & Metasploitable — Hosts.

Valeria Raizman
8 min readApr 16, 2024

--

¡Bienvenido/a de nuevo!

En este apartado del blog hablaré sobre escaneo y descubrimiento de Hosts. Recuerda que estas técnicas pueden llegar a ser detectadas como maliciosas o sospechosas, ya que, como verás más adelante, producen un gran tráfico de red.
Por ello, las técnicas que utilizaré dejan de ser pertenecientes a la “recopilación pasiva de información”, de las que he hablado en otros blogs pasados. Ya que este tipo de técnicas si entran al marco ilegal en general si se implementan fuera de los entornos virtuales u acordados previamente bajo un contrato legal.

Por ende, estaré usando el entorno virtual de Metasploitable3 y mi máquina virtual Kali Linux para los ejemplos.

Si no sabes que es esta máquina de Metasploitable3, tienes una guia paso a paso sobre como instalarla en mi blog pasado llamado: “Instalación/configuración entorno vulnerable Metasploitable para prácticas” en el siguiente link:

https://medium.com/@valeriaraizman/instalaci%C3%B3n-de-entorno-vulnerable-metasploitable-para-pr%C3%A1cticas-f4949c254392

Ahora sí!

En este blog estaré haciendo uso de una herramienta llamada “Nmap”.
Esta es una herramienta muy útil que sirve para escanear redes de forma profunda. Es decir, Nmap nos sirve para poder identificar los host y nodos que hay en una red. Además de los servicios que hay corriendo en ellos. Siendo esta una parte fundamental del Hacking.

Nmap comúnmente viene instalado en Kali Linux, pero si estas usando algun otro sistema operativo y no lo tienes, simplemente utiliza el comando:

sudo apt install nmap

Por otro lado, también estaré usando el programa “Wireshark”, más que nada para que se pueda apreciar de manera más visual lo que estará ocurriendo cuando ejecutemos determinada acción.

Wireshark es básicamente un analizador de protocolos de red y un sniffer, lo que significa que puede capturar y mostrar el tráfico de red en tiempo real.

Para descargarlo puedes acceder simplemente a su página oficial:

https://www.wireshark.org/

Ahora bien, una vez que tengas todo bien instalado y configurado, vayamos a lo interesante!

En mi caso voy a estar trabajando con mi máquina virtual Kali y mi máquina vulnerable Ubuntu de Metasploitable vistas en la instalación del blog pasado a este.

En el blog pasado creamos IPs dinámicas con “dhclient” en ambas máquinas para poder usarlas ahora.
Puedes volver a hacer un “ping” entre ambas para comprobar que tengan conexión nuevamente.

Para refrescar este apartado, recuerda que podías ver tu IP con el comando:

ip a

En mi caso tengo estas 2 IPs para mis máquinas:

  • Máquina izquierda: Ubuntu Metasploitable (ping IP hacía la máquina Kali)
  • Máquina derecha: Kali (ping IP hacía la máquina Ubuntu Metasploitable)

Bien, ¡ambas tienen conexión entre sí!

Vamos a ver ahora algunas de las herramientas de Nmap. En esta ocasión usaré sólo algunas de ellas ya que consta de muchas. Por ello, si te interesa sabes más acerca de las herramientas que ofrece, puedes acceder a la documentación para darle un vistazo en: https://nmap.org/docs.html

Como primera utilidad usaré el comando:

nmap -sn

Este sirve para detectar todos los Host que se encuentran en una red. Para verlo de ejemplo, voy a utilizar mi máquina vulnerable Ubuntu para comprobar que efectivamente se encuentre conectada dentro de nuestra red, o por el contrario no lo está. Para ello:

nmap -sn 192.168.211.133

¡Bien! Si te fijas en la imagen verás que ya nos está diciendo que hay 1 host corriendo. Pero ¿qué ocurre realmente detrás de esto?

Para ver el procedimiento más a fondo, ahora haré uso de Wireshark para poder comprobar que movimientos se producen a la hora de tratar de establecer la conexión con nuestra máquina Ubuntu.

Aquí ya podemos observar el tráfico de red que se ha generado para tratar de obtener la conexión:

Entre los puntos interesantes a destacar, podemos ver que en primer lugar, las primeras interacciones son provenientes de nuestra máquina principal. En mi caso Kali, que es la 192.168.211.130. Esta misma, se dirige hacía la máquina vulnerable que acaba en 133.

Ahora, está intentando obtener conexión por el protocolo TCP por el puerto 80. Seguidamente, trata de obtener conexión por el puerto 443. Esto lo puedes identificar siguiendo un orden el orden de izquierda a derecha desplazándote poco a poco. Verás que tienes el apartado “TCP”, que es por el protocolo donde ocurren las interacciones, y seguidamente, verás el puerto 80. Así sucesivamente puedes ir leyendo y aprendiendo a interpretar todas.

Ahora si te fijas en la tercera línea, esta vez está respondiendo la máquina Ubuntu acabada en 133 por el protocolo TCP:

Básicamente, esto quiere decir que hay algo corriendo por ese puerto, y que la máquina se encuentra en nuestra red al haber obtenido respuesta de la misma.

Una vez obtenida la respuesta, verás los 2 cuadrados en rojo donde aparece “RST”. Esto quiere decir que la conexión se corta allí mismo, ya que no hemos especificado la búsqueda de nada más.

Todo este procedimiento me gusta imaginarlo de una forma simple. Puedes pensar en ello como si nuestra máquina fuera a preguntar: ¿estás allí?

Y simplemente, la otra máquina le responde con un: ¡Si, aquí estoy!

Claro que si no hubiera ninguna respuesta por parte de la máquina Ubuntu, querrá decir que no se encuentra en nuestra red, o que no está activa.

Ahora bien, ¿qué ocurrirá si ejecutamos el mismo comando, pero esta vez, con privilegios? Pues, ¡vamos a verlo!

sudo nmap -sn 192.168.211.133

Es curioso porque esta vez no se está produciendo un intento de conexión por TCP, sino por el protocolo ARP. Básicamente, ARP trata de establecer la conexión mediante la MAC, la dirección física.

Si observas la imagen verás la primera línea, en la cuál, se está preguntando, ¿quién tiene está dirección IP 192.168.211.133? pregunta la 192.168.211.130.

En este caso, se enviará hacía toda nuestra red preguntando cual nodo tiene esta IP. Una vez que haya llegado hacía el que la tiene, responderá.

Seguidamente, le responde: La tengo yo, y su dirección física es la 00:0c:29…

Ahora ya sabemos que la máquina está levantada y se encuentra dentro de nuestra misma red. Pero, ¿cuál es la diferencia entre ejecutarlo con o sin privilegios?

Básicamente, una técnica es más intrusiva que otra. Es decir, con el primer comando sin “sudo” estamos estableciendo conexión de forma directa hacía diferentes puertos. Mientras que en la ejecución con “sudo” solamente enviamos la pregunta por toda la red sin establecer ninguna conexión concreta con el objetivo.

Ahora bien, si me llego a inventar la IP (alguna que no esté dentro de mi red) como por ejemplo, la 192.168.211.12, obtendrías algo así:

Básicamente, se harán las preguntas, pero no se obtendrá ninguna respuesta.

Ahora sí, espero que hayas podido aprender como detectar los nodos que corren en nuestra misma red.

¡Vamos a ver ahora algunas utilidades más de Nmap!

En este punto puede que te estés preguntando como reconocer todos los nodos que se encuentran en nuestra red sin necesidad de proporcionar la IP de una máquina concreta. Imagina ahora que nosotros no hemos levantado ninguna máquina y que te encuentras completamente a ciegas tratando de averiguar todos los nodos de una red.

Para ello, utilizaré el siguiente comando:

nmap -sn 192.168.211.0/24

En este caso, “/24” es para que sean escaneadas todas las direcciones IP en el rango de la red local, que irá desde la 192.168.211.0, hasta la 192.168.211.255. Gracias a ello, podremos escanear todos los nodos que estén dentro de la misma red, sin necesidad de especificar una en concreto.

Este es el resultado arrojado:

Ahora, nmap ha sido capaz de localizar 3 máquinas corriendo en mi red. Estas son las acabadas en 130, 132 y 133.

En mi caso la 130 es mi máquina Kali, la 133 la máquina Ubuntu, y la 132 es mi máquina host.

En Wireshark podemos observar lo siguiente:

Si te fijas en la primera línea, se trató de establecer conexión por TCP con la 192.168.211.1 haciendo la pregunta. Sin embargo, nadie respondió. Pero realmente esto no quiere decir que la máquina no esté funcionando, sino más bien que no hay nada corriendo por el puerto 80.

Así que seguidamente se siguieron haciendo las preguntas sin obtener respuestas por parte de ninguna. Pero fui deslizando hacía abajo y encontré las que sí estaban respondiendo:

Como ves, se preguntó por la máquina acabada en 133 y se obtuvo una respuesta por ARP. Seguidamente se estableció una conexión TCP con las máquinas 133 y 130, que son las máquinas Kali y Ubuntu. Seguidamente, se cerró la conexión y se siguió buscando. Claro que no tengo más máquinas levantadas, así que ya no encontraría nada más.

Otras de las utilidades interesantes de Nmap

Hay un comando muy popular que sirve para identificar si una máquina se encuentra levantada, que puertos tiene abiertos, y además, los servicios que corren ellos. ¿Magnifico verdad?

Para este ejemplo estaré usando la IP de la máquina vulnerable Ubuntu:

nmap -PS 192.168.211.133

¡Wow, menudo resultado!

Ten precaución con estas técnicas, ya que como comenté al inicio, esta es una técnica que produce una cantidad enorme de tráfico de red en comparación con las anteriores, ya que ni siquiera me cabría todo el tráfico producido en varias imágenes aquí, pero puedes comprobarlo por ti mismo abriendo Wireshark a la vez que ejecutas el comando. *Utiliza esta técnica con responsabilidad.

Igualmente, imagina que quieres obtener información únicamente sobre un sólo puerto, por ejemplo, el 80.

También lo puedes hacer con:

nmap -PS 192.168.211.133 -p 80

¡Genial!

En este blog ya has podido conocer de las cosas más importantes a la hora de hacer un análisis y comenzar a recopilar información para luego poder explotar las vulnerabilidades que encuentres.

Ten en cuenta que Nmap tiene muchísimas más herramientas, y que esta solo es una parte introductoria y fundamental. En otros blogs seguiré adelante con el uso de Nmap, por lo tanto podrás conocer otras de las tantas herramientas que nos ofrece.

Recuerda practicar mucho!

Y si tienes alguna sugerencia para este apartado del Blog, no dudes en dejarme un comentario.

Hasta pronto :)

--

--