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

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

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

本质上类似于的工具tcpdump,Wireshark, 或者鼻息,但在 HTTP 级别运行。

参考

答案1

尝试米特普罗西

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

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

特征

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

截屏

   不锈钢样品

例子

我设置了一个例子杰基尔引导程序应用程序正在我的本地主机上侦听端口 4000。为了拦截它的流量,我会执行以下操作:

% mitmproxy --mode reverse:http://localhost:4000 -p 4001

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

   mitmproxy 的 ss 和 JB #1

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

   mitmproxy 的 ss 和 JB #2

参考

答案2

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.
    

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

  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
    

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

看:mitmproxy文档页面更多细节。


查尔斯·普罗克斯

如果您使用的是 macOS,还有查尔斯·普罗克斯应用程序 (GUI),允许查看主机之间的所有 HTTP 和 SSL/HTTPS 流量。

答案3

在某些情况下,您可以使用接受传入 HTTP 请求并发出传出 HTTPS 请求的代理。举个例子,我想捕获gitgithub.com 之间的流量。我用了米特普罗西:

mitmproxy -s httpser.py

哪里httpser.py

def request(context, flow):
  flow.request.scheme = 'https'
  flow.request.port = 443

然后我git像这样跑:

export http_proxy="http://127.0.0.1:8080/"
git clone http://github.com/oxplot/difftr

现在使用wiresharkListen on localhost,可以捕获普通流量。如果没有代理,github 将重定向git以使用 HTTPS。

相关内容