Reconocimiento Activo
El reconocimiento activo se define como el proceso de recolección de información a cerca del objetivo de las pruebas, sin embargo, en este caso realizaremos consultas directas contra el objetivo. Es decir, estableceremos una comunicación con los sistemas remotos (que forman parte del alcance de la auditoría) para realizar estas consultas por lo que estamos dejando una traza en el objetivo.
La información que se obtenga complementa toda la información que se hubiera podido recopilar en la fase del reconocimiento pasivo, debido a que habrá información específica que únicamente podrá ser extraída mediante consultas directas a los servicios expuestos. (DNS, SMTP, SNMP, SMB, etc.).
En este caso, dado que se está realizando una iteración sobre ciertos activos, el objetivo puede ser consciente de que se está realizando cierta enumeración. Aunque esta posible detección siempre va a depender de las capacidades de monitorización y detección del objetivo.
A continuación se enumeran distintas técnicas de reconocimiento pasivo:
Las principales características de una enumeración DNS son las siguientes:
- Dirección IP asociada a un host
- Principales servidores (NS, MX, SOA)
- Si se encuentra habilitado resolución inversa obtenemos nombre de host a partir de la IP
- En ocasiones se habilita la transferencia de zona
Herramientas
Existen diferentes herramientas que podemos utilizar para realizar consultas a los servidores DNS. Mediante estas consultas podemos averiguar la dirección IP de un determinado host en un dominio. Además, en caso que el servidor DNS tenga habilitada la resolución de inversa, se puede obtener el nombre de host a partir de una determinada dirección IP. A continuación, se enumeran las herramientas más comunes para la realización de esta tarea.
- host, dig y nslookup: Herramientas de consola que nos permite realizar consultas DNS de manera manual.
- dnsrecon: Herramienta en modo consola que automatiza todas las consultas que deberíamos realizar de manera manual con las herramientas anteriores proporcionándonos toda la información de manera estructurada.
- dnsenum: Además de todas las opciones de enumeración que proporciona dnsrecon también realiza operaciones de descubrimiento de host y subdominios mediante técnicas de fuerza bruta.
SMTP es el protocolo que se encarga de gestionar la entrega de correos electrónicos. El protocolo dispone de varios comandos que permiten averiguar si un determinado usuario existe en el sistema remoto o en el dominio del objetivo. A continuación se indican los comandos de enumeración disponibles en el protocolo SMTP.
- RCPT: Especifica a quién va dirigido el correo, el servidor puede indicar si el usuario de correo existe o no.
- EXPN: Identifica todos los usuarios que pertenecen a una determinada lista de correo.
- VRFY: Este comando permite verificar si una determinada dirección de correo es válida.
Al igual que en los apartados anteriores, existen ciertas herramientas que nos permiten automatizar todo el proceso, utilizando los comandos anteriormente descritos del estándar, para enumerar usuarios.
- smtp-user-enum: Herramienta que realiza enumeración de usuarios a través del protocolo SMTP.
El protocolo SNMP habitualmente se utiliza para gestionar routers, switches, impresoras y demás dispositivos en una red local, aunque también puede ejecutarse en sistemas Windows y UNIX.
- public: Permite acceder a la configuración en modo consulta.
- private: Permite modificar la configuración del dispositivo.
- Obtener información de la configuración de dispositivos.
- Modificar la configuración de los dispositivos.
- onesixtyone: Utiliza técnicas de fuerza bruta para averiguar los community strings que nos permiten acceder a los roles public y private.
- snmpwalk: En caso de disponer (o averiguar) las community string de acceso se puede acceder a la configuración de un dispositivo.
SMB es un protocolo de red, muy utilizado en redes Microsoft. Se utiliza para compartir archivos, impresoras, unidades, etc. Entre sistemas pertenecientes a una misma red.
- Política de contraseñas
- Nombre y SID de usuarios
- Nombre y SID de grupos
- Nombre y SID de equipos
- nbtscan
- -r: Realiza un escaneo en modo rango (IP inicial a IP final).
- -s: Formato de salida personalizado (puedes definir el formato con variables como %IP, %MAC, %NAME...).
- -v: Modo verbose.
- -h: Muestra la ayuda.
- -f: Especifica un archivo con una lista de IPs o rangos.
- -t: Establece el tiempo de espera or host en milisegundos (por defecto 1000 ms).
- -q: Modo Silencioso (menos salida).
- -m: No resuelve nombres DNS.
- -p: Puerto a usar (por defecto el 137).
- smbclient
- -L <host>: Lista los recursos compartidos del host.
- -U <usuario>: Especifica el usuario con el que autenticarse.
- -I <IP>: IP del servidor (evita resolución de nombres)
- -N: No pedir contraseña.
- -W <dominio>: Especifica el dominio o grupo de trabajo.
- -m SMB2 o -m SMB3: Fuerza versión del protocolo SMB.
- -p <puerto>: Especifica el puerto (por defecto 445).
- -c "<comando>": ejecuta comandos directamente.
- //host/recurso: Especifica el recurso compartido al que acceder.
- ls: Lista el contenido del directorio actual en la compartición.
- cd <directorio>: Cambia al directorio especificado.
- get <archivo>: Descarga un archivo desde la compartición a tu máquina local.
- put <archivo>: Sube un archivo de tu máquina local a la compartición.
- mget *: Descarga varios archivos.
- mput *: Sube varios archivos.
- help: Muestra la lista de comandos disponibles en el shell.
- rpcclient
- -U <usuario>%<contraseña>: Especifica usuario y contraseña.
- -N: No usar contraseña.
- -c "<comando>": Ejecuta comandos directamente.
- <host>: Dirección IP o nombre del host objetivo.
- enum4linux
- -U: obtener lista de usuarios.
- -S: obtener lista de shares.
- -G: obtener grupos y sus miembros.
- -P: obtener política de contraseñas del sistema objetivo.
- -r: enumerar usuarios recorriendo RID secuencialmente.
- -o: obtener información del sistema operativo.
- -n: hace un nmblookup, similar a nbstat.
- -i: obtiene información sobre impresoras.
- -u: para especificar un nombre de usuario.
- -p: para especificar una contraseña.
- smbmap
- -H: para indicar la IP del host
- -P: para indicar el puerto SMB (por defecto es el 445)
- -v: proporciona información sobre la versión del SO.
- -R: para que, en caso de que tenga permiso, liste el contenido del share.
- -u: usuario.
- -p: contraseña.
- scripts nmap