Pentesting – Escaneo de información
Table of Contents
ToggleFase 2 del Pentesting
En esta segunda fase, luego de haber recopilado información, procederemos a realizar Pentesting a través del escaneo de información. Esto consiste en buscar vulnerabilidades y detalles vía enumeración de equipos del sistema. Por ejemplo, protocolos, estados, servicios, usuarios, versiones del sistema, entre otros…
Esta fase es de vital importancia ya que, dependiendo del funcionamiento de nuestro objetivo y las vulnerabilidades que vayamos encontrando, será en mayor o menor medida la efectividad de nuestro ataque.
Comando nmap
NMAP es una poderosa herramienta de escaneo de red para auditorías de seguridad y pruebas de penetración. Como así también, una herramienta de diagnóstico por los administradores o técnicos en redes. Dentro del campo del Pentesting, nmap es la herramienta de escaneo de información más usada por profesionales. Puede encontrar más información detallada en el apartado de comandos de auditoría.
Es de vital importancia que, en caso de usar máquinas virtuales para practicar con esta herramienta, tengamos dichos equipos en “Bridge Adapter” (Adaptador Puente)
Preparando el entorno de trabajo
Primero debemos verificar que las conexiones estén en red. Para esto podemos realizar un escaneo de tipo ping como vemos a continuación:
nmap –sn 192.168.100.*
Como vemos nos devuelve todos los dispositivos conectados en la red.
Cabe aclarar que dicho comando envía una solicitud del tipo eco ICMP-TCP-SYN indicando que no se realice un escaneo de puertos, permitiendo así un reconocimiento de la red más ligero sin llamar mucho la atención. Esto es más confiable que hacer ping en la dirección de transmisión porque muchos hosts no responden a las consultas. No obstante, cuando un usuario privilegiado intenta escanear objetivos en una red ethernet local, se utilizan solicitudes ARP a menos que se haya especificado –send-ip. Un pequeño detalle, pero muy importante en esta fase para tener en cuenta los sistemas de seguridad.
Con el comando ip a (o ifconfig) vemos que nuestra dirección IP de la máquina Kali es la 192.168.100.189. Y nuestra máquina virtual Windows 7 es la 192.168.100.187, cuyo dispositivo será nuestra máquina víctima en estas prácticas.
Ahora bien, verifiquemos la dirección IP en nuestro Windows 7 y, si tenemos conexión con Kali:
Como vemos, no solo verificamos que nuestra dirección IP en Windows 7 es la 192.168.100.187 sino, que también tenemos conexión con nuestra máquina Kali.
Escaneo básico
Luego, una vez sepamos cuales son los dispositivos conectados en la red, y cual será nuestro objetivo (máquina virtual windows 7), procederemos a buscar información con respecto a los puertos y servicios. Para esto, usaremos el siguiente comando:
nmap –nP 192.168.100.187
Como podemos ver, esta opción aplica resolución ARP, es decir, omite el descubrimiento de hosts para no ser detectado y aumenta la velocidad y el sigilo del escaneo. En el caso de querer analizar puertos en específico, podemos usar la opción –p, por ejemplo:
nmap –p 135,139,445 192.168.100.187
No obstante, con la opción -p- podremos escanear los 65535 puertos que existen en una red.
A veces, podemos ahorrarnos el paso de escanear toda una red para buscar direcciones IP. Es decir, si estamos en una empresa y ésta nos indica que solo podemos escanear algunas direcciones IP, lo que haremos es guardar dichas direcciones en un archivo y, realizarles todo tipo de escaneo. Lo que haremos primero será crear (mediante algún editor de texto, como Vim o nano) el archivo ip.txt y guardar la direcciones IP de nuestras máquinas virtuales Windows 7 (192.168.100.187) y Debian 11 (192.168.100.190) en dicho archivo.
Luego procederemos a usar el siguiente comando:
nmap –nP –iL /home/kali/Desktop/ip.txt
Con la opción –iL le hemos especificado la ruta del archivo y podemos notar la diferencia de escaneo entre una máquina y otra.
Si queremos saber la versión del servicio de cada puerto utilizado, usaremos la siguiente opción:
nmap –sV 192.168.100.187
Es importante que cuando analicemos un sistema operativo sepamos la versiones que usan sus servicios ya que, en caso de que algunas de estas se encuentren desactualizadas, podremos suponer que estamos frente a una vulnerabilidad, y así, podremos usarla a nuestro favor explotándola.
Escaneo Avanzado
Podemos identificar que dicho sistema operativo tiene archivos compartidos en la red a través del servicio SAMBA. Y no solo eso, en caso de que no sepamos qué sistema operativo pertenece a dicha dirección IP, con esta opción podremos saberlo como se muestra. Esto también es muy necesario ya que hay varios sistemas operativos con vulnerabilidades, como es el caso de Windows 7 con su vulnerabilidad EternalBlue, entre otras.
Una forma muy útil, usada mediante script, es la opción –sC para obtener más detalles. Veamos dicho ejemplo:
nmap -sC 192.168.100.187
Aparte del sistema operativo y el workgroup, también podemos ver que nos trae el nombre de usuario “tiner”, logueado en dicho sistema operativo.
Ahora bien, si queremos unir las opciones anteriores –sV –sC podemos hacerlo mediante la opción –A. Sin embargo, debemos tener en cuenta en que, no solo tardará un poco en cargar dicha información, sino que la utilización de esta opción es muy alarmante. Por lo que tendremos que tener cuidado con que direcciones IP lo practicamos. Veamos los resultados que nos trae esta opción:
nmap –A 192.168.100.187
Como podemos ver, con esta opción vamos a obtener sistemas operativos, versiones de servicio y utilizará script de nmap para más información.
Buenas Prácticas
Para empezar, y no marearnos con las opciones y el uso de las mismas, simularemos un pentesting o auditoría, empezando por el escaneo de información que veremos a continuación:
Primer Escaneo
Empezaremos por un reconocimiento básico de nuestro objetivo:
# nmap -p- –open -T4 -v -n IP_ADRESS
Lo que hemos hecho, es escanear los 65535 puertos existentes con un filtro de «open». Es decir, todos aquellos puertos que se encuentren en modo filtrado o cerrado serán descartados. A su vez con, le indicamos un temporizado (-T4) no más lento que 4000 paquetes por segundo. Su rango es de 1-5, por tanto a menor número más lento el proceso (pero menos alarmante). Y a mayor número, más exhaustivo (y alarmante). Finalmente con -v indicamos el modo verboso para ver el procedimiento por pantalla y con -n evitamos la resolución DNS.
Si queremos que vaya un poco más rápido nuestro escaneo, podemos agregar las opciones -sS, -vvv y –Pn (Recomendado en plataformas de práctica).
Segundo Escaneo
Supongamos que obtuvimos los puertos abiertos 80 y 22. Los mismos corresponden, por lo general, a los protocolos http (80) y ssh (22). Ahora, procederemos a un escaneo con mayor información, por ejemplo:
# nmap -Sc -Sv -p22,80 -oN result.txt
Usamos -sC para lanzar una serie de scripts de reconocimiento, y a su vez, como vimos anteriormente, con -sV listamos las versión de los sistemas en funcionamiento. Finalmente guardamos el resultado en formato nmap dentro del archivo result.txt para tener constancia del escaneo realizado.
Tener en cuenta:
Una buena práctica en el pentesting es guardar los resultados del escaneo de información. Es decir, solo ejecutaríamos el escaneo una vez en caso de volver a realizarlo (Lo que genera un aumento del rendimiento ya que reduce el tráfico de red y la posibilidad de detección). También sirve como referencia para redactar o escribir informes. Por tanto, podemos guardar el resultado de las siguientes formas:
-oN –> Resultados en formato normal (formato nmap).
-oG –> Para guardar los resultados en formato grep o «grepeable».
-oA–> Esta opción, guarda los resultados en tres formatos principales (normal,formato grep y XML).
Para Recordar
- Escaneo Básico: nmap [HOST] o [IP].
- Toda una subred: nmap 192.168.0.*.
- Excluimos una ip: nmap 192.168.0.* –exclude 192.168.0.1.
- A diferentes octetos: nmap 192.168.0.100,101,102.
- Lectura de archivo con objetivos: nmap –iL file.txt.
- Rangos de ip: nmap 192.168.0.10-20.
- Mayor detalle: nmap –vvv [IP].
- Múltiple: nmap [IP] [IP].
- Saber el SO: nmap –O [IP].
- SO que lo administra y traceroute: nmap –A [IP].
- Detectar Firewall: nmap –sA [IP].
- Dispositivos encendidos en la red: nmap –sP 192.168.0.*.
- Escaneo rápido por los puertos más usados: nmap –F [IP].
- Orden creciente en resultados: nmap –r [IP].
- Escaneo de puertos específico: nmap –p 22 [IP].
- Versiones de los servicios: nmap –sV [IP].
- Con análisis de prueba de firewall: nmap –sN [IP].
- Escaneo de varios puertos: nmap –p 22,80,25 [IP].
- Por rango de puertos: nmap –p 1-1000 [IP].
- Escaneo completo exhaustivo: nmap –O –n –v –sS –p 1-65535 192.168.0.0/24.
- Para almacenar resultados: nmap [IP] > resultado.txt.