A very fast Rust tool to crack a password protected PDF (Dangerous ☠️)

Related tags

Cryptography docbot
Overview

DOCBOT

A PDF password cracking tool with multi-threading capabilities, featuring password format generators for commonly used patterns and dictionary attack functionalities.< p>

INSPIRED FROM OffensiveRust (want to explore weaponization of Rust, check this repo out - https://github.com/trickster0/OffensiveRust) and also a lot FROM THE BOOK - BLACK HAT WITH RUST

For Educational Purposes Only. (or is it? :p)

Name DocBot - inspired from matrix sentinel (also called machine, docbot)

LLM Discord Bot: matrix-sentinel

📖 Table of Contents

ℹ️ Introduction

DOCBOT is a swift, multithreaded PDF password cracking tool crafted in Rust. It supports dictionary attacks based on wordlists, as well as brute-forcing techniques like date, number range, and alphanumeric combinations. Additionally, it includes a personalized query builder for defining specific password formats.

Features

  • Custom Query Builder: Allows for the creation of personalized queries such as STRING{69-420}, which generates and utilizes a wordlist with the entire specified number range.
  • Date Bruteforce: Enables bruteforce attempts for all 365 days of a given year in DDMMYYYY format, commonly encountered in PDF password formats.
  • Number Bruteforce: Supports bruteforce attacks within a specified number range, e.g., 5000-100000.
  • Default Bruteforce: Allows the specification of maximum and optionally minimum password lengths for a search. All passwords within the defined length range (from 4 up to the specified maximum) consisting of letters and numbers (a-zA-Z0-9) will be attempted.
  • Fast: Achieves speeds of approximately 50k-100k+ passwords per second, utilizing all available CPU cores.

Installation

Install with cargo:

$ cargo install --git https://github.com/akhilsharma90/docbot.git

Install Rust/Cargo

Build From Source

Prerequisites:

  • Git
  • Rust
  • Cargo (Automatically installed when installing Rust)
  • A C linker (Only for Linux, generally comes pre-installed)
$ git clone https://github.com/akhilsharma90/docbot.git
$ cd docbot/
$ cargo build --release

The first command clones this repository into your local machine and the last two commands enters the directory and builds the source in release mode.

Usage

Get a list of all the arguments:

$ docbot --help

Start a dictionary attack with a wordlist:

$ docbot -f encrypted.pdf wordlist rockyou.txt

Bruteforce number ranges for the password:

$ docbot -f encrypted.pdf range 1000 9999

Bruteforce all dates in a span (inclusive in both ends) of years for the password in DDMMYYYY format:

$ docbot -f encrypted.pdf date 1900 2000

Bruteforce arbitrary strings of length 4-8:

$ docbot -f encrypted.pdf default-query --max-length 8

Bruteforce arbitrary strings of length 3:

$ docbot -f encrypted.pdf default-query --max-length 3 --min-length 3

Build a custom query to generate a wordlist: (useful when you know the password format)

$ docbot -f encrypted.pdf custom-query ALICE{1000-9999}

$ docbot -f encrypted.pdf custom-query DOC-ID{0-99}-FILE

Enable preceding zeros for custom queries: (which would make {10-5000} to {0010-5000} matching the end range's digits)

$ docbot -f encrypted.pdf custom-query ALICE{10-9999} --add-preceding-zeros

Contribution

Ways to contribute:

  • Suggest a feature
  • Report a bug
  • Fix something and open a pull request
  • Help me document the code
  • Spread the word

License

Licensed under the MIT License, see LICENSE for more information.

You might also like...
A Rust port of the password primitives used in Django Project.

Rust DjangoHashers A Rust port of the password primitives used in Django Project. Django's django.contrib.auth.models.User class has a few methods to

Rust-based password mutator for brute force attacks

PWFuzz-RS A Rust-based password mutator for brute force attacks Disclaimer This tool works, but was mainly an experiment. Please do not expect frequen

An implementation of the OPAQUE password-authenticated key exchange protocol

The OPAQUE key exchange protocol OPAQUE is an asymmetric password-authenticated key exchange protocol. It allows a client to authenticate to a server

🐴 RusTOTPony — CLI manager of one-time password generators aka Google Authenticator

🐴 RusTOTPony CLI manager of time-based one-time password generators. It is a desktop alternative for Google Authenticator. Installation Arch Linux Pa

A safe implementation of the secure remote password authentication and key-exchange protocol (SRP), SRP6a and legacy are as features available.

Secure Remote Password (SRP 6 / 6a) A safe implementation of the secure remote password authentication and key-exchange protocol (SRP version 6a). Ver

A password entropy calculator.

paspio — pasvorta entropio A (naive) password entropy calculator. Refrain from using this as a sole measure of password strength, it should be used in

Password-Authenticated Key Agreement protocols

RustCrypto: PAKEs Password-Authenticated Key Agreement protocols implementation. Warnings Crates in this repository have not yet received any formal c

Password hashing functions / KDFs

RustCrypto: Password Hashes Collection of password hashing algorithms, otherwise known as password-based key derivation functions, written in pure Rus

Rest API to check if a password is in a data breach

easypwned (haveibeenpwned / HIBP) Rest API to check if a password is in a data breach. Works offline - everything stays on your machine! Database is i

Owner
Akhil Sharma
Engineer, hands on polyglot developer. Building Armur.ai
Akhil Sharma
A blazingly fast and memory safe password cracker with user interface.

HashVat A blazingly fast and memory safe password cracker with user interface. HashVat runs with user interface and is capable of cracking the 1.000.0

JBLDSKY 2 Dec 6, 2022
A pretty simple tool for password generation, written in Rust.

passwdgen A pretty simple tool for password generation, written in Rust. Usage: passwdgen - a pretty simple tool for password generation Usage: passw

Kirill Belolipetsky 9 Feb 19, 2023
Tool written in Rust to perform Password Spraying attacks against Azure/Office 365 accounts

AzurePasswordSprayer Tool written in Rust to perform Password Spraying attacks against Azure/Office 365 accounts. It is multi threaded and makes no co

Pierre 7 Feb 27, 2024
Master Password in Pure Rust

Master Password •••| This is the Rust version of the original found here. This can be used as a drop-in replacement for the reference C version, offer

Rust India 34 Apr 13, 2022
A Rust port of the password primitives used in Django Project.

Rust DjangoHashers A Rust port of the password primitives used in Django Project. Django's django.contrib.auth.models.User class has a few methods to

Ronaldo Ferreira 52 Nov 17, 2022
The simple password manager for geeks, built with Rust.

Rooster Rooster is a simple password manager for geeks (it works in the terminal). Rooster is made available free of charge. You can support its devel

Conrad Kleinespel 131 Dec 25, 2022
A simple password manager written in rust

Passman - A password manager written in rust. How to use?: USAGE: passman option Currently available options are: new - initalize passman with a new m

Strawkage 7 Aug 26, 2021
A simple password manager written in Rust

ripasso A simple password manager written in Rust. The root crate ripasso is a library for accessing and decrypting passwords stored in pass format (G

Joakim Lundborg 550 Dec 30, 2022
Ruo is a dictionary-based password cracker written in rust 🦀 .

Ruo is a dictionary-based password cracker written in rust ?? . The primary purpose is to crack weak hashes/commonly used passwords.

Asjid Kalam 10 Mar 6, 2022
A password manager coded in rust

pasman A password manager coded in rust Install Dependency rust Shell git clone https://github.com/AMTitan/pasman.git cd pasman cargo build --release

Arthur Melton 4 Nov 8, 2021