Crunchは、総当たりで使えるパスワードのリストを作ってくれるツールです。
Kali Linuxなどにはあらかじめインストールされており、そちらのイメージが強いですが、Macでも使うことができます。
今回はMacでのCrunchの使い方を紹介したいと思います。
Crunchのインストール
MacにCrunchをインストールするときは、Homebrewを使うとかんたんです。
$ brew install crunch
また、Homebrewを使ったことがない方は、こちらの記事を参考にしてください。
Crunchのかんたんな使い方
Crunchをインストールしたら、かんたんなコマンドで総当たりに利用するパスワードの一覧を作ることができます。
たとえば、1〜3文字の、小文字アルファベットのみのパスワードの一覧を作成するには、以下のようにします。
$ crunch 1 3 -o password.txt
もしくは
$ crunch 1 3 > password.txt
これで、カレントディレクトリにpassword.txtファイルが作成され、a〜zまでの文字列を使った、1〜3文字のパスワードのリストが作られています。
password.txt
a
b
c
d
e
f
g
〜省略〜
zzu
zzv
zzw
zzx
zzy
zzz
Crunchで、使いたい文字を指定してパスワードのリストを作成する方法
さきほどは小文字アルファベットのみのパスワードのリストを作成しました。
では、ここからは、使いたい文字を指定してパスワードのリストを作成していきます。
まず、0〜9までの数字を指定して、パスワードのリストを作ってみます。
$ crunch 1 3 0123456789 > password.txt
このコマンドを実行すると、以下のように、0〜9までの数字を使った、1〜3桁のパスワードのリストが作られます。
0
1
2
3
4
5
6
7
8
9
00
01
02
03
〜省略〜
993
994
995
996
997
998
999
アルファベットの場合でも、使う文字を指定することができます。
$ crunch 1 3 abcde > password.txt
この場合、a, b, c, d, eのみを使った1〜3文字のパスワードのリストを作成できます。
password.txt
a
b
c
d
e
aa
ab
ac
ad
ae
ba
bb
bc
bd
be
ca
cb
cc
cd
ce
da
db
dc
dd
de
ea
eb
ec
ed
ee
aaa
aab
aac
aad
aae
aba
abb
abc
abd
abe
aca
acb
acc
acd
ace
ada
adb
adc
add
ade
aea
aeb
aec
aed
aee
baa
bab
bac
bad
bae
bba
bbb
bbc
bbd
bbe
bca
bcb
bcc
bcd
bce
bda
bdb
bdc
bdd
bde
bea
beb
bec
bed
bee
caa
cab
cac
cad
cae
cba
cbb
cbc
cbd
cbe
cca
ccb
ccc
ccd
cce
cda
cdb
cdc
cdd
cde
cea
ceb
cec
ced
cee
daa
dab
dac
dad
dae
dba
dbb
dbc
dbd
dbe
dca
dcb
dcc
dcd
dce
dda
ddb
ddc
ddd
dde
dea
deb
dec
ded
dee
eaa
eab
eac
ead
eae
eba
ebb
ebc
ebd
ebe
eca
ecb
ecc
ecd
ece
eda
edb
edc
edd
ede
eea
eeb
eec
eed
eee
charset.lstを使って、便利にパスワードのリストを作成する方法
charset.lstには、よく使われるであろう文字の組み合わせの方法が定義されています。
HomebrewでCrunchをインストールした場合、M1 Macであれば、charset.lstは、/opt/homebrew/Cellar/crunch/3.6/share/
に保存されています。(Crunchのバージョンの違いがあるかもしれません)
しかしこの場合ですと、Crunchのバージョンによってフォルダが変わってしまうかもしれないので、使うときは、/opt/homebrew/opt/crunch/share/
の方を指定したほうがいいかもしれません。
また、intel Macの場合は/usr/local/Cellar/crunch/3.6/share/
に保存されています。使うときは、/usr/local/opt/crunch/share/
を指定するのがいいと思います。
以下で紹介するのはM1 Macでのコマンドになりますので、intel Macをお使いの方は、charset.lstまでのパスを置き換えて考えてください。
数字のみのパスワードの場合(numeric)
1〜3桁の数字のみのパスワードを使う場合は、numericを使います。
$ crunch 1 3 -f /opt/homebrew/opt/crunch/share/charset.lst numeric > password.txt
コマンドを実行すると、カレントディレクトリにpass.txtというファイルが作成されます。
password.txt
0
1
2
3
4
5
6
7
8
9
00
01
02
03
〜省略〜
993
994
995
996
997
998
999
このように、数字のみを使った、1〜3桁のパスワードすべてが一覧として出力されます。
小文字アルファベットのみのパスワードの場合(lalpha)
小文字のアルファベットのみを使ったパスワードの場合、lalphaを使います。
$ crunch 1 3 -f /opt/homebrew/opt/crunch/share/charset.lst lalpha > password.txt
password.txt
a
b
c
d
e
f
g
〜省略〜
zzt
zzu
zzv
zzw
zzx
zzy
zzz
大文字のアルファベットのみの場合(ualpha)
大文字のアルファベットのみを使ったパスワードの場合、ualphaを使います。
$ crunch 1 3 -f /opt/homebrew/opt/crunch/share/charset.lst ualpha > password.txt
password.txt
A
B
C
D
E
F
〜省略〜
ZZU
ZZV
ZZW
ZZX
ZZY
ZZZ
小文字と大文字のアルファベットを使った場合(mixalpha)
小文字と大文字のアルファベットを使ったパスワードの場合、mixalphaを使います。
$ crunch 1 3 -f /opt/homebrew/opt/crunch/share/charset.lst mixalpha > password.txt
password.txt
a
b
c
d
e
f
g
〜省略〜
ZZQ
ZZR
ZZS
ZZT
ZZU
ZZV
ZZW
ZZX
ZZY
ZZZ
小文字と大文字のアルファベット、数字を使った場合(mixalpha-numeric)
小文字と大文字のアルファベット、そして数字を使ったパスワードの場合、mixalpha-numericを使います。
crunch 1 3 -f /opt/homebrew/opt/crunch/share/charset.lst mixalpha-numeric > password.txt
password.txt
a
b
c
d
e
f
g
〜省略〜
991
992
993
994
995
996
997
998
999
charset.lstで定義された文字の一覧
最後に、すべてではありませんが、charset.lstで定義された文字の一覧を表にしてみました。
—— | —— |
hex-lower | 小文字の16進数(0〜f) |
---|---|
hex-upper | 大文字の16進数(0〜F) |
—— | —— |
numeric | 0〜9までの数字 |
numeric-space | 0〜9までの数字と半角スペース |
—— | —— |
symbols14 | 記号(!@#$%^&*()-_+=) |
symbols14-space | 記号(!@#$%^&*()-_+=)と半角スペース |
—— | —— |
symbols-all | 記号(!@#$%^&*()-_+=~`[]{}|\:;”‘<>,.?/) |
symbols-all-space | 記号(!@#$%^&*()-_+=~`[]{}|\:;”‘<>,.?/)と半角スペース |
—— | —— |
ualpha | 大文字のアルファベット |
ualpha-space | 大文字のアルファベットと半角スペース |
ualpha-numeric | 大文字のアルファベットと数字 |
ualpha-numeric-space | 大文字のアルファベットと数字と半角スペース |
ualpha-numeric-symbol14 | 大文字のアルファベットと数字と記号(!@#$%^&*()-_+=) |
ualpha-numeric-symbol14-space | 大文字のアルファベットと数字と記号(!@#$%^&*()-_+=)と半角スペース |
ualpha-numeric-all | 大文字のアルファベットと数字と記号(!@#$%^&*()-_+=~`[]{}|\:;”‘<>,.?/) |
ualpha-numeric-all-space | 大文字のアルファベットと数字と記号(!@#$%^&*()-_+=~`[]{}|\:;”‘<>,.?/)と半角スペース |
—— | —— |
lalpha | 小文字のアルファベット |
lalpha-space | 小文字のアルファベットと半角スペース |
lalpha-numeric | 小文字のアルファベットと数字 |
lalpha-numeric-space | 小文字のアルファベットと数字と半角スペース |
lalpha-numeric-symbol14 | 小文字のアルファベットと数字と記号(!@#$%^&*()-_+=) |
lalpha-numeric-symbol14-space | 小文字のアルファベットと数字と記号(!@#$%^&*()-_+=)と半角スペース |
lalpha-numeric-all | 小文字のアルファベットと数字と記号(!@#$%^&*()-_+=~`[]{}|\:;”‘<>,.?/) |
lalpha-numeric-all-space | 小文字のアルファベットと数字と記号(!@#$%^&*()-_+=~`[]{}|\:;”‘<>,.?/)と半角スペース |
—— | —— |
mixalpha | アルファベット |
mixalpha-space | アルファベットと半角スペース |
mixalpha-numeric | アルファベットと数字 |
mixalpha-numeric-space | アルファベットと数字と半角スペース |
mixalpha-numeric-symbol14 | アルファベットと数字と記号(!@#$%^&*()-_+=) |
mixalpha-numeric-symbol14-space | アルファベットと数字と記号(!@#$%^&*()-_+=)と半角スペース |
mixalpha-numeric-all | アルファベットと数字と記号(!@#$%^&*()-_+=~`[]{}|\:;”‘<>,.?/) |
mixalpha-numeric-all-space | アルファベットと数字と記号(!@#$%^&*()-_+=~`[]{}|\:;”‘<>,.?/)と半角スペース |
まとめ
Crunchを使うと、総当たりで使えるパスワードのリストをかんたんにつくることができます。
文字数や、使う文字なども自由に指定でき、よく使う文字の組み合わせはあらかじめ定義されています。
Kali Linuxなどで使われるイメージが強いですが、Macでも使うことができ、Homebrewを使うとかんたんにはじめることができます。
参考になれば幸いです。