brutef...openssl(1)
π brutef...openssl(1) β the bruteforce-salted-openssl era π
okay bestie, listen β this is the manual page for the tool that lives inside the brutef...openssl(1) manual, and its whole vibe is bruteforce files encrypted with OpenSSL. It's giving "I forgot my password but not really" and honestly? Iconic. β¨
β¨ NAME β¨
bruteforce-salted-openssl β try to find the passphrase for files encrypted with OpenSSL. That's the whole assignment, no notes. π
πΈ SYNOPSIS πΈ
bruteforce-salted-openssl [options] <filename>
π¦ DESCRIPTION π¦
So basically bruteforce-salted-openssl tries to find the passphrase or password of a file that was encrypted with the openssl command. It comes in two flavors, and yes you can pick your fighter:
- Try all the possible passwords given a charset.
- Try all the passwords in a file (dictionary).
And here's the feature list, because she has range:
- You can specify the number of threads to use when cracking a file. multitasking queen π§
- The program should be able to use all the digests and symmetric ciphers available with the OpenSSL libraries installed on your system.
- Sending a
USR1signal to a runningbruteforce-salted-opensslprocess makes it print progress and continue. (Like a lil "hey how's it going" poke, but for processes. π«Ά) - There are an exhaustive mode and a dictionary mode.
π₯ Exhaustive mode
In the exhaustive mode the program tries to decrypt the file by trying all 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 β no cap, we've all been there π). Finding the password of the file without knowing anything about it would take way too much time (unless the password is really short and/or weak). There are some 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
In dictionary mode the program tries to decrypt the file by trying all the passwords contained in a file. The file must have one password per line. Simple as. π
π OPTIONS π
-1β Stop the program after finding the first password candidate. one and done, periodt.-aβ List the available cipher and digest algorithms. the menu, basically π-B <file>β Search using binary passwords (instead of character passwords). Write candidates to<file>.-b <string>β Beginning of the password. The default value is"".-c <cipher>β Cipher for decryption. The default value isaes-256-cbc.-Dβ Display salt, key and iv along with the tested password. the receipts π-d <digest>β Digest for key and initialization vector generation. Default:sha256.-e <string>β End of the password. Default:"".-f <file>β Read the passwords from a file instead of generating them. dictionary girlies rise π-hβ Show help and quit.-i <n>β With-K, set the PBKDF2 iteration count to<n>. Default:10000.-Kβ UsePKCS5_PBKDF2_HMACto derive the key. fancy β¨-L <n>β Limit the maximum number of tested passwords to<n>.-l <length>β Minimum password length (beginning and end included). Default:1.-M <string>β Consider the decryption as successful when the data starts with<string>. Without this option, the decryption is considered as successful when the data contains mostly printable ASCII characters (at least 90%).-m <length>β Maximum password length (beginning and end included). Default:8.-Nβ Ignore decryption errors (similar toopenssl -nopad).-nβ Ignore salt (similar toopenssl -nosalt).-p <n>β Preview and check the first<n>decrypted bytes for the magic string. If the magic string is present, try decrypting the rest of the data. Default:1024.-s <string>β Password character set. Default value is"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"-t <n>β Number of threads to use. Default:1.-v <n>β Print progress info everynseconds.-w <file>β Restore the state of a previous session if the file exists, then write the state to the file regularly (~ every minute). save point energy π
Note: Sending aUSR1signal to a runningbruteforce-salted-opensslprocess makes it print progress info to standard error and continue.
π LIMITATIONS π
The program considers decrypted data as correct if it is mainly composed of printable ASCII characters (at least 90%). If the file you want to decrypt doesn't contain plain text, you will have to either use the -M option, or modify the 'valid_data' function in the source code to match your needs. (yes, touching the source. sometimes that's just the move. π)
If the file you want to decrypt is big, you should use the -N option on a truncated version of the file (to avoid decrypting the whole file with each password). nobody wants to decrypt the entire thing for every single guess, that's so not slay.
π EXAMPLES π
Try to find the password of an aes256 encrypted file using 4 threads, trying only passwords with 5 characters:
$ bruteforce-salted-openssl -t 4 -l 5 -m 5 -c aes256 encrypted.file
Try to find the password of a des3 encrypted file using 8 threads, trying only passwords with 9 to 11 characters, beginning with "AbCD", ending with "Ef", and containing only letters:
$ bruteforce-salted-openssl -t 8 -l 9 -m 11 -c des3 -b "AbCD" -e "Ef" -s "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" encrypted.file
Try to find the password of an aes256 encrypted file using 6 threads, trying the passwords contained in a dictionary file:
$ bruteforce-salted-openssl -t 6 -f dictionary.txt -c aes256 encrypted-file
Print progress info every 30 seconds:
$ bruteforce-salted-openssl -t 6 -f dictionary.txt -c aes256 -v 30 encrypted-file
Try to find the password of a des3 encrypted gzip file using 8 threads:
$ bruteforce-salted-openssl -t 8 -v 5 -c des3 -m 9 -s "0123456789" -M "$(echo -ne '\x1f\x8b')" file.tar.gz.des3
Save/restore state between sessions:
$ bruteforce-salted-openssl -t 6 -f dictionary.txt -c aes256 -w state.txt encrypted-file
(Let the program run for a few minutes and stop it)
$ bruteforce-salted-openssl -t 6 -c aes256 -w state.txt encrypted-file
Show the list of available algorithms:
$ bruteforce-salted-openssl -a
If the program finds a candidate password 'pwd', you can decrypt the data using the 'openssl' command:
$ openssl enc -d -aes256 -salt -in encrypted.file -out decrypted.file -k pwd
π AUTHOR π
bruteforce-salted-openssl was written by Guillaume LE VAILLANT. For contact, use the email <glv@posteo.net> or go to https://github.com/glv2/bruteforce-salted-openssl. π«Ά
This manual page was written by Joao Eriberto Mota Filho <eriberto@debian.org> for the Debian project (but may be used by others).
and that's the whole page, bestie β love that for us. This one's from the bruteforced-salted-openssl-1.5.0 era, dated March 2024, and the manual it lives in is brutef...openssl(1). stay safe, stay salted, and go get that password. πβ¨π¦
π¦ where this page comes from
- nixos 26.05: bruteforce-salted-openssl 1.5.0
- nixpkgs unstable: bruteforce-salted-openssl 1.5.0
- ubuntu resolute: bruteforce-salted-openssl 1.5.0-1 Β· GPL-3.0-or-later WITH OpenSSL exception
- ubuntu stonking: bruteforce-salted-openssl 1.5.0-1build1 Β· GPL-3.0-or-later WITH OpenSSL exception
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms