在Windows子系统(WSL)上安装mitmproxy

3
我一直在使用Fiddler修改由服务器发送的HTTPS响应,该响应由客户端的POST请求发起,这很好用。
现在,我想在Windows上使用Java来实现相同的中间人攻击,因此我正在寻找可以处理系统范围内的HTTPS流量的代码。导入证书到系统的信任库也是必要的,但我在启动实际的Java代码方面遇到了困难。例如,mitmproxy有一个Windows安装程序,但它没有提供mitmproxy可执行文件因此无法使用。另外,在使用WSL时,我遇到以下Python异常:
$ sudo apt-get -y install mitmproxy
[sudo] password for ubuntu:
Reading package lists... Done
Building dependency tree
Reading state information... Done
mitmproxy is already the newest version (2.0.2-3).
0 upgraded, 0 newly installed, 0 to remove and 106 not upgraded.
root@mypc:~$ mitmproxy --port 1080
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 574, in _build_master
    ws.require(__requires__)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 892, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 783, in resolve
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (urwid 2.0.1 (/usr/lib/python3/dist-packages), Requirement.parse('urwid<1.4,>=1.3.1'), {'mitmproxy'})

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/mitmproxy", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3088, in <module>
    @_call_aside
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3072, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3101, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 576, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 589, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 778, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'urwid<1.4,>=1.3.1' distribution was not found and is required by mitmproxy

LittleProxy-mitm的Maven依赖会导致java.lang.NoClassDefFoundError: org/bouncycastle/util/Encodable

我该如何解决这些问题或者还有什么其他方法可以使用Java编程来捕获和修改任何系统范围内的HTTPS流量?它只需要在Windows上工作。

2个回答

3

pip3安装指南有效:

sudo apt install python3-pip && sudo pip3 install -U pip && sudo pip3 install mitmproxy

注意:此命令适用于Ubuntu。

我们应该以root身份使用pip3吗? - Alice

1

Ubuntu系统上的mitmproxy软件包没有得到维护。

您有三个选择:

1. 您可以按照BullyWiiPlaza所述从pip安装它。

2. 您可以从https://mitmproxy.org/下载Linux平台的已编译二进制文件。

3. 或者您可以从github下载源代码并运行它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接