Si no has trabajado en temas de seguridad seguramente necesite presentar a nmap, en caso contrario no necesita presentaciones. Para los que no lo conozcan aĂșn, decir que nmap es una herramienta de cĂłdigo abierto muy prĂĄctica. Sirve para rastrear puertos, servicios y otro tipo de informaciĂłn de una mĂĄquina remota. Fue escrita originalmente por Gordon Lyon, aunque hoy dĂa participe una gran comunidad en su desarrollo.
Gracias a ella se puede testar la seguridad de diversos sistemas informĂĄticos, descubriendo servicios u ordenadores conectados a una red para intentar conseguir informaciĂłn sobre ellos y ver algunas posibles vulnerabilidades o puntos de entrada. Para que eso sea posible, esta herramienta escrita en varios lenguajes de programaciĂłn enviarĂĄ una serie de paquetes de red definidos a otros equipos de la red y analizarĂĄ sus respuestasâŠ
La cantidad de opciones que posee es muy grande. Por tanto, también puede ofrecer gran cantidad de funciones. Incluso se pueden usar los diversos paråmetros que le puedes pasar al comando para adaptarse a diferentes tipos de latencia y congestión, evadir ciertas barreras y realizar varios tipos de escaneos que ahora analizaremos.
Ejemplos prĂĄcticos de nmap
Nmap es una herramienta muy compleja, y no se explica su uso desde el principio, pero sĂ que voy a mostrar algunos ejemplos prĂĄcticos reales muy interesantes. Para ello, voy a crear varias categorĂas y en cada una de ellas explicar algunos casos de aplicaciĂłn. AdemĂĄs, tampoco explico cĂłmo se instala esta herramienta, que no suele venir instalada por efecto en la mayorĂa de distribuciones GNU/Linux, solo en las destinadas a seguridad como Kali Linux, Parrot OS Security, etc.
Ten paciencia, en ocasiones puede arrojar datos muy rĂĄpidamente, en otros casos podrĂa tardar un rato en mostrarlos. AsĂ que no te desesperes, aunque parezca que la herramienta no estĂĄ haciendo nada, estarĂĄ analizando. Puedes tomar un cafĂ© mientras o hacer algo para distraerte⊠Pero al final, darĂĄ sus resultados.
Ademås, te recomiendo que uses måquinas virtuales o tus propios dispositivos de casa para evitar problemas. Practica con eso y asà no tendrås tentaciones de meterte en problemas mayores⊠Desde LxA no nos hacemos responsables de para qué lo uses.
Si no te simpatiza demasiado trabajar con la lĂnea de comandos, tienes la opciĂłn de usar Zenmap, una GUI oficial para este proyecto y asĂ facilitar un poco las cosasâŠ
Barrido de ping
Algunos ejemplos para realizar un barrido de ping con nmap, es decir, un mĂ©todo para establecer el rango de IPs que estĂĄn asignadas a los hosts. Dicho de otro modo, para descubrir dispositivos en lĂnea dentro de una red o rango. Para ello, tan solo tienes que ejecutar el siguiente comando (ambos son equivalentes):
nmap -sP nmap -sn
Pero si lo que quieres es descubrir todos los hosts de una red de clase C, puedes modificar el anterior comando y ejeuctarlo de esta otra forma:
nmap -sP 192.168.0.*
El * es un carĂĄcter comodĂn, es decir, representa cualquier valor. Pero tambiĂ©n puedes filtrar o afinar un poco mĂĄs al usar nombres de hosts (p.e.: server1.ejemplo.com), direcciones IPs concretas, rangos (p.e.: 192.168.1.1-20), una subred (p.e.: 192.168.1.0/24).
Definir puertos en el escĂĄner
Para definir puertos con nmap, puedes usar la bandera -p seguido del nĂșmero de puerto concreto que quieres analizar o tambiĂ©n una lista de puertos separados por comas para hacerlo sobre varios:
nmap -p 80, 21 192.168.0.*
TambiĂ©n puedes especificar rangos, como sucedĂa con las IPs, para ello, puedes usar el guiĂłn para definir el principio y final del escaneo:
nmap -p 21-80 linuxadictos.com
Y se pueden usar rangos de IPs y de puertos a la vez, incluso varios tramos de rangos, la verdad es que las combinaciones son bastante grandes. Usa tu imaginaciĂłn, pero aquĂ tienes otro ejemplo de ello:
nmap -p 21-23,1000-2000 192.168.1.1-14
El anterior comando buscarĂa solo entre los puertos 21 y 23, 100 hasta 2000 y saltarĂa el resto de puertos. Con las IPs algo similar, desde la 1 a la 192.168.1.14.
EscĂĄner ARP
Un escĂĄner con el protocolo ARP se puede hacer de forma bastante sencilla. Lo puedes hacer normal o sin ARP como muestro en estos dos ejemplos respectivamente:
nmap -sP -PR 192.168.*.* nmap -sn --disable-arp-ping 192.168.0.*
Nuevamente vuelvo a repetir, con este tipo de sondeo rĂĄpido y fiable por ARP, tambiĂ©n puedes jugar con rangos de puertos, rangos de IPs, nombres de dominio, etc. Los puedes ir combinando como te plazcaâŠ
EscĂĄner FIN
Es un sondeo mĂĄs agresivo. Ya sabes que existen tres tipos fundamentales de escaneo, el NULL (-sN), FIN (-sF) y Xmas (-sX). El primero no activa ningĂșn bit, el flag de la cabecera de TCP es 0. En el segundo caso, que es el que nos importa para este ejemplo, se usa el bit FIN. En el Ășltimo caso, se usan los flags FIN, PSH y URG.
Unos ejemplos con FIN serĂan:
nmap -sF -T4 192.168.1.4-8 nmap -sF -T2 192.168.1.6
Por cierto, -T es para especificar templates de Timing. Los nombres son paranoid o 0, sneaky o 1, polite o 2, normal o 3, agressive o 4 e insane o 5. Puedes especificar el que necesites en cada momento, por ejemplo -T4 es el recomendado para una red local. Eso puede ser en funciĂłn de si quieres evadir ciertos mecanismos de defensa, segĂșn el ancho de banda, etc.
EscĂĄner NULL
El siguiente tipo de escĂĄner: NULL. Ejemplos de cĂłmo se harĂa este tipo de sondeo:
nmap -v -sN -p 8080 server1.ejemplo.com nmap -sN -T5 192.168.1.4
Como vez en esos ejemplos, también se pueden usar los templates que he comentado antes⊠No quiero ser repetido, pero ya sabes que puedes ir combinando las opciones y paråmetros como quieras, con bastante flexibilidad.
Recuerda que tanto NULL, XMAS y FIN no pueden distinguir entre puertos abiertos y filtrados en muchos escenarios. Para ayudar a nmap a que los pueda distinguir, puedes usar la opciĂłn -sV:
nmap -sN -T2 -sV -p 80,21,23 192.168.4.1
EscĂĄner Xmas
El sondeo «Navidad»
nmap -sX -T2 -v2 -p 80 192.168.1.4
En este caso he introducido otra nueva variable, y es -v, que especifica el nivel de detalle que quieres. En este caso es 2, en vez del modo verbose normal que serĂa con -v. Se puede aplicar a los anteriores comandos tambiĂ©n si lo necesitas.
MĂĄs ejemplos con nmap
A parte de los anteriores, también puedes usar otras de la enorme cantidad de opciones de las que dispone nmap. Por ejemplo, si quieres descubrir el tipo de sistema operativo en un sondeo, puedes usar la opción -O:
nmap -sV -O -v 192.168.4.1
Por otro lado, tienes que conocer que nmap puede usar una serie de scripts muy prĂĄcticos que pueden extender aĂșn mĂĄs sus capacidades y encontrar, por ejemplo, vulnerabilidades. Para actualizar la base de scripts de nmap usa:
nmap --script-updatedb
Para usar estos scripts, puedes hacer lo siguiente:
nmap -f -sS -sV --script auth 192.168.4.4
Observa que he usado auth, pero puedes usar mĂĄs opciones:
- auth: ejecuta todos sus scripts disponibles para autenticaciĂłn
- default: ejecuta los scripts bĂĄsicos por defecto de la herramienta
- discovery: recupera informaciĂłn del target o vĂctima
- external: script para utilizar recursos externos
- intrusive: utiliza scripts que son considerados intrusivos para la vĂctima o target
- malware: revisa si hay conexiones abiertas por cĂłdigos maliciosos o backdoors (puertas traseras)
- safe: ejecuta scripts que no son intrusivos
- vuln: descubre las vulnerabilidades mĂĄs conocidas
- all: ejecuta absolutamente todos los scripts con extensiĂłn NSE disponibles
TambiĂ©n puedes usar script especĂficos para descubrir una vulnerabilidad concreta. Por ejemplo la SMB ms08-067:
nmap -p 445 --script smb-vuln-ms08-067 192.168.4.*
La cantidad de herramientas disponibles como ves son muy numerosas. Otra opciĂłn mĂĄs, y con esto ya termino, serĂa realizar una comprobaciĂłn de si es vulnerable a un ataque de fuerza bruta contra el protocolo SSH:
nmap --script ssh-brute.nse 192.168.41.14
MĂĄs informaciĂłn
Para mås información, puedes usar el comando man en tu distro y también este otro manual online. Allà encontrarås todo lo que necesitas saber sobre esta compleja herramienta.
man nmap
No obstante, espero que estos ejemplos te sirvan de algo, ya sabes que puedes dejar tus comentariosâŠ