Reconocimiento de host
Técnicas para escanear puertos en un host
Existen varias técnicas para escanear puertos con Nmap.
Técnica TCP SYN
Para conocer los puertos abiertos de un host, se puede ejecutar:
nmap -sS 192.168.1.10
La opción sS nos permite ejecutar el scan TCP SYN que permite obtener un listado con los puertos en estado abierto y con el servicio conocido a ese puerto de un host específico. Por ejemplo, si encuentra el puerto 22 abierto nos indica que el servicio es SSH, tener en cuenta que por lo general los puertos de los servicios son configurables, si SSH funciona por otro puerto, nmap no nos va a indicar el servicio correcto.
Consultar un puerto en particular:
nmap -PN -p8080 192.168.1.10 en este caso, consulta por el puerto 8080 del host indicado.
Por ejemplo, el puerto por default dónde escucha PostgreSQL es el 5432. Para verificar si un host lo tiene abierto se puede hacer:
nmap -PN -p5432 <IP>
Referencias:
https://nmap.org/book/man-port-scanning-techniques.html
Ejecutar pruebas de autenticación en servicios de un dominio
Para ejecutar pruebas de autenticación en diferentes servicios se puede usar el siguiente comando de Nmap:
# nmap -f -sS -sV --script auth labsys.frc.utn.edu.ar
El programa Nmap incluye varios scripts, uno de ellos es el script que prueba autenticación frente a diferentes servicios. Básicamente las pruebas se basan en usuarios por default y claves vacías como así también ataques de bypass conocidos.
También se puede usar:
# nmap -f -sS -sV --script brute labsys.frc.utn.edu.ar
El anterior comando utiliza técnicas de fuerza bruta para adivinar credenciales.
Ejecutar pruebas de vulnerabilidades conocidas en servicios de un dominio
# nmap -f -sS -sV --script vuln labsys.frc.utn.edu.ar
Ejecutar pruebas de denegación en servicios de un dominio
# nmap -f -sS -sV --script dos labsys.frc.utn.edu.ar
Obtener puertos abiertos
Usando comando lsof
Si tenés acceso a root de un Linux podés utilizar el siguiente comando para encontrar los PIDs de los procesos que escuchan en cierto puerto:
# lsof -t -i:PORT
Luego podés buscar de qué proceso se trata usando:
ps ef | grep PID
Consultar todos los puertos abiertos
sudo lsof -i -P -n | grep LISTEN
Usando paquete net-tools
Para listar los puertos que están escuchando conexiones entrantes ejecutar:
# netstat -pnlt
Donde:
- La opción p permite mostrar el programa.
- La opción n muestra la dirección (ip y puerto) en forma de número.
- La opción l muestra los puertos que están escuchando conexiones entrantes.
- La opción t muestra las conexiones TCP.