1. 项目概述:一次真实的校园内网安全评估
前段时间,我受邀参与了一次某高校内部网络的合规安全评估项目。这并非一次“黑盒”攻击,而是在校方信息中心明确授权、划定范围、全程监控下的“白盒”渗透测试。我们的目标很明确:模拟一个具备一定技术能力的攻击者,在获得一个初始立足点(例如一个普通学生账户)后,能够在内网中走多远,能接触到哪些核心业务和数据。最终,我们需要提交一份详尽的报告,不仅包含漏洞列表,更要清晰地描绘出攻击路径、潜在影响以及切实可行的加固建议。
“合规”是这次测试的基石。所有操作均在约定的时间窗口内进行,避免对正常教学、科研和办公造成影响;所有获取的敏感数据(如数据库内容、配置文件)仅用于漏洞证明,测试结束后立即销毁;每一步关键操作都留有日志,确保过程可追溯、可复盘。这种“戴着镣铐跳舞”的方式,恰恰最能检验一个网络在真实对抗环境下的弹性。
这次实战涉及从外到内、从低权限到高权限、从单点到面的完整链条。我们遭遇了五花八门的业务系统,从老旧的教务管理、财务系统,到较新的科研平台、一卡通服务,技术栈横跨ASP、PHP、Java。攻击路径也涵盖了经典的Web漏洞利用、系统提权、内网信息收集、横向移动以及权限维持。接下来,我将以这次实战为蓝本,拆解整个流程中的关键环节、技术细节和那些“踩坑”得来的经验。
2. 前期信息收集与脆弱面定位
在授权范围内,我们的信息收集工作可以做得更深入、更系统。这不仅仅是扫描端口那么简单,而是构建一张关于目标网络资产、技术架构和人员习惯的“全景图”。
2.1 资产梳理与测绘
我们首先从校方提供的资产列表入手,但这只是起点。经验告诉我们,内部实际运行的资产往往比台账更丰富。我们使用了多种工具进行互补验证:
- 被动信息收集 :利用
Amass、Subfinder等工具,结合已有的域名列表,尝试发现未在明面的子域名。同时,查阅公开的源代码仓库(如学校某些开源项目在Gitee上)、历史漏洞报告平台,寻找可能泄露的API接口、内部域名甚至账号密码。 - 主动端口扫描 :使用
Nmap进行分阶段扫描。初期进行快速全端口扫描(-p-配合--min-rate 1000),识别开放端口。随后针对关键端口(如80, 443, 8080, 7001, 3389, 22, 445)进行服务版本探测(-sV)和脚本扫描(-sC),获取Banner信息、支持的HTTP方法、可能的默认页面等。 - Web应用爬取与目录爆破 :对识别出的每一个Web服务,使用
Gobuster、Dirsearch进行目录和文件爆破。字典的选择至关重要,我们合并了通用的大字典(如SecLists中的common.txt,directory-list-2.3-medium.txt)和针对教育、办公系统的定制字典(包含/admin,/upload,/test,/backup等常见路径)。
实操心得 :在校园网环境中,经常会发现一些“年久失修”的系统。一个很有效的技巧是,在目录爆破时,重点关注
.zip,.tar.gz,.bak,.old等扩展名,以及/www,/web,/src等目录。我们曾在一个/backup/2020目录下找到了整站源码和数据库配置文件,直接打开了突破口。
2.2 漏洞扫描与初步验证
资产地图绘制完成后,我们开始针对性地寻找脆弱点。我们并不完全依赖自动化扫描器,而是将其结果作为线索。
- 自动化工具辅助 :使用
Nuclei配合庞大的社区模板库,对所有Web资产进行快速指纹识别和已知漏洞检测。AWVS或Xray用于对重点系统进行深度爬虫和漏洞扫描。这些工具能高效地发现诸如SQL注入、XSS、敏感信息泄露、组件已知漏洞(如Fastjson, Shiro, Log4j2)的线索。 - 手动验证与逻辑挖掘 :自动化工具报告的问题需要手动逐一验证,去伪存真。更重要的是,许多业务逻辑漏洞是扫描器无法发现的。例如:
- 越权访问 :通过修改请求中的用户ID参数,查看是否能访问其他学生的成绩、课表信息。
- 密码重置漏洞 :测试密码重置功能是否验证用户身份过于简单,如仅验证学号/工号(可枚举)、验证码可爆破或回显在响应中。
- 订单支付逻辑漏洞 :在校园网费充值、图书订购等环节,尝试修改支付金额、重复提交订单、利用竞争条件等。
在这个阶段,我们在一套旧的 科研项目申报系统 上取得了首个实质性进展。该系统使用JSP开发, Nuclei 扫描提示存在可能的 Struts2 历史漏洞特征。通过手动发送特定的OGNL表达式测试Payload,我们确认了该系统存在 S2-045 远程代码执行漏洞。利用该漏洞,我们成功在应用


150

被折叠的 条评论
为什么被折叠?



