「John the Ripper」の版間の差分

提供: セキュリティ
移動: 案内検索
行11: 行11:
  
 
[[John the Ripper]]は、GPUをサポートしていて、CUDAやOpenCLと連携可能です。
 
[[John the Ripper]]は、GPUをサポートしていて、CUDAやOpenCLと連携可能です。
 
 
== インストール ==
 
== インストール ==
{{ports|/usr/ports/security/john|john}}
+
{{pkg|john}}
 
{{yum|john|rpmforge}}
 
{{yum|john|rpmforge}}
 
 
== 環境構築 ==
 
== 環境構築 ==
 
=== $JOHN/dynamic.conf: No such file or directory ===
 
=== $JOHN/dynamic.conf: No such file or directory ===
行26: 行24:
 
.include <dynamic.conf>
 
.include <dynamic.conf>
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
=== open: $JOHN/john.local.conf: No such file or directory ===
 
=== open: $JOHN/john.local.conf: No such file or directory ===
 
FreeBSD の john-1.7.9.j.7 で以下のエラーに遭遇しました。
 
FreeBSD の john-1.7.9.j.7 で以下のエラーに遭遇しました。
行38: 行35:
 
$ sudo touch /usr/local/share/john/john.local.conf
 
$ sudo touch /usr/local/share/john/john.local.conf
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
== コマンドラインオプション ==
 
== コマンドラインオプション ==
 
<source lang="bash">
 
<source lang="bash">
行89: 行85:
 
--crack-status            emit a status line whenever a password is cracked
 
--crack-status            emit a status line whenever a password is cracked
 
</source>
 
</source>
 
 
== 使い方 ==
 
== 使い方 ==
 
=== FreeBSD ===
 
=== FreeBSD ===
行96: 行91:
 
sudo john /etc/master.passwd
 
sudo john /etc/master.passwd
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
=== Linux ===
 
=== Linux ===
 
Linuxでは、一度 unshadow を実行する必要があります。
 
Linuxでは、一度 unshadow を実行する必要があります。
行103: 行97:
 
sudo john /root/passwdfile
 
sudo john /root/passwdfile
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
=== Windowsパスワードのクラック ===
 
=== Windowsパスワードのクラック ===
 
[[Windowsのパスワード]]の[[ハッシュ]]の[[パスワードクラック]]の例です。
 
[[Windowsのパスワード]]の[[ハッシュ]]の[[パスワードクラック]]の例です。
行144: 行137:
 
$ john -incremental -stdout
 
$ john -incremental -stdout
 
</syntaxhighlight>
 
</syntaxhighlight>
 
  
 
実行例は、以下の通りです。
 
実行例は、以下の通りです。
行167: 行159:
 
% john -incremental=foo -stdout  
 
% john -incremental=foo -stdout  
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
FreeBSDでは、 /usr/local/share/john/john.local.conf で設定できます。
 
FreeBSDでは、 /usr/local/share/john/john.local.conf で設定できます。
 
 
== 関連項目 ==
 
== 関連項目 ==
* [[passwd]]
+
* passwd
* [[unshadow]]
+
* unshadow
 
* [[パスワードクラック]]
 
* [[パスワードクラック]]
 
* [[Windowsアカウントのパスワードをクラッキングする方法]]
 
* [[Windowsアカウントのパスワードをクラッキングする方法]]
 
<!-- vim: filetype=mediawiki
 
<!-- vim: filetype=mediawiki
 
-->
 
-->

2015年9月23日 (水) 17:19時点における版

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にインストールする場合

CentOSyum コマンドでインストールする場合。

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 で設定できます。

関連項目