#proxy #man-in-the-middle #tls #certificate #aim #traffic #mitmproxy

third-wheel

third-wheel 是一个用 Rust 编写的 TLS 中间人代理,旨在轻量级和快速。目前处于 alpha 版本。

7 个版本 (4 个重大更新)

0.6.0 2021年3月18日
0.5.0 2021年2月7日
0.4.0 2020年8月2日
0.3.3 2020年7月26日
0.2.0 2020年7月24日

#1#aim

每月26次 下载

MIT 协议

40KB
749

Crates.io docs.rs MIT licensed

third-wheel

third-wheel 是一个用 Rust 编写的 TLS 中间人代理,旨在轻量级和快速。目前处于 beta 版本。

用法

third-wheel 是一个库,因此您可以修改其行为以捕获流量或修改其传输过程。它还附带了一些示例;您首先需要运行 set_up_and_validate_environment.sh 以生成根证书。最简单的示例 trivial_mitm 只简单地代理流量而不对其进行任何操作,您可以使用 cargo run 来运行。

cargo run --example trivial_mitm -- --help

将为您提供一些提示。如果您只想使用 TLS 中间人代理

cargo run --example trivial_mitm -- -p 8080

将在端口 8080 上启动。

要测试,您可以从 third-wheel 目录运行 curl

curl -x http://127.0.0.1:8080 https://google.com -vv --http1.1 --cacert ./ca/ca_certs/cert.pem -L

为了更吸引人,请使用 har-capturer 记录会话的 har 文件

cargo run --example har-capture -- --help

开发

如果您想在早期阶段开发/使用 third-wheel,您将需要生成证书颁发机构证书并检查您本地版本的 curl 和 openssl 是否按预期工作。运行 set_up_and_validate_environment.sh 脚本来执行此操作。

针对 Chrome 和 Firefox 进行测试

test_against_chrome.shtest_against_firefox.sh 脚本使用 Docker、(Chromium|Firefox) 和 Selenium 来测试浏览器是否被中间人欺骗。它为您做了大部分设置,但您需要安装 docker 才能使其工作。它使用 sudo 运行 docker,因为它假设您没有修改 docker 组 - 如果您已经修改了,请随意删除 sudo,然后更自信地运行脚本 :)

计划功能

  • 透明 HTTP 代理
  • 透明 HTTPS 代理
  • MITM 代理被标准 curl 信任
  • MITM 代理被 Chrome 信任
  • MITM 代理被 Firefox 信任
  • MITM 代理模式在内存中比 mitmproxy 更快/更精简
  • 供其他开发者扩展的库版本

依赖项

~8–20MB
~271K SLoC