0% encontró este documento útil (0 votos)
2 vistas5 páginas

03_TryHackMe_RootMe

El informe detalla la resolución del CTF 'RootMe' en TryHackMe, donde se realiza un pentesting en una máquina Linux mediante reconocimiento, obtención de shell y escalada de privilegios. Se emplearon herramientas como Nmap y Gobuster para identificar vulnerabilidades, culminando en la explotación de una carga de archivo maliciosa y un binario SUID. Se concluye con recomendaciones para mejorar la seguridad en el desarrollo de software, enfatizando la validación de cargas y el principio de mínimo privilegio.

Cargado por

dleon148
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2 vistas5 páginas

03_TryHackMe_RootMe

El informe detalla la resolución del CTF 'RootMe' en TryHackMe, donde se realiza un pentesting en una máquina Linux mediante reconocimiento, obtención de shell y escalada de privilegios. Se emplearon herramientas como Nmap y Gobuster para identificar vulnerabilidades, culminando en la explotación de una carga de archivo maliciosa y un binario SUID. Se concluye con recomendaciones para mejorar la seguridad en el desarrollo de software, enfatizando la validación de cargas y el principio de mínimo privilegio.

Cargado por

dleon148
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Ciberseguridad Aplicada al Desarrollo de Software | TryHackMe: RootMe

1. Introducción
Este informe documenta la resolución de la sala «RootMe» de TryHackMe, un CTF (Capture The Flag)
diseñado para principiantes cuyo objetivo es «rootear» una máquina Linux. El reto integra las fases
fundamentales de una intrusión: reconocimiento de servicios, enumeración de directorios web, obtención
de una shell mediante la carga de un archivo malicioso y escalada de privilegios abusando de un binario
con permiso SUID.
El laboratorio se compone de cuatro tareas: despliegue de la máquina, reconocimiento, obtención de una
shell y escalada de privilegios. Se documentan las herramientas empleadas, los comandos ejecutados y
las respuestas de cada tarea, incluidas las flags de usuario y de root.

Ficha técnica del laboratorio


Pregunta Respuesta
Plataforma TryHackMe
Sala RootMe
Sistema objetivo Linux (Apache 2.4.41)
Vectores Carga de archivos (.phtml) + SUID
(python)
Nivel Fácil / Principiante
Herramientas Nmap, Gobuster, PHP reverse
shell, Netcat

2. Metodología
Se siguió una metodología de pentesting por fases: reconocimiento activo con Nmap, enumeración de
directorios con Gobuster, explotación de la funcionalidad de carga de archivos para obtener una reverse
shell y, finalmente, escalada de privilegios mediante un binario SUID. Todas las pruebas se realizaron en
el entorno controlado y autorizado de TryHackMe.

3. Tarea 1 — Despliegue de la máquina


Se desplegó la máquina objetivo y se estableció la conexión a través de la VPN de TryHackMe o el
AttackBox. Esta tarea prepara el entorno y no requiere respuestas.

4. Tarea 2 — Reconocimiento (Reconnaissance)


Se comenzó recopilando información del objetivo con Nmap para identificar los puertos abiertos, las
versiones de los servicios y detectar posibles vectores de ataque. A continuación se enumeraron
directorios del servidor web con Gobuster.
nmap -sC -sV <IP_OBJETIVO>
gobuster dir -u [Link] -w /usr/share/wordlists/dirb/[Link]

Página 1 de 5
Ciberseguridad Aplicada al Desarrollo de Software | TryHackMe: RootMe

El escaneo mostró dos puertos abiertos: el servicio SSH en el puerto 22 y el servidor web Apache 2.4.41.
La enumeración con Gobuster reveló un directorio oculto de interés, /panel/, que contiene un formulario
de carga de archivos.

Respuestas — Tarea 2
Pregunta Respuesta
Escanea la máquina, ¿cuántos puertos están abiertos? 2
¿Qué versión de Apache se ejecuta? 2.4.41
¿Qué servicio corre en el puerto 22? ssh
Encuentra directorios con Gobuster (no requiere respuesta) —
¿Cuál es el directorio oculto? /panel/

5. Tarea 3 — Obtención de una shell (Getting a shell)


El formulario de carga del directorio /panel/ filtra las extensiones para impedir la subida de archivos
peligrosos. Al igual que en otros retos, la extensión .php se encuentra bloqueada, pero la variante .phtml
es aceptada y ejecutada como PHP por el servidor.
Se subió una reverse shell en PHP con extensión .phtml y se puso a la escucha un listener con Netcat. Al
acceder al archivo cargado se estableció la conexión inversa, obteniendo una shell interactiva sobre el
sistema. Dentro de la máquina se localizó la flag de usuario en el archivo [Link].
# Listener en la máquina atacante
nc -lvnp <PUERTO>

# Estabilizar la shell obtenida


python -c 'import pty; [Link]("/bin/bash")'

# Buscar la flag de usuario


find / -name [Link] 2>/dev/null
cat [Link]

Respuestas — Tarea 3
Pregunta Respuesta
[Link] THM{y0u_g0t_a_sh3ll}

6. Tarea 4 — Escalada de privilegios


Con acceso al sistema, se buscaron binarios con el bit SUID activado para identificar rutas de escalada de
privilegios. Estos binarios se ejecutan con los permisos de su propietario, normalmente root.
find / -perm -u=s -type f 2>/dev/null

Página 2 de 5
Ciberseguridad Aplicada al Desarrollo de Software | TryHackMe: RootMe

El binario que llama la atención es /usr/bin/python, configurado con SUID. Esta configuración insegura
permite ejecutar código arbitrario con privilegios de root. Consultando la técnica correspondiente (por
ejemplo en GTFOBins), se invocó Python con el SUID activo para obtener una shell con UID 0.
/usr/bin/python -c 'import os; [Link](0); [Link]("/bin/bash")'
id # uid=0(root)
cat /root/[Link]

Una vez con privilegios de root se recuperó la flag final en el archivo [Link], completando el reto.

Respuestas — Tarea 4
Pregunta Respuesta
Busca archivos con permiso SUID, ¿cuál es raro? /usr/bin/python
Encuentra la forma de escalar privilegios (no requiere respuesta) —
[Link] THM{pr1v1l3g3_3sc4l4t10n}

7. Conclusiones
La sala «RootMe» consolida los fundamentos del pentesting en un flujo completo y coherente: desde el
reconocimiento hasta el control total del sistema. Se repite un patrón habitual en entornos reales: una
validación débil en la carga de archivos que permite ejecución remota de código, seguida de una escalada
de privilegios por un binario SUID mal configurado (en este caso, python).
Para el desarrollo de software seguro, el reto deja lecciones claras: nunca confiar en filtros de extensiones
basados en listas negras, validar el contenido real de los archivos, aislar los directorios de carga y aplicar
el principio de mínimo privilegio evitando otorgar SUID a intérpretes como Python.

8. Recomendaciones de mitigación
● Filtrar cargas de archivos con listas blancas y validación de tipo de contenido.
● Impedir la ejecución de scripts en los directorios de subida.
● Auditar los binarios con bit SUID y retirar el SUID de intérpretes como python.
● Actualizar y endurecer la configuración de Apache y SSH.
● Aplicar el principio de mínimo privilegio en todo el sistema.

Página 3 de 5
Ciberseguridad Aplicada al Desarrollo de Software | TryHackMe: RootMe

9. Anexo — Evidencias
A continuación se adjuntan las capturas de la sala «RootMe» completada al 100% en la plataforma
TryHackMe, mostrando todas las tareas y respuestas validadas como correctas.

Evidencia 1. Sala RootMe completada al 100%: vista general de las cuatro tareas.

Página 4 de 5
Ciberseguridad Aplicada al Desarrollo de Software | TryHackMe: RootMe

Evidencia 2. Tareas 2, 3 y 4: Reconnaissance, Getting a shell y Privilege escalation.

Página 5 de 5

También podría gustarte