Script avanzado de PowerShell para realizar auditorías completas de seguridad empresarial con un solo click. Recopila información crítica del sistema, detecta indicadores de compromiso (IOCs) y genera reportes en múltiples formatos.
- Localizar el archivo
Auditoria_Empresarial_Completa.ps1 - Clic derecho en el archivo
- Seleccionar "Ejecutar con PowerShell"
- Si aparece advertencia de seguridad, presionar "S" para continuar
# Navegar a la carpeta donde está el script
cd C:\ruta\del\script
# Ejecutar el script
.\Advanced PowerShell script.ps1# Ejecutar en servidor remoto
Invoke-Command -ComputerName SERVIDOR01 -FilePath ".\Auditoria_Empresarial_Completa.ps1"
# Ejecutar en múltiples servidores
$servers = Get-Content "servidores.txt"
$servers | ForEach-Object {
Invoke-Command -ComputerName $_ -FilePath ".\Advanced Powershell Script.ps1"
}- Sistema Operativo: Windows 10, Windows 11, Windows Server 2016/2019/2022
- PowerShell: Versión 5.1 o superior
- Espacio en Disco: Mínimo 500 MB libres (para resultados)
| Nivel de Privilegio | Información Disponible |
|---|---|
| Usuario Normal | Procesos actuales Conexiones de red Archivos accesibles Eventos de seguridad (limitado) Configuración del sistema |
| Administrador | TODO lo anterior + Eventos de seguridad completos Configuración de sistema Logs de auditoría Drivers y kernel Información de todos los usuarios |
RECOMENDACIÓN: Ejecutar como Administrador para auditoría completa.
El script ejecuta 10 módulos de auditoría que cubren todas las áreas críticas:
- Sistema operativo y versión
- Hardware (CPU, RAM, discos)
- Fecha de instalación y último reinicio
- Configuración de zona horaria
- Usuarios locales y su configuración
- Cuentas sin contraseña (CRÍTICO)
- Usuarios con privilegios de administrador
- Grupos privilegiados (RDP, Backup Operators)
- Cuentas habilitadas sin uso
- Procesos en ejecución con firma digital
- Procesos sin ruta de archivo (MUY SOSPECHOSO)
- Línea de comandos de todos los procesos
- Detección de comandos codificados (Base64)
- Servicios automáticos
- Patrones maliciosos (Mimikatz, Invoke-Expression, etc.)
- Conexiones TCP/UDP activas
- Puertos en escucha (superficie de ataque)
- Conexiones a puertos sospechosos (4444, 8080, etc.)
- Procesos del sistema con conexiones externas (CRÍTICO)
- Caché DNS (dominios visitados)
- Configuración de adaptadores de red
- Intentos de login fallidos (Event ID 4625)
- Cuentas bloqueadas (Event ID 4740)
- Eventos de PowerShell (ScriptBlock Logging)
- Comandos codificados en PowerShell
- Eventos críticos del sistema y aplicaciones
- Archivos modificados en últimas 24 horas
- Archivos ocultos sospechosos
- Persistencia en Run Keys del registro
- Tareas programadas activas
- Verificación del archivo HOSTS
- Redirecciones maliciosas en HOSTS
- Política de ejecución de PowerShell
- Perfiles del firewall (habilitado/deshabilitado)
- Reglas del firewall activas
- Estado de Windows Defender
- Actualización de firmas de antivirus
- Recursos compartidos de red
- Configuración de UAC (User Account Control)
(Living Off the Land Binaries - Binarios legítimos usados maliciosamente)
- Uso de certutil, regsvr32, mshta, bitsadmin
- Uso de rundll32, wmic, PowerShell con argumentos sospechosos
- Detección de técnicas de evasión
- Drivers instalados en el sistema
- Drivers sin firma digital (posibles rootkits)
- Información de proveedor y versión
- Información del BIOS
- Discos físicos y su estado de salud
- Particiones y espacio disponible
- Adaptadores de red (hardware)
- Variables de entorno
Al finalizar, el script crea una carpeta con la siguiente estructura:
Auditoria_fecha
RESUMEN_EJECUTIVO.txt ← LEER PRIMERO
AMENAZAS_DETECTADAS.json/csv/txt
auditoria.log
01_Sistema/
informacion_sistema.[json|csv|txt]
02_Usuarios/
usuarios_locales.*
administradores_locales.*
grupo_Remote_Desktop_Users.*
03_Procesos/
procesos_activos.*
procesos_sin_ruta.* ← [!] REVISAR (SOSPECHOSO)
procesos_con_comandos.*
servicios.*
04_Red/
conexiones_tcp.*
conexiones_establecidas.* ← [!] REVISAR conexiones externas
puertos_escucha.*
udp_endpoints.*
dns_cache.*
05_Eventos/
logins_fallidos.* ← [!] REVISAR (Ataques de fuerza bruta)
cuentas_bloqueadas.*
powershell_scriptblock.*
eventos_aplicacion.*
eventos_sistema.*
06_Archivos/
archivos_modificados_24h.*
archivos_ocultos_sospechosos.* ← [!] REVISAR
persistencia_run_keys.* ← [!] REVISAR (Persistencia)
tareas_programadas.*
archivo_hosts.*
07_Configuracion/
powershell_execution_policy.*
firewall_perfiles.*
firewall_reglas.*
windows_defender.*
recursos_compartidos.*
uac_configuracion.*
08_LOLBAS/
procesos_lolbas_activos.* ← [!] REVISAR
eventos_lolbas.*
09_Drivers/
drivers_instalados.*
drivers_sin_firma.* ← [!] REVISAR (Posibles rootkits)
10_Hardware/
bios_info.*
discos_fisicos.*
volumenes.*
adaptadores_red_hardware.*
variables_entorno.*
Cada módulo genera 3 archivos con la misma información en diferentes formatos:
| Formato | Extensión | Uso Recomendado |
|---|---|---|
| JSON | .json |
Análisis automatizado Integración con SIEM Scripts de procesamiento |
| CSV | .csv |
Análisis en Excel Filtrado y ordenamiento Reportes ejecutivos |
| TXT | .txt |
Lectura humana Revisión rápida Documentación |
El script clasifica las amenazas en 4 niveles:
| Nivel | Icono | Significado | Acción Requerida |
|---|---|---|---|
| CRITICAL | [CRITICO] | Amenaza crítica confirmada | [!] INVESTIGAR INMEDIATAMENTE Posible compromiso activo |
| HIGH | [ALTO] | Amenaza de alta prioridad | [!] INVESTIGAR EN 24 HORAS Riesgo significativo |
| MEDIUM | [MEDIO] | Amenaza moderada | INVESTIGAR EN 1 SEMANA Configuración insegura |
| LOW | Amenaza de baja prioridad | [INFO] DOCUMENTAR Revisión recomendada |
-
Proceso del sistema con conexión externa
- Ejemplo:
svchost.execonectado a IP 203.0.113.42 - Acción: Investigar proceso, verificar malware
- Ejemplo:
-
Comando codificado en PowerShell
- Ejemplo:
powershell.exe -enc <base64> - Acción: Decodificar comando, analizar payload
- Ejemplo:
-
[OK] Windows Defender deshabilitado
- Acción: Verificar si fue deshabilitado por atacante
-
Conexión a puerto sospechoso
- Ejemplo: Conexión a puerto 4444 (Metasploit)
- Acción: Identificar proceso, verificar C2
-
Proceso sin ruta de archivo
- Ejemplo: Proceso en memoria sin archivo en disco
- Acción: Posible process injection o hollow
Usuario sin contraseña
- Acción: Establecer contraseña inmediatamente
- Archivo ejecutable oculto
- Run Key con script
- Recurso compartido sin restricciones
1. DETECCIÓN (Script ejecutado)
↓
2. TRIAJE (Revisar RESUMEN_EJECUTIVO.txt)
↓
3. ANÁLISIS (Revisar AMENAZAS_DETECTADAS.csv)
↓
4. CONTENCIÓN (Aislar sistema si es necesario)
↓
5. ERRADICACIÓN (Eliminar amenaza)
↓
6. RECUPERACIÓN (Restaurar configuración segura)
↓
7. LECCIONES APRENDIDAS (Documentar)
# 1. Identificar proceso
Get-NetTCPConnection -RemotePort 4444
# 2. Ver detalles del proceso
Get-Process -Id <PID> | Select-Object *
# 3. Ver línea de comandos
(Get-WmiObject Win32_Process -Filter "ProcessId=<PID>").CommandLine
# 4. Capturar memoria del proceso (opcional, requiere Procdump)
procdump.exe -ma <PID> proceso_sospechoso.dmp
# 5. Terminar proceso (si se confirma malicioso)
Stop-Process -Id <PID> -Force# Decodificar comando Base64
$encodedCommand = "BASE64_STRING_AQUI"
[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($encodedCommand))
# Analizar contenido decodificado
# Si es malicioso, revisar origen y propagación# ALTAMENTE SOSPECHOSO - Posible process injection
# 1. Listar procesos sin ruta
Get-Process | Where-Object { $_.Path -eq $null -and $_.Name -ne "Idle" -and $_.Name -ne "System" }
# 2. Ver proceso padre
$proc = Get-Process -Id <PID>
$parentPID = (Get-CimInstance Win32_Process -Filter "ProcessId=$($proc.Id)").ParentProcessId
Get-Process -Id $parentPID
# 3. Capturar memoria para análisis forense
# 4. Considerar aislamiento del sistema# Crear tarea programada que ejecute auditoría semanalmente
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" `
-Argument "-ExecutionPolicy Bypass -File C:\Auditoria\Auditoria_Empresarial_Completa.ps1"
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday -At 2:00AM
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
Register-ScheduledTask -TaskName "Auditoria_Seguridad_Semanal" `
-Action $action -Trigger $trigger -Principal $principal `
-Description "Auditoría de seguridad empresarial automática"Los archivos JSON generados pueden enviarse directamente a SIEM:
# Ejemplo: Enviar resultados a Splunk
$splunkUrl = "https://splunk.empresa.com:8088/services/collector"
$splunkToken = "YOUR-HEC-TOKEN"
Get-ChildItem -Path "Auditoria_*" -Filter "*.json" -Recurse | ForEach-Object {
$jsonContent = Get-Content $_.FullName -Raw
Invoke-RestMethod -Uri $splunkUrl -Method Post `
-Headers @{"Authorization" = "Splunk $splunkToken"} `
-Body $jsonContent
}Solución:
# Temporal (solo para sesión actual)
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
# Permanente (requiere admin)
Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSignedSolución:
- Ejecutar PowerShell como Administrador
- Clic derecho en PowerShell → "Ejecutar como administrador"
Causas:
- Sistema con muchos archivos (módulo de archivos modificados)
- Muchas conexiones de red activas
Solución:
- Normal: 5-10 minutos en sistemas estándar
- Si >30 minutos, verificar uso de disco/CPU
Solución:
- Revisar archivo
auditoria.logpara ver errores específicos - Verificar requisitos del sistema (PowerShell 5.1+)
- Ejecutar con privilegios de administrador
- Sysinternals Suite (Microsoft) - Autoruns, Procmon, TCPView
- VirusTotal - Verificación de hashes de archivos
- CyberChef - Decodificación de comandos ofuscados
- Splunk/ELK - Análisis centralizado de logs
- Email: analista@sammideblas.com
PERMITIDO:
- Auditorías en sistemas de tu organización
- Análisis de sistemas con permiso explícito
- Evaluaciones de seguridad autorizadas
PROHIBIDO:
- Escanear sistemas sin autorización
- Uso en sistemas de terceros sin consentimiento
- Acceso no autorizado a redes
Este script es para uso legítimo de seguridad. El uso indebido puede violar leyes.
- Detección avanzada de IOCs (Indicadores de Compromiso)
- Exportación multi-formato (JSON, CSV, TXT)
- Análisis de LOLBAS (Living Off the Land)
- Detección de comandos codificados
- Resumen ejecutivo con nivel de riesgo
- 10 módulos de auditoría completos
- Barra de progreso visual
- Manejo robusto de errores
- Documentación extensa con comentarios
Este script es propiedad de Sammi De Blas Kalloub
Libre Distribucion
¿Preguntas? Contacta al equipo de Ciberseguridad de tu empresa