public inbox for gentoo-user@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-user] [OT] Script to crack gpg passphrase
@ 2011-04-26 14:20 Mick
  2011-04-26 14:34 ` Paul Hartman
  0 siblings, 1 reply; 8+ messages in thread
From: Mick @ 2011-04-26 14:20 UTC (permalink / raw
  To: gentoo-user

This is less sinister than what it sounds, but nevertheless necessary
when one forgets the passphrase and has no revocation cert handy.

I am trying to come up with a script to crack the passphrase, but my
poor scripting ability (non-existent really) hampers my efforts.
Looking at google I ended up with this modified example:
=======================================
#!/bin/bash
#

# try all word in test.txt
for word in $(cat test.txt); do

  # try to encrypt with $word passphrase
  echo "${word}" | gpg --passphrase-fd 0 --no-tty -a --export
seckey.gpg -o file;

  # if decrypt is successfull; stop
  if [ $? -eq 0 ]; then

    echo "GPG passphrase is: ${word}";
    exit 0;

  fi

done;

exit 1;
=======================================

The file test.txt has a list of passwords (one in each line, no
spaces) I am told 'sound like' the passphrase the user had set.

The output file is not created (therefore I assume that the script
does not work) but prints out the public key and only the first
passphrase in the list:

=======================================
$ ./crackgpg.sh
gpg: enabled debug flags: memstat
gpg: writing to stdout
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.17 (GNU/Linux)
[snip ...]

-----END PGP PUBLIC KEY BLOCK-----
random usage: poolsize=600 mixed=0 polls=0/0 added=0/0
              outmix=0 getlvl1=0/0 getlvl2=0/0
secmem usage: 0/32768 bytes in 0 block
GPG passphrase is: sebpirleydrodujrem
=======================================

Any idea what I could use in the above script to make it try one word
at a time, not ask for confirmation and print the *successful*
passphrase word at the end?  Any other scripting suggestions also
welcome.
-- 
Regards,
Mick



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-user] [OT] Script to crack gpg passphrase
  2011-04-26 14:20 [gentoo-user] [OT] Script to crack gpg passphrase Mick
@ 2011-04-26 14:34 ` Paul Hartman
  2011-04-26 15:42   ` Mick
  0 siblings, 1 reply; 8+ messages in thread
From: Paul Hartman @ 2011-04-26 14:34 UTC (permalink / raw
  To: gentoo-user

On Tue, Apr 26, 2011 at 9:20 AM, Mick <michaelkintzios@gmail.com> wrote:
> This is less sinister than what it sounds, but nevertheless necessary
> when one forgets the passphrase and has no revocation cert handy.
>
> I am trying to come up with a script to crack the passphrase, but my
> poor scripting ability (non-existent really) hampers my efforts.

Haven't tried it, but Google led me to this:

http://www.roguedaemon.net/rephrase/



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-user] [OT] Script to crack gpg passphrase
  2011-04-26 14:34 ` Paul Hartman
@ 2011-04-26 15:42   ` Mick
  2011-04-26 20:24     ` Mick
  0 siblings, 1 reply; 8+ messages in thread
From: Mick @ 2011-04-26 15:42 UTC (permalink / raw
  To: gentoo-user

On 26 April 2011 15:34, Paul Hartman <paul.hartman+gentoo@gmail.com> wrote:
> On Tue, Apr 26, 2011 at 9:20 AM, Mick <michaelkintzios@gmail.com> wrote:
>> This is less sinister than what it sounds, but nevertheless necessary
>> when one forgets the passphrase and has no revocation cert handy.
>>
>> I am trying to come up with a script to crack the passphrase, but my
>> poor scripting ability (non-existent really) hampers my efforts.
>
> Haven't tried it, but Google led me to this:
>
> http://www.roguedaemon.net/rephrase/

Thanks Paul, it seems no longer maintained (compiled for 2.4 kernel and gcc3).
-- 
Regards,
Mick



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-user] [OT] Script to crack gpg passphrase
  2011-04-26 15:42   ` Mick
@ 2011-04-26 20:24     ` Mick
  2011-04-27 18:15       ` felix
  0 siblings, 1 reply; 8+ messages in thread
From: Mick @ 2011-04-26 20:24 UTC (permalink / raw
  To: gentoo-user

[-- Attachment #1: Type: Text/Plain, Size: 892 bytes --]

On Tuesday 26 April 2011 16:42:50 Mick wrote:
> On 26 April 2011 15:34, Paul Hartman <paul.hartman+gentoo@gmail.com> wrote:
> > On Tue, Apr 26, 2011 at 9:20 AM, Mick <michaelkintzios@gmail.com> wrote:
> >> This is less sinister than what it sounds, but nevertheless necessary
> >> when one forgets the passphrase and has no revocation cert handy.
> >> 
> >> I am trying to come up with a script to crack the passphrase, but my
> >> poor scripting ability (non-existent really) hampers my efforts.
> > 
> > Haven't tried it, but Google led me to this:
> > 
> > http://www.roguedaemon.net/rephrase/
> 
> Thanks Paul, it seems no longer maintained (compiled for 2.4 kernel and
> gcc3).

Actually, it installs and runs! Thank you.  :-)

Alas though, it didn't crack the suspected passphrase.  :-(

Back to plan A.  Any ideas how I can improve my script?
-- 
Regards,
Mick

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-user] [OT] Script to crack gpg passphrase
  2011-04-26 20:24     ` Mick
@ 2011-04-27 18:15       ` felix
  2011-04-27 18:56         ` Mick
  0 siblings, 1 reply; 8+ messages in thread
From: felix @ 2011-04-27 18:15 UTC (permalink / raw
  To: gentoo-user

On Tue, Apr 26, 2011 at 09:24:44PM +0100, Mick wrote:
> Back to plan A.  Any ideas how I can improve my script?

Do you have any guesses as to your passphrase or is it a total shot in
the dark, could be anything from one word to a poem?

Unless you can narrow it down tremendously, you're wasting time and it
will never be recovered.

-- 
            ... _._. ._ ._. . _._. ._. ___ .__ ._. . .__. ._ .. ._.
     Felix Finch: scarecrow repairman & rocket surgeon / felix@crowfix.com
  GPG = E987 4493 C860 246C 3B1E  6477 7838 76E9 182E 8151 ITAR license #4933
I've found a solution to Fermat's Last Theorem but I see I've run out of room o



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-user] [OT] Script to crack gpg passphrase
  2011-04-27 18:15       ` felix
@ 2011-04-27 18:56         ` Mick
  2011-04-28 14:04           ` Mick
  0 siblings, 1 reply; 8+ messages in thread
From: Mick @ 2011-04-27 18:56 UTC (permalink / raw
  To: gentoo-user

[-- Attachment #1: Type: Text/Plain, Size: 953 bytes --]

On Wednesday 27 April 2011 19:15:46 felix@crowfix.com wrote:
> On Tue, Apr 26, 2011 at 09:24:44PM +0100, Mick wrote:
> > Back to plan A.  Any ideas how I can improve my script?
> 
> Do you have any guesses as to your passphrase or is it a total shot in
> the dark, could be anything from one word to a poem?
> 
> Unless you can narrow it down tremendously, you're wasting time and it
> will never be recovered.

There are some candidate passphrases.  I tried them all with rephrase and all 
the permutations that I could think of.

Now I am trying app-crypt/nasty, for brute force cracking, but I can't get it 
to work.  :-(

It keeps popping up my pinentry and asking me for my default key passphrase, 
not the key I am trying to feed to it.

Is there a way to change that script I posted so that it a)takes the 
passphrases from a file, or b)incrementally tries {a,b,...,z}, and/or capitals 
and/or numbers?
-- 
Regards,
Mick

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-user] [OT] Script to crack gpg passphrase
  2011-04-27 18:56         ` Mick
@ 2011-04-28 14:04           ` Mick
  2011-04-28 16:47             ` Michael Orlitzky
  0 siblings, 1 reply; 8+ messages in thread
From: Mick @ 2011-04-28 14:04 UTC (permalink / raw
  To: gentoo-user

On 27 April 2011 19:56, Mick <michaelkintzios@gmail.com> wrote:
> On Wednesday 27 April 2011 19:15:46 felix@crowfix.com wrote:
>> On Tue, Apr 26, 2011 at 09:24:44PM +0100, Mick wrote:
>> > Back to plan A.  Any ideas how I can improve my script?
>>
>> Do you have any guesses as to your passphrase or is it a total shot in
>> the dark, could be anything from one word to a poem?
>>
>> Unless you can narrow it down tremendously, you're wasting time and it
>> will never be recovered.
>
> There are some candidate passphrases.  I tried them all with rephrase and all
> the permutations that I could think of.
>
> Now I am trying app-crypt/nasty, for brute force cracking, but I can't get it
> to work.  :-(
>
> It keeps popping up my pinentry and asking me for my default key passphrase,
> not the key I am trying to feed to it.
>
> Is there a way to change that script I posted so that it a)takes the
> passphrases from a file, or b)incrementally tries {a,b,...,z}, and/or capitals
> and/or numbers?

I'm making some good progress!

First I used the key to encrypt a file:

gpg -e file.txt

Then run this script to try to decrypt it:
==========================================
#!/bin/bash
#

# try all word in test.txt
for word in $(cat test.txt); do

  # try to decrypt with word
echo "${word}" | gpg --passphrase-fd 0 -q --batch --no-tty --output
file_success.txt -d file.txt.gpg;

  # if decrypt is successfull; stop
  if [ $? -eq 0 ]; then

    echo "GPG passphrase is: ${word}";
    exit 0;

  fi

done;

exit 1;
==========================================

This finds the passphrase and prints it out on the terminal.  However, its
success depends on the dictionary file I use.  Also, it's not particularly
fast ...

Any idea how I can create a dictionary file?  I've used apg but it's <aheam!>
too random.  :-)

I have been given something like 6 passphrases that may have been used.  The
problem is that at the time of creation the passphrase was typed in
incorrectly (twice!)  So I would need to use some method of generating a
dictionary with potential typos of these known passphrases (pretty much how
the rephrase application works).  What is a good way to generate such a file
by imputing a range of candidate characters?

Finally, is there a way or parallelising the run so that it speeds up?

-- 
Regards,
Mick



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-user] [OT] Script to crack gpg passphrase
  2011-04-28 14:04           ` Mick
@ 2011-04-28 16:47             ` Michael Orlitzky
  0 siblings, 0 replies; 8+ messages in thread
From: Michael Orlitzky @ 2011-04-28 16:47 UTC (permalink / raw
  To: gentoo-user

On 04/28/2011 10:04 AM, Mick wrote:
> This finds the passphrase and prints it out on the terminal.  However, its
> success depends on the dictionary file I use.  Also, it's not particularly
> fast ...
> 
> Any idea how I can create a dictionary file?  I've used apg but it's <aheam!>
> too random.  :-)
> 
> I have been given something like 6 passphrases that may have been used.  The
> problem is that at the time of creation the passphrase was typed in
> incorrectly (twice!)  So I would need to use some method of generating a
> dictionary with potential typos of these known passphrases (pretty much how
> the rephrase application works).  What is a good way to generate such a file
> by imputing a range of candidate characters?
> 
> Finally, is there a way or parallelising the run so that it speeds up?
> 

If you know the actual passphrase is "close" to some known passphrase,
read up on the concept of Levenshtein distance:

  http://en.wikipedia.org/wiki/Levenshtein_distance

If you can define a function that computes all passwords of Levenshtein
distance 1 from a given password, then you can run that function twice
to get the password of distance 2,3... Three or four is probably a good
place to stop.

Then you can take those six known passwords, and compute all words of
distance 1,2,3 from all of them. Stick those in a list, and try them.



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2011-04-28 16:49 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-26 14:20 [gentoo-user] [OT] Script to crack gpg passphrase Mick
2011-04-26 14:34 ` Paul Hartman
2011-04-26 15:42   ` Mick
2011-04-26 20:24     ` Mick
2011-04-27 18:15       ` felix
2011-04-27 18:56         ` Mick
2011-04-28 14:04           ` Mick
2011-04-28 16:47             ` Michael Orlitzky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox