pybuster

A multithreaded brute-forcing tool for use with web URIs


License
MIT
Install
pip install pybuster==0.2.1

Documentation

Pybuster

Pybuster is a multithreaded brute-forcing tool for use with web URIs (directories and files). An extended reimplementation of dirbuster in Python3, with heavy inspiration taken from gobuster.

Installation

Using pip

pip3 install pybuster

From source

git clone https://github.com/leokon/pybuster.git
cd pybuster
pip3 install .

Usage

Run with default options:

pybuster -u https://pypi.org -w /wordlists/common.txt

===============================================================
Pybuster v0.1.0
by Leo Kontogiorgis (leo@konto.dev)
===============================================================
[+] Mode         : dir
[+] URL          : https://pypi.org
[+] Threads      : 10
[+] Wordlist     : /wordlists/common.txt
[+] Status codes : 200,204,301,302,307,401,403
[+] User Agent   : pybuster/0.1.0
[+] Timeout      : 10s
===============================================================
2020/01/31 13:52:43 Starting pybuster
===============================================================
/ (Status: 200)
/admin (Status: 301)
/legacy (Status: 301)
/packages (Status: 301)
/robots.txt (Status: 200)
/search (Status: 301)
/sitemap.xml (Status: 200)
/sponsors (Status: 301)
===============================================================
2020/01/31 13:54:50 Finished
===============================================================

Run with verbose output and content length:

pybuster -u https://pypi.org -w /wordlists/short.txt -v -l

===============================================================
Pybuster v0.1.0
by Leo Kontogiorgis (leo@konto.dev)
===============================================================
[+] Mode         : dir
[+] URL          : https://pypi.org
[+] Threads      : 10
[+] Wordlist     : /wordlists/common.txt
[+] Status codes : 200,204,301,302,307,401,403
[+] User Agent   : pybuster/0.1.0
[+] Timeout      : 10s
[+] Verbose      : True
===============================================================
2020/01/31 13:56:41 Starting pybuster
===============================================================
Found: / (Status: 200) [Size: 21187]
Found: /admin (Status: 301) [Size: 204]
Missed: /afakepath (Status: 404) [Size: 4565]
Found: /help (Status: 301) [Size: 203]
Found: /legacy (Status: 301) [Size: 205]
Found: /packages (Status: 301) [Size: 207]
Missed: /packages2 (Status: 404) [Size: 4565]
Found: /robots.txt (Status: 200) [Size: 181]
Found: /sitemap.xml (Status: 200) [Size: 2124]
Found: /sponsors (Status: 301) [Size: 207]
===============================================================
2020/01/31 13:56:51 Finished
===============================================================

Run in quiet mode (useful for piping to grep):

pybuster -u https://pypi.org -w /wordlists/common.txt -q -n -e
https://pypi.org/
https://pypi.org/admin
https://pypi.org/help
https://pypi.org/legacy
https://pypi.org/packages
https://pypi.org/robots.txt
https://pypi.org/sitemap.xml
https://pypi.org/sponsors

Options

Usage:
  pybuster [args]

-h, --help            show this help message and exit
-u URL, --url URL     The target URL
-w, --wordlist        Path to the wordlist
-s, --statuscodes     Positive status codes (default: 200,204,301,302,307,401,403)
-a, --useragent       The User-Agent string to be used (default: pybuster/0.1.0)
-r, --followredirect  Follow redirects
-H, --headers         Specify HTTP headers, -H 'Header1: val1' -H 'Header2: val2'
-c, --cookies         Specify cookies to use, -c 'COOKIE=val1' -c 'COOKIE2=val2'
-U, --username        Username for HTTP auth
-P, --password        Password for HTTP auth
-p, --proxy           Proxy to use for requests [http(s)://host:port]
-k, --insecuressl     Skip SSL certificate verification
-f, --addslash        Append / to each request
-x, --extension       File extension to search for
-t, --threads         Number of concurrent threads (default: 10)
-o, --output          Output file to write results to
-e, --expanded        Expanded mode, print full URLs
-l, --includelength   Include the length of the response body in the output
-n, --nostatus        Don't print status codes
-q, --quiet           Don't print anything but the results
-v, --verbose         Verbose output
--ignorewildcard      Continue operation as normal when wildcard returns a positive status code
--timeout             HTTP request timeout in seconds (default: 10)