--- title: Recover Your Lost Password On The Command Line summary: > If you are like me and use many different passwords you may come to that point when you can't think of a password for a specific service (or (zip)file). This is how I recover most of them. date: 2024-08-18T16:36:17+0200 #lastmod: categories: - amateur-radio - computerstuff tags: - pentest - scripting - john - hashcat - command-line - draft_post # showBreadcrumbs: true # showDate: false # showReadingTime: false # showWordCount: false # showPagination: false # feed_exclude: true # site_exclude: true # some help # # highlighting with highlights # # use table, as inline creates a padding around # and it pushes the text more to the right side (end of screen) # # ~~~html {linenos=table,hl_lines="3-6"} # ~~~html {linenos=inline,hl_lines="1,3-6"} draft: true --- I usually save most variations of my passwords in a secure file and with a rule file I can re-create most of the passwords that I have ever used. And because I do not want to type all the passwords by hand I use tools for this task, which speeds this whole process up and it costs me minutes (where I can do other things meanwhile)... ## Create the initial password file I only use lower letters because I will punch that file through rules later that will automatically make some letters uppercase, add some numbers to it et cetera... ~~~ password otherpassword ~~~ Let these be our initial password file with the initial password that we use. ## The rule file Now create a rule file that will do most of the work by modifying the lines from our initial password file. ~~~ ## take it as it is, toggle first character to uppercase or lowercase, uppercase all characters : T0 u ## append/prepend something to the password itself $! $1 $2 $3 $3 $2 $1 $m $i $n $e ^y ^m ^i ^i T1 ^0 ^0 T1 ~~~ So if you tend to finish your weak passwords with `12shark`, you may want to add this to your ruleset as `$1 $2 $s $h $a $r $k`. Now every line from your password file gets appended with `12shark`. ## Line counts ~~~console $ wc -l * 154 list.best64.txt 68196 list.d3ad0ne.txt 24 list.simple.txt 2 pwlist.txt 15 simple.rule ~~~ So our initial password file contains 2 words (2 lines), the modified new password list based on our own ruleset contains 24 lines (passwords). And the other two files (_best64_ and _d3ad0ne_) were made with some default rules from a tool called [john](https://www.openwall.com/john/). As you can see the wide-known ruleset _best64_ created 154 passwords from it and the more enhanced rule _d3ad0ne_ created 68196 passwords from our 2 words. ## What the output looks like Using our own ruleset from above, we get these combinations: ~~~ password Password PASSWORD password! password123 password321 passwordmine mypassword ipassword iPassword 0password 0Password otherpassword Otherpassword OTHERPASSWORD otherpassword! otherpassword123 otherpassword321 otherpasswordmine myotherpassword iotherpassword iOtherpassword 0otherpassword 0Otherpassword ~~~