Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/goto-eof/basic_brutus
Basic Brutus is a HTTP/HTTPS Basic authentication and cross platform dictionary attack tool implemented in Rust programming language.
https://github.com/goto-eof/basic_brutus
authentication basic bruteforce dictionary dictionaryattack hacking hacking-tool http rust rust-language
Last synced: about 1 month ago
JSON representation
Basic Brutus is a HTTP/HTTPS Basic authentication and cross platform dictionary attack tool implemented in Rust programming language.
- Host: GitHub
- URL: https://github.com/goto-eof/basic_brutus
- Owner: goto-eof
- Created: 2022-09-30T21:17:47.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2023-04-14T18:16:55.000Z (over 1 year ago)
- Last Synced: 2024-09-29T20:41:45.096Z (about 2 months ago)
- Topics: authentication, basic, bruteforce, dictionary, dictionaryattack, hacking, hacking-tool, http, rust, rust-language
- Language: Rust
- Homepage:
- Size: 539 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![alt basic brutus](./header2.jpg)
# What is the project «Basic Brutus»?
Basic Brutus is a HTTP/HTTPS Basic Authentication and cross platform dictionary attack tool implemented in Rust programming language. The aim of this project is to make some experiments with threads in Rust.
# How it works?
Basic Brutus creates a group of threads on which it distributes work while the dictionary file is read line by line. The first thread that manages to get the password X from the channel will be the thread that will also have to process it, which means making an attempt to verify the matching of the username and the password. Basic Brutus ca use a username passed as parameter or load usernames from a file.
# For developers
### How to use it?
```
cargo run -q
```Use `-u` to specify the username, `-t` to specify the target uri, `-d` to specify the complete path to the password dictionary, `-uu` to specify the usernames file, `-v` to specify the verbose mode, `-f` to specify the maximum number of attemps if request fails (default: infinite).
```
-u USERNAME -t https://website.com/something -d /PATH/TO/DICTIONARY.txt -v true
```or
```
-t https://website.com/something -uu /PATH/TO/USERNAMES_FILE.txt -d /PATH/TO/DICTIONARY.txt -v true
```### Environment variables
The environment variables are found in the .env file of the project and allows you to alter the behavior of the application.
- `CHANNEL_BUFFER=10000000` - buffer size of the inter-thread communication channel. The default value is 10000000.
- `MAX_NUM_THREADS=12` - if specified, the default thread count (corresponding to the number of processor cores) will be overwritten by the value specified by the user in the .env file.# Command line:
To view all commands:
```
basic_brutus --help
```To run a dictionary attack:
```
./basic_brutus -u USERNAME -t https://website.com/something -d /PATH/TO/DICTIONARY.txt -v true
```or
```
./basic_brutus -uu /PATH/TO/USERNAMES_FILE.txt -t https://website.com/something -d /PATH/TO/DICTIONARY.txt -v true
```# Dictionaries
Dictionary files can be found [here](https://github.com/berandal666/Passwords).
# Tests
Tested on `MacOS`, `Ubuntu` and `Windows 11` and (today) it works.
# Comparison
I used the same dictionary file on three different notebooks with energy saving off.
```
1. MacOS - M1 Pro - 8 threads -> 43.34s
1. MacOS - M1 Pro - 8 threads -> 42.08s
1. MacOS - M1 Pro - 8 threads -> 43.63s
-----------------------------------------------------------------
2. Windows 11 - Intel i7-10750H - 12 threads -> 31.80s
2. Windows 11 - Intel i7-10750H - 12 threads -> 60.15s
2. Windows 11 - Intel i7-10750H - 12 threads -> 30.98s2. Ubuntu - Intel i7-10750H - 12 threads -> 48.61s
2. Ubuntu - Intel i7-10750H - 12 threads -> 61.04s
2. Ubuntu - Intel i7-10750H - 12 threads -> 65.48s
-----------------------------------------------------------------
3. Ubuntu - AMD Ryzen 7 (4800H) - 16 threads -> 139.42s
3. Ubuntu - AMD Ryzen 7 (4800H) - 16 threads -> 140.37s
3. Ubuntu - AMD Ryzen 7 (4800H) - 16 threads -> 136.08s```
# Linux users
If you are using Linux, you should install some packages:
```
sudo apt-get install pkg-configsudo apt-get install libssl-dev
```# Mac OS users
if you downloaded the executable, make sure you allow execution of not verified application. So that go to Settings > Security & Privacy > General, Click on "Allow Anyway", try to execute application again and click on Open option.
# Download
[Here](https://github.com/goto-eof/basic_brutus/releases) you can find the executables.
if any problems arise, feel free to [contact me](http://andre-i.eu/#contactme).