Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
ferret — The collaborative web app pentest suite | Kitploit
Tools/GitHubGitHub/synlace/ferret
ReconnaissanceDynamic Analysis (Sandboxing)Vulnerability AnalysisWeb Proxies & InterceptionAPI Security TestingInformation GatheringWeb SecurityPenetration TestingAI Security
GitHubsynlace/ferret

ferret

The collaborative web app pentest suite

57331 month agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
View RepositoryWebsite

Ferret

Ferret

The collaborative MITM proxy for security testers.

Capture HTTP traffic, annotate requests with AI, run hunt sessions, replay traffic, and track findings from one interface.

Latest Release Discord License: MIT Build Status Docker on GHCR GitHub Stars

Quick start · Features · Screenshots · Configuration · Security · Contributing


Quick start

Install

root@kitploit:~
git clone https://github.com/synlace/ferret.git
cd ferret

cp .env.example .env   # optional
just up

Or use Docker Compose directly:

root@kitploit:~
docker compose up --build -d

Open Ferret

ServiceURL
UIhttp://localhost:3000
APIhttp://localhost:8000
Proxy127.0.0.1:1337

Open:

root@kitploit:~
http://localhost:3000

The first-run setup wizard will ask you to set a password and choose an AI provider.

Requirements

  • Docker
  • Docker Compose
  • just

Overview

Ferret is an AI-assisted HTTP interception proxy built for security testers.

Point your browser, CLI tool, or testing workflow at:

root@kitploit:~
127.0.0.1:1337

Ferret captures requests and responses, stores them locally, annotates traffic with AI, and gives you tools to replay, modify, test, and turn interesting behaviour into findings.

It is designed for workflows where you want more than a passive proxy: you want something that helps you think, test, and document as you go.


Features


Screenshots

Hunts

Hunts - AI-assisted hunt sessions that search request history, write and run tests, and create findings.


History

History - A full proxied request log with AI annotations, timings, status codes, and inline request/response editors.


Findings

Findings - A vulnerability tracker with severity, host, type, AI-generated descriptions, and evidence snippets.


Settings

Settings - Manage the CA certificate, password, 2FA, AI provider, API keys, and proxy status.


Setup

Setup wizard - First-run setup for password creation and AI provider configuration.


Using the proxy

Configure your browser, CLI tool, or test client to use:

root@kitploit:~
HTTP proxy:  127.0.0.1:1337
HTTPS proxy: 127.0.0.1:1337

For HTTPS interception, download and install the mitmproxy CA certificate from the Settings page.


Authentication

Ferret requires authentication on every install.

Browser login

  1. Open the UI for the first time.
  2. Set a password in the setup wizard.
  3. Complete AI provider setup.
  4. Log in at /login.
  5. Ferret issues a 24-hour HttpOnly SameSite=Strict session cookie.

Two-factor authentication

TOTP-based 2FA can be enabled from the Settings page.

Once enabled, a valid authenticator code is required at login.

API access

Set a static API key in .env:

root@kitploit:~
FERRET_API_KEY=your-random-secret

Then use it as a Bearer token:

root@kitploit:~
curl -H "Authorization: Bearer your-random-secret" \
  http://localhost:8000/api/requests

Session cookies and Bearer tokens are checked independently.


Configuration

Copy .env.example to .env to preconfigure Ferret.

Most AI provider settings can also be configured from the setup wizard.


Supported AI providers

Provider setup can be completed from the first-run wizard.


just commands


Architecture

root@kitploit:~
Browser / tool
      │
      ▼
127.0.0.1:1337
      │
      ▼
ferret-api :8000 / :1337
FastAPI + mitmproxy + SQLite
      │
      ├── docker exec
      ▼
ferret-lab
pytest, ffuf, sqlmap, scripts, tests, notes
      │
      ▼
ferret-ui :3000
Next.js

All persistent data is stored under:

root@kitploit:~
${FERRET_DATA_DIR:-./data}

Ferret uses bind mounts rather than named Docker volumes.


Resetting Ferret

To wipe local state and restart the setup wizard:

root@kitploit:~
just reset

This removes the local database, including credentials.

You can also reset setup through the API when authenticated:

root@kitploit:~
curl -X DELETE \
  -H "Authorization: Bearer your-random-secret" \
  http://localhost:8000/api/setup

Development

For local UI development with hot reload:

root@kitploit:~
just dev

This runs the API and lab containers in Docker while serving the UI on the host via npm run dev. Node.js is required on the host for this mode.

Run tests with:

root@kitploit:~
just test api    # API unit tests (inside the running api container)
just test ui     # Playwright UI tests (auto-starts Next.js dev server + mock API)
just test shim   # docker-shim allow/block unit tests (no Docker needed)
just test all    # run all three suites in sequence

Security

Ferret is designed for local security testing workflows and is not hardened for public exposure.

Risks

Before exposing Ferret outside localhost, understand the following:

RiskDetail
Proxy trafficThe proxy captures all HTTP/HTTPS traffic passing through it, including credentials.
API exposureThe API exposes request history, findings, and workspace files.
Lab executionThe lab container can execute testing tools on your behalf.
Credentials

Use a strong password and enable 2FA from the Settings page.

Reporting a vulnerability

Do not open a public issue for security vulnerabilities.

See .github/SECURITY.md for the full disclosure policy and reporting instructions.

Disclosed reports

Past disclosures are published in security/ once fixes are available.

Acknowledgements

Thanks to the following researchers for responsibly disclosing security issues:

ResearcherIssueYear
Trent (@AzureADTrent)DISC-2026-001 - Unauthenticated RCE via SSRF + docker-socket-proxy misconfiguration2026

Contributing

Ferret is actively being developed.

Ideas, bug reports, feature requests, and contributions are welcome.

Want to help build it?

Email: [email protected]


License

MIT - see LICENSE.

Download Tool
FeatureDescription
Intercepting proxyCapture HTTP and HTTPS traffic through mitmproxy.
Request historyBrowse, filter, inspect, and replay captured traffic.
AI annotationsEnrich requests with security-relevant context.
HuntsRun AI-assisted hunt sessions across captured traffic.
FindingsTrack vulnerabilities with severity, host, type, evidence, and status.
SnareIntercept and modify requests or responses in-flight.
GnawRepeater-style tabs for editing and resending HTTP requests.
WorkspacesPer-session scripts/, tests/, and notes/ directories.
ProjectsSeparate request history, findings, workspaces, and API keys.
AuthenticationPassword login, session cookies, optional API key access, and TOTP 2FA.
Local-first storageSQLite-backed data stored in a local bind-mounted directory.
VariableDefaultDescription
FERRET_API_KEY-Static Bearer token for programmatic API access
OPENROUTER_MODELgoogle/gemini-3-flash-previewDefault OpenRouter model
PROXY_HOST0.0.0.0Proxy bind address
PROXY_PORT1337Proxy port
UI_PORT3000UI port
FERRET_DATA_DIR./dataPersistent data directory
NEXT_PUBLIC_API_URLhttp://localhost:8000API URL used by the browser
NEXT_PUBLIC_SIGINT_URL-Optional SIGINT/news feed JSON URL
ProviderType
OpenRouterCloud - unified API across many models
OpenAICloud - GPT-4o, o1, and others
AnthropicCloud - Claude models
GeminiCloud - Google Gemini models
DeepSeekCloud - DeepSeek models
MistralCloud - Mistral models
OllamaLocal - run models on your machine
LM StudioLocal - run models on your machine
CommandDescription
just upPull pre-built images from GHCR and start all services
just downStop all services
just devRun API/lab in Docker and UI hot reload on host (requires Node.js)
just logsTail service logs
just test apiRun API unit tests (inside the running api container)
just test uiRun Playwright UI tests
just test shimRun docker-shim allow/block unit tests (no Docker needed)
just test allRun all test suites in sequence
just resetWipe the local database
just shellOpen a shell in the lab container
API keys and AI provider credentials are stored locally and should be treated as secrets.