All Projects → dstotijn → Hetty

dstotijn / Hetty

Licence: mit
Hetty is an HTTP toolkit for security research.

Programming Languages

go
31211 projects - #10 most used programming language
typescript
32286 projects
CSS
56736 projects

Projects that are alternatives of or similar to Hetty

Metabigor
Intelligence tool but without API key
Stars: ✭ 424 (-88.21%)
Mutual labels:  pentesting, infosec, bugbounty
Dirsearch
Web path scanner
Stars: ✭ 7,246 (+101.5%)
Mutual labels:  pentesting, infosec, bugbounty
Rengine
reNgine is an automated reconnaissance framework for web applications with a focus on highly configurable streamlined recon process via Engines, recon data correlation and organization, continuous monitoring, backed by a database, and simple yet intuitive User Interface. reNgine makes it easy for penetration testers to gather reconnaissance with…
Stars: ✭ 3,439 (-4.37%)
Mutual labels:  infosec, pentesting, bugbounty
Resources
A Storehouse of resources related to Bug Bounty Hunting collected from different sources. Latest guides, tools, methodology, platforms tips, and tricks curated by us.
Stars: ✭ 62 (-98.28%)
Mutual labels:  pentesting, infosec, bugbounty
Dorknet
Selenium powered Python script to automate searching for vulnerable web apps.
Stars: ✭ 256 (-92.88%)
Mutual labels:  proxy, pentesting, infosec
Defaultcreds Cheat Sheet
One place for all the default credentials to assist the Blue/Red teamers activities on finding devices with default password 🛡️
Stars: ✭ 1,949 (-45.8%)
Mutual labels:  pentesting, infosec, bugbounty
Security Tools
Collection of small security tools, mostly in Bash and Python. CTFs, Bug Bounty and other stuff.
Stars: ✭ 509 (-85.85%)
Mutual labels:  pentesting, infosec, bugbounty
Subjack
Subdomain Takeover tool written in Go
Stars: ✭ 1,194 (-66.8%)
Mutual labels:  pentesting, infosec, bugbounty
Cloudbrute
Awesome cloud enumerator
Stars: ✭ 268 (-92.55%)
Mutual labels:  pentesting, infosec, bugbounty
Mitmap
📡 A python program to create a fake AP and sniff data.
Stars: ✭ 1,526 (-57.56%)
Mutual labels:  pentesting, infosec, mitm
Crithit
Takes a single wordlist item and tests it one by one over a large collection of websites before moving onto the next. Create signatures to cross-check vulnerabilities over multiple hosts.
Stars: ✭ 182 (-94.94%)
Mutual labels:  pentesting, infosec, bugbounty
quick-recon.py
Do some quick reconnaissance on a domain-based web-application
Stars: ✭ 13 (-99.64%)
Mutual labels:  pentesting, bugbounty
Xxe Injection Payload List
🎯 XML External Entity (XXE) Injection Payload List
Stars: ✭ 304 (-91.55%)
Mutual labels:  infosec, bugbounty
Go Dork
The fastest dork scanner written in Go.
Stars: ✭ 274 (-92.38%)
Mutual labels:  infosec, bugbounty
H2csmuggler
HTTP Request Smuggling over HTTP/2 Cleartext (h2c)
Stars: ✭ 292 (-91.88%)
Mutual labels:  infosec, bugbounty
SecurityExplained
SecurityExplained is a new series after the previous learning challenge series #Learn365. The aim of #SecurityExplained series is to create informational content in multiple formats and share with the community to enable knowledge creation and learning.
Stars: ✭ 301 (-91.63%)
Mutual labels:  pentesting, bugbounty
awesome-list-of-secrets-in-environment-variables
🦄🔒 Awesome list of secrets in environment variables 🖥️
Stars: ✭ 538 (-85.04%)
Mutual labels:  pentesting, bugbounty
Raven-Storm
Raven-Storm is a powerful DDoS toolkit for penetration tests, including attacks for several protocols written in python. Takedown many connections using several exotic and classic protocols.
Stars: ✭ 235 (-93.46%)
Mutual labels:  mitm, pentesting
sub404
A python tool to check subdomain takeover vulnerability
Stars: ✭ 205 (-94.3%)
Mutual labels:  pentesting, bugbounty
Wirespy
Framework designed to automate various wireless networks attacks (the project was presented on Pentester Academy TV's toolbox in 2017).
Stars: ✭ 293 (-91.85%)
Mutual labels:  pentesting, mitm

Latest GitHub release 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.

Features

  • Man-in-the-middle (MITM) HTTP/1.1 proxy with logs
  • Project based database storage (SQLite)
  • Scope support
  • Headless management API using GraphQL
  • Embedded web interface (Next.js)

ℹ️ Hetty is in early development. Additional features are planned for a v1.0 release. Please see the backlog for details.

Documentation

📖 Read the docs.

Installation

Hetty compiles to a self-contained binary, with an embedded SQLite database and web based admin interface.

Install pre-built release (recommended)

👉 Downloads for Linux, macOS and Windows are available on the releases page.

Build from source

Prerequisites

Hetty depends on SQLite (via mattn/go-sqlite3) and needs cgo to compile. Additionally, the static resources for the admin interface (Next.js) need to be generated via Yarn. The generated files will be embedded (using the embed package) when you use the build Makefile target.

Clone the repository and use the build make target to create a binary:

$ git clone [email protected]:dstotijn/hetty.git
$ cd hetty
$ make build

Docker

A Docker image is available on Docker Hub: dstotijn/hetty. For persistent storage of CA certificates and project databases, mount a volume:

$ mkdir -p $HOME/.hetty
$ docker run -v $HOME/.hetty:/root/.hetty -p 8080:8080 dstotijn/hetty

Usage

When Hetty is run, by default it listens on :8080 and is accessible via http://localhost:8080. Depending on incoming HTTP requests, it either acts as a MITM proxy, or it serves the API and web interface.

By default, project database files and CA certificates are stored in a .hetty directory under the user's home directory ($HOME on Linux/macOS, %USERPROFILE% on Windows).

To start, ensure hetty (downloaded from a release, or manually built) is in your $PATH and run:

$ hetty

An overview of configuration flags:

$ hetty -h
Usage of ./hetty:
  -addr string
        TCP address to listen on, in the form "host:port" (default ":8080")
  -adminPath string
        File path to admin build
  -cert string
        CA certificate filepath. Creates a new CA certificate if file doesn't exist (default "~/.hetty/hetty_cert.pem")
  -key string
        CA private key filepath. Creates a new CA private key if file doesn't exist (default "~/.hetty/hetty_key.pem")
  -projects string
        Projects directory path (default "~/.hetty/projects")

You should see:

2020/11/01 14:47:10 [INFO] Running server on :8080 ...

Then, visit http://localhost:8080 to get started.

ℹ️ Detailed documentation is under development and will be available soon.

Certificate Setup and Installation

In order for Hetty to proxy requests going to HTTPS endpoints, a root CA certificate for Hetty will need to be set up. Furthermore, the CA certificate may need to be installed to the host for them to be trusted by your browser. The following steps will cover how you can generate your certificate, provide them to hetty, and how you can install them in your local CA store.

⚠️ This process was done on a Linux machine but should provide guidance on Windows and macOS as well.

Generating CA certificates

You can generate a CA keypair two different ways. The first is bundled directly with Hetty, and simplifies the process immensely. The alternative is using OpenSSL to generate them, which provides more control over expiration time and cryptography used, but requires you install the OpenSSL tooling. The first is suggested for any beginners trying to get started.

Generating CA certificates with hetty

Hetty will generate the default key and certificate on its own if none are supplied or found in ~/.hetty/ when first running the CLI. To generate a default key and certificate with hetty, simply run the command with no arguments

hetty

You should now have a key and certificate located at ~/.hetty/hetty_key.pem and ~/.hetty/hetty_cert.pem respectively.

Generating CA certificates with OpenSSL

You can start off by generating a new key and CA certificate which will both expire after a month.

mkdir ~/.hetty
openssl req -newkey rsa:2048 -new -nodes -x509 -days 31 -keyout ~/.hetty/hetty_key.pem -out ~/.hetty/hetty_cert.pem

The default location which hetty will check for the key and CA certificate is under ~/.hetty/, at hetty_key.pem and hetty_cert.pem respectively. You can move them here and hetty will detect them automatically. Otherwise, you can specify the location of these as arguments to hetty.

hetty -key key.pem -cert cert.pem

Trusting the CA certificate

In order for your browser to allow traffic to the local Hetty proxy, you may need to install these certificates to your local CA store.

On Ubuntu, you can update your local CA store with the certificate by running the following commands:

sudo cp ~/.hetty/hetty_cert.pem /usr/local/share/ca-certificates/hetty.crt
sudo update-ca-certificates

On Windows, you would add your certificate by using the Certificate Manager. You can launch that by running the command:

certmgr.msc

On macOS, you can add your certificate by using the Keychain Access program. This can be found under Application/Utilities/Keychain Access.app. After opening this, drag the certificate into the app. Next, open the certificate in the app, enter the Trust section, and under When using this certificate select Always Trust.

Note: Various Linux distributions may require other steps or commands for updating their certificate authority. See the documentation relevant to your distribution for more information on how to update the system to trust your self-signed certificate.

Vision and roadmap

  • Fast core/engine, built with Go, with a minimal memory footprint.
  • Easy to use admin interface, built with Next.js and Material UI.
  • Headless management, via GraphQL API.
  • Extensibility is top of mind. All modules are written as Go packages, to be used by Hetty, but also as libraries by other software.
  • Pluggable architecture for MITM proxy, projects, scope. It should be possible. to build a plugin system in the (near) future.
  • Based on feedback and real-world usage of pentesters and bug bounty hunters.
  • Aim for a relatively small core feature set that the majority of security researchers need.

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

License

MIT License


© 2020 David Stotijn — Twitter, Email

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].