小菜鸡的攻防演练之旅
字数 1984 2025-08-12 11:33:56

攻防演练实战教学文档

1. 信息收集阶段

1.1 端口扫描

  • 工具选择

    • Nmap:功能强大的网络扫描工具,可识别开放端口和服务
    • 御剑:国产端口扫描工具,简单易用
    • Masscan:高速端口扫描工具,适合大规模扫描
    • 在线网站:如Shodan、Censys等
  • 扫描策略

    • 全端口扫描(1-65535)
    • 常用端口快速扫描(如21,22,80,443,3389等)
    • 服务版本识别(-sV参数)

1.2 Web指纹识别

  • 常用工具

    • 潮汐指纹识别:国产指纹识别工具
    • 云悉指纹识别:在线指纹识别平台
    • WhatWeb:开源的Web指纹识别工具
  • 识别内容

    • CMS类型及版本(如WordPress、Beecms等)
    • Web服务器类型(Apache、Nginx、IIS等)
    • 编程语言(PHP、ASP、JSP等)
    • 框架信息(ThinkPHP、Spring等)

1.3 旁站信息收集

  • 方法

    • IP反查域名(使用爱站网、同IP网站查询等工具)
    • 查找同一IP下的其他网站
    • 分析服务器上运行的其他服务
  • 意义

    • 主站防护严密时,旁站可能成为突破口
    • 同一服务器上的多个站点可能存在相同漏洞

1.4 子域名收集

  • 工具与技术

    • 子域名挖掘机:自动化子域名枚举工具
    • Google搜索(site:example.com)
    • FOFA、ZoomEye等网络空间搜索引擎
    • DNS枚举工具(如dnsenum、subfinder等)
  • 重点

    • 查找开发、测试环境(dev、test等子域名)
    • 查找管理后台(admin、manage等子域名)
    • 查找移动端接口(m、api等子域名)

2. 渗透攻击阶段

2.1 旁站攻击案例

  • 攻击流程

    1. 通过IP反查找到旁站
    2. 识别CMS为Beecms
    3. 利用已知漏洞:
      • 账户枚举漏洞
      • 后台登录处SQL注入漏洞
    4. 获取后台凭证
    5. 后台添加PHP文件上传权限
    6. 上传Webshell获取控制权
  • Beecms漏洞利用

    • 账户枚举:通过登录页面返回信息判断用户是否存在
    • SQL注入:构造特殊SQL语句绕过认证或获取数据
    • 后台功能滥用:修改上传文件类型限制

2.2 子站攻击案例

  • 攻击流程

    1. 发现wx.xxx.com子站
    2. 识别为微信公众号相关站点
    3. 发现职工登录后台
    4. 利用账户枚举漏洞(用户123)
    5. 分析数据包发现密码明文返回
    6. 发现SQL注入漏洞获取所有账户
    7. 识别高权限账户(通过permission value字段)
    8. 登录高权限账户上传ASP Webshell
  • 关键发现

    • 账户枚举漏洞:系统返回用户存在与否的信息
    • 密码明文传输:密码直接存在于返回包中
    • SQL注入:未过滤的用户输入导致数据库信息泄露
    • 权限控制不严:低权限账户可获取高权限账户信息

3. 漏洞利用技术详解

3.1 账户枚举漏洞

  • 原理:系统对不存在的用户和存在的用户返回不同信息
  • 检测方法
    • 输入已知不存在的用户名(如随机字符串)
    • 输入可能存在的用户名(如admin、test等)
    • 比较系统返回信息的差异
  • 防御措施
    • 统一错误信息(如"用户名或密码错误")
    • 增加验证码或登录限制

3.2 SQL注入漏洞

  • Beecms后台SQL注入

    • 登录表单未过滤特殊字符
    • 可通过' or 1=1 -- 等Payload绕过认证
    • 可联合查询获取数据库信息
  • 子站SQL注入

    • 直接返回完整数据库信息
    • 可通过权限字段识别高权限账户
    • 无需复杂Payload即可获取所有账户
  • 防御措施

    • 使用参数化查询
    • 严格过滤用户输入
    • 最小权限原则

3.3 文件上传漏洞

  • Beecms上传漏洞利用

    1. 登录后台
    2. 修改允许上传的文件类型(添加php)
    3. 直接上传PHP Webshell
  • 子站上传漏洞利用

    1. 获取高权限账户
    2. 找到上传功能点
    3. 上传ASP Webshell
  • 防御措施

    • 限制上传文件类型(白名单)
    • 文件内容检查
    • 上传目录不可执行

4. 总结与最佳实践

4.1 攻击方经验总结

  1. 信息收集是关键

    • 主站防护严密时,旁站和子站是重要突破口
    • 全面的信息收集能显著提高攻击成功率
  2. 常见CMS漏洞利用

    • 熟悉常见CMS的历史漏洞
    • 保持漏洞库更新
    • 自动化工具与手工验证结合
  3. 细节决定成败

    • 注意系统返回的所有信息
    • 分析每个数据包的完整内容
    • 不放过任何可能的输入点

4.2 防御方建议

  1. 减少攻击面

    • 关闭不必要的服务和端口
    • 定期检查旁站和子站安全性
    • 统一管理同一服务器上的多个站点
  2. 漏洞修复

    • 及时更新CMS和组件
    • 修补已知漏洞
    • 禁用危险功能(如不必要的文件上传)
  3. 安全开发实践

    • 输入验证和过滤
    • 使用预编译语句防止SQL注入
    • 实施最小权限原则
  4. 监控与响应

    • 日志记录和分析
    • 异常行为检测
    • 应急响应计划

4.3 持续学习

  • 关注最新漏洞和攻击技术
  • 参与CTF和攻防演练积累经验
  • 建立自己的知识库和工具集
  • 学习防御技术以更好理解攻击手法
攻防演练实战教学文档 1. 信息收集阶段 1.1 端口扫描 工具选择 : Nmap:功能强大的网络扫描工具,可识别开放端口和服务 御剑:国产端口扫描工具,简单易用 Masscan:高速端口扫描工具,适合大规模扫描 在线网站:如Shodan、Censys等 扫描策略 : 全端口扫描(1-65535) 常用端口快速扫描(如21,22,80,443,3389等) 服务版本识别(-sV参数) 1.2 Web指纹识别 常用工具 : 潮汐指纹识别:国产指纹识别工具 云悉指纹识别:在线指纹识别平台 WhatWeb:开源的Web指纹识别工具 识别内容 : CMS类型及版本(如WordPress、Beecms等) Web服务器类型(Apache、Nginx、IIS等) 编程语言(PHP、ASP、JSP等) 框架信息(ThinkPHP、Spring等) 1.3 旁站信息收集 方法 : IP反查域名(使用爱站网、同IP网站查询等工具) 查找同一IP下的其他网站 分析服务器上运行的其他服务 意义 : 主站防护严密时,旁站可能成为突破口 同一服务器上的多个站点可能存在相同漏洞 1.4 子域名收集 工具与技术 : 子域名挖掘机:自动化子域名枚举工具 Google搜索(site:example.com) FOFA、ZoomEye等网络空间搜索引擎 DNS枚举工具(如dnsenum、subfinder等) 重点 : 查找开发、测试环境(dev、test等子域名) 查找管理后台(admin、manage等子域名) 查找移动端接口(m、api等子域名) 2. 渗透攻击阶段 2.1 旁站攻击案例 攻击流程 : 通过IP反查找到旁站 识别CMS为Beecms 利用已知漏洞: 账户枚举漏洞 后台登录处SQL注入漏洞 获取后台凭证 后台添加PHP文件上传权限 上传Webshell获取控制权 Beecms漏洞利用 : 账户枚举 :通过登录页面返回信息判断用户是否存在 SQL注入 :构造特殊SQL语句绕过认证或获取数据 后台功能滥用 :修改上传文件类型限制 2.2 子站攻击案例 攻击流程 : 发现wx.xxx.com子站 识别为微信公众号相关站点 发现职工登录后台 利用账户枚举漏洞(用户123) 分析数据包发现密码明文返回 发现SQL注入漏洞获取所有账户 识别高权限账户(通过permission value字段) 登录高权限账户上传ASP Webshell 关键发现 : 账户枚举漏洞:系统返回用户存在与否的信息 密码明文传输:密码直接存在于返回包中 SQL注入:未过滤的用户输入导致数据库信息泄露 权限控制不严:低权限账户可获取高权限账户信息 3. 漏洞利用技术详解 3.1 账户枚举漏洞 原理 :系统对不存在的用户和存在的用户返回不同信息 检测方法 : 输入已知不存在的用户名(如随机字符串) 输入可能存在的用户名(如admin、test等) 比较系统返回信息的差异 防御措施 : 统一错误信息(如"用户名或密码错误") 增加验证码或登录限制 3.2 SQL注入漏洞 Beecms后台SQL注入 : 登录表单未过滤特殊字符 可通过' or 1=1 -- 等Payload绕过认证 可联合查询获取数据库信息 子站SQL注入 : 直接返回完整数据库信息 可通过权限字段识别高权限账户 无需复杂Payload即可获取所有账户 防御措施 : 使用参数化查询 严格过滤用户输入 最小权限原则 3.3 文件上传漏洞 Beecms上传漏洞利用 : 登录后台 修改允许上传的文件类型(添加php) 直接上传PHP Webshell 子站上传漏洞利用 : 获取高权限账户 找到上传功能点 上传ASP Webshell 防御措施 : 限制上传文件类型(白名单) 文件内容检查 上传目录不可执行 4. 总结与最佳实践 4.1 攻击方经验总结 信息收集是关键 : 主站防护严密时,旁站和子站是重要突破口 全面的信息收集能显著提高攻击成功率 常见CMS漏洞利用 : 熟悉常见CMS的历史漏洞 保持漏洞库更新 自动化工具与手工验证结合 细节决定成败 : 注意系统返回的所有信息 分析每个数据包的完整内容 不放过任何可能的输入点 4.2 防御方建议 减少攻击面 : 关闭不必要的服务和端口 定期检查旁站和子站安全性 统一管理同一服务器上的多个站点 漏洞修复 : 及时更新CMS和组件 修补已知漏洞 禁用危险功能(如不必要的文件上传) 安全开发实践 : 输入验证和过滤 使用预编译语句防止SQL注入 实施最小权限原则 监控与响应 : 日志记录和分析 异常行为检测 应急响应计划 4.3 持续学习 关注最新漏洞和攻击技术 参与CTF和攻防演练积累经验 建立自己的知识库和工具集 学习防御技术以更好理解攻击手法