Obteniendo información con Nmap
La secuencia de comandos que vamos a utilizar, es más una recomendación que un estándar.
- Lo primero que haremos, es hacer un escaneo por defecto, que utilizará el top 1000 de los puertos de NMAP.
- Después haremos el escaneo de los 65535 puertos.
La idea de hacer esto, es comparar el resultado de los puertos frecuentes y el resultado de todos los puertos, podríamos encontrar alguna diferencia que pueda servirnos después.
- Una vez tengamos mapeados los puertos abiertos, vamos a listarlos, y utilizar otros argumentos de Nmap como (-sV), (-O), (-sC)
- Ahora que tengamos las versiones, el sistema operativo, y la mayoría de características que podamos obtener algún puerto y el servicio que corre en él, podemos utilizar los scripts de Nmap.
El primer paso, sería realizar un escaneo por defecto, de la lista de los puertos más frecuentes de NMAP.
root@b4rt$ nmap -Pn -192.168.1.28 -vv --reason
-Pn: Cuando sabemos que el host está activo, para que Nmap no vuelva a comprobar eso.
-vv: el nivel de verbosidad que tendrá la salida del comando. En este caso el nivel 2
–reason : Este flag nos mostrará información del tipo del porqué el puerto se encuentra en ese estado.
Los flags ‘-vv’ y ‘–reason’ nos ayudarán en algún momento, pues tal vez cierto tipo de escaneo resulte diferente, y tengamos que obtener más información.
-Como vemos en la imagen, el escaneo rápido de Nmap, nos miestra 3 puertos abiertos y uno filtrado.
-Con el Flag Reason, vemos que se realizó el escaneo sS, no se completó el saludo de 3 vias.
Ahora, el siguiente paso es realizar el escaneo a todos los puertos.
root@b4rt$ nmap 192.168.1.28 -T4 -p 1-65535 -vv --reason
– T4: Es el flag del control de tiempo de Nmap, por defecto se ejecuta T3, mientras mayor sea el número, la precisión será menor y el escaneo será más agresivo, para evadir algunos controles como IDS o IPS, es preferible usar un “T 1”, o “T 0”
–open: Nos mostrar’a todos los puertos abiertos, al buscar entre los 65535 vamos a requerir demasiado tiempo, este flag puede ayudarnos a reducir un poco el tiempo final.
root@b4rt$ nmap 192.168.1.28 -p 21,22,80,48500 -sV -O -vv --reason
-Como vemos en el output, el fingerprint logró identificar el servicio que corría en el Puerto 48500, era postgresql.
– Se identificó que utilizabamos un Linux,
– El servicio de OpenSSH, nos ayudo a determinar que es un Debian.
Debemos tener en cuenta el “tiempo” al realizar el escaneo, combinar los parámetros correctamente.
Además podemos utilizar estos argumentos:
— host-timeout : Es el flag que indica cual será el tiempo máximo que le daremos a Nmap para que obtenga información del host, mientras menor sea el tiempo, el escaneo será menos exacto.
–max-retries: Este flag nos indica cuantas veces Nmap va a preguntar por un puerto determinado.
Algunos ejemplos:
root@b4rt$ nmap 192.168.1.28 --host-timeout 60m --max-retries 10 -vv --reason
root@b4rt$ nmap 192.168.1.28 -p 1-65535 --host-timeout 120m --max-retries 5 -vvv --reason
Utilizar muy bien los tiempo es vital pues tal vez por apresurarnos Nmap no trabaje correctamente, además no siempre vamos a darle -T5, un es escaneo- fácilmente detectable, y al ser muy rápido, tiende a fallar si la red no es la adecuada. En la página del autor se recomienda usar -T4. Al final, todo va a depender mucho de las circunstancias, aquí hay una tabla de los templates que maneja NMAP.
En el siguiente post veremos como utilizar los Scripts de Nmap para realizar algún tipo de ataque, pues cómo explicaba al inicio, Nmap no sólo sirve para obtener iformación…