All the versions of this article: [English] [français]
Le 17/10/2011, 15:58 Luks Bruteforce : test all your passwords
A few years ago, I started using cryptographic capabilities of Linux to encrypt my usb keys, hard drives and laptop. More efficient against the usual bad guys than a root password, this gave me a pretty good privacy for personal and professional data ...
... Until that day when, after about a year without rebooting, one of my server rebooted and asked me for a passphrase ... which I obviously forgot!
I didn’t find anything on the Internet to bruteforce a Luks-encrypted partition, so here is the script I produced to help me do this efficiently ...
Brute-Force of Luks?
First and foremost, you should know that bruteforcing Luks is no easy task: the PBKDF2 norm, used by Luks, make it hard to brute-force : Luks doesn’t use the passphrase you give him as a source to decrypt data. It use your passphrase as a source for a very complex alogrithm, done a great number of times (in my case 191609 times), which, at the end, requires about 1 full second of CPU time on my server to compute the resulting key. As a result, for each pass tried on this machine, it will take 1 second to know if it’s the right one or not!
This protection is very effective to prevent the usual brute-force attack which consist of trying every possible password on a supercomputer ...
In my case, I had a pretty good idea of what could be that passphrase: "Courage is the ability to ignore your options." could be a good candidate, and "a great banker is a dead one" also ... but of course it was neither the first nor the second.
However, my passphrase could be one of those:
- Courage is the ability to ignore your options.
- Courage is the ability to ignore your options
- "Courage is the ability to ignore your options."
- courage is the ability to ignore your options.
- courage is the ability to ignore your options
- "courage is the ability to ignore your options."
- courage is the ability to ignore your option
- (Courage is the ability to ignore your option)
well... you can guess my problem: with or without quotes, or parenthesis, with or without period, coma, upcase characters etc. I had to find my passphrase among those 2 * 5 * 2^3 * 3 ... well, something like 10000 combinations...
But I really didn’t want to test them all by hand.
A program to brute-force Luks
Since I didn’t find any program on the Internet to help me bruteforcing Luks, I wrote this small php-script
Here it is for your greatest pleasure:
This script allows you to try to open a luks partition (here /dev/md1, replace it by your partition name such as /dev/sda3 or /dev/mapper/encrypted-root) by trying every possible combinations from a set of possible passphrases and their variations.
Before using it, you need to:
- replace /dev/md1 by your Luks partition;
- replace the array of arrays by each passphrase this could be, with all their variations (with or without ., () space etc.).
- replace the email address by your email: If the program find the right passphrase, it will tell you!
Launch this program, for example in a screen console, using php-cli, and let it blow your real passphrase (you will need patience, even more patience if the number of combinations is high)
This program saved me a nice bunch of personal data (here a 2TB hard drive with 15 years of photos...), enjoy it if it can help you in that way: it is distributed under GPL-v3 license.
Welcome on Benjamin Sonntag's blog, web entrepreneur, Linux expert and free-software-savvy half-geek.
Here you will find geek tuff, tricks and tips and friendly ads, personal histories and a bunch of politics ...
On the same topic ...
In the Octopuce boat ...
- 26 September 2013 – Octopuce recrute un administrateur système confirmé
- 19 September 2013 – Conférence sur SSL/TLS à la Cantine
- 14 July 2013 – Outlook pour Mac, SMTP bancal et non corrigeable
- 27 March 2013 – Optimisation SQL, EXPLAIN et les fonctions dans WHERE
La Quadrature du Net
- 7 March – Réforme du droit d'auteur : la Commission européenne doit publier les réponses à la consultation sans attendre
- 5 March – La Quadrature du Net participera au débat sur "L'affaire Snowden" le 11 mars à 19h
- 26 February – Lutte contre la prostitution : les sénateurs doivent s'opposer à la censure privée du Net
- 18 February – Les négociations au Parlement européen sur la neutralité du Net prennent un tournant désastreux
- 12 February – La commission « Libertés civiles » du Parlement européen ouvre la voie à une réelle protection de la neutralité du Net
Old stuff ...
- 27 December 2012 – 29c3 day 1, Jake on surveillance, Internet, Tor & Raspberry
- 22 février 2011 – Quand sommes-nous devenus ceux que nous n’étions pas ?
- 10 août 2011 – CCC Camp 2011, Day 0
- 3 August 2012 – Moglen at Re:Publica: Freedom of thought requires free media
- 20 janvier 2012 – DNS & AlternC - Comment ça marche ?