Fundamentos de Auditoría y Reconocimiento
En el ámbito de la ciberseguridad, la fase de reconocimiento y enumeración es crítica. Antes de proteger un sistema, debemos entender qué estamos protegiendo. La auditoría local permite identificar configuraciones erróneas, privilegios excesivos y vectores de ataque potenciales que un actor malintencionado podría explotar.
A continuación, detallamos las herramientas y comandos nativos de Windows necesarios para realizar una evaluación de seguridad profunda sin necesidad de instalar software de terceros.
1. Mapeo de la Superficie del Sistema
El primer paso es conocer el terreno. La información del sistema nos indica el nivel de parches y la arquitectura base del objetivo.
systeminfo
Proporciona el nombre del host, la versión exacta del SO y, lo más importante, los Hotfixes (parches de seguridad) instalados.
systeminfo
Nombre de host: WORKSTATION-01
Versión del SO: Microsoft Windows 10 Pro 10.0.19045
Hotfix(s) instalados: 5 revisiones instaladas
[01]: KB5028244
[02]: KB5027215
...
wmic logicaldisk
Identifica unidades montadas, incluyendo particiones ocultas o dispositivos USB no autorizados que podrían contener herramientas de ataque o exfiltración de datos.
wmic logicaldisk get name, size, freespace
FreeSpace Name Size
105226162176 C: 255953477632
D: ← USB o partición sin espacio visible
10737418240 E: 107374182400
Name pero sin Size reportado puede indicar un dispositivo de almacenamiento externo o una partición oculta montada.2. Auditoría de Red y Conectividad
La red es el vector de entrada más común. Entender cómo se comunica el equipo es vital para detectar intrusiones activas.
ipconfig /all
Revela la configuración completa de red: DNS, puertas de enlace y la dirección física (MAC).
ipconfig /all
Adaptador Ethernet Ethernet0:
Dirección física. . . . . . . . . : 00-0C-29-A1-B2-C3
Servidores DNS. . . . . . . . . . : 192.168.1.1
8.8.8.8
Puerta de enlace predeterminada . : 192.168.1.1
arp -a
Muestra la tabla de resolución ARP (Address Resolution Protocol): el mapa de qué dirección IP corresponde a qué dirección MAC en la red local.
arp -a
Interfaz: 192.168.1.100 --- 0x4 Dirección de Internet Dirección física Tipo 192.168.1.1 00-50-56-c0-00-08 dinámico 192.168.1.50 00-50-56-c0-00-08 dinámico ← ¡Misma MAC! 192.168.1.200 00-0c-29-a1-b2-c3 dinámico
3. Análisis de Servicios y Puertos Activos
Un puerto abierto es una puerta potencial. Saber qué proceso lo controla es la diferencia entre un servicio legítimo y una backdoor.
netstat -ano
Lista todas las conexiones y puertos en escucha. El parámetro -o es crucial porque muestra el PID (Process ID), permitiendo rastrear qué programa específico está escuchando en un puerto sospechoso.
| Parámetro | Significado | Utilidad de seguridad |
|---|---|---|
| -a | All | Muestra todas las conexiones y puertos en escucha |
| -n | Numeric | Muestra IPs y puertos como números (más rápido) |
| -o | Owner PID | Muestra el PID del proceso propietario — clave para identificar backdoors |
netstat -ano
Proto Dirección local Dirección remota Estado PID TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4 TCP 0.0.0.0:4444 0.0.0.0:0 LISTENING 3821 ← ¡Sospechoso! TCP 127.0.0.1:49152 127.0.0.1:49153 ESTABLISHED 1204
tasklist /fi "PID eq 3821" para identificar el ejecutable responsable.tasklist /v
Lista todos los procesos con el nombre de usuario que los ejecuta. Permite identificar procesos maliciosos camuflados con nombres genéricos (como svchost.exe) pero ejecutados por usuarios no sistémicos.
tasklist /v
tasklist /fi "PID eq 3821" /v
Nombre de imagen PID Nombre de sesión Sesión Mem Estado Usuario svchost.exe 3821 Console 1 4,5M Running WORKSTATION\jose ← ¡Usuario no sistémico!
svchost.exe debería ejecutarse siempre como SYSTEM, LOCAL SERVICE o NETWORK SERVICE. Si aparece con un usuario regular, es una señal de alerta crítica.4. Evaluación de Privilegios y Usuarios
El principio de menor privilegio es la base de la seguridad. Estos comandos ayudan a verificar si un usuario tiene más poder del que debería.
whoami /priv
Muestra los tokens de privilegio asignados al usuario actual. Ciertos privilegios son críticos porque pueden ser explotados para elevarse al nivel de SYSTEM.
whoami /priv
INFORMACIÓN DE PRIVILEGIOS -------------------------- Nombre de privilegio Descripción Estado ============================= =============================== ========= SeBackupPrivilege Hacer copias de seguridad Habilitado ← ¡Peligro! SeImpersonatePrivilege Suplantar un cliente Habilitado ← ¡Peligro! SeShutdownPrivilege Apagar el sistema Deshabilitado
| Privilegio | Riesgo | Técnica de abuso |
|---|---|---|
| SeBackupPrivilege | Crítico | Leer cualquier archivo del sistema, incluido SAM y NTDS.dit |
| SeImpersonatePrivilege | Crítico | Técnica Potato attacks (JuicyPotato, PrintSpoofer) para escalar a SYSTEM |
| SeDebugPrivilege | Alto | Leer memoria de procesos privilegiados (LSASS dump) |
| SeLoadDriverPrivilege | Alto | Cargar controladores maliciosos en el kernel |
Get-ExecutionPolicy (PowerShell)
Define qué scripts de PowerShell pueden ejecutarse en el sistema. Una política permisiva abre la puerta a la ejecución de scripts maliciosos.
Get-ExecutionPolicy
Get-ExecutionPolicy -List # Ver política por scope (Machine, User, Process)
Restricted → Seguro: no permite ningún script AllSigned → Seguro: solo scripts firmados digitalmente RemoteSigned → Moderado: scripts remotos deben estar firmados Unrestricted → PELIGROSO: ejecuta cualquier script con advertencia Bypass → PELIGROSO: sin restricciones, sin advertencias
5. Estado de las Defensas Perimetrales
No basta con tener defensas; hay que comprobar que estén activas y correctamente configuradas.
netsh advfirewall — Estado del Firewall
Indica si el firewall está activo en los perfiles Domain, Private y Public.
netsh advfirewall show allprofiles
netsh firewall show state
Configuración de perfil de dominio: Estado ON Política de entrada predeterminada BlockInbound Política de salida predeterminada AllowOutbound Configuración de perfil privado: Estado ON Configuración de perfil público: Estado OFF ← ¡Bandera roja!
Get-MpComputerStatus (PowerShell)
Es la forma más rápida de verificar el estado completo de Windows Defender: si está actualizado, si el escaneo en tiempo real está activo y cuándo fue la última detección.
Get-MpComputerStatus | Select-Object ` AMServiceEnabled, ` RealTimeProtectionEnabled, ` AntivirusSignatureLastUpdated, ` LastFullScanTime
AMServiceEnabled : True RealTimeProtectionEnabled : False ← ¡Protección en tiempo real DESACTIVADA! AntivirusSignatureLastUpdated : 15/06/2023 08:12:00 LastFullScanTime : 01/01/2023 00:00:00 ← Último escaneo: hace meses
| Campo | Estado seguro | Indicador de riesgo |
|---|---|---|
| AMServiceEnabled | True | False → Defender completamente desactivado |
| RealTimeProtectionEnabled | True | False → No detecta amenazas en tiempo real |
| AntivirusSignatureLastUpdated | Hoy o ayer | Más de 7 días → Firmas desactualizadas |
| LastFullScanTime | Menos de 30 días | Meses sin escaneo completo |
Referencia Rápida — Índice de Comandos
| Comando | Shell | Categoría | Uso principal |
|---|---|---|---|
| systeminfo | cmd | Sistema | Versión SO, arquitectura, hotfixes instalados |
| wmic logicaldisk get name,size,freespace | cmd | Sistema | Inventario de unidades y detección de USB no autorizados |
| ipconfig /all | cmd | Red | IP, MAC, DNS — detectar DNS Hijacking |
| arp -a | cmd | Red | Tabla ARP — detectar ARP Spoofing / MitM |
| netstat -ano | cmd | Servicios | Puertos activos con PID — detectar backdoors |
| tasklist /v | cmd | Servicios | Procesos con usuario ejecutor — detectar malware camuflado |
| whoami /priv | cmd | Privilegios | Tokens de privilegio — identificar vectores de escalada |
| Get-ExecutionPolicy | PS | Privilegios | Política de ejecución de scripts PowerShell |
| netsh advfirewall show allprofiles | cmd | Defensas | Estado del firewall por perfil (Domain/Private/Public) |
| Get-MpComputerStatus | PS | Defensas | Estado de Windows Defender y firma antivirus |
Ejercicio Práctico Final
Flujo completo de auditoría que recorre todas las categorías: sistema, red, servicios, privilegios y defensas.
systeminfo | findstr /C:"Nombre de host" /C:"Versión del SO" /C:"Hotfix"
wmic logicaldisk get name, size, freespace
ipconfig /all arp -a
netstat -ano | findstr "LISTENING" tasklist /v
whoami /priv whoami /groups
Get-ExecutionPolicy -List
netsh advfirewall show allprofiles | findstr "Estado"
Get-MpComputerStatus | Select-Object AMServiceEnabled, RealTimeProtectionEnabled, AntivirusSignatureLastUpdated
Conclusión y Buenas Prácticas
La seguridad no es un estado estático, sino un proceso continuo. El uso regular de estos comandos permite a los administradores mantener una postura de seguridad proactiva.
- Detectar anomalías antes de que se conviertan en brechas. La revisión periódica de puertos, procesos y privilegios permite identificar comportamientos anómalos en fases tempranas del ataque.
- Prepararse para auditorías externas manteniendo un inventario limpio de servicios, usuarios y configuraciones. Un sistema bien documentado es un sistema más defendible.
- Fortalecer (Hardening) el sistema cerrando vectores innecesarios: deshabilitar servicios no usados, revocar privilegios excesivos y mantener las defensas activas y actualizadas.