Realizar un Pentesting sigiloso con Nmap



Nmap es una de las herramientas más poderosas para el escaneo de puertos, esta herramienta Open Source permite a los auditores de Seguridad realizar un completo escaneo de puertos, detectar si un host se encuentra activo, además permite detectar servicios con sus respectivas versiones. 
Por otro lado esta herramienta no es solo un simple escáner de puertos, ya que permite detectar vulnerabilidades a través de sus scriptps personalizados en lenguaje LUA.

Para realizar un Pentesting a una entidad en particular, es importante dejar la menor cantidad de rastros, por esta razón a continuación se explicará, como realizar un Pentesting adecuado con la herramienta nmap.

Lo primero que es importante mencionar es que nmap posee un rango de escaneo, el cual está definido dentro de los números del 0 al 5. ¿Para qué sirve esto?, principalmente cuando se requiere hacer un Pentesting, la forma más óptima de realizarlo es siendo sigiloso, de tal manera que cada uno de estos números representan la agresividad con la que se envían los paquetes hacía el(los) host(s). Un ejemplo de esto es lo siguiente.

Estructura:

nmap –T[0-5] target


Al escanear un host con la opción –T0 se tiene lo siguiente


El escaneo no tiene sentido ya que tardaría demasiado tiempo en ejecutarse.

Ahora se realizó un escaneo con el nivel de agresividad más alto.


El escaneo finalizó en 2.31 segundos, el problema de este escaneo es que deja muchos logs en el servidor auditado, por esta razón no se recomienda utilizar esta opción, lo más óptimo es realizar un escaneo entre los rangos T2 y T3.

Otra medida de realizar un escaneo sigiloso, es realizar un escaneo sin ping. Por defecto nmap realiza un ping al host antes de realizar un escaneo, en algunos casos se presentan dos escenarios, el primero es que nmap al ejecutar un escaneo por ping puede ser detectado por un IPS y esto es un problema, ya que al momento de realizar un escaneo se requiere la mayor cautela posible, el segundo caso es que en algunos casos al detectar que el escaneo por ping no fue exitoso hacia el host, nmap automáticamente envía un mensaje diciendo que el host no se encuentra habilitado, y no siempre es así. Por esta razón lo ideal es siempre realizar un escaneo que no verifique ping.


    


Otra forma de realizar un escaneo sigiloso es agregar la opción –f  , esta opción permite fragmentar los paquetes enviados, de tal manera que esto permitirá regularizar el tráfico enviado hacía el host.

Anexo a esto es importante conocer los servicios habilitados en dicho host y por supuesto sus respectivas versiones, para esto se encuentra disponible la opción –sV, la cual permite enumerar las versiones de los servicios que se encuentran corriendo en la máquina objetivo.

Estos son solo algunos de los métodos de escaneo sigiloso con nmap, además es posible obtener información sensible sobre los servicios que están corriendo en el host objetivo y de esta manera poder buscar si existen exploits asociados a cada uno de estos servicios. 

Como referencia, a continuación se mencionarán comandos de nmap para que los puedan probar:

Escaneo simple con Nmap

Escanear varios objetivos - nmap target1,target2,etc

Escanear un fichero con hosts - nmap -iL [list.txt]

Escanear una subred completa - nmap host/máscara

Opciones de Descubrimiento:

Realizar solamente una exploración de ping - nmap-sP [target]

No hacer ping - nmap -PN [target]

TCP SYN Ping - nmap -PS [target]

Ping TCP ACK - nmap -PA [target]

UDP ping - nmap -PU [target]

Ping SCTP ​​Init - nmap -PY [target]

Eco ICMP ping - nmap -PE [target]

Ping ICMP Timestamp - nmap -PP [target]

Ping ICMP de máscara de dirección - nmap -PM [target]

Ping protocolo IP - nmap -PO [target]

ARP ping - nmap -PR [target]

Traceroute - nmap -traceroute [target]

Fuerza resolución DNS inversa - nmap -R [target]

Deshabilitar resolución DNS inversa - nmap -n [target]

Alternative DNS lookup - nmap -system-dns [target]

Especifique manualmente los servidores DNS - nmap -dns-servers [servers] [target]

Crear una lista de host - nmap -SL [target]

Opciones Avanzadas de Escaneo:

TCP SYN Scan - nmap -sS [target]

TCP connect scan - nmap -sT [target]

UDP scan - nmap -sU [target]

TCP Null scan - nmap -sN [target]

TCP Fin scan - nmap -sF [target]

Xmas Scan - nmap -sX [target]

Escaneo TCP ACK - nmap -sA [target]

Custom TCP scan - nmap -scanflags [flags] [target]

Exploración protocolo IP - nmap -sO [target]

Enviar paquetes Ethernet - nmap -send-eth [target]

Enviar paquetes IP - nmap -send-ip [target]

Opciones de escaneo de puertos:

Realizar un análisis rápido - nmap -F [target]

Escanear puertos específicos - nmap -p [Puertos] [target]

Escanear puertos por nombre - nmap -p [nombre del puerto] [target]

Escanea los puertos de protocolo - nmap -sU-sT-p U: [puertos], T: [puertos] [target]

Analizar todos los puertos - nmap -p "*" [target]

Escanea los puertos principales - nmap -top-ports [número] [target]

Realice un escaneo de puertos secuencial - nmap -r [target]



Detección de versiones:

Detección del sistema operativo - nmap -O [target]

Enviar Fingerprints TCP/IP - www.nmap.org/submit/

Tratar de adivinar un desconocido - nmap –osscan-guess [target]

Servicio de detección de versión - nmap -sV [target]

Solución de problemas de las exploraciones versión - nmap -sV-version-trace [target]

Realizar un análisis RPC - nmap -sR [target]



Opciones de Sincronización:

Plantillas de temporización - nmap -T [0-5] [target]

Ajuste el paquete TTL - nmap –ttl [time] [target]

Mínima de las conexiones paralelas - nmap –min-parallelism [number] [target]

Número máximo de conexión en paralelo - nmap –max-parallelism [number] [target]

Tamaño mínimo grupo de hosts - nmap –min-hostgroup [number] [targets]

Tamaño máximo del grupo de acogida - nmap –max-hostgroup [number] [targets]

Máximo tiempo de espera RTT - nmap –initial-rtt-timeout [time] [target]

Tiempo de espera de RTT inicial - nmap –max-rtt-timeout [TTL] [target]

Intentos máximos - nmap –max-retries [number] [target]

Tiempo de espera de host - nmap –host-timeout [time] [target]

Retraso de exploración mínimo - nmap –scan-delay [time] [target]

Máximo retraso de la exploración - nmap –max-scan-delay [time] [target]

Tasa de paquetes mínimo - nmap –min-rate [number] [target]

Máxima velocidad de paquetes - nmap –max-rate [number] [target]

Derrota a restablecer los límites de frecuencia - nmap –defeat-rst-ratelimit [target]



Evasión de Firewall:

Fragmentar paquetes - nmap -f [target]

Especifique un MTU específico - nmap –mtu [MTU] [target]

Utilice un señuelo - nmap -D RND: [number] [target]

Exploración zombie inactivo - nmap -sI [zombie] [target]

Especifique manualmente un puerto de origen - nmap –source-port [port] [target]

Anexar datos aleatorios - nmap –data-length [size] [target]

Selección aleatoria de orden objetivo del análisis - nmap –randomize-hosts [target]

Spoof MAC Address - nmap –spoof-mac [MAC|0|vendor] [target]

Enviar sumas de comprobación incorrectas - nmap –badsum [target]





Opciones de Salida:

Guardar el resultado en un archivo de texto - nmap -oN [scan.txt] [target]

Guardar el resultado en un archivo xml - nmap -oX [scan.xml] [target]

Salida de grep - nmap -oG [scan.txt] [target]

Salida de todos los tipos de archivo - nmap -oA [path/filename] [target]

Periódicamente mostrar las estadísticas - nmap –stats-every [time] [target]

Salida 133t - nmap -oS [scan.txt] [target]



Solución y problemas de depuración:

Ayuda - nmap -h

Muestra la versión de Nmap - nmap -V

Resultados detallados - nmap -v [target]

Depuración - nmap -d [target]

Mostrar el Estado del puerto - nmap –reason [target]

Sólo mostrar los puertos abiertos - nmap –open [target]

Paquetes de rastreo - nmap –packet-trace [target]

Visualización de redes de acogida - nmap –iflist

Especifique una interfaz de red - nmap -e [interface] [target]



Utilización de scripts de Nmap:

Ejecutar secuencias de comandos individuales - nmap –script [script.nse] [target]

Ejecutar múltiples scripts - nmap –script [expression] [target]

Categorías Script - all, auth, default, discovery, external, intrusive, malware, safe, vuln

Ejecutar scripts por categorías - nmap –script [category] [target]

Ejecutar secuencias de comandos de múltiples categorías - nmap –script [category1,category2, etc]

Solucionar problemas de scripts - nmap –script [script] –script-trace [target]

Actualización de la base de datos de secuencia de comandos - nmap –script-updatedb



NDIFF:

Comparación con Ndiff - ndiff [scan1.xml] [scan2.xml]

Ndiff modo verbose - ndiff-v [scan1.xml] [scan2.xml]

Modo de salida XML - ndiff-xml [scan1.xm] [scan2.xml]


Esperamos que puedan aprender y utilizar bien esta herramienta, para nosotros es importante que ustedes crezcan en conocimiento y se conviertan en verdaderos profesionales de la Seguridad, muchas gracias y nos vemos en otra oportunidad

Comentarios

Entradas populares