Introducing dirb_rust: A High-Performance URL and Port Scanner
Tags: vulnerabilities, opensource, testing, rust
Published: 2024-05-18 02:53:25

## 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](https://rustup.rs/) 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:

```bash
git clone https://github.com/Nopass0/dirb_rust.git
cd dirb_rust
```
### 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:
```bash
cargo run --release
```
3. 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')
...
```
### 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!