关于如何捕获网络连接/流量以确定浏览器/SSL 版本的建议?

关于如何捕获网络连接/流量以确定浏览器/SSL 版本的建议?

请注意,我已将此问题发布到 StackExchange InfoSec 网站,但它并不像 ServerFault 那样受欢迎,而且更多涉及 Web 服务的网络收集技术方面。

我开始思考如何分析我的网络流量,以获取有关我的 Web 服务器群的 SSL 和浏览器使用情况的信息。我还怀疑我们的网络上正在运行一些影子(旧式、未知)Web 服务器,我想尝试捕获与它们的连接。

基本上我正在寻找一种廉价的解决方案,可以:

  • 记录所有连接及其协议,类似于 Wireshark 记录源/目标和协议的方式,但不收集数据本身。仅收集标头和协议类型信息。(例如源/目标 IP 地址、协议和任何协议版本/详细信息,如 SSL/TLS 版本等...)
  • 对于 HTTP 连接,记录浏览器的“User-Agent”属性。(这样我就可以被动地构建一些浏览器版本/兼容性图片)
  • 能够对非标准端口进行此操作将是一个优点。将收集限制为仅特定协议是一个好主意。例如,仅收集 HTTP、SSL 和 TLS。

我最终会将一个专用于收集这些信息的服务器插入到我控制的每个交换机的镜像端口中。

这将有助于开展以下后续活动:

  • 找出哪些 Web 服务允许使用弱 SSL/TLS 版本。例如,如果我看到任何 SSLv2/3,我会考虑查找并将这些 Web 服务器重新配置为最低 TLS v1.1。
  • 了解最终用户 Web 浏览器的品牌和版本情况,这样我就可以决定可以安全地进行哪些最低限度的安全更改。例如,如果 15% 的浏览器是 Vista 上的 IE8(!),而不支持 TLSv1.1+,我就会提前知道。此外,我可以查看这些 IP,并确定其中是否有任何应调查的旧式网络资源,而不仅仅是某些使用过时软件的最终用户。
  • 确定哪些 Web 服务 IP 地址尚不清楚,以便我可以追踪这些服务。

我之所以问这个问题,而不是继续尝试 tcpdump 和 OpenDPI,是因为担心性能问题。我不确定镜像千兆端口时是否会发生什么。捕获这些信息可能很困难(记住,我不需要数据包转储,只需要标头类型信息,它可以是折叠记录,我不需要知道每个连接,只需要 src/dst/protocol 唯一的连接),而且确定捕获是否失败也很困难。例如,我怎么知道 50% 的连接被忽略了?

我可能会运行一周来建立用户资料。

如果有人有任何建议或推荐,我愿意倾听。谢谢。

答案1

我认为可以满足你需求的工具是p0f,特别是它的一个分叉版本,它也可以SSL 指纹识别. 源代码可以在这里找到这里. p0f 捕获到达机器的每个连接,分析其 TCP、HTTP 和 SSL/TLS 标头(SSL/TLS 仅在 SSL 指纹识别版本中可用)并输出连接数据,例如:

  • IP地址
  • 最大传输单元
  • 客户端使用的操作系统和操作系统版本(从 TCP 连接分析)
  • 浏览器和浏览器版本(从 HTTP 用户代理或 SSL/TLS 指纹分析)

我不确定它是否可以配置为非标准端口,但我认为也是可以的。这是一款很棒的工具,可以满足您的大部分需求

相关内容