Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔍 web_tester

A modular, multi-threaded web reconnaissance tool built entirely in Rust. Inspired by Black Hat Rust.


Overview

web_tester is a command-line security scanner written in Rust with a focus on performance and modularity. It combines port scanning, subdomain enumeration, and HTTP probing into a single tool, using a thread pool for concurrent execution and clap for a clean CLI interface.


Features

  • Port Scanner — Multi-threaded TCP port scanning across a configurable range
  • Subdomain Enumeration — Wordlist-based active subdomain discovery with DNS resolution
  • HTTP Probing — Sends HTTP requests to discovered hosts and checks response status codes
  • Colored Output — Clear, color-coded terminal output for easy result reading
  • Modular Design — Each capability is cleanly separated into its own module
  • Fast & Concurrent — Uses a thread pool to scan multiple targets simultaneously

Tech Stack

Dependency Purpose
clap 4.5 CLI argument parsing with derive macros
threadpool Multi-threaded task execution
reqwest (blocking) HTTP requests for web probing
dns-lookup DNS resolution for subdomain enumeration
url URL parsing and validation
colored Terminal color output
serde / serde_json JSON serialization for structured output

Installation

# Clone the repo
git clone https://github.com/Cythonic1/web_tester.git
cd web_tester

# Build in release mode
cargo build --release

# Run
./target/release/web_tester --help

Usage

Usage: web_tester [OPTIONS] <COMMAND>

Commands:
  all                 Run all scans
  git-leak            Run only the Git leak module
  robots              Run the robots.txt scanner
  sub-domain-passive
  dir-enum
  sub-domain-active
  help                Print this message or the help of the given subcommand(s)

Options:
  -t, --target <TARGET>    (e.g) https://pythonic01.com
      --timeout <TIMEOUT>  Global timeout for requests [default: 10]
  -v, --verbose            Enable verbose logging
  -h, --help               Print help
  -V, --version            Print version

Run --help on any subcommand for full options.


Project Structure

web_tester/
├── src/
│   ├── main.rs              # Entry point, CLI dispatch via clap
│   ├── port_scanner.rs      # Multi-threaded TCP port scanner
│   ├── subdomain.rs         # Wordlist-based subdomain enumeration + DNS resolution
│   └── http_probe.rs        # HTTP request probing and status code checking
├── n0kovo_subdomains_small.txt   # Bundled subdomain wordlist
├── Cargo.toml
└── Cargo.lock

Roadmap

  • CLI argument parsing via clap
  • Port scanner with multi-threading
  • Subdomain enumeration with DNS resolution
  • HTTP probing module
  • Colored output
  • Filter results by HTTP status code
  • Fix malformed URL error handling
  • Fix passive subdomain parsing edge cases

Author

Cythonic1GitHub

For educational and authorized security testing purposes only. Do not use against systems you do not have permission to test.

About

a simple rust port_scanner with multie threading

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages