你被监控了吗?检测SSL中间人攻击

本文介绍如何使用PowerShell脚本Detect-SSLmitm检测企业网络中的SSL解密代理,识别哪些HTTPS流量被监控,帮助渗透测试人员寻找未解密的C2通信路径。

你被监控了吗?检测SSL中间人攻击

作者:Carrie Roberts

你的雇主是否在监控你工作电脑上的所有敏感网络浏览信息?很可能。但如何确认?

企业通常会部署SSL解密代理以更好地保护资产安全——这是你入职时就同意的条款(至少在使用公司网络和管理设备时)。不过你可能想知道:哪些HTTPS流量会被解密?哪些不会?例如,企业可能为避免法律风险,不会解密银行网站(含密码信息)或政府网站(.gov)的流量。

为此,我开发了PowerShell脚本Detect-SSLmitm下载链接),用于检测外部服务器的HTTPS连接是否被解密。渗透测试人员尤其需要关注未解密的站点——若流量未被解密,通过域前置(Domain Fronting)等技术建立C2通信的成功率会更高。

脚本原理是通过对比证书哈希值判断是否存在中间人解密。感谢**@malcomvetter**提出的改进建议,例如通过比对中间证书减少误报。

使用示例

运行方式非常简单(如下图): ![检测结果示例] 输出显示,仅usbank.com和whitehouse.gov站点未被解密。

自定义配置

  1. 编辑脚本添加目标测试站点
  2. 在确认无SSL解密的网络环境中运行Get-GoldenHashes函数更新黄金证书哈希列表 (注意:若在解密环境中生成哈希会导致误报)

Carrie是BHIS的常驻客座作者,我们非常欢迎她的贡献!


延伸学习
Carrie的课程推荐:

  • 《攻击模拟工具:Atomic Red Team与CALDERA实战》
  • 《PowerShell信息安全应用》
    (支持直播/虚拟课堂及点播学习)
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计