NMAP
Recursos a disponer
Listado Hardware
Laptop
Monitor
Audifonos para juego + microfono integrado
Raton
Listado Software
Obs - Studio
Nmap
VLC
WPS Office
Maquina virtual Oracle (virtual box)
1 -C: Microsoft Windows 10
2 -C: Pfsense (instalacion basica)
¿Que es nmap?
Es una herrmienta Open Source, corre en multiples plataformas y sistemas
operativos, libres y privativos.
Es una herramienta de exploración de redes y de sondeo de seguridad (puertos), en
pocas palabras es un mapeador de puertos.
Este utiliza paquetes IP crudos (raw), para determinar que equipos en una red se
encuentran activos y disponibles.
Se basa en peticiones TCP, UDP, ICMP, SCTP, entre otros, e incorpora diversas
técnicas de escaneo.
¿Que cosas puede hacer nmap?
● Determinar que tipo de filtros de paquetes o cortafuegos se usan en una
determinada red.
● Nmap puede mostrarnos que tipo de puerto y protocolo estan abiertos (open),
cerrados(close), no filtrado (unfiltered), filtrado (filtered).
● Este puede obtener información como DNS por resolucion inversa de la IP
● Lista posibles sistemas operativos de esa red en analisis.
● Tipos de dispositivos(nombre, marca)
● Direcciones Mac (Mac Address)
Nmap su uso puede ser desde realizar comandos basicos hasta mas avanzados
para inclusive detectar y evadir firewalls, asi como por ejemplo puede mostrar
puertos abiertos para por ejemplo MOngoDb, MySQL, PostgreSQL, SSH, TELNET,
FTP, como punto de arranque o inicio para un atacante es de vital interes.
Se puede empezar un ataque a traves de diversos metodos, aplicaciones
automatizados como por ejemplo Metalsploit Framework, realizando ataques de
fuerza bruta (Diccionarios) a estos servicios mencionados anteriormente, donde
muchas veces no se configuran aspectods basicos como dejar credenciales por
defecto en servidores.
Negociacion en tres pasos:
Se da en el protocolo de transporte del modelo OSI
EL establecimiento de la conexión (negociación en tres pasos) Negociación en tres
pasos o Three-way handshake
Aunque es posible que un par de entidades finales comiencen una conexión entre
ellas simultáneamente, normalmente una de ellas abre un socket en un
determinado puerto tcp y se queda a la escucha de nuevas conexiones. Es común
referirse a esto como apertura pasiva, y determina el lado servidor de una conexión.
El lado cliente de una conexión realiza una apertura activa de un puerto enviando
un segmento SYN inicial al servidor como parte de la negociación en tres pasos. El
lado servidor respondería a la petición SYN válida con un paquete SYN/ACK.
Finalmente, el cliente debería responderle al servidor con un ACK, completando así
la negociación en tres pasos (SYN, SYN/ACK y ACK) y la fase de establecimiento de
conexión.
Determinar cual ip/red local - ip externa
Uso de los comandos (terminal linux) en caso de examinar la red en la que estamos
conectados.
1.- sudo ifconfig
2.- ip r
En caso de empezar el analisis de una IP de un host o site a analizar.
1.- ping
Modo de uso:
Su nomenclatura es esta:
nmap [Tipo de escaneo] [Opciones] {IP Objetivo }
Determinemos que tipo de version es nuestro nmap instalado:
nmap --version / nmap -v
1.- Empecemos con la instruccion base, es decir un escaneo simple.
Nmap {IP Objetivo }
Escanear objetivo, con una salida detallada de cada puerto que encuentre, con
parámetro -vv
nmap -vv IP
2. - Escaneo de puertos
Especificando un número de puertos por rango
nmap -vv -p 1-120 IP
Mostrando solo puertos abiertos de una IP
nmap --open IP
Escanear un numero de puertos más comunes del objetivo, en esta
instruccion se puede variar a nuestra eleccion la cantidad de puertos.
nmap --top-ports 20 IP
Detectar las versiones de los servicios remotos
nmap -sV IP
3. - Detectar Sistemas Operativos
Vamos a usar el parámetro -O, pero ya es momento de no usar PING en el escaneo
porque hace más ruido en el escaneo. Por lo que agregamos -Pn y sumamos un -v
para el detalle
nmap -v -Pn -O IP
Nmap -O -sV IP
4.- Mostrar paquetes enviados y recibidos
nmap --packet-trace 192.168.0.110
5.- Escanear IP’s por rango
nmap -vv 192.168.0.98-240
6. -Escanear multiples IP’s de manera salteada y/o especificas
nmap 192.168.0.4 192.168.0.8 192.168.0.21
o
nmap 192.168.23.4,8,21
7.-Escanear una red completa
usando -sn
nmap -sn 192.168.0.0/24
nmap -sn 10.10.15.0/24
8.- Para ver solo las IP’s encontradas podemos filtrar con grep.
nmap -sn 192.168.23.1/24 | grep "Nmap scan report for"
9.- Resolucion de nombres
nmap -sL
El parámetro (-sL) le dice a nmap que haga una consulta DNS simple para la ip
especificada. Esto le permite encontrar nombres de host para todas las direcciones
IP en una subred sin tener que enviar un paquete a los hosts individuales. Esto es
muy útil para detectar la presencia de Active Directory.
nmap -sL 190.202.124.124 Ejemplo
10. - Escaneo TCP Sync y UDP
La exploración TCP SYN y UDP tardará un tiempo en generarse, pero es bastante
discreta y sigilosa. Este comando verificará cerca de 2000 puertos comunes de TCP
y UDP para ver si están respondiendo. Cuando usamos la opción -Pn, esto le dice a
nmap que omita el escaneo de ping y asuma que el host está activo. Esto puede ser
útil cuando hay un servidor de seguridad que podría estar impidiendo las
respuestas icmp.
nmap -sS -sU -PN IP
TCP Sync /UDP a determinados puertos
nmap -sS -sU -PN -p 1-65535 IP
Escaneando puertos TCP y UDP
Nmap -sT IP
Escaneando solo a puertos UDP
Nmap -sU IP
11. - Buscar vulnerabilidades en un host
Utiliza una serie de scripts Lua que están ubicados en una ruta de nuestra máquina
(en el caso de Kali, en /usr/share/nmap/scripts/ ) y que se pueden invocar con
–script o su equivalente -sC.
Los scripts pueden pertenecer a una o varias categorías, de forma que podemos
pedir a nmap que evalúe, por ejemplo, todos los scripts de una categoría contra un
host. Hay algunas categorías especialmente interesantes como “vuln” (scripts
dedicados a detectar vulnerabilidades en el destino), “exploit”, etc.
Por ejemplo, si queremos escanear los scripts de categoría vulnerabilidad contra un
host.
nmap --script vuln scanme.nmap.org (host) (IP)
Ayuda, ataque, explotacion de una vulnerabilidad encontrada
Por ejemplo el script ha detectado una potencial vulnerabilidad
smb-vuln-regsvc-dos. Si analizamos los scripts que hay en la ruta
mencionada anteriormente, vemos que precisamente hay uno que explota
esta vulnerabilidad, llamado smb-vuln-regsvc-dos. Si queremos más
información sobre el script podemos lanzar el siguiente comando:
sudo nmap --script-help smb-vuln-regsvc-dos - asi determinamos
informacion de la vulnerabilidad
Otro ejemplo:
nmap -sV --script=vulscan/vulscan.nse www.example.com
nmap --script nmap-vulners -sV 11.22.33.44
nmap -Pn --script vuln 192.168.1.105
sudo nmap -vv --script=vuln 192.168.250.2
Explicándonos cómo funciona el script, cómo lanzarlo (es posible hacerlo
también con el propio nmap con –script y –script-args), etc. Podemos
también obtener por ejemplo una descripción de todos los scripts que
buscan vulnerabilidades:
nmap --script-help vuln
También podemos por ejemplo lanzar todos los scripts de un tipo
determinado. Por ejemplo, si queremos escanear vulnerabilidades sobre
protocolo SMB en un host determinado:
nmap --script smb-* 192.168.10.5
También podemos, por ejemplo, evaluar una vulnerabilidad sobre toda
nuestra red, escogiendo un script concreto contra un rango. El parámetro
–script
nmap --script-help vuln
nmap --script
12 .- Exploración pregresiva o niveles de hosts
A diferencia de algunos de los comandos anteriores, este comando es muy agresivo
y molesto. El -A simplemente le dice a Nmap para realizar la comprobación del
sistema operativo y la comprobación de versión. El -T4 es para la velocidad, estas
opciones son lo que le dice a la rapidez con nmap para llevar a cabo la exploración.
La velocidad varía de 0 para lento y sigiloso a 5 para rápido y obvio.
nmap -T4 -A IP/24
-T Define el nivel de exploracion del host/IP
-T0: Muy lento – No recomendable
-T1: Útil para evasión de IDS – Lento
-T2: No interfiere con el objetivo- Lento pero recomendable
-T3: Escaneo por defecto
-T4: Escaneo rápido y agresivo – No recomendable
-T5: Escaneo muy rápido y muy agresivo – No recomendable
12. - PRIMERO DEBO ACALRAR COMO REALIZAR UN ESCANEO Y DAR SALIDA COMO
FORMATO DE LECTURA .TXT
Guardar el resultado en un archivo de texto
nmap -oN scan.txt IP
o también podemos hacer
nmap IP > scan.txt
Guardar en un archivo .xml
nmap -oX scan.xml IP
Escanear equipos desde un archivo
Suponiendo que ya tenemos un archivo de texto por ejemplo, con una IP debajo de
la otra, o nombre de equipos, podemos indicar a nmap que trabaje con dicho
archivo.
nmap -iL /tmp/test.txt
13.- Excluyendo host de un escaneo completo de una red
En el caso de no querer escanear determinados equipos podemos excluir equipos
por ejemplo ahora voy a mostrar como quitar la ip que termina con .1 y .254
nmap 192.168.23.0/24 --exclude 192.168.23.1,192.168.23.254
14.- Determinar cuantos equipos Windows y Linux hay en una red
nmap -F -O 192.168.23.1-255 | grep "Running: " > /tmp/os; echo "$(cat /tmp/os |
grep Linux | wc -l) Linux device(s)"; echo "$(cat /tmp/os | grep Windows | wc -l)
Window(s) devices"
15.- Jugando con los Firewall
Una forma de no hacer tanto ruido, es usar el parámetro -f que permite fragmentar
los paquetes enviados, lo que no llamará tanto la atención y tal vez nos permita
pasar.
nmap -f IP
----Saber si un equipo esta protegido por un Firewall
Por ejemplo nmap -sA 192.168.1.254
----Usar otro número de MTU
nmap nos permite especificar el MTU (Maximum Transmission Unit), esto puede
confundir al firewall y revelarnos datos importantes, los números usados deben ser
múltiplos de 8 (8,16,24,32,etc)
nmap --mtu 24 IP
Enviar sumas de comprobación incorrectas
Las sumas de comprobación las usa el protocolo TCP/IP para garantizar integridad,
mandando comprobaciones incorrectas puede ayudarnos a descubrir información
del objetivo.
nmap --badsum 192.168.23.131
Utilizar señuelos
Esta opción es para evitar que un IDS nos detecte, así que creamos varios señuelos
para que no sepan cual es la ip atacante y tal vez hasta podemos confundir un
firewall mal configurado.
nmap -n -D 192.168.23.5,10.5.23.2,172.1.23.4,3.4.23.1 IP_Objetivo
Intentar Bypasear / Evadir un firewall con un script
nmap -sS -T5 192.168.23.131 --script firewall-bypass
Lanzar un ataque de DOS
Primero verificamos si el objetivo es vulnerable
nmap --script dos -Pn IP_Objetivo
Y ahora en mi ejemplo el objetivo era vulnerable a slowloris. El ataque sería:
nmap IP_Objetivo -max-parallelism 800 -Pn --script http-slowloris --script-args
http-slowloris.runforever=true
Si el Firewall interrumpe, corta o bloquea ese proceso podemos usar el parametro
-Pn