找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2838

积分

0

好友

380

主题
发表于 11 小时前 | 查看: 3| 回复: 0

序言

记录一次在三天内斩获1.3万分的攻防演练靶标过程复盘总结。

突破

通过互联网公开的Web服务进行子域名信息收集,最终定位到目标单位的教务管理系统,该系统由南京某公司开发并提供服务。

教务管理系统登录界面截图

通过目录遍历成功获取到系统源码,随即展开代码审计。按照常规思路,首先查看文件上传功能。在审计过程中,发现了一处名为 uploadFile() 的方法。

C# 文件上传方法代码截图

其对应的API页面存在未授权访问漏洞,可直接通过路径 .aspx?action=uploadFile 调用该方法。其中,fileName 参数是直接从 httpPostedFile.FileName 获取,未经过任何安全检查。因此,只需构造一个文件上传数据包,即可直接上传Webshell。

文件上传请求与响应抓包截图

根据 base.Server.MapPath 定义的常量,可以确定文件的上传路径为:/UpLoadFile/YHB/文件名。拼接完整路径在浏览器中访问,发现文件确实成功落地,但返回了403禁止访问的错误,这个问题我们稍后再来绕过。

访问上传文件返回403错误页面截图

审计中发现了第二处文件上传点。该文件管理功能的代码并未封装在 bin 文件中,而是单独写在一个 .cs 文件里,推测是后续新增的功能。这里存在一个 uploadQTFile() 方法,同样地,uploadFile.FileName 没有对文件后缀进行任何检查就直接保存到服务器。

第二处C#文件上传方法代码截图

此接口需要进行Cookie验证,要求教师及以上身份权限。但系统存在另一个逻辑漏洞,导致越权,可以轻易获取到教师甚至管理员的Token信息。我们只需随便登录一个账号即可。

其他文件管理页面截图

前端对文件类型做了静态校验,但这无关紧要。我们可以先上传一个正常的PNG文件以绕过前端JavaScript验证,然后在发送的数据包中将文件名修改为.aspx

绕过前端校验上传aspx文件的请求响应截图

然而,即使文件上传成功,我们依然遇到了之前提到的403问题。这是因为ASP.NET的上传目录通常被配置为禁止解析动态脚本,导致上传的Webshell无法执行。难道就无计可施了吗?

web.config配置文件中handlers设置截图

我们可以转换思路,上传一个.soap格式的木马。这种木马通过创建危险函数并注册为Web Service来获取命名空间,从而绕过ASPX文件无法被解析的限制。

WebService服务页面截图

将.soap木马上传后,访问确认无问题,即可使用哥斯拉(Godzilla)等Webshell管理工具进行连接。

哥斯拉连接soap webshell的超级终端界面截图

内网

成功连接Webshell后,首先执行命令查看当前主机的权限。当前为IIS服务账户权限,后续需要考虑提权。

执行whoami和ipconfig命令结果截图

执行 Tasklist /SVC 查看进程列表,并将结果丢到在线进程识别网站上进行分析,发现系统中存在火绒安全软件。

系统进程与对应名称列表截图

制作一个Cobalt Strike的免杀马,并上传到目标机器执行,使其成功上线。接着查看当前用户的特权信息。

Beacon工具中查看组和特权信息截图

执行 systeminfo 查询主机版本和补丁信息。目标系统为Windows Server 2016,后续可以尝试通过创建命名管道(pipe)等方式来绕过火绒进行提权。

执行systeminfo命令结果截图

使用哥斯拉内置的PetitPotam模块进行权限提升操作。当然,也可以使用土豆(Potato)家族系列或其他最新公开的、能覆盖Server 2016版本的EXP。

提权成功日志信息截图

获得SYSTEM权限后,操作空间就变得非常大了。执行 query user 查询当前正在运行的用户会话,发现Administrator管理员正在远程登录这台主机。

执行query user命令结果截图

果断从SYSTEM权限切换到Administrator用户的上下文,尝试远程查看其桌面活动。

执行whoami确认权限截图

(远程桌面会话当时忘记截图,此处补充一张IIS管理器界面图示意)

IIS管理器界面截图

lsass.exe 进程的内存中抓取管理员的密码哈希。

从lsass中导出的凭据信息截图

可以通过在线网站对NTLM哈希进行解密,或者直接使用哈希传递(Pass-the-Hash)攻击。

在线解密NTLM哈希结果为admin@123

对内网进行SMB协议的主机存活探测,发现多台在线主机。

内网CIDR扫描结果截图

上线Cobalt Strike的Beacon,并利用其在目标机器上搭建流量代理(如socks5),同时配置服务或计划任务实现持久化。

隧道代理配置与Proxifier测试成功截图

使用超级弱口令检查工具对内网进行探测,发现了大量使用默认或弱口令的主机,范围不限于当前C段。

通过代理执行ipconfig查看另一主机网络配置

目标主机Windows防火墙关闭状态截图

通过SQL Server Management Studio连接数据库服务器

最终,通过一台双网卡主机突破了逻辑网段隔离。此外,利用某管理员WPS云文档的登录缓存,收集到堡垒机的账号密码。成功登录堡垒机后,发现了大量服务器列表,其中就包含了本次攻防演练的靶标服务器。

堡垒机中的服务器列表截图

列表中包含了目标AD服务器的主机、备机,以及各类门户网站和核心数据服务器。

服务器列表中高亮的AD服务器条目

最后

在一次实际的渗透测试项目中,我们发现了某小程序的Fastjson漏洞,可以触发DNSLog解析。但当我们想复现并撰写文章时,该小程序的版本已经进行了大规模更新。

Fastjson解析错误返回的JSON信息截图

漏洞的挖掘与利用往往具有很强的时效性,环境的变化常常让复现和总结变得困难。保持对技术细节的持续记录和复盘,是每一位安全研究者成长的关键。如果你对这类内网渗透与横向移动的技术细节感兴趣,欢迎到云栈社区与更多同行交流探讨。




上一篇:干货类:Prometheus高基数性能瓶颈:大模型与智能驾驶场景实战调优
下一篇:程序员的日常:聊聊只有我们才懂的幽默梗与口头禅
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-4-7 18:12 , Processed in 0.914786 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表