23

A while back, I encrypted a few files with Truecrypt, and stored the password in my head. Now I need to access it again, the password isn't working. I'm sure most of it is right, but I'm off by one or two characters. Is there a program that will allow me to tell it most of the characters in the password in order, and guess the rest through brute force?

Bob Watson
  • 2,856
  • 17
  • 29
Robyn
  • 231
  • 1
  • 2
  • 3

2 Answers2

21

http://www.autohotkey.com/board/topic/86586-tcbrute-2-truecrypt-bruteforce-password-recovery/ seems like exactly what you're after.

The other one to try is OTFBrutusGUI - which can be had from http://www.tateu.net/software/ - though it has little documentation beyond scattered forum posts (such as http://www.tateu.net/forum/index.php and http://www.wilderssecurity.com/showthread.php?p=1834959).

More generally - John The Ripper (http://openwall.com/john/) is a generic brute-force tool often used and adapated to these sorts of scenarios. And TrueCrack (https://code.google.com/p/truecrack/) is specifically for missing TrueCrypt passwords. It goes almost without saying that these aren't effective at all against passwords you have no knowledge of (assuming a reasonable password strength).

Edit: Modern versions of oclHashcat are also capable of cracking Truecrypt headers; see https://hashcat.net/forum/post-15509.html also.

Anti-weakpasswords
  • 9,785
  • 2
  • 23
  • 51
Bob Watson
  • 2,856
  • 17
  • 29
2

I am writing this answer to save anyone the time searching for TCBrute as it download page currently is not avaiable.

Other than implicited by the so far only answer there IS documentation for the OTFBrutusGUI application. I needed it today and it does a wunderful job and is distributed with source-code, so one can ensure private data stays private.

Actually I searched for TCBrute first but it's download page is gone with 404 and I didn't felt like building it from source, so I gave OTFBrutus a try.

It's documentation is a .txt file located in the Release folder, and it states the following regarding the use of password patterns:

Password pattern
    use [] to specify a character pattern type
        [1234]{2} will build a 2 character pattern using all of the available characters inside the brackets
            11  12  13  14  21  22  23  34  31  32  33  34  41  42  43  44
    You can also limit the number of duplicated values in a character or string pattern type by using {count:dup_limit)
        [1234]{2:1} will build a 2 character pattern using all of the available characters inside the brackets but will not repeat any characters more than 1 time.
            12 13 14 21 23 24 31 32 34 41 42 43
        [123]{3:2} a 3 character pattern type with a max of 2 duplicated characters
            112 113 121 122 123 131 132 133 211 212 213 221 223 231 232 233 311 312 313 321 322 323 331 332
        [12]{1-3} will generate a variable length character pattern from 1 to 3 with no duplicates
              1   2  11  12  21  22 111 112 121 122 211 212 221 222
        [12]{1-3:2} will generate a variable length character pattern from 1 to 3 with no duplicates and no character repeated more than twice
              1   2  11  12  21  22     112 121 122 211 212 221
    use () to specify a string pattern type, with each string separated by |
        (red|blue|black){2} will build a 2 string pattern using all of the available strings inside the parentheses
            redred  redblue  redblack  bluered  blueblue  blueblack  blackred  blackblue  blackblack
    You can also limit duplicate values in a string pattern type
        (red|blue|black){2:1}
            redblue redblack bluered blueblack blackred blackblue
    If you know the first 16 characters (vUEgSRL745dPr2YM) of your password but forgot the last 4, your pattern might look like this:
        vUEgSRL745dPr2YM[a-zA-Z0-9]{4}
    Variable length strings are generated by using the range notation
        {2-5} generates a variable length pattern from 2 to 5
        {3-5:2} generates a variable length pattern from 3 to 5 with no pattern repeated more than twice
        {1,3-5} generates variable length patterns of lengths 1, 3, 4 and 5
        {1,3,5:1} generates variable length patterns of lengths 1, 3 and 5 with no pattern repeated more than once
        [12]{0-2}[ab]{1} a length of 0 can be used to skip over a pattern completely
            a b 1a 1b 2a 2b 11a 11b 12a 12b 21a 21b 22a 22b
        (s1|s2){0-1}(s3|s4){0-1}
            s3 s4 s1 s1s3 s1s4 s2 s2s3 s2s4
        (s1|s2){1,3}
            s1 s2 s1s1s1 s1s1s2 s1s2s1 s1s2s2 s2s1s1 s2s1s2 s2s2s1 s2s2s2
    Character range classes [a-zA-Z]
        Values are based on the ASCII Character Set Table
        Search google for "ASCII table" http://www.asciitable.com/
        Valid values are the same as TrueCrypt [ -~] the space character through tilde, ASCII values DEC 32 through DEC 126
            [abcd]{2}
                is the same as
                [a-d]{2}
                    aa ab ac ad ba bb bc bd ca cb cc cd da db dc dd
            [A-Za-z]
                is the same as
                [ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
            [z-A0-9]
s3rb31
  • 21
  • 3