From 1d62cc278e9ca7c5ac40f455d020307fbc064e20 Mon Sep 17 00:00:00 2001 From: Ricardo Monla Date: Fri, 27 Feb 2026 21:28:26 -0300 Subject: [PATCH] [Scripts] Consolidar toolkit W-Zombi en scripts/w-zombi/ + README --- scripts/w-zombi/README.md | 55 +++++++++++++++++++ .../w-zombi/install_ssh.ps1 | 0 logger.py => scripts/w-zombi/logger.py | 0 payload.ps1 => scripts/w-zombi/payload.ps1 | 0 s.txt => scripts/w-zombi/s.txt | 0 scripts/{ => w-zombi}/sonda_windows.ps1 | 0 6 files changed, 55 insertions(+) create mode 100644 scripts/w-zombi/README.md rename install_ssh.ps1 => scripts/w-zombi/install_ssh.ps1 (100%) rename logger.py => scripts/w-zombi/logger.py (100%) rename payload.ps1 => scripts/w-zombi/payload.ps1 (100%) rename s.txt => scripts/w-zombi/s.txt (100%) rename scripts/{ => w-zombi}/sonda_windows.ps1 (100%) diff --git a/scripts/w-zombi/README.md b/scripts/w-zombi/README.md new file mode 100644 index 00000000..6926659a --- /dev/null +++ b/scripts/w-zombi/README.md @@ -0,0 +1,55 @@ +# W-Zombi: Toolkit de Inyección Lateral para Windows VMs + +> Técnica documentada en la bitácora del [25/02/2026](../../bitacoras/2026-02-25.md) (Hito DB01). + +## Problema + +La consola HTML5/VNC de Proxmox **no soporta copiar/pegar** texto, lo que impide al operador provisionar comandos complejos (instalaciones, configuraciones) en las VMs Windows recién creadas que aún no tienen SSH. + +## Solución: C2 Polling Loop + +Se utiliza una arquitectura de "Command & Control" liviana que sortea la limitación del portapapeles: + +``` +srv-ns8 (10.0.10.8) VM Windows (VNC) +┌──────────────────┐ ┌────────────────────┐ +│ logger.py │ ← HTTP :8000 ←── │ s.txt (loop) │ +│ (servidor HTTP) │ │ Consulta payload │ +│ │ ── payload.ps1 ──→ │ cada 15 seg │ +│ │ │ Ejecuta y reporta │ +└──────────────────┘ └────────────────────┘ +``` + +## Flujo Operativo + +### 1. En srv-ns8 (la IA): +```bash +cd scripts/w-zombi +python3 logger.py +``` +Esto levanta un servidor HTTP en el puerto 8000 que sirve los archivos del directorio. + +### 2. En la VM Windows (el operador tipea manualmente en VNC): +```powershell +iwr 10.0.10.8:8000/s.txt -useb|iex +``` +Este one-liner de ~35 caracteres es lo único que el operador necesita tipear a mano. + +### 3. La IA modifica `payload.ps1`: +Cada vez que el loop de la VM consulta, ejecuta lo que esté en `payload.ps1`. La IA puede cambiar su contenido dinámicamente para inyectar cualquier secuencia de comandos. + +## Archivos + +| Archivo | Tipo | Descripción | +| :--- | :--- | :--- | +| `s.txt` | PowerShell | C2 polling loop (se ejecuta en la VM, consulta payload cada 15s). | +| `payload.ps1` | PowerShell | Carga útil dinámica que la IA modifica según la tarea. | +| `install_ssh.ps1` | PowerShell | Payload especializado: instala OpenSSH Server nativo. | +| `sonda_windows.ps1` | PowerShell | Payload especializado: diagnóstico y relevamiento del sistema. | +| `logger.py` | Python 3 | Servidor HTTP efímero con logging de requests entrantes. | + +## Seguridad + +- El servidor HTTP es **efímero** — solo se levanta durante la operación. +- Solo escucha en la red interna (`10.0.10.x` / `10.0.100.x`). +- Una vez instalado SSH en la VM, este mecanismo deja de ser necesario. diff --git a/install_ssh.ps1 b/scripts/w-zombi/install_ssh.ps1 similarity index 100% rename from install_ssh.ps1 rename to scripts/w-zombi/install_ssh.ps1 diff --git a/logger.py b/scripts/w-zombi/logger.py similarity index 100% rename from logger.py rename to scripts/w-zombi/logger.py diff --git a/payload.ps1 b/scripts/w-zombi/payload.ps1 similarity index 100% rename from payload.ps1 rename to scripts/w-zombi/payload.ps1 diff --git a/s.txt b/scripts/w-zombi/s.txt similarity index 100% rename from s.txt rename to scripts/w-zombi/s.txt diff --git a/scripts/sonda_windows.ps1 b/scripts/w-zombi/sonda_windows.ps1 similarity index 100% rename from scripts/sonda_windows.ps1 rename to scripts/w-zombi/sonda_windows.ps1