Recon Tool: ZenBuster

by | Sep 2, 2022 | Tools

Premium Content

Patreon

Subscribe to Patreon to watch this episode.

Reading Time: 2 Minutes

ZenBuster

This tool is written by Zach Griffin (0xTas). Is a multi-threaded, multi-platform URL enumeration tool written in Python. One of the most important processes in your recon is an enumeration.

It is intended for use in CTF challenges, or by security professionals to gather information on their targets

  • It is capable of brute-force enumerating subdomains and also URI resources (directories/files).
  • Both methods of enumeration require use of an appropriate wordlist or dictionary file.

     

    Features Include:

    1. Hostname format supports standard, IPv4, and IPv6.
    2. Support for logging results to a file with -o [filename].
    3. Specifying custom ports for nonstandard webservers with -p .
    4. Optional file extensions in directory mode with -x .
    5. Quiet mode for less distracting output with -q.
    6. Color can be disabled for less distracting output with -nc / -nl.
    7. Add to the list of http status codes to ignore (default 5xx, 404) with -ic.
    8. Ignore specific response content-lengths with -fl.
    9. Tested on Python versions 3.9 and 3.10, with theoretical support for versions >= 3.6

 

See Also: So you want to be a hacker?
Complete Offensive Security and Ethical Hacking Course

Installation

Firstly, ensure that Python version >= 3.6 is installed, then clone the repository with:

git clone https://github.com/0xTas/zenbuster.git

Next, cd zenbuster and, if on Linux: chmod +x zenbuster.py.

 

Dependencies

ZenBuster relies on 3 external libraries to function, and it is recommended to install these with:

pip install -r requirements.txt

The modules that will be installed and their purposes are as follows:

  1. Python requests

    • The backbone of each enumeration request. Without this, the script will not function.
  2. termcolor

    • Enables colored terminal output. Non-critical, the script can still run without color if this is not present.
  3. colorama (Windows only)

    • Primes the Windows terminal to accept ANSI color codes (from Termcolor). Non-critical.

 

These dependencies may be installed manually, with pip using requirements.txt, or via interaction with the script upon first run.

 

Usage

Once dependencies have been installed, you can run the program in the following ways:

 

On Linux (+Mac?):

./zenbuster.py [options] or python3 zenbuster.py [options]

 

On Windows:

python zenbuster.py [options]

 

[Options]

Short FlagLong FlagPurpose
-h–helpDisplays the help screen and exits
-d–dirsEnables Directory Enumeration Mode
-s-sslForces usage of HTTPS in requests
-v–verbosePrints verbose info to terminal/log
-q–quietMinimal terminal output until final results
-nc–no-colorDisables colored terminal output
-nl–no-lolcatDisables lolcat-printed banner (Linux only)
-ic <codes>–ignore-codesList of status codes to exclude from results.
-fl <lengths>–filter-lengthsList of Response Lengths to Ignore.
-u <hostname>–hostHost to target for the scan
-w <wordlist>–wordlistPath to wordlist/dictionary file
-x <exts>–extComma-separated list of file extensions (Dirs only)
-p <port#>–portCustom port option for nonstandard webservers
-o [filename]–out-fileLog results to a file (accepts custom name/path)

 

Example Usage

 

./zenbuster.py -d -w /usr/share/wordlists/dirb/common.txt -u target.thm -v

python3 zenbuster.py -w ../subdomains.txt --host target.thm --ssl -O myResults.log

zenbuster -w subdomains.txt -u target.thm --quiet -ic 400, 403 (With .bashrc alias)

 

 

Updating

Updating ZenBuster is easy! Just move into the installation folder (cd zenbuster) and git pull. That’s it!

 

Known Issues/Limitations

  • Enumerating long endpoints may result in ugly terminal output due to line-wraping on smaller console windows. Logging to a file is recommended, especially on Windows.
  • If target host is a vHost on a shared webserver, enumeration via IP may not function as expected. Use domain/hostname instead.
  • Ignoring redirect status codes (3xx) with -ic doesn’t work if the status code at the end of the redirect’s path isn’t also ignored.

 

Showcase

Help Page:

Directory Enumeration Mode:

Subdomain Enumeration Mode:

 

CAUTION/DISCLAIMER

ZenBuster is capable of producing a potentially unwelcome number of HTTP requests in a short amount of time.

The developers and contributors are not liable or responsible for any damage caused by misuse or abuse of this software.

Please Enumerate Responsibly!

 

Clone the repo from here: GitHub Link

 

Merch

Recent Tools

Offensive Security & Ethical Hacking Course

Begin the learning curve of hacking now!


Information Security Solutions

Find out how Pentesting Services can help you.


Join our Community

Share This