Running scans with Nmap
Distintos ejemplos de como correr variados tipos de scans usando Nmap.
Last updated
Distintos ejemplos de como correr variados tipos de scans usando Nmap.
Last updated
En esta práctica veremos como usar nmap para realizar distintos tipos de escaneos mediante los cuales obtendremos distintos detalles de nuestro objetivo. Para esta práctica voy a usar un laboratorio local que tengo creado para practicas de Active Directory como objetivo. Este lab corre en VMware localmente y consta de los siguientes equipos:
Tipo
IP
DC: Controlador de Dominio
192.168.31.131
Client1: Win 10 Enterprise
192.168.31.132
Client2: Windows 10 Pro
192.168.31.133
Este lab esta destinado a practicar ciertas vulnerabilidades de varios tipos, algunos de ellos detallados a continuación:
LLMNR and NBT-NS Poisoning
SMB Relay Attacks
Kerberoasting
BloodHound and other enumeration tools
Golden Ticket
Token Impersonation
IPv6 DNS Takeover Attacks
Credentials Dumping with Mimikatz
Esta práctica no cubre las vulnerabilidades mencionadas ni la creación del lab, únicamente lo usaremos como objetivo para aprender los distintos tipos de escaneos.
Teniendo esto en cuenta debería servirnos para obtener información mediante los distintos tipos de scan usando Nmap que veremos en esta práctica.
En esta primer parte del práctico veremos los escaneos más simples que podemos realizar con nmap.
Lo primero que podemos probar es como hacer ping a nuestro objetivo. Por el momento comencemos por un solo IP objetivo, el del controlador de dominio.
Para hacer un simple scan de un host con nmap podemos hacer uso del siguiente switch -sn
, el mismo nos devuelve varios detalles del objetivo aparte de informarnos si el host esta activo, como ser la latencia y la dirección MAC del host.
-sn: Ping Scan - disable port scan
El comando completo queda de la siguiente manera:
nmap -sn 192.168.31.131
El uso de sudo
no es necesario para este scan.
Con este simple scan obtuvimos la siguiente información de nuestro objetivo:
Info Obtenida
Valor
Estado del Host (Activo/Inactivo)
Host is up
MAC Address
00:0C:29:1C:F8:3D (VMware)
Latencia
0.00039s
Para detectar el sistema operativo del objetivo podemos usar el siguiente switch de nmap: -O
. Lo que nos devuelve el siguiente output en la consola:
El comando completo nos queda de esta forma:
sudo nmap -O 192.168.31.131
Este switch requiere ser ejecutado con privilegios.
Como vemos este scan no solo intenta detectar el SO (OS fingerprinting), sino que también ejecuta algunos análisis adicionales como ser detección de puertos comunes y detección de servicios corriendo en cada puerto.
En este caso vemos que no fue posible detectar el SO correctamente, posiblemente por alguno de los ajustes que tengo realizados en el laboratorio local. Es importante saber que disponemos de un switch alternativo para intentar detectar el SO más agresivamente: --osscan-guess
.
Veamos como es el output cuando logra detectarlo correctamente:
También vemos que incluye los datos que vimos en el scan anterior.
Info Obtenida
Valor
Listado de puertos abiertos y sus servicios
PORT STATE SERVICE
53/tcp open domain
88/tcp open kerberos-sec
135/tcp open msrpc
139/tcp open netbios-ssn
389/tcp open ldap
445/tcp open microsoft-ds
464/tcp open kpasswd5
593/tcp open http-rpc-epmap
636/tcp open ldapssl
3268/tcp open globalcatLDAP
3269/tcp open globalcatLDAPssl
Distancia de red hasta el host
1 hop
Posible Versión del Sistema Operativo (Host de ejemplo)
Windows XP SP3 o Windows Server 2012
Para escanear determinados puertos podemos hacer uso del switch -p
el cual nos permite especificar una serie de puertos específicos, sobre los cuales realizar un scan.
El comando queda de esta manera:
nmap -p 53,88,389,445 192.168.31.134
De esta manera podemos escanear los puertos deseados.
Si queremos escanear por un rango de puertos en particular podemos hacerlo de la siguiente forma:
nmap -p 54-445 192.168.31.131
Si en cambio queremos escanear todos los puertos podemos hacerlo de la siguiente manera, usando el switch -p-
.
El comando queda de esta forma:
nmap -p- 192.168.31.131
Para este host en particular use el switch -Pn
que nos permite indicarle a nmap que no realice pings. Necesario para objetivos que no responden a ping (ICMP) echo requests.
Para realizar un escaneo que nos ayude a identificar las versiones de los servicios que están corriendo en el objetivo podemos hacer uso del siguiente switch -sV
.
El comando queda de esta forma:
nmap -sV 192.168.31.131
Si queremos realizar un escaneo completamente abierto, podemos hacer uso del switch -sT
. En este tipo de escaneo generalmente nos asegura una respuesta dado que la sesión se inicia en su totalidad (SYN, SYN+ACK, ACK, RST).
Importante: Este escaneo es fácilmente detectado por firewalls y otras medidas de seguridad.
Para realizar este scan el comando queda de la siguiente manera:
nmap -sT 192.168.31.131
En muchos casos necesitamos realizar escaneos sin alertar o disparar detecciones del lado del objetivo. Para estos casos nmap cuenta con el switch -sS
. En este tipo de scan la sesión no se completa correctamente, y únicamente los paquetes SYC, SYNC+ACK y RST
son utilizados. Cuando el objetivo responde, el cliente en vez de responder con ACK
responde directamente con RST
.
Este comando requiere de privilegios para correr (sudo).
Para ejecutar este tipo de scan el comando queda de la siguiente forma:
nmap -sS 192.168.31.131
Como explique antes el switch adicional -Pn
es necesario para hosts que no responden a ping requests (ICMP Echo Requests) como es el caso de este objetivo que estoy usando.
Si queremos obtener un panorama general de los equipos que están activos en la red que estamos escaneando podemos hacer uso del switch -sP
. El mismo puede llevar un tiempo terminar dependiendo que tan extensa sea nuestra red. En Este caso el lab objetivo es bastante pequeño.
Podemos usar el comando de esta manera:
nmap -sP 192.168.31.*
Notemos que en este caso estamos pasando parte del IP, e indicamos el último valor como *
para que nmap automáticamente escanee todos los equipos que formen parte del mismo subnet.
Alternativamente podemos hacer uso de los switches
-PS (SYN Ping) o -PR (ARP Scan)
los cuales nos regresan resultados como estos:
De momento no explicaremos el uso de los switches/flags adicionales que puedes ver en la imagen anterior. Cubriremos esos más adelante en esta práctica.
Nmap incorpora scripts (NSE) que nos permiten indicar si durante el escaneo queremos que nmap también intente correr los scripts con los que viene incorporados. Estos scripts prueban vulnerabilidades comunes que pueden aportar buena información sobre el objetivo y sobre como lograr explotarlos para obtener acceso. Esto se realiza mediante el switch -sC
.
El comando para este tipo de scan es el siguiente:
nmap -sC 192.168.31.131
Vemos que los resultados que obtenemos incluyen mucha información sobre el controlador de dominio (en este caso) escaneado. Estos resultados varían dependiendo de que objetivo estemos escaneando y cuales sean las vulnerabilidades que nmap pueda detectar para cada caso en particular.
En esta parte del práctico veremos algunos escaneos más avanzados y comenzaremos a usar varios switches o flags al mismo tiempo en nuestros comandos.
Digamos que quiero obtener rápidamente toda la información que vimos, en los escaneos individuales, para tener un panorama general del objetivo lo más pronto posible. Normalmente cuando ejecuto un scan con nmap para algún laboratorio comienzo teniendo en cuenta lo siguiente:
Tipos de datos que necesito obtener
Tipos de datos que me gustaría obtener
Que tan rápido quiero obtener los resultados
Usualmente en los labs de práctica o challenges del tipo Capture The Flag (Captura la bandera), utilizo el siguiente set de switches o flags de nmap:
sudo nmap -sC -sV -Pn -p- -T5 -O -v -oN results 192.168.31.131
Como podemos ver en esa línea anterior, hay varios switches o flags nuevos que estamos pasando a nmap que no hemos visto en esta práctica aún. Veamos uno a uno que función cumplen.
Switch/Flag
Función
-T5
Indica la velocidad del scan. Valores posibles 1 a 5, siendo 5 el más alto. (Aumenta la detención de nuestro scan por parte de los mecanismos de defensa que tenga el objetivo)
-v
Indica a nmap que debe producir output verboso, proveyendo al usuario con mucho detalle sobre cada scan y su resultado.
-oN <archivoSalida>
Indica a nmap que debe generar un archivo de salida con los resultados. En este caso en formato común (texto).
Este tipo de escaneo suele resultar en un output extenso en la consola, por eso es buena idea guardarlo directamente a un archivo para consultarlo cuando sea necesario.
El resultado de este scan en su totalidad de puede ver en el siguiente bloque, dado que no amerita capturarlo en imágenes en su totalidad:
De esta forma vimos variados tipos de escaneos que podemos realizar con nmap para obtener importante información sobre nuestro objetivo. En la siguiente sección recopilaremos rápidamente todos los datos que logramos obtener a lo largo de esta práctica sobre el objetivo escaneado.
En esta parte recopilaremos y presentaremos toda la información que obtuvimos de todos los tipos de escaneos practicados.
Durante esta práctica vimos de que manera podemos utilizar un subset de funcionalidades ofrecidas por nmap para realizar distintos tipos de escaneos a nuestro objetivo con el fin de obtener una serie de detalles para nuestro pentest.
Dato
Detalle
Puertos abiertos y servicios (DC)
53 (domain Simple DNS Plus) 135 (MS Windows RPC) 139 (MS Netbios SSN) 445 (MS DS) 49703 (MS Win RPC) 9389 (.NET Message Framing) 49667 ( MS Win RPC) 3268 (MS Active Directory LDAP)
3269 (MS Active Directory LDAP) 636 (SSL LDAP) 49674 (MS Win RPC) 49666 (MS Win RPC) 593 (MS Win RPC Over HTTP 1.0) 5985 (Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP))
49673 (Microsoft Win RPC over HTTP 1.0)
88 (MS Kerberos)
464 (kpasswd5)
49710 (MS Win RPC)
49686 (MS Win RPC)
389 (MS Active Directory LDAP).
Domain Controller Domain Name
Chukaro-DC.CHUKARO.local
Sistema Operativo
MS Windows
Equipos activos en la subnet del DC
192.168.31.1
192.168.31.2
192.168.31.131 (DC) 192.168.31.31.132 (Client1) 192.168.31.31.133 (Client2)
192.168.31.31.134
Hasta acá llegamos con esta práctica de scanning con nmap, vimos como ejecutar distintos tipos de scan para obtener variadas piezas de información y aprendimos el usó básico de nmap.
Estas prácticas están sujetas a modificaciones y correcciones, la versión más actualizada disponible se encuentra online en el siguiente link.