LoginSignup
0
1

More than 1 year has passed since last update.

hashcatのルールファイルでワードリストを自動生成

Last updated at Posted at 2022-06-17

「password」という単語と、「best64.rule」というhashcatのルールファイルを与えて、以下のようなワードリストを自動生成する:

password
drowssap
PASSWORD
Password
password0
password1
password2
...
password01
password02
password11
...
passw123
passwman
passwdog
1password
thepassword
dassword
massword
...

単語を与えれば自動でその単語をパスワードとして使われそうな形に加工してる。

作り方

hashcat --stdout --force <単語が入ったファイル> -r <ルールファイル>

今回は例として「password」という単語からワードリストを生成するので、origin.txtという名のファイル名に「password」と書き込んでおく:

┌──(kali㉿kali)-[~]
└─$ cat origin.txt
password

ルールファイルは/usr/share/hashcat/rules/にある:

┌──(kali㉿kali)-[/usr/share/hashcat/rules]
└─$ ls            
Incisive-leetspeak.rule                         generated2.rule
InsidePro-HashManager.rule                      hybrid
InsidePro-PasswordsPro.rule                     leetspeak.rule
T0XlC-insert_00-99_1950-2050_toprules_0_F.rule  oscommerce.rule
T0XlC-insert_space_and_special_0_F.rule         rockyou-30000.rule
T0XlC-insert_top_100_passwords_1_G.rule         specific.rule
T0XlC.rule                                      toggles1.rule
T0XlCv1.rule                                    toggles2.rule
best64.rule                                     toggles3.rule
combinator.rule                                 toggles4.rule
d3ad0ne.rule                                    toggles5.rule
dive.rule                                       unix-ninja-leetspeak.rule

個人的にはbest64.ruleをよく使ってます。

加工したい単語が入ったファイル(origin.txt)とルールファイル(/usr/share/hashcat/rules/best64.rule)が用意できたので、これらを次のようにhashcatに与えてやる:

bash
hashcat --stdout --force origin.txt -r /usr/share/hashcat/rules/best64.rule > newpass.txt

これで、新たなワードリストnewpass.txtが作成される(リダイレクトしないと、上記のコマンドの実行結果はすべて標準出力されてしまいます)。

ルールファイルの内容について

上で使用したルールファイルbest64.ruleの中身には以下のような記述がある:

## nothing, reverse, case... base stuff
:
r
u
T0

## simple number append
$0
$1
$2
...
## high frequency overwrite at end
] $a
] ] $s
...

それぞれには意味があって

  • : = 何もしない(nothing)
  • r = 単語の文字列を反転させる(reverse)
  • T0 = 0文字目の大文字・小文字を反転(Toggle 0)
  • $1 = 単語の末尾に「1」を付ける
  • $0 $2 = 単語の末尾に「02」を付ける
  • $s = 単語の末尾に「s」を付ける
  • ] $a = 単語の末尾の一文字を消して、末尾に「a」を付ける

詳しくは以下を参照:

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1