MCPcopy
hub / github.com/dstotijn/hetty

github.com/dstotijn/hetty @v0.7.0 sqlite

repository ↗ · DeepWiki ↗ · release v0.7.0 ↗
999 symbols 2,557 edges 108 files 96 documented · 10%
README

Latest GitHub release Build Status GitHub download count GitHub Documentation

Hetty is an HTTP toolkit for security research. It aims to become an open source alternative to commercial software like Burp Suite Pro, with powerful features tailored to the needs of the infosec and bug bounty community.

Hetty proxy logs (screenshot)

Features

  • Machine-in-the-middle (MITM) HTTP proxy, with logs and advanced search
  • HTTP client for manually creating/editing requests, and replay proxied requests
  • Intercept requests and responses for manual review (edit, send/receive, cancel)
  • Scope support, to help keep work organized
  • Easy-to-use web based admin interface
  • Project based database storage, to help keep work organized

👷‍♂️ Hetty is under active development. Check the backlog for the current status.

📣 Are you pen testing professionaly in a team? I would love to hear your thoughts on tooling via this 5 minute survey. Thank you!

Getting started

💡 The Getting started doc has more detailed install and usage instructions.

Installation

The quickest way to install and update Hetty is via a package manager:

macOS

brew install hettysoft/tap/hetty

Linux

sudo snap install hetty

Windows

scoop bucket add hettysoft https://github.com/hettysoft/scoop-bucket.git
scoop install hettysoft/hetty

Other

Alternatively, you can download the latest release from GitHub for your OS and architecture, and move the binary to a directory in your $PATH. If your OS is not available for one of the package managers or not listed in the GitHub releases, you can compile from source (link coming soon) or use a Docker image (link coming soon).

Usage

Once installed, start Hetty via:

hetty

💡 Read the Getting started doc for more details.

To list all available options, run: hetty --help:

$ hetty --help

Usage:
    hetty [flags] [subcommand] [flags]

Runs an HTTP server with (MITM) proxy, GraphQL service, and a web based admin interface.

Options:
    --cert         Path to root CA certificate. Creates file if it doesn't exist. (Default: "~/.hetty/hetty_cert.pem")
    --key          Path to root CA private key. Creates file if it doesn't exist. (Default: "~/.hetty/hetty_key.pem")
    --db           Database directory path. (Default: "~/.hetty/db")
    --addr         TCP address for HTTP server to listen on, in the form \"host:port\". (Default: ":8080")
    --chrome       Launch Chrome with proxy settings applied and certificate errors ignored. (Default: false)
    --verbose      Enable verbose logging.
    --json         Encode logs as JSON, instead of pretty/human readable output.
    --version, -v  Output version.
    --help, -h     Output this usage text.

Subcommands:
    - cert  Certificate management

Run `hetty <subcommand> --help` for subcommand specific usage instructions.

Visit https://hetty.xyz to learn more about Hetty.

Documentation

📖 Read the docs

Support

Use issues for bug reports and feature requests, and discussions for questions and troubleshooting.

Community

💬 Join the Hetty Discord server

Contributing

Want to contribute? Great! Please check the Contribution Guidelines for details.

Acknowledgements

Sponsors

Sponsored by Tines

License

MIT

© 2022 Hetty Software

Extension points exported contracts — how you extend this code

Expression (Interface)
(no doc) [4 implementers]
pkg/search/ast.go
Service (Interface)
Service is used for managing projects.
pkg/proj/proj.go
RequestModifyFunc (FuncType)
RequestModifyFunc defines a type for a function that can modify a HTTP request before it's proxied.
pkg/proxy/modify.go
Logger (Interface)
(no doc) [1 implementers]
pkg/log/log.go
Repository (Interface)
(no doc) [1 implementers]
pkg/reqlog/repo.go
Repository (Interface)
(no doc) [1 implementers]
pkg/sender/repo.go
MyAppProps (Interface)
(no doc)
admin/src/pages/_app.tsx
Repository (Interface)
(no doc) [1 implementers]
pkg/proj/repo.go

Core symbols most depended-on inside this repo

Error
called by 326
pkg/sender/sender.go
String
called by 53
pkg/search/ast.go
entryKey
called by 37
pkg/db/badger/badger.go
Close
called by 21
pkg/proj/repo.go
emit
called by 14
pkg/search/lexer.go
Debugw
called by 12
pkg/log/log.go
Errorw
called by 12
pkg/log/log.go
nextToken
called by 11
pkg/search/parser.go

Shape

Method 585
Function 269
Struct 87
Interface 33
Enum 8
TypeAlias 8
FuncType 7
Class 2

Languages

Go80%
TypeScript20%

Modules by API surface

pkg/api/generated.go333 symbols
pkg/api/resolvers.go47 symbols
pkg/api/models_gen.go40 symbols
admin/src/lib/graphql/generated.tsx37 symbols
pkg/reqlog/reqlog.go32 symbols
pkg/proj/proj.go30 symbols
pkg/sender/sender.go29 symbols
pkg/proxy/intercept/intercept.go26 symbols
pkg/sender/reqlog_mock_test.go23 symbols
pkg/search/lexer.go19 symbols
pkg/search/parser.go17 symbols
pkg/proxy/proxy.go15 symbols

Dependencies from manifests, versioned

github.com/agnivade/levenshteinv1.1.0 · 1×
github.com/cespare/xxhashv1.1.0 · 1×
github.com/cespare/xxhash/v2v2.1.1 · 1×
github.com/chromedp/cdprotov0.0.0-2022021722264 · 1×
github.com/chromedp/sysutilv1.0.0 · 1×
github.com/cpuguy83/go-md2man/v2v2.0.0-2019031423301 · 1×
github.com/gobwas/httpheadv0.1.0 · 1×

For agents

$ claude mcp add hetty \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact