F1r0x
Herramientas
GitHub
NMAP

¿Qué es NMAP?

Nmap es un programa de código abierto que sirve para efectuar rastreo de puertos y cuyo desarrollo se encuentra hoy a cargo de una comunidad. Fue creado originalmente para Linux aunque actualmente es multiplataforma. Se usa para evaluar la seguridad de sistemas informáticos, así como para descubrir servicios o servidores en una red informática, para ello Nmap envía unos paquetes definidos a otros equipos y analiza sus respuestas.

Este software posee varias funciones para sondear redes de computadores, incluyendo detección de equipos, servicios y sistemas operativos. Estas funciones son extensibles mediante el uso de scripts para proveer servicios de detección avanzados, detección de vulnerabilidades y otras aplicaciones. Además, durante un escaneo, es capaz de adaptarse a las condiciones de la red, incluyendo latencia y congestión de la misma.

Escaneo Básico:

nmap -p- --open -T5 -v -n [Ip]

-p- : Escanea todo el rango de puertos.

--open : Solo nos mostrará puertos con el estatus abierto.

-T5 : Controla el tiempo y el rendimiento del escaneo donde 1 es el más lento y 5 el más rápido.

-v : Verbose. Recopila los puertos abiertos por TCP y los reporta por consola.

-n : Anula la resolución DNS.

Escaneo Básico Guardando los resultados:

nmap -p- --open -T5 -v -n [Ip] -oG allPorts

-oG : Exportar los resultados en formato grepeable.

allPorts : Nombre del archivo. Si no existe lo creará.

De esta manera podremos revisar los puertos que estaban abiertos en cualquier momento.

Escaneo exhaustivo de Puertos definidos:

nmap -sC -sV -n -v -p[Port1,Port2] [Ip Víctima] -oN targed  

-sC : Lanza scripts básicos de reconocimiento.

-sV : Localiza la versión y servicio de los puertos definidos.

-p : Puertos a escanear. Ej: -p22,80

-oN : Reporta los resultados en formato nmap al archivo targed.

Escaneo Rápido Completo:

nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn [Ip Vícitma] -oG allPorts

-p- : Escanea todo el rango de puertos.

--open : Solo nos mostrará puertos con el estatus abierto.

-sS : El escaneo SYN realizar rápidamente, escaneando miles de puertos por segundo en una red rápida que no se ve obstaculizada por firewalls intrusivos.

-oG : Exportar los resultados en formato grepeable.

--min-rate : Controla directamente la tasa de escaneo. Nmap intentará mantener la velocidad de envío en 5000 paquetes por segundo o más.

-vvv : Triple verbose. Recopila los puertos abiertos por TCP y los reporta por consola. Cuanto más verbose más información reporta mientras se realiza el escaneo.

-n : Anula la resolución DNS.

-Pn : Omite el descubrimiento de Hosts.

Scripts específicos de Nmap:

Nmap contiene un gran número de scripts de reconocimiento, para verlos podemos filtrar las categorías por la extensión .nse.

locate .nse

Para ver el tipo de categoría de cada script de Nmap, podemos concatenar un xargs:

locate .nse | xargs grep "categories"

La sintaxis es muy simple, solo debemos añadir la opción --script delante del script que queramos utilizar:

nmap --script [Nombre del Script]

Escaneo mediante el script http-enum:

El script http-enum de Nmap actual como un fuzzer, aplicando un pequeño diccionario interno tratando de buscar directorios o archivos de interés.

nmap --script http-enum [Ip Víctima]

También podemos especificar puertos y guardar los resultados en un archivo (en este caso enumScan).

nmap --script http-enum -p [Puerto/s] [Ip Víctima] -oG enumScan

--script: Especifica que vamos a utilizar un Script.
-p: Especifica los puertos que vamos a escanear.
-oG: Exportar los resultados en formato grepeable.
enumScan: Nombre del archivo donde se guardan los resultados.

Escaneo mediante scripts por categorías:

Con Nmap también podemos especificar por categorías qué tipo de scripts queremos lanzar, recordar que podemos ver los distintos scripts utilizando el comando locate .nse | xargs grep "categories". La sintaxis básica del comando es la siguiente:

nmap --script "[Categorias]" [Ip Víctima]

Ejemplo:

nmap --script "vuln and safe" 10.10.10.10

nmap --script "vuln and safe" -p22,80,445 10.10.10.10

En este ejemplo vemos como estamos lanzando los scripts de las categorías vuln y safe a la dirección Ip Víctima por los puertos 22, 80 y 445. Para ver solo las categorías que existen independientemente de los scripts podemos verlas utilizando los siguientes comandos de filtrado:

Captura de pantalla 2022-08-03 110200

Como vemos en la imagen, se nos reporta por consola todas las categorías existentes que podemos emplear.

Escalada de privilegios con Nmap:

En múltiples ocasiones, una vez realizada la intrusión en el sistema, veremos como algunos de los equipos o sistemas tienen nmap instalado. En caso de que los privilegios sean los adecuados, se pueden usar para ganar acceso como root.

Para esto, en primer lugar, debe de tratarse de una versión de nmap que contenga el parámetro --interactive. Ahora, mediante el comando sudo -l podemos ver los permisos que tenemos como sudo:

sudo -l

Captura de pantalla -2022-05-29 16-19-01

Captura de pantalla -2022-05-29 16-20-21

Debemos de fijarnos que tengamos permisos sudo sobre nmap. En tal caso, utilizaremos el siguiente comando para establecer una shell interna:

sudo nmap --interactive

Captura de pantalla -2022-05-29 16-21-09

Una vez establecida la shell de nmap, usaremos la expresión !sh para acceder como root.

!sh

Captura de pantalla -2022-05-29 16-21-39

Directamente, pasaremos a estar registrados como el usuario root del sistema.

Opciones de Nmap.