$ cat enumeración-con-nmap.md
Enumeración con Nmap
La enumeración es una parte crítica del proceso. El objetivo no es tener acceso a la computadora objetivo, sino, identificar todas las formas que se pudieran usar para atacar al objetivo.
No solo se basa en las herramientas que usamos. Solo funcionan si sabemos como usarlas y como atacar al objetivo con ellas. Las herramientas son solo eso, herramientas, y por si solas no reemplazan el conocimiento y nuestra atención al detalle. Aquí es mas de de activamente interactuar con servicios individuales y ver que información nos pueden dar y que posibilidades tenemos con esa información.
Es esencial entender como funcionan estos servicios y que sintaxis usan para interactuar y comunicarse efectivamente con los diferentes servicios que existen.
Esta fase apunta a mejorar nuestro conocimiento y entendimiento de las tecnologías, protocolos y como funcionan. Entender como lidiar con nueva información y adaptar a nuestro, ya adquirido, conocimiento. Enumerar es recolectar cuanta información podamos. A más información, más fácil va a ser encontrar vectores de ataque.
Ejemplo
Del ejemplo de HTB Nuestro compañero no está en casa y perdió las llaves de su coche. Llamamos a nuestro compañero para preguntarle en donde están. Si obtenemos una respuesta del tipo “están en la sala”, está muy poco claro y tomaremos mucho tiempo en encontrarlas. Sin embargo, si nuestro compañero nos dice algo como “en la sala, en el gabinete blanco, junto al televisor, en el 3er cajón” como resultado, va a ser mas fácil encontrarlas.
No es difícil obtener acceso al sistema objetivo una vez que ya sabemos como hacerlo. La mayoría de los caminos que podemos tener acceso apuntan a los siguientes dos tipos:
- Funciones y/o recursos que no s permitan interactuar con el objetivo y/o que nos otorguen información adicional
- Información que no dote de, incluso más, información para acceder a nuestro objetivo
Cuando escaneamos e inspeccionamos, lo que buscamos son estas dos posibilidades. La mayoría de la información que viene de malas configuraciones o de negligencia de seguridad para los servicios respectivos. Una mala configuración es o el resultado de la ignorancia o un mal mindset de seguridad. Por ejemplo, si el administrador solo se deja llevar por el firewall, GPO’s (group policy objects), y actualizaciones continuas, es común que no esté asegurada la red.
La enumeración es la clave, o eso es lo que dicen las personas, y están bien. Como sea, es muy malentendida esta frase. La mayoría de las veces, no son las herramientas que no hemos probado, sino que no sabemos como interactuar con el servicio ni qué es lo relevante.
Eso es precisamente la razón por la que la mayoría de las personas se quedan atoradas en un solo lugar y no avanzan. Si se hubiera tomado el tiempo de saber como funcionan la redes, servicios, como funcionan y que significan, habrían ahorrado algunas horas o incluso días en alcanzar su objetivo y obtener acceso al sistema.
La enumeración manual es un componente crítico. Muchas herramientas de scanning simplifican y aceleran el proceso. Sin embargo, estas no siempre pueden abrirte paso a medidas de seguridad de algunos servicios. La forma mas fácil de ilustrarlo es usando el siguiente ejemplo:
Ejemplo 2
La mayoría de las herramientas para escanear usa un timeout mientras espera a recibir una respuesta de un servicio o puerto. Si este servicio / puerto no responde dentro de un margen de tiempo específico, la herramienta va a marcarlo como cerrado, filtrado o desconocido. Es en estos últimos 2 casos donde aun vamos a poder trabajar. No obstante, si un puerto está marcado como cerrado y Nmap no lo muestra, entonces vamos a estar en un problema. Este servicio / puerto puede proveer una oportunidad para encontrar una forma de acceso al sistema. Entonces, esto puede costar una cantidad innecesaria de tiempo antes de poder encontrarlo.
Introducción a Nmap
Network Mapper (Nmap) es una herramienta de código abierto que analiza redes y hace auditorías de seguridad. Está escrito en C, C++, Python y Lua. Está diseñada para escanear redes e identificar que hosts están disponibles utilizando paquetes raw, y servicios y aplicaciones, incluyendo el nombre y la versión, donde se pueda. También puede identificar sistemas operativos y versiones de estos hosts. Aparte de otras funciones que ofrece, Nmap también ofrece la capacidad para determinar si filtros de paquetes, firewalls o detección de intrusión del sistema (IDS) están bien configurados.
Casos de uso
La herramienta es una de las mas usadas por administradores de redes y por especialistas de seguridad de IT. Se usa para:
- Auditar aspectos de la seguridad de las redes
- Simular pruebas de penetración
- Verificar configuración de Firewall e IDS
- Mapeo de redes
- Análisis de respuestas
- Identificar puertos abiertos
- Asesoramiento de vulnerabilidades
Arquitectura de Nmap
Nmap ofrece diferentes tipos de escaneo que pueden ser utilizados para obtener distintos resultados sobre nuestros objetivos. Básicamente, Nmap se puede dividir en las siguientes técnicas:
- Descubrir hosts = Escanear puertos
- Enumeración y detección de servicios
- Detección de OS
- Interacción por medio de scripts con el objetivo (Nmap Scripting Engine)
Sintaxis
La sintaxis para Nmap es bastante simple, se ve así:
SMOG@HTB:~$ nmap <scan types> <options> <target>
Técnicas de Escaneo
Nmap ofrece distintas técnicas, haciendo diferente tipos de conexiones y usando paquetes estructurados de forma distinta para mandar. Aquí podemos ver todas las técnicas de escaneo que Nmap ofrece:
SMOG@HTB:~$ nmap --help
<SNIP>
SCAN TECHNIQUES:
-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
-sU: UPD Scan
--scanflags <flags>: Customize TCP scan flags
-sI <zombie host[:probeport]>: Idle scan
-sY/sZ: SCTP INIT/COOKIE-SCHO scans
-sO: IP protocol scan
-b <FTP relay host>: FTP bounce scan
<SNIP>
Por ejemplo, el TCP-SYN scan (-sS) es uno de los que están predeterminados por la configuración a menos que lo definamos de otra forma y es uno de los métodos más populares de escaneo. Este tipo de escaneo hace posible escanear varios miles de puertos por segundo. TCP-SYN scan manda un único paquete con la bandera SYN y, después, no completa el handshake de 3 pasos, el cual resulta en no establecer una conexión TCP completa al puerto escaneado.
- Si nuestro objetivo manda un paquete SYN-ACK abanderado de regreso a nosotros, Nmap detecta que el puerto está abierto
- Si el objetivo responde con un paquete con la bandera RST, es un indicador de que probablemente esté cerrado.
- Si Nmap no recibe ningún paquete de regreso, va a imprimir filtered. Dependiendo de la configuración del firewall, algunos paquetes pueden perderse o ser ignorados por el firewall.