Living Off the Land (LOTL) en Active Directory
Escenario
Cliente solicita test de AD desde un host gestionado sin acceso a internet. No se pueden subir herramientas externas, por lo que usaremos únicamente herramientas nativas de Windows. Esto reduce logs y alertas en IDS/EDR.
1️⃣ Comandos Básicos de Enumeración
[!TIP] Estos comandos ayudan a obtener un panorama rápido del host y su red.
| Comando | Descripción |
|---|---|
hostname |
Muestra el nombre del PC |
[System.Environment]::OSVersion.Version |
Versión y revisión del OS |
wmic qfe get Caption,Description,HotFixID,InstalledOn |
Parches y hotfixes instalados |
ipconfig /all |
Configuración completa de red |
set |
Variables de entorno de la sesión (CMD) |
echo %USERDOMAIN% |
Dominio al que pertenece el host (CMD) |
echo %logonserver% |
Domain Controller asignado (CMD) |
systeminfo |
Resumen de información del host y sistema operativo |
Nota:
systeminfo combina muchos de los comandos anteriores en una sola ejecución, generando menos logs y aumentando el sigilo. 🕵️♂️2️⃣ PowerShell para LOTL
PowerShell permite administrar el host y el dominio usando recursos nativos.
| Cmdlet | Descripción |
|---|---|
Get-Module |
Lista módulos cargados y disponibles |
Get-ExecutionPolicy -List |
Políticas de ejecución activas |
Set-ExecutionPolicy Bypass -Scope Process |
Permite ejecutar scripts temporalmente sin modificar políticas globales |
| `Get-ChildItem Env: | ft Key,Value` |
Get-Content $env:APPDATA\Microsoft\Windows\Powershell\PSReadline\ConsoleHost_history.txt |
Historial de PowerShell del usuario |
🔻 Evadir logs: Downgrade PowerShell
-
PowerShell v3+ genera script block logging.
-
Downgrade a v2:
powershell.exe -version 2
- Sesiones posteriores a v2 no generan logs de Script Block, aunque el downgrade queda registrado.
3️⃣ Revisar defensas
🔥 Firewall
netsh advfirewall show allprofiles
- Verifica estado (ON/OFF) y políticas.
🛡 Windows Defender
Desde CMD:
sc query windefend
Desde PowerShell:
Get-MpComputerStatus

- Comprueba estado del motor, firmas, escaneos y protección en tiempo real.
4️⃣ Sesiones activas
qwinsta
-
Lista usuarios activos y sesiones.
-
Evita alertar a otros usuarios o perder la sesión si hay actividad concurrente.
5️⃣ WMI para enumeración
WMI permite obtener info local y remota del host y AD usando herramientas nativas.
| Comando | Descripción |
|---|---|
wmic qfe get Caption,Description,HotFixID,InstalledOn |
Parches instalados |
wmic computersystem get Name,Domain,Manufacturer,Model,Username,Roles /format:List |
Información básica del host |
wmic process list /format:list |
Procesos en ejecución |
wmic ntdomain list /format:list |
Información de dominios y DCs |
wmic useraccount list /format:list |
Usuarios locales y de dominio |
wmic group list /format:list |
Grupos locales |
wmic sysaccount list /format:list |
Cuentas de servicio |
6️⃣ Net.exe para AD
⚠ Monitoreado por EDR.
✅ Variante sigilosa: usar net1.
| Comando | Descripción |
|---|---|
net accounts /domain |
Políticas de contraseñas |
net group /domain |
Grupos de dominio |
net group "Domain Admins" /domain |
Miembros de Domain Admins |
net user /domain |
Listado de usuarios |
net view /domain |
PCs en el dominio |
net view \\host |
Shares de un host |
net localgroup administrators /domain |
Usuarios administradores |
| Usuarios administradores locoales | |
![]() |
7️⃣ Dsquery (AD DS Tools)
Permite buscar objetos AD sin herramientas externas.
Requiere privilegios elevados o SYSTEM.
| Comando | Descripción |
|---|---|
dsquery user |
Todos los usuarios del dominio |
dsquery computer |
Todas las máquinas |
dsquery * "CN=Users,DC=dominio,DC=local" |
Búsqueda wildcard en OU |
| Filtros LDAP | Buscar atributos específicos (p.ej. PASSWD_NOTREQD, DCs, etc.) |
![]() |
8️⃣ Red y rutas
| Comando | Descripción |
|---|---|
ipconfig /all |
Configuración de red |
arp -a |
Hosts conocidos por el host |
route print |
Redes y rutas activas |
arp+routeayudan a identificar segmentos de red para posible movimiento lateral.

