记录某项目中一次较为顺利的溯源反制过程
字数 1625 2025-08-19 12:42:00
溯源反制实战教学文档:从攻击告警到反制分析
一、事件概述
1.1 事件背景
- 时间:202X年7月19日
- 事件类型:扫描器攻击后的溯源反制
- 攻击特征:时间连续、受害IP数量多,初步判断为扫描器攻击
- 反制结果:成功获取攻击者傀儡机system权限,分析扫描工具并还原攻击路径
二、溯源反制流程
2.1 初始发现
- 告警发现:通过安全监控系统发现漏检的攻击告警
- 初步分析:
- 攻击时间连续性表明可能是扫描器行为
- 受害IP数量多暗示可能是针对性攻击或大规模扫描
2.2 威胁情报查询
- 使用威胁情报平台查询攻击IP
- 发现该IP未被标记为恶意IP(说明可能是新使用的攻击资源)
2.3 主动反制
-
信息收集:
- 使用dirsearch对攻击IP进行目录扫描
- 发现phpmyadmin管理界面
-
漏洞利用:
- 尝试弱口令root/root成功登录phpmyadmin
- 确认该机器为傀儡机(发现我方资产信息)
- 通过phpmyadmin日志写入webshell
-
权限提升:
- 上线Cobalt Strike(CS)
- 获取系统账号密码
- 发现开放23389端口(远程桌面)
2.4 内网信息收集
- 通过远程桌面连接傀儡机
- 发现持续运行的扫描程序(判断为Python编写)
- 下载扫描工具到本地进行分析
三、扫描工具分析
3.1 工具解包
-
工具准备:
- 使用pyinstxtractor.py进行Python打包exe解包
- 命令:
python pyinstxtractor.py xx.exe
-
文件结构:
- 解包后得到
main.exe_extracted目录 - 关键文件:
- 1.exe.mainifest
- 1.pyc(可能需要手动添加.pyc后缀)
- struct.pyc
- 解包后得到
3.2 反编译过程
-
工具安装:
pip install uncompyle或pip3 install uncompyle
-
反编译命令:
uncompyle6 struct.pyc > output.py
-
常见问题解决:
- 主程序反编译报错时,比较两个pyc文件前16字节
- 将可反编译文件的前16字节复制到不能反编译的文件中
3.3 工具功能分析
-
工作流程:
- 读取输入的txt文档(test.txt)中的URL作为初始目标
- 访问这些URL并进行扫描
- 从网页中爬取新的URL存入check中
- 形成循环扫描机制
-
扫描特征:
- 扫描常见备份文件
- 使用域名作为文件名进行扫描(创新点)
- 包含敏感信息扫描功能
- 包含struts2漏洞扫描功能(但实际攻击中未使用)
-
传播机制:
- 通过网页友情链接获取新目标
- 形成"无限扫描"效果
四、攻击路径还原
-
攻击者路径:
- 通过phpmyadmin弱口令(root/root)入侵傀儡机
- 在傀儡机上部署扫描工具
- 工具自动通过友情链接扩展扫描目标
-
攻击性质:
- 非针对性攻击
- 自动化大规模扫描
- 主要目标为网站备份文件
五、防御建议
-
phpmyadmin防护:
- 禁用默认root账号或使用强密码
- 限制访问IP
- 定期检查日志文件
-
扫描器防御:
- 监控异常访问模式
- 设置合理的访问频率限制
- 定期检查网站友情链接
-
应急响应:
- 建立完善的告警机制
- 对攻击IP及时进行反制分析
- 保留完整日志记录
六、技术要点总结
-
反制关键点:
- 快速识别攻击特征
- 主动信息收集(dirsearch)
- 利用攻击者自身漏洞(phpmyadmin弱口令)
-
工具分析技巧:
- Python打包exe解包方法
- pyc文件反编译技巧
- 文件结构分析
-
溯源价值:
- 确认攻击性质(非针对性)
- 了解攻击工具工作原理
- 发现攻击传播机制(友情链接)
附录:使用工具清单
-
信息收集:
- dirsearch
-
反编译工具:
- pyinstxtractor.py
- uncompyle6
-
渗透工具:
- Cobalt Strike(CS)
- phpmyadmin日志写shell技术
-
分析工具:
- 文本比较工具
- 十六进制编辑器