Enumeración de servicios de red
Tras el escaneo (ver Nmap a fondo) sabes qué puertos están abiertos; la enumeración profundiza en cada servicio para extraer todo lo útil: versiones exactas, usuarios, recursos compartidos, configuraciones, credenciales por defecto y vulnerabilidades conocidas. Es la fase que decide el vector de ataque: un puerto abierto es una pregunta, la enumeración es la respuesta detallada.
El principio
Sección titulada «El principio»Cada servicio “habla” un protocolo y, bien interrogado, filtra información. El objetivo es, por cada puerto abierto: identificar el software y versión exactos, descubrir qué permite sin autenticación, enumerar usuarios/recursos, y cruzar la versión con CVEs conocidos.
Metodología por servicio
Sección titulada «Metodología por servicio»1. Banner grabbing: ¿qué software y versión? (nc, nmap -sV)2. Acceso anónimo/por defecto: ¿permite algo sin credenciales?3. Enumeración específica del protocolo (usuarios, shares, bases, config)4. Credenciales por defecto / débiles5. Versión -> CVE (searchsploit, nuclei)Banner grabbing manual
Sección titulada «Banner grabbing manual»nc -nv 10.0.0.5 21 # conectar y leer el banner (FTP, SMTP, etc.)curl -sI http://10.0.0.5 # cabeceras HTTPopenssl s_client -connect 10.0.0.5:443 # servicios TLSnmap -sV --script=banner 10.0.0.5Servicios clave y su puerto (a dónde ir primero)
Sección titulada «Servicios clave y su puerto (a dónde ir primero)»21 FTP -> ¿anónimo? ¿versión vulnerable?22 SSH -> versión, métodos de auth, usuarios válidos25 SMTP -> VRFY/EXPN (enumerar usuarios), relay abierto53 DNS -> transferencia de zona (ver net-dnsattacks)110/143 POP3/IMAP111 RPC / 2049 NFS -> exports accesibles139/445 SMB -> shares, usuarios, null session (lo más jugoso)161 SNMP -> community strings (public/private) -> dump de la MIB389 LDAP -> enumeración del directorio (AD, ver ad-enum)1433 MSSQL / 3306 MySQL / 5432 PostgreSQL -> bases de datos3389 RDP -> usuarios, NLA, BlueKeep5985 WinRM -> ejecución remota con credencialesHerramientas de enumeración por servicio
Sección titulada «Herramientas de enumeración por servicio»# todo-en-unonmap --script=<proto>-* ; nxc (NetExec) smb/ldap/ssh/mssql/winrm/ftp# SMB (el más rico)enum4linux-ng -A 10.0.0.5 ; smbclient -L //10.0.0.5 -N ; smbmap -H 10.0.0.5nxc smb 10.0.0.5 -u '' -p '' --shares --users# SNMPsnmpwalk -v2c -c public 10.0.0.5 ; onesixtyone -c communities.txt 10.0.0.5# SMTPsmtp-user-enum -M VRFY -U users.txt -t 10.0.0.5# NFSshowmount -e 10.0.0.5# bases de datosmysql -h 10.0.0.5 -u root ; mssqlclient.py / nxc mssqlSMB: el servicio estrella
Sección titulada «SMB: el servicio estrella»En redes Windows, SMB (445) suele ser la mina: null sessions, shares legibles, usuarios enumerables, y la puerta al dominio.
nxc smb 10.0.0.0/24 # barrido: SO, nombre, signing, SMBv1nxc smb 10.0.0.5 -u '' -p '' --shares # null sessionenum4linux-ng -A 10.0.0.5 # usuarios, grupos, shares, políticaDe la versión al exploit
Sección titulada «De la versión al exploit»searchsploit <servicio> <version>nmap --script=<servicio>-vuln* targetnuclei -t http/cves/ -u targetPara la defensa
Sección titulada «Para la defensa»Reducir la enumerabilidad: no exponer servicios innecesarios, deshabilitar acceso anónimo (FTP, SMB null sessions, SNMP public), cambiar credenciales por defecto, ocultar/normalizar banners de versión, forzar SMB signing y deshabilitar SMBv1, y segmentar para que no todo sea alcanzable. Monitorizar enumeración (muchas consultas a un servicio desde un origen).
Checklist de prueba
Sección titulada «Checklist de prueba»- Banner grabbing de cada puerto abierto
- Acceso anónimo/por defecto probado (FTP, SMB, SNMP)
- SMB: shares, usuarios, null session, signing (nxc/enum4linux-ng)
- SNMP: community strings y walk de la MIB
- SMTP: enumeración de usuarios (VRFY) y relay
- NFS: exports accesibles (showmount)
- Bases de datos: acceso con credenciales por defecto
- Versiones cruzadas con CVE (searchsploit/nuclei)