Skip to content

Latest commit

 

History

History
56 lines (34 loc) · 2.2 KB

README.md

File metadata and controls

56 lines (34 loc) · 2.2 KB

skunk - 🦨 A person-in-the-middle proxy

Build

work in progress

What is this?

skunk 🦨 is a person-in-the-middle proxy, mainly focussed on HTTP(S), but also open for other protocols. It's useful for API reverse engineering among other things.

Disclaimer

The developers of this tool hereby state that its intended purpose is to inspect your own network traffic, or of people that have agreed to its usage. Using this tool by intercepting, monitoring, or manipulating another person's traffic without their explicit consent is illegal in many juristictions, and the developers prohibit anyone from using this tool under such circumstances.

Development

Generate root certificate

In order for skunk to decrypt TLS traffic, you have to install a certificate as trusted root certificate on the device you're intercepting.

To generate the root certificate, run cargo run --bin skunk -- generate-cert. skunk will output the location of the certificate (if you have logging set to INFO).

Build UI

To build the UI, you'll need trunk and stylance. Then run trunk build (optionally with --watch flag) in the skunk-ui directory. You do not need to use trunk serve, as skunk-cli serves the UI itself (with auto-reload support).

Running the proxy

To run the proxy, run cargo run --bin skunk -- proxy --socks --api.

Useful environment variables

# Set global logging level to WARN, and for skunk crates to DEBUG.
RUST_LOG=warn,skunk=debug

# Path to configuration directory. Defaults to `~/.local/feralsec/skunk`.
# This can also be set using the `-c` or `--config` command-line argument.
SKUNK_CONFIG=./my_test_config/

# Serve UI from the workspace and enable auto-reload.
SKUNK_UI_DEV=1

# Sets the country-code for running hostapd. This is required, when using hostapd.
HOSTAPD_CC=US

You can also put your environment variables in a .env file.