yuankunzhang / man-in-the-middle-proxy

A MITM Proxy Written in Rust πŸ¦€! Toolkit for HTTP/1, HTTP/2, and WebSockets with SSL/TLS Capabilities. Learning Project.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Man In The Middle Proxy

Rust GitHub GitHub last commit GitHub top language

Description

Rust-based Man in the Middle proxy, an early-stage project aimed at providing visibility into network traffic. Currently, it displays both HTTP and HTTPS requests and responses, but our future goal is to allow for manipulation of the traffic for more advanced use cases.

Cast

Features

  • πŸ” HTTP / HTTP(s)
  • πŸ–±οΈ Gui
  • ⌨️ Possibility of choosing a customised address and listening port
  • πŸ” Details for each request and response
  • 🎯 Filtering the list of requests by method
  • ❌ Deleting a single request from the list
  • 🚫 Clear all requests and clean the table
  • 🌌 Dark / light theme

Getting Started

  1. Generate a Certificate:
  • go to ~proxyapi/src/ca/
  • start generation with following terminal command: openssl req -x509 -newkey rsa:4096 -keyout mitmproxy.key -out mitmproxy.cer -sha256 -days 700000 -nodes
  • You can just hit Enter to accept default options but keep in mind to add at least a common name

  1. Install .cer file locally and trust it.
  1. Configure your local system proxy on 127.0.0.1:8100.

Documentation and Help

If you have questions on how to use Man In The Middle Proxy, please use GitHub Discussions! GitHub Discussions

Contributing

Contributions are always welcome!

See contributing.md for ways to get started.

Please adhere to this project's code of conduct.

Licenses

See LICENSE-APACHE, LICENSE-MIT for details

Screenshots

Input of Listening Address

Mitm proxy Screenshot 1 Mitm proxy Screenshot 1

Requests List

Mitm proxy Screenshot 2 Mitm proxy Screenshot 2

Request and Response Details

Mitm proxy Screenshot 3 Mitm proxy Screenshot 3

About

A MITM Proxy Written in Rust πŸ¦€! Toolkit for HTTP/1, HTTP/2, and WebSockets with SSL/TLS Capabilities. Learning Project.

License:Apache License 2.0


Languages

Language:Rust 100.0%