John the Ripper
John the Ripperは、有名なパスワードクラッキングのソフトウェアの1つです。Unix(FreeBSD, Linux)やWindowsのパスワードをクラッキングすることができます。
読み方
- John the Ripper
- じょん ざ りっぱー
目次
概要
John the Ripperは、高速なパスワードクラッカーです。多くのUnix系OSやWindows, DOS, BeOS, OpenVMS などで利用可能です。主要な目的な弱いUnixパスワードを検出することです。それにくわえて、Windows のLMハッシュなど、いくつもの crypt パスワードハッシュタイプを理解できます。
John the Ripperは、無償のオープンソースソフトウェアです。
John the Ripperは、GPUをサポートしていて、CUDAやOpenCLと連携可能です。
インストール
FreeBSDにインストールする場合
pkgコマンドでインストールする場合
sudo pkg install john
CentOSにインストールする場合
sudo yum -y --enablerepo=rpmforge install john
環境構築
$JOHN/dynamic.conf: No such file or directory
$JOHN/dynamic.conf: No such file or directory
Linux で上記のエラーメッセージがでる場合は、下記の対応をします。 /etc/john.conf のファイルの下記の部分をコメントアウトすることで、メッセージがでなくなります
.include <dynamic.conf>
open: $JOHN/john.local.conf: No such file or directory
FreeBSD の john-1.7.9.j.7 で以下のエラーに遭遇しました。
$ john open: $JOHN/john.local.conf: No such file or directory
john.local.conf がない、というので、空のファイルを作れば、問題は解決します。
$ sudo touch /usr/local/share/john/john.local.conf
コマンドラインオプション
% john John the Ripper password cracker, ver: 1.7.9-jumbo-5_omp [freebsd-x86-any] Copyright (c) 1996-2011 by Solar Designer and others Homepage: http://www.openwall.com/john/ Usage: john [OPTIONS] [PASSWORD-FILES] --config=FILE use FILE instead of john.conf or john.ini --single[=SECTION] "single crack" mode --wordlist=FILE --stdin wordlist mode, read words from FILE or stdin --pipe like --stdin, but bulk reads, and allows rules --encoding=NAME the input data is in a 'non-standard' character. encoding. NAME = utf-8, koi8-r, and others. For a full list, use --encoding=LIST --rules[=SECTION] enable word mangling rules for wordlist mode --incremental[=MODE] "incremental" mode [using section MODE] --markov[=LEVEL[:opts]] "Markov" mode (see documentation) --external=MODE external mode or word filter --stdout[=LENGTH] just output candidate passwords [cut at LENGTH] --restore[=NAME] restore an interrupted session [called NAME] --session=NAME give a new session the NAME --status[=NAME] print status of a session [called NAME] --make-charset=FILE make a charset file. It will be overwritten --show[=LEFT] show cracked passwords [if =LEFT, then uncracked] --test[=TIME] run tests and benchmarks for TIME seconds each --users=[-]LOGIN|UID[,..] [do not] load this (these) user(s) only --groups=[-]GID[,..] load users [not] of this (these) group(s) only --shells=[-]SHELL[,..] load users with[out] this (these) shell(s) only --salts=[-]COUNT[:MAX] load salts with[out] COUNT [to MAX] hashes --pot=NAME pot file to use --format=NAME force hash type NAME: des/bsdi/md5/bf/afs/lm/ dynamic_n/bfegg/dmd5/dominosec/epi/hdaa/ipb2/krb4/ krb5/mschapv2/mysql-fast/mysql/netlm/netlmv2/netntlm/ netntlmv2/nethalflm/md5ns/nt/phps/po/xsha/crc32/ hmac-md5/lotus5/md4-gen/mediawiki/mscash/mscash2/ mskrb5/mssql/mssql05/mysql-sha1/nsldap/nt2/oracle11/ oracle/phpass-md5/pix-md5/pkzip/raw-md4/raw-md5thick/ raw-md5/raw-sha1/raw-sha/raw-md5u/salted-sha1/sapb/ sapg/sha1-gen/raw-sha224/raw-sha256/raw-sha384/ raw-sha512/xsha512/hmailserver/sybasease/trip/ssh/pdf/ rar/zip/dummy --subformat=LIST get a listing of all 'dynamic_n' formats --save-memory=LEVEL enable memory saving, at LEVEL 1..3 --mem-file-size=SIZE size threshold for wordlist preload (default 5 MB) --field-separator-char=C use 'C' instead of the ':' in input and pot files --fix-state-delay=N performance tweak, see documentation --nolog disables creation and writing to john.log file --crack-status emit a status line whenever a password is cracked
使い方
FreeBSD
FreeBSDのパスワードをクラッキングするには、以下のコマンドを実行します。
sudo john /etc/master.passwd
Linux
Linuxでは、一度 unshadow を実行する必要があります。
sudo sh -c 'unshadow /etc/passwd /etc/shadow > /root/passwdfile' sudo john /root/passwdfile
Windowsパスワードのクラック
Windowsのパスワードのハッシュのパスワードクラックの例です。
ハッシュは、PwDump などを利用して用意します。 詳しくは、 Windowsアカウントのパスワードをクラッキングする方法 を参考にしてください。 下記のハッシュを含んだファイル hash.txt を用意します。
Administrator:500:01fc5a6be7bc6929aad3b435b51404ee:0cb6948805f797bf2a82807973b89537:::
パスワードクラックします。
john hash.txt
パスワードを表示します。
john --show hash.txt
LMハッシュとNTLMハッシュのどちらのモードで動かすか、指定しないと警告が出て、自動的に選択されます。
NTLMハッシュを指定する場合。
$ john --format=nt hash.txt Loaded 6 password hashes with no different salts (NT MD4 [128/128 X2 SSE2-16]) XXXX (Administrator)
LMハッシュを指定する場合。
$ john --format=nt2 hash.txt Loaded 6 password hashes with no different salts (NT v2 [SSE2i 12x]) Remaining 2 password hashes with no different salts
インクリメンタルにパスワードを生成する
インクリメンタルにパスワードを生成できます。総当たり攻撃
$ john -incremental -stdout
実行例は、以下の通りです。
% john -incremental -stdout | head -10 1952 sammy stark start stack stace steve stevy steen steet
パイプで別のコマンドに喰わせたりして、使うことができます。
パスワードの桁数などのパスワードの定義は、 john.local.conf で設定できます。 -incrementalオプションにモード(下記の例ではfoo)を指定します。
% john -incremental=foo -stdout
FreeBSDでは、 /usr/local/share/john/john.local.conf で設定できます。
関連項目
- passwd
- unshadow
- パスワードクラック
- Windowsアカウントのパスワードをクラッキングする方法
ツイート