xsubfind3r
is a command-line utility designed to discover subdomains for a given domain in a simple, efficient way. It works by gathering information from a variety of passive sources, meaning it doesn't interact directly with the target but instead gathers data that is already publicly available. This makes xsubfind3r
a powerful tool for security researchers, IT professionals, and anyone looking to gain insights into the subdomains associated with a domain.
- Fetches subdomains from multiple online passive sources to provide extensive results
- Supports
stdin
andstdout
for easy integration in automated workflows - Cross-Platform (Windows, Linux, and macOS)
Visit the releases page and find the appropriate archive for your operating system and architecture. Download the archive from your browser or copy its URL and retrieve it with wget
or curl
:
-
...with
wget
:wget https://github.com/hueristiq/xsubfind3r/releases/download/v<version>/xsubfind3r-<version>-linux-amd64.tar.gz
-
...or, with
curl
:curl -OL https://github.com/hueristiq/xsubfind3r/releases/download/v<version>/xsubfind3r-<version>-linux-amd64.tar.gz
...then, extract the binary:
tar xf xsubfind3r-<version>-linux-amd64.tar.gz
Tip
The above steps, download and extract, can be combined into a single step with this onliner
curl -sL https://github.com/hueristiq/xsubfind3r/releases/download/v<version>/xsubfind3r-<version>-linux-amd64.tar.gz | tar -xzv
Note
On Windows systems, you should be able to double-click the zip archive to extract the xsubfind3r
executable.
...move the xsubfind3r
binary to somewhere in your PATH
. For example, on GNU/Linux and OS X systems:
sudo mv xsubfind3r /usr/local/bin/
Note
Windows users can follow How to: Add Tool Locations to the PATH Environment Variable in order to add xsubfind3r
to their PATH
.
Before you install from source, you need to make sure that Go is installed on your system. You can install Go by following the official instructions for your operating system. For this, we will assume that Go is already installed.
go install -v github.com/hueristiq/xsubfind3r/cmd/xsubfind3r@latest
-
Clone the repository
git clone https://github.com/hueristiq/xsubfind3r.git
-
Build the utility
cd xsubfind3r/cmd/xsubfind3r && \ go build .
-
Move the
xsubfind3r
binary to somewhere in yourPATH
. For example, on GNU/Linux and OS X systems:sudo mv xsubfind3r /usr/local/bin/
Windows users can follow How to: Add Tool Locations to the PATH Environment Variable in order to add
xsubfind3r
to theirPATH
.
Caution
While the development version is a good way to take a peek at xsubfind3r
's latest features before they get released, be aware that it may have bugs. Officially released versions will generally be more stable.
If you have Docker installed, you can use xsubfind3r
using it's image:
-
Pull the docker image using:
docker pull hueristiq/xsubfind3r:latest
-
Run
xsubfind3r
using the image:docker run --rm hueristiq/xsubfind3r:latest -h
xsubfind3r
will work right after installation. However, some sources require API keys to work. These keys can be added to a configuration file at $HOME/.config/xsubfind3r/config.yaml
, created upon first run, or set as environment variables.
Example of environment variables for API keys:
XSUBFIND3R_KEYS_BEVIGIL=your_bevigil_key
XSUBFIND3R_KEYS_CENSYS=your_censys_key
To start using xsubfind3r
, open your terminal and run the following command for a list of options:
xsubfind3r -h
Here's what the help message looks like:
_ __ _ _ _____
__ _____ _ _| |__ / _(_)_ __ __| |___ / _ __
\ \/ / __| | | | '_ \| |_| | '_ \ / _` | |_ \| '__|
> <\__ \ |_| | |_) | _| | | | | (_| |___) | |
/_/\_\___/\__,_|_.__/|_| |_|_| |_|\__,_|____/|_|
v0.9.1
USAGE:
xsubfind3r [OPTIONS]
CONFIGURATION:
-c, --configuration string configuration file (default: $HOME/.config/xsubfind3r/config.yaml)
INPUT:
-d, --domain string[] target domain
-l, --list string target domains list file path
TIP: For multiple input domains use comma(,) separated value with `-d`,
specify multiple `-d`, load from file with `-l` or load from stdin.
SOURCES:
--sources bool list supported sources
-u, --sources-to-use string[] comma(,) separated sources to use
-e, --sources-to-exclude string[] comma(,) separated sources to exclude
OUTPUT:
--monochrome bool display no color output
-o, --output string output subdomains file path
-O, --output-directory string output subdomains directory path
-s, --silent bool display output subdomains only
-v, --verbose bool display verbose output
For example, to discover subdomains for example.com
:
xsubfind3r -d example.com
You can also use multiple domains by separating them with commas or providing a list from a file.
We welcome contributions! Feel free to submit Pull Requests or report Issues. For more details, check out the contribution guidelines.
This utility is licensed under the MIT license. You are free to use, modify, and distribute it, as long as you follow the terms of the license. You can find the full license text in the repository - Full MIT license text.
A huge thanks to all the contributors who have helped make xsubfind3r
what it is today!
If you're interested in more utilities like this, check out: