/htrace.sh

My simple Swiss Army knife for http/https troubleshooting and profiling.

Primary LanguageShellGNU General Public License v3.0GPL-3.0

htrace.sh

Travis-CI Docker


Master

Created by trimstray and contributors

Description

htrace.sh is a shell script for http/https troubleshooting and profiling. It's also a simple wrapper script around several open source security tools.

How To Use

For a more detailed understanding of htrace.sh, its parameters, and how it all works, see the Wiki.

To install htrace.sh itself:

# Clone this repository
git clone https://github.com/trimstray/htrace.sh

# Go into the repository
cd htrace.sh

# Install
sudo ./setup.sh install

# Install dependencies (Debian/Ubuntu and MacOS support)
#   - I recommend build docker image
#   - before init please see what it does
sudo ./dependencies.sh

# Run the app
htrace.sh -u http://nmap.org -s -h
  • symlink to bin/htrace.sh is placed in /usr/local/bin
  • man page is placed in /usr/local/man/man8

or build docker image:

# Clone this repository
git clone https://github.com/trimstray/htrace.sh

# Go to build/ directory and build docker image
cd htrace.sh/build && docker build --rm -t htrace.sh -f Dockerfile .

# Run the app
docker run --rm -it --name htrace.sh htrace.sh -u http://nmap.org -s -h

Parameters

Provides the following options:

    htrace.sh v1.1.1

  Usage:
    htrace.sh <option|long-option>

  Examples:
    htrace.sh -u https://example.com -s -h --testssl --ssllabs
    htrace.sh -u https://example.com -h -M 'POST:name=admin&num=12'
    htrace.sh --url https://example.com --cache-bypass "?${RANDOM}"
    htrace.sh --url https://example.com --ssl --headers --proxy "socks5h://127.0.0.1:9501"

  Options:
        --help                                show this message
        -u|--url <value>                      set url with http/https protocol
        -s|--ssl                              show basic ssl server/connection parameters
        -h|--headers                          show response headers
        -b|--body                             show response body
        -M|--req-method <value>               set request method (default: GET)
        -H|--req-header <value>               set request header(s)
        -p|--proxy <value>                    set proxy server (not for external tools)
        --testssl                             test ssl protocols and ciphers with testssl.sh
        --observatory                         scan domain with mozilla observatory security tool
        --ssllabs                             scan domain with ssllabs security tool
        --mixed-content                       scan website for mixed content
        --nse                                 scan website with nmap nse library
        --cache-bypass <value>                try (proxy) cache bypass
        --user-agent <value>                  set 'User-Agent' header
        --max-redirects <num>                 set max redirects (default: 10)
        --timeout <num>                       set max timeout (default: 15)
        --hide-src-ip                         hide source ip from output

Contributing

See this.

License

GPLv3 : http://www.gnu.org/licenses/

Free software, Yeah!