DEV Community

Bogdan Galin
Bogdan Galin

Posted on

Introducing dirb_rust: A High-Performance URL and Port Scanner

Introducing dirb_rust: A High-Performance URL and Port Scanner

Introduction

I am excited to introduce dirb_rust, a powerful tool designed to check the availability of URLs, scan open ports, and search for API requests on a specified site. Written in Rust, dirb_rust can process up to half a million lines in just three minutes, making it exceptionally efficient for handling large URL lists. This post will walk you through the capabilities of dirb_rust, how to set it up, and how to use it.

Features

  • Merge Wordlists: Combines all text files in the wordlists directory into a single file, removing duplicates.
  • Asynchronous URL Checking: Efficiently checks the availability of URLs using asynchronous operations.
  • Port Scanning: Checks common ports on the specified site to determine if they are open.
  • API Request Detection: Searches for common API requests (fetch, axios, XMLHttpRequest) on the given site.
  • User-Friendly Output: Displays results using a progress bar and terminal interface, providing real-time feedback.

Installation

Before getting started, ensure you have Rust installed on your system. If Rust is not installed, follow the instructions on the website to install it.

Next, clone the dirb_rust repository from GitHub:

git clone https://github.com/Nopass0/dirb_rust.git
cd dirb_rust
Enter fullscreen mode Exit fullscreen mode

Usage

To use dirb_rust, follow these steps:

  1. Prepare Your Wordlists: Place your .txt format dictionaries in the wordlists directory. Each dictionary should contain lines with paths to be checked.

  2. Run the Program: Execute the following command to start the program:

cargo run --release
Enter fullscreen mode Exit fullscreen mode
  1. Enter the Target URL: The program will prompt you to enter the URL of the site you want to scan (e.g., http://example.com).

The program will then merge all dictionaries into a single wordlist.txt file, removing duplicate lines, and start scanning for URL availability, open ports, and API requests.

Results

The results of the scan are saved in a file named output_{base_domain}_{current_date}.txt, where base_domain is the base domain of the site being checked, and current_date is the current date. The results file contains:

Available URLs: A list of URLs that are accessible.
Open Ports: A list of open ports with their descriptions.
API Requests: A list of detected API requests.
Example Output

Working links:
http://example.com/path1
http://example.com/path2
...

Open ports:
Port 80: HTTP - open
Port 443: HTTPS - open
...

API requests:
fetch('http://example.com/api')
axios.get('http://example.com/api')
...
Enter fullscreen mode Exit fullscreen mode

System Requirements

Rust 1.50 or Higher: Ensure you have an up-to-date Rust installation.
Operating System: dirb_rust works on Windows, Linux, and macOS.

Conclusion

dirb_rust is a robust and efficient tool for anyone needing to scan large lists of URLs, check for open ports, and detect API requests. Its ability to process large datasets quickly makes it ideal for cybersecurity professionals, developers, and researchers.

Give dirb_rust a try and experience its high performance and ease of use. You can find the project on GitHub at https://github.com/Nopass0/dirb_rust.

Feel free to leave any feedback or suggestions in the comments below. Happy scanning!

Top comments (0)