我可以使用什么工具来嗅探 HTTP/HTTPS 流量?

slm*_*slm 33 software-rec proxy http https

我正在寻找一个命令行工具,可以拦截HTTP/HTTPS请求,提取信息如:(内容,目的地等),执行各种分析任务,最后确定是否应该丢弃请求。然后必须将法律请求转发给应用程序。

本质上类似于tcpdumpWiresharkSnort 的工具,但在 HTTP 级别运行。

参考

slm*_*slm 28

尝试mitmproxy

  • mitmproxy 是一个支持 SSL 的 HTTP 中间人代理。它提供了一个控制台界面,允许即时检查和编辑流量。

  • mitmdump 是 mitmproxy 的命令行版本,具有相同的功能但没有用户界面。想想 HTTP 的 tcpdump。

特征

  • 拦截 HTTP 请求和响应并动态修改它们。
  • 保存完整的 HTTP 对话以供以后重放和分析。
  • 重放 HTTP 对话的客户端。
  • 重放先前记录的服务器的 HTTP 响应。
  • 反向代理模式将流量转发到指定的服务器。
  • 使用 Python 对 HTTP 流量进行脚本化更改。
  • 用于拦截的 SSL 证书是即时生成的。

截屏

   样品

例子

我设置了一个示例Jekyll Bootstrap应用程序,它在我的本地主机上侦听端口 4000。为了拦截它的流量,我会执行以下操作:

% mitmproxy --mode reverse:http://localhost:4000 -p 4001
Run Code Online (Sandbox Code Playgroud)

然后从我的 Web 浏览器 ( http://localhost:4001)连接到端口 4001 上的 mitmproxy ,从而导致 mitmproxy:

   带有 JB #1 的 mitmproxy 的 ss

然后,您可以选择任何GET结果以查看与该结果相关联的标题信息GET

   带有 JB #2 的 mitmproxy 的 ss

参考


ken*_*orb 7

mitmproxy/mitmdump

相当于tcpdumpHTTPS 的是mitmdump。步骤如下:

  1. 安装mitmproxy包(macOS brew install mitmproxy:)。
  2. 通过以下命令安装mitmproxy CA证书:

    $ mitmdump --mode reverse:http://mitm.it/ -p 8080
    $ wget --content-disposition http://localhost:8080/cert/pem
    $ open mitmproxy-ca-cert.pem
    # Open, install and mark the certificate as trusted.
    
    Run Code Online (Sandbox Code Playgroud)

现在,这是如何测试反向代理的简单测试:

  1. 跑步:mitmdump --mode reverse:https://example.com/ -p 4433
  2. 在另一个 shell 中,运行curl https://localhost:4433

    现在,您应该看到页面源代码和mitmdump命令应该产生如下输出:

    Proxy server listening at http://*:4433
    [::1]:49446: clientconnect
    [::1]:49446: GET https://example.com/ HTTP/2.0
              << 200  1.24k
    [::1]:49446: clientdisconnect
    
    Run Code Online (Sandbox Code Playgroud)

对于所有流量,只需运行:mitmdumpmitmproxy

请参阅:mitmproxy文档页面了解更多详细信息。


查尔斯·普罗克斯

如果您使用的是 macOS,还有Charles Proxy应用程序 (GUI),它允许查看主机之间的所有 HTTP 和 SSL/HTTPS 流量。