记一次从文件备份泄露到主机上线
字数 1408 2025-08-12 11:34:48
从文件备份泄露到主机上线的完整渗透测试教学
1. 信息收集阶段
1.1 初始探测
- 使用Burp Suite进行弱口令爆破尝试(无果)
- 进行目录爆破,发现
web.rar备份文件可下载
1.2 备份文件分析
- 下载并解压
web.rar文件 - 确认系统为ASP.NET框架
- 使用Fortify进行源代码静态扫描
2. 漏洞发现与利用
2.1 配置文件泄露
- 在扫描报告中识别关键XML配置文件
- 配置文件包含:
- 数据库账号密码
- 微信AppId等敏感信息
- 默认登录账户和密码哈希
2.2 密码破解
- 使用cmd5.com对密码哈希进行解密
- 获取明文密码
2.3 未授权访问
- 通过路径拼接访问配置文件中的URL
- 确认存在未授权访问漏洞
- 使用破解的凭证成功登录系统
2.4 存储型XSS验证
- 在输入框中测试
<script>alert(1)</script> - 确认系统未进行XSS过滤
2.5 文件上传漏洞
- 定位项目信息上传点
- 使用哥斯拉生成
test.aspwebshell - 上传成功但文件名被改写
- 通过下载功能获取新文件名
- 通过源代码搜索
uploadfile关键词定位上传目录 - 拼接URL访问确认正确路径
- 使用哥斯拉成功连接webshell
3. 权限提升与横向移动
3.1 SQL注入与命令执行
- 发现SQL查询页面可未授权访问
- 确认数据库为SQL Server
- 尝试开启
xp_cmdshell:EXEC sp_configure 'show advanced options',1;RECONFIGURE; EXEC sp_configure 'xp_cmdshell',1;RECONFIGURE; - 成功执行系统命令:
whoami返回system权限
3.2 系统路径探测
- 使用命令
dir /s /b c:\Web.config查找绝对路径 - 排除无关路径后确认系统位置
3.3 写入webshell
- 使用
echo命令写入一句话木马 - 拼接URL并通过哥斯拉再次连接成功
4. 绕过防御与上线
4.1 杀软检测
- 初始上线尝试失败(Cobalt Strike powershell和bitsadmin)
- 执行
tasklist查看进程 - 使用杀软查询工具确认存在360和安全狗
4.2 免杀技术
- 使用GitHub上的免杀工具生成shellcode
- 在VPS搭建HTTP服务提供下载
- 通过远程下载方式将木马传输到目标主机
- 执行后成功上线
5. 攻击链总结
- 信息收集:目录爆破发现备份文件
- 代码审计:分析源代码发现配置文件泄露
- 初始访问:利用默认凭证登录系统
- 漏洞利用:文件上传获取webshell
- 权限提升:通过SQL注入启用xp_cmdshell
- 防御绕过:免杀技术绕过杀软
- 持久化:成功上线Cobalt Strike
6. 防御建议
-
备份文件管理:
- 禁止将备份文件存放在Web可访问目录
- 对备份文件进行访问控制
-
配置安全:
- 敏感信息不应明文存储在配置文件中
- 使用加密存储或环境变量
-
输入验证:
- 对所有用户输入进行严格过滤
- 实施CSRF防护措施
-
文件上传:
- 限制上传文件类型
- 对上传文件进行病毒扫描
- 随机化存储文件名和路径
-
数据库安全:
- 禁用xp_cmdshell等危险存储过程
- 实施最小权限原则
-
杀软部署:
- 保持杀毒软件更新
- 部署行为分析类防护产品
-
日志监控:
- 记录所有可疑活动
- 设置异常行为告警
通过本案例可以看出,从一个小小的备份文件泄露开始,攻击者可以逐步深入,最终完全控制目标系统。防御方需要建立纵深防御体系,阻断攻击链中的任何一环都可能阻止最终的安全事件发生。