• Stars
    star
    238
  • Rank 169,306 (Top 4 %)
  • Language
    C
  • License
    GNU General Publi...
  • Created over 10 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Try to find the password of a LUKS encrypted volume.

bruteforce-luks

The purpose of this program is to try to find the password of a LUKS encrypted volume.

It can be used in two ways:

  • try all the possible passwords given a charset
  • try all the passwords in a file

There is a command line option to specify the number of threads to use.

Sending a USR1 signal to a running bruteforce-luks process makes it print progress and continue.

Exhaustive mode

The program tries to decrypt at least one of the key slots by trying all the possible passwords. It is especially useful if you know something about the password (i.e. you forgot a part of your password but still remember most of it). Finding the password of a volume without knowing anything about it would take way too much time (unless the password is really short and/or weak).

There are command line options to specify:

  • the minimum password length to try
  • the maximum password length to try
  • the beginning of the password
  • the end of the password
  • the character set to use (among the characters of the current locale)

Dictionary mode

The program tries to decrypt at least one of the key slots by trying all the passwords contained in a file. The file must have one password per line.

Dependencies

The program requires the cryptsetup library.

Compilation

Install the dependencies. For example on a GNU/Linux Debian-like system, enter the commands:

sudo apt install dh-autoreconf
sudo apt install libcryptsetup-dev

For Fedora, enter the commands:

sudo dnf install dh-autoreconf
sudo dnf install cryptsetup-devel

If you are building from the raw sources, you must first generate the configuration script:

./autogen.sh

Then, build the program with the commands:

./configure
make

To install it on your system, use the command:

make install

Examples

Try to find the password of a LUKS encrypted volume using 4 threads, trying only passwords with 5 characters:

bruteforce-luks -t 4 -l 5 -m 5 /dev/sdb1

Try to find the password of a LUKS encrypted volume using 8 threads, trying only passwords with 5 to 10 characters beginning with "W4l" and ending with "z":

bruteforce-luks -t 8 -l 5 -m 10 -b "W4l" -e "z" /dev/sda2

Try to find the password of a LUKS encrypted volume using 8 threads, trying only passwords with 10 characters using the character set "P情8ŭ":

bruteforce-luks -t 8 -l 10 -m 10 -s "P情8ŭ" /dev/sdc3

Try to find the password of a LUKS encrypted volume using 6 threads, trying the passwords contained in a dictionary file:

bruteforce-luks -t 6 -f dictionary.txt /dev/sdd1

Instead of passing a block device to the program, you can copy the beginning of the LUKS volume to a file and pass this file to the program:

sudo dd if=/dev/sda1 of=/tmp/luks-header bs=1M count=10
bruteforce-luks -t 4 -l 5 -m 5 /tmp/luks-header

Print progress info:

pkill -USR1 -f bruteforce-luks

Print progress info every 30 seconds:

bruteforce-luks -t 6 -f dictionary.txt -v 30 /dev/sdd1

Save/restore state between sessions:

bruteforce-luks -t 6 -f dictionary.txt -w state.txt /dev/sdd1
  (Let the program run for a few minutes and stop it)
bruteforce-luks -t 6 -w state.txt /dev/sdd1

More Repositories

1

bruteforce-wallet

Try to find the password of an encrypted Peercoin (or Bitcoin, Litecoin, etc...) wallet file.
C
348
star
2

bruteforce-salted-openssl

Try to find the password of a file that was encrypted with the 'openssl' command.
C
207
star
3

ofdm-transfer

Send or receive data by SDR using OFDM modulation
C
22
star
4

cl-monero-tools

Common Lisp toolbox to work with the Monero cryptocurrency
Common Lisp
19
star
5

cl-zstd

Common Lisp library for Zstandard (de)compression using bindings to the libzstd C library
Common Lisp
15
star
6

gmsk-transfer

Send or receive data by SDR using GMSK modulation
C
9
star
7

bst

Binary Search Tree
Common Lisp
8
star
8

simple-neural-network

Simple neural network in Common Lisp
Common Lisp
8
star
9

convert-samples

Convert samples received from SDR
C
7
star
10

peercoin-vote

A voting system based on data from the blockchain (addresses and balances)
Common Lisp
5
star
11

cl-monero-explorer

Common Lisp GUIs to display some info about Monero blocks and transactions
Common Lisp
4
star
12

peercoin-blockchain-parser

Peercoin blockchain parser
Common Lisp
4
star
13

dsss-transfer

Send or receive data by SDR using DSSS modulation
C
3
star
14

cl-lzlib

Common Lisp library for lzip (LZMA) (de)compression using bindings to the lzlib C library
Common Lisp
3
star
15

lambda-calculus

An interpreter for the lambda calculus
Common Lisp
3
star
16

convert-coordinates

Geographic coordinates conversion GUI
Common Lisp
3
star
17

utm-ups

Convert coordinates between latitude/longitude and UTM or UPS
Common Lisp
3
star
18

cl-octet-streams

In-memory octet streams
Common Lisp
3
star
19

iescrypt

A tool to encrypt and/or sign files
Common Lisp
2
star
20

peercoin-calculator

Peercoin POS/POW calculator
Common Lisp
2
star
21

olc

Convert coordinates between Latitude/Longitude and Open Location Code
Common Lisp
2
star
22

cl-multiplex

Octet stream multiplexing
Common Lisp
1
star
23

cl-z85

Encode and decode data using the ZeroMQ base-85 encoding
Common Lisp
1
star
24

cl-gmsk-transfer

Common Lisp bindings to gmsk-transfer
Common Lisp
1
star
25

cl-in-memory-streams

In-memory streams for any type of elements
Common Lisp
1
star
26

share-directory

Small web server to share the files in a directory
Common Lisp
1
star
27

hasher

Command line tool to hash files and check file hashes
Common Lisp
1
star
28

mgrs

Convert coordinates between Latitude/Longitude and MGRS
Common Lisp
1
star
29

simple-parallel-tasks

Common Lisp library to evaluate some forms in parallel
Common Lisp
1
star
30

maidenhead

Convert coordinates between Latitude/Longitude and Maidenhead locator system
Common Lisp
1
star
31

cl-ofdm-transfer

Common Lisp bindings to ofdm-transfer
Common Lisp
1
star