记一次从文件备份泄露到主机上线
字数 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.asp webshell
  • 上传成功但文件名被改写
  • 通过下载功能获取新文件名
  • 通过源代码搜索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. 攻击链总结

  1. 信息收集:目录爆破发现备份文件
  2. 代码审计:分析源代码发现配置文件泄露
  3. 初始访问:利用默认凭证登录系统
  4. 漏洞利用:文件上传获取webshell
  5. 权限提升:通过SQL注入启用xp_cmdshell
  6. 防御绕过:免杀技术绕过杀软
  7. 持久化:成功上线Cobalt Strike

6. 防御建议

  1. 备份文件管理

    • 禁止将备份文件存放在Web可访问目录
    • 对备份文件进行访问控制
  2. 配置安全

    • 敏感信息不应明文存储在配置文件中
    • 使用加密存储或环境变量
  3. 输入验证

    • 对所有用户输入进行严格过滤
    • 实施CSRF防护措施
  4. 文件上传

    • 限制上传文件类型
    • 对上传文件进行病毒扫描
    • 随机化存储文件名和路径
  5. 数据库安全

    • 禁用xp_cmdshell等危险存储过程
    • 实施最小权限原则
  6. 杀软部署

    • 保持杀毒软件更新
    • 部署行为分析类防护产品
  7. 日志监控

    • 记录所有可疑活动
    • 设置异常行为告警

通过本案例可以看出,从一个小小的备份文件泄露开始,攻击者可以逐步深入,最终完全控制目标系统。防御方需要建立纵深防御体系,阻断攻击链中的任何一环都可能阻止最终的安全事件发生。

从文件备份泄露到主机上线的完整渗透测试教学 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.asp webshell 上传成功但文件名被改写 通过下载功能获取新文件名 通过源代码搜索 uploadfile 关键词定位上传目录 拼接URL访问确认正确路径 使用哥斯拉成功连接webshell 3. 权限提升与横向移动 3.1 SQL注入与命令执行 发现SQL查询页面可未授权访问 确认数据库为SQL Server 尝试开启 xp_cmdshell : 成功执行系统命令: 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等危险存储过程 实施最小权限原则 杀软部署 : 保持杀毒软件更新 部署行为分析类防护产品 日志监控 : 记录所有可疑活动 设置异常行为告警 通过本案例可以看出,从一个小小的备份文件泄露开始,攻击者可以逐步深入,最终完全控制目标系统。防御方需要建立纵深防御体系,阻断攻击链中的任何一环都可能阻止最终的安全事件发生。