John The RipperをMacにインストールした【OS X】

John the Ripperとは?


John the Ripperとは、パスワードクラック用のオープンソースフリーソフトです。
http://www.openwall.com/john/www.openwall.com
クラックといっても、あくまでパスワードが強固かどうかを確認するためのソフトなので悪用してはいけません。Yes Hacker, No Cracker。
授業の課題でこれ使って解いてこいと言われたのでインストールしました。
インストール方法と使い方を軽く紹介します。

1. パッケージダウンロード


John the Ripper password cracker
John the Ripper 1.8.0-jumbo-1をダウンロードします。
jumboは豊富なスクリプトが入ってるのでお得です。
一応Homebrewやapt-getにもありますが、中身が少し足りないという書き込みも見かけたので念のためサイトから直接落としました。

2. configure & make

解凍したら、srcディレクトリに移動します。

$ cd john-1.8.0-jumbo-1/src/

環境が揃っているか確認・makeします。

$ ./configure && make

ここで環境に不十分なところがあれば実行が止まるので、直してから再実行してください。
私はopensslのヘッダが参照できないと怒られたので(前記事参照)シンボリックを貼ってもう一度やったら通りました。
ちなみにインストール方法はdoc/INSTALLにも書いてあります。

3. 実行テスト

makeが済んだらrunディレクトリに移動してjohnが動くか確認します。

$ cd ../run
$ ./john --test

「--test」は実行テスト・各ハッシュ毎のベンチマークを表示します。
オプション・引数なしで実行すると使い方を確認できます。

4. 実際にクラックしてみる


実際にパスワードを破ってみます。
ファイルが中でごちゃごちゃするとアレなので一度johnのディレクトリから抜けます。

クラックされるパスワードファイルを作ります。
johnのunshadowを使います。
公式ではLinuxを前提に解説されているので/etc/passwdと/etc/shadowを使うよう書いてありますが、OS Xではshadowの代わりにmaster.passwdになります。
このshadow(master.passwd)にはroot権限がないとアクセスできません。

$ sudo john-1.8.0-jumbo-1/run/unshadow /etc/passwd /etc/master.passwd > passfile
$ john-1.8.0-jumbo-1/run/john passfile
No password hashes loaded (see FAQ)


_人人人人人人人人人人人人人人人人人人_
No password hashes loaded (see FAQ)
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
どうもパスワードファイルのハッシュフォーマットが違うと読めないそうです……。
Ubuntuで試したらうまくいったのでOSごとで違う部分があるのかもしれませんね。
これで数時間詰まりました。
John the Ripperのハッシュフォーマット↓
John The Ripper Hash Formats | pentestmonkey


なので別のパスワードファイルを作ります。
Wikiさんからお借りしました。
「user:AZl.zWwxIh15Q」と書かれたpassfileを作成します。


今回は辞書攻撃で検証します。
辞書を使うので、オプションに「--wordlist=/usr/share/dict/words」を指定して実行。

$ cat passfile
user:AZl.zWwxIh15Q
$ john-1.8.0-jumbo-1/run/john --wordlist=/usr/share/dict/words passfile
Loaded 1 password hash (descrypt, traditional crypt(3) [DES 128/128 AVX-16])
Press 'q' or Ctrl-C to abort, almost any other key for status
example          (user)
1g 0:00:00:00 DONE (2016-01-10 22:09) 16.66g/s 1102Kp/s 1102Kc/s 1102KC/s exactly..excelsin
Use the "--show" option to display all of the cracked passwords reliably
Session completed


>> example (user)
1秒足らずです。
辞書に載ってるパスワードを使うとこういうことになるのがよくわかります。


他にもシングルモード、ブルートフォース等いろいろあるのでリファレンス参照してみてください。
目の当たりにすると、改めてパスワードの管理には気をつけようと思いますね。

【ksnctf】q12 Hypertext Preprocessor

CVE-2012-1823の問題でした。
問題ページを開くと「2012:1823:20:」に続けて現在時刻等がコロン区切りで表示されます。
「2012:1823:20」でggると
CGI版PHPにリモートからスクリプト実行を許す脆弱性(CVE-2012-1823) | 徳丸浩の日記
がヒットしました。

CGIの仕様として、クエリ文字列に等号を含めない場合は、クエリ文字列がCGIスクリプトコマンドライン引数として指定されます。

"-s"がソースコード表示、"-d"が設定値(php.ini)変更オプションとして悪用されます。
とりあえず "/index.php?-s"を叩くとphpコードが表示され、「このディレクトリ内にflagファイルがあるよ」とコメントにありました。
現在時刻の後ろの4つの数字は0-59の乱数のようです。

上記サイトを流し読んで、

allow_url_include=On
auto_prepend_file=php://input

を-dにて設定し直し、一緒に渡したPHPを実行させればいいようだったのでpythonで書きました。

ksnctf Hypertext Preprocessor Writeup

実行したらとれました。
一発で通っちゃったのでちょっとうれしい。

【OS X】「その他」が占め始めた時に消すファイルたち

毎回忘れるのでメモ
もし参考にされる方がいらしたら、できるだけ元ディレクトリは残してファイルのみを削除するようにしてください。
自己責任でお願いします。バックアップをとってから消すことをおすすめします。

使える子なコマンド

# カレントディレクトリ内の個別ディレクトリ毎に見やすい単位で出力
$ sudo du -sh *

# カレントディレクトリ内の個別ディレクトリ毎に昇順でsortして出力
$ sudo du -s * | sort -n

Mail系

# Mailで添付されたファイルをワンクリックで開いた時に保存しているところ
/Users/[username]/Library/Containers/com.apple.mail/Data/Library/Mail Downloads

# Logs
/Users/[username]/Library/Containers/com.apple.mail/Data/Library/Logs/Mail

# Caches
/Users/[username]/Library/Containers/com.apple.mail/Data/Library/Caches/com.apple.mai

あとはMailの迷惑メールとか削除済メールを消してみるとか

Xcode

# DerivedData
/Users/[username]/Library/Developer/Xcode/DerivedData

#SnapShots
/Users/[username]/Library/Developer/Xcode/SnapShots

# Archives
/Users/[username]/Library/Developer/Xcode/Archives

# iOS DeviceSupport デバイス接続時のデータ
/Users/[username]/Library/Developer/Xcode/iOS DeviceSupport

# iOS Device Logs
/Users/[username]/Library/Developer/Xcode/iOS DeviceSupport

cores
溜まってるの見たことない感

/cores

Cachesたち

/System/Library/Caches
/Library/Caches
/Users/[usename]/Library/Caches

private系

/private/var/tmp

# Macを終了せずにスリープばっかりしてると溜まってくるやつ
/private/var/swapfile
/private/var/sleepimage

# 知恵袋とか見てたら消していいよって
/private/var/log/asl


他にもとにかくキャッシュ・ログ(消していい系)と名のつくもの消しまくったけど全部は覚えてないです。
結局その他を1/3ぐらいまで消すことができました。
ただし、メモに書き溜めてた内容がいくつか飛んだりしていたのでどっかいらんとこ消しちゃったのかもしれない。
ここに載せた箇所は全部「消していい」と掲示板やアップルのフォームで見かけたものだけですが、しっかりバックアップとってから自己責任で実行してください。

【Git】ファイルをローカルには残してリモートリポジトリからのみ削除


Git無勉強すぎていつもadd, commit, merge, push, pullしか使わないボケです。
ファイルを一旦リモートからは消したいけど、念の為にローカルには残しておきたいということがあったのでメモ。

リモートからのみ削除

$ git rm --cached test.txt(削除したいファイル名)

削除したファイルをadd
git add -u は「前ステージと比較して変更点があった部分のみadd」
新ファイルは追加されない

$ git add -u

commit

$ git commit -m "deleted test.txt"

push

$ git push origin master

以後変更を追跡しないように.gitignoreを作成する

test.txt
Thanks

qiita.com

d.hatena.ne.jp
nekova.hatenablog.com