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:
Para que un servidor DNS proporcione información acerca de un dominio es necesario hacer las consultas adecuadas para los distintos tipos de registros. Aunque existen numerosos tipos de registros, los siguientes pueden proporcionar información muy valiosa:
- NS (NameServer): Contiene el nombre de los servidores de nombres asociados a un dominio concreto.
- A (Address host): Relaciona la dirección IPv4 de un dominio. El equivalente para IPv6 es el AAAA (quad-A).
- MX (Mail Exchange): Identifica los servidores de correo de un dominio.
- TXT (Text): Permite incluir cualquier cadena de texto, que se puede utilizar para distintos propósitos, como almacenar información del propietario.
- CNAME (Canonical name): Permite indicar nombres alternativos (alias) para un host.
- SOA (Start OfAuthority): Indica que un servidor es autoritativo para una zona. Estos registros contienen información administrativa sobre la zona y tienen una gran importancia para las transferencias de zona, sobre las que se hablará posteriormente.
- PTR (Pointer reverse): Se usan para búsquedas inversas, lo que permite encontrar los registros correspondientes a una dirección IP.
- SPF (Sender Policy Framework): Es un registro TXT que indica los nombres de servidores o direcciones IP autorizadas para enviar correos electrónicos en nombre del dominio.
- RP (Responsible Person): Este es un registro meramente informativo que no se usa habitualmente, pero en caso de usarse contendrá información de la persona responsable de un dominio.
- SRV (Service location): Aunque tampoco se usa habitualmente, sirve para indicar qué servicios están disponibles en el dominio, el nombre del equipo y el puerto en el que se encuentra cada servicio.
- Transferencia de zona completa (AXFR): En esta transferencia de zona, el servidor DNS secundario copia completamente el fichero de zona. Tambien se conoce como AXFR, que es el nombre de la consulta o petición en el protocolo DNS que se utiliza para realizar esta acción. Es especialmente crítica desde el punto de vista de la seguridad; si un servidor está mal configurado y permite transferencias a cualquier consultor, un atacante puede obtener un mapa completo de la infraestructura interna sin enviar un solo paquete a los hosts finales.
- Transferencia de zona parcial (IXFR): En este caso, el servidor secundario consulta los cambios del fichero de zona tras la última actualización y los incorpora a su archivo de zona.
- 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.
- 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.
- smtp-user-enum: Herramienta que realiza enumeración de usuarios a través del protocolo SMTP.
- 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.
- SMBv1: para sistemas Windows 2000, Windows XP, Windows Server 2003 y Windows Server 2003 R2.
- SMBv2: para sistemas Windows Vista SP1 y posterior y Windows Server 2008.
- SMBv2.1: en sistemas Windows 7 y Windows Server 2008 R2.
- SMBv3: en sistemas Windows 8 y Windows Server 2012.
- SMBv3 (3.02): introducida en Windows 8.1 y Windows Server 2012 R2.
- SMBv3 (3.11): introducida en Windows 10 y Windows 2016.
- 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.
- enumdomusers: Lista todos los usuarios del dominio con sus respectivos identificadores relativos (RID).
- enumdomgroups: Muestra todos los grupos de seguridad del dominio.
- queryuser <RID>: Obtiene información detallada de un usuario específico mediante su RID (nombre completo, ruta del perfil, etc.).
- querygroup <RID>: Muestra las propiedades y configuración de un grupo.
- querygroupmem <RID>: Enumera todos los miembros que pertenecen a ese grupo.
- querydispinfo: Listado masivo y detallado de usuarios/máquinas.
- querydominfo: Devuelve información general del dominio como el nombre y políticas de contraseñas.
- lookupnames <Nombre>: Convierte un nombre de usuario o grupo en su identificador de seguridad (SID).
- lookupsids <SID>: Realiza el proceso inverso, traduciendo un SID a su nombre de usuario correspondiente.
- enumprivs: Enumera los privilegios disponibles en el sistema remoto.
- netshareenum: Muestra la lista de carpetas y recursos compartidos en el servidor remoto.
- netsharegetinfo <recurso>: Obtiene detalles de configuración de un recurso compartido específico.
- netfileenum: Enumera los archivos que se encuentran abiertos actualmente en el servidor.
- netsessenum: Lista las sesiones de red activas en el equipo remoto.
- enumprinters: Muestra todas las impresoras instaladas en el servidor.
- enumdrivers: Lista los controladores (drivers) de impresora instalados.
- 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