小菜鸡的攻防演练之旅
字数 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 旁站攻击案例
-
攻击流程:
- 通过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和攻防演练积累经验
- 建立自己的知识库和工具集
- 学习防御技术以更好理解攻击手法