Crates.io | subscan |
lib.rs | subscan |
version | |
source | src |
created_at | 2024-12-01 22:38:52.931098 |
updated_at | 2024-12-08 22:03:43.275823 |
description | A subdomain enumeration tool leveraging diverse techniques, designed for advanced pentesting operations |
homepage | https://www.erdoganyoksul.com/subscan |
repository | https://github.com/eredotpkfr/subscan |
max_upload_size | |
id | 1467931 |
Cargo.toml error: | TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
Install • Usage • Doc • Book • Docker • Development
Subscan is a powerful subdomain enumeration tool built with Rust, specifically designed for penetration testing purposes. It combines various discovery techniques into a single, lightweight binary, making subdomain hunting easier and faster for security researchers
Google
, Yahoo
, Bing
, DuckDuckGo
, etc.)Shodan
, Censys
, VirusTotal
and moreCSV
, HTML
, JSON
, or TXT
formats--proxy
argument)--resolver
arguments--skips
and --modules
amd64
and arm64
Linux platforms🦀 Install the subscan
tool using Cargo, Rust's package manager. Make sure you have Rust installed on your system. Then, run
~$ cargo install subscan
✨ Here's a quick overview of how to use it
~$ subscan
_
| |
___ _ _| |__ ___ ___ __ _ _ __
/ __| | | | '_ \/ __|/ __/ _` | '_ \
\__ \ |_| | |_) \__ \ (_| (_| | | | |
|___/\__,_|_.__/|___/\___\__,_|_| |_|
Usage: subscan [OPTIONS] <COMMAND>
Commands:
scan Start scan on any domain address
brute Start brute force attack with a given wordlist
module Subcommand to manage implemented modules
help Print this message or the help of the given subcommand(s)
Options:
-v, --verbose... Increase logging verbosity
-q, --quiet... Decrease logging verbosity
-h, --help Print help (see more with '--help')
-V, --version Print version
To scan a domain using all available modules, use the following command
~$ subscan scan -d example.com
You can also choose specific modules to run or skip using the --skips
and --modules
arguments. Module names should be provided as a comma-separated list
~$ # skip the commoncrawl and google modules during the scan
~$ subscan scan -d example.com --skips=commoncrawl,google
~$ # run only the virustotal module
~$ subscan scan -d example.com --modules=virustotal
[!NOTE] If a module is included in both the
--skips
and--modules
arguments, it will be skipped and not executed
Use the brute
command to start a brute force attack with a specific wordlist
~$ subscan brute -d example.com --wordlist file.txt
All environments are managed by the .env
file. Subscan can read your environments from this .env
file. You can refer to the .env.template
file to see how to create them
[!TIP] Also you can specify your environments from shell
SUBSCAN_VIRUSTOTAL_APIKEY=foo subscan scan -d foo.com --modules=virustotal
Name | Required | Description |
---|---|---|
SUBSCAN_CHROME_PATH |
false |
Specify your Chrome executable. If not specified, the Chrome binary will be fetched automatically by headless_chrome based on your system architecture |
SUBSCAN_<MODULE_NAME>_HOST |
false |
Some API integration modules can provide user specific host, for these cases, set module specific host |
SUBSCAN_<MODULE_NAME>_APIKEY |
false |
Some modules may include API integration and require an API key for authentication. Set the API key in these cases |
SUBSCAN_<MODULE_NAME>_USERNAME |
false |
Set the username for a module if it uses HTTP basic authentication |
SUBSCAN_<MODULE_NAME>_PASSWORD |
false |
Set the password for a module if it uses HTTP basic authentication |
🐳 For containerized usage, you can pull the eredotpkfr/subscan
Docker image directly from Docker Hub
~$ docker pull eredotpkfr/subscan:latest
After pulling the pre-built image, you can easily run the container to perform subdomain enumeration
~$ docker run -it --rm eredotpkfr/subscan scan -d example.com
Specify environment variable via docker --env
~$ docker run -it --rm \
--env SUBSCAN_VIRUSTOTAL_APIKEY=foo \
eredotpkfr/subscan scan -d example.com --modules=virustotal
To specify wordlist into docker container, use /data
directory
~$ docker run -it --rm \
--volume="$PWD/wordlist.txt:/data/wordlist.txt" \
eredotpkfr/subscan brute -d example.com \
-w wordlist.txt --print
📚 You can find all the resources and documentation for developing Subscan in the Development chapter of the project's book page
🙏 Parts of the codebase are inspired by
📢 All contributors are welcome! Whether you're fixing bugs, adding new features, improving documentation, or sharing ideas, your contributions are highly valued and appreciated
To get started, please check out the CONTRIBUTING.md file
Blog - erdoganyoksul.com
Mail - erdoganyoksul3@gmail.com