MacCracの良いところ for MaceR 投稿者:真っ赤なうなぎ汁●〜* 投稿日:6月19日(木)23時40分32秒 近ごろ何かと jack だのジョンだのジュンだのチュンだの PONだのが人気もの みたいなので,Macer も負けないぞって事でもないんだけど何となく気が向い たので MacCracについてその良いところをずらずらと書いてみましたずらずら .MacCrac をバリバリずこずこバッコンばっこん使いこなしてる人は読んでも 疲れるだけなんで,せっかくだから読んで下さい.Newbieの方は,こんな説明 でも何かの足しになるかも知れないんで,我慢して読んでみて下さい.DES 化 のあたりは記憶自体あやふやなので,思いっきり嘘書いてる可能性も否定しき れません.そのときは指摘してね.射的の的にはなりたくないけど. MacCracの良いところ_. 何といってもその柔軟さでしょう.MacCracは用意した辞書中の各 wordを単に そのまま使うだけでなく,各々のwordに対して実に様々な“応用”を利かせな がら作業をします.その応用範囲の広さが,まず大きな魅力と言えます. 具体例を挙げます.“Lupin”という単語についてその組替パターンを考えてみ ると,“lupin”,“LUPIN”,“1upin”,“LupinLupin”,“Lupin3”,“n ipul”,“3Lupin”,“Lupin3Lu”,....などなど,嫌になるくらい幾ら でも思いつきます.という事はこれら全てpasswdとして使われ得るという事な わけですけど.だからといって全ての単語について思いつく限りの組替パター ンを辞書として用意する事は限りなく不可能に近い,というか出来るだろうけ どやりたくない作業ですよね.もし10000語の辞書に50パターン当てはめたら5 00000語って事ですから.辞書自体が何MBになるか,考えたくもないわけです. MacCrac では,これを全て勝手に処理してくれます.あらかじめ各文字列に対 して行う処理の手順,つまり一種の規則性を定義しておけば,全てのwordに対 してHITするまであらゆるパターンを試してくれる訳です(もちろん 最後まで HIT しない事もあるわけだけど). ではここで,MacCracの仕組みを大雑把に俯瞰しておきましょう. MacCracの処理手順を簡単にまとめるとこうなります_..... ○まず用意されたパターン集から一つ目の法則【R1】を読み込む ○次に辞書から一つ目の word【W2】を取り出す. ○【R1】の法則を【W2】に適用して,バリエーション【R1W2】を生成. ●【R1W2】をDES化(暗号化)して【R1W2-D】という文字列を生成する.   (DES)固定長の64bit-keyからparity用(1bit/byte)の8bitを除いた      56bit-keyを使って,並び替え・置換・混合・XOR,といった処理を      16-round(と思うけど 32-rdだったかも)繰り返す事で暗号化する       ○ passwdファイルからDES化されたpasswd【P1】を抜き出す. ●【R1W2-D】=【P1】ならBingo!《Feedback》ファイルに書き出して【P2】へ ○一致しなければ,辞書から次の【W3】を取り出して(法則は【R1】のまま)  バリエーション【R1W3】を生成し,DES化して【P1】と比較....  という事を,BINGOが出るか辞書が空になるまで繰り返す.   ● BINGOが出るか辞書が空になったら,二つ目の法則【R2】を読み込み,以後  このプロセスを延々と繰り返す.全ての法則を使い切ったら終了する. ■何となくこんなチャートにしてみました.各々縦の列ごとに下方向へ回って  いくスロットマシンのドラムの様に捉えると解りやすい,よね? 多分.  ちなみに辞書の列が最も早く回転し,辞書列が一周するとルール列が一段下  がります.そしてルール列が一周すると passwd列が一段下がり,...と  いった感じで勝手に進行していきますから,あとは全リールが止まるのを待  っているだけで ひょっとしたら平方根になれるかも. −−−処理の手順−−−> ___________________________________  │  【R3】 【W4】            《Feedback》 【P3】  時   ┃   ┃                 △   ┃  間  【R2】 【W3】                ‖  【P2】  の   ┃   ┃                 ‖   ┃  進  【R1】×【W2】=【R1W2】・ DES ・【R1W2-D】・?・・【P1】  行   ┃   ┃                 ▼   ┃  │   ▼  【W1】   │       │   nズレ  ┃  ▼       ▼    │       │        ▼    ──┼───┼────┼───────┼──-─┼───┼───     ルール  辞書  バリエーション  DES化  判定  passwd ─────────────────────────────────── (何か分かりにくいもの書いちゃったかなあ...?) とまあ,こんな仕組で解析される訳ですが,ところであなた,このフローを見 てちょっと意外な事に気付きませんか? そう,「復号化」をしていないんで す.つまり「暗号を解読」しているんじゃなくて,当てずっぽうな文字列を暗 号化して「結果を比較」しているだけなんですね.これだと一見効率が悪そう に見えるけれども,大きな利点もあるんです.それは,「当てずっぽう」では なくてある程度推測した上で文字列を用意出来れば効率UPが図れる,という 点.つまり十分な CPUパワーが無い環境でも「辞書の出来」次第ではパワー不 足をカバー出来る訳です.もちろんこの「効率化」は,人間が設定するパスワ ードという性質ゆえランダムな文字列になりにくい,つまり逆に言えば,それ 自体意味を持つ文字列であったり必然性が連続した結果であったりしがちだと 言う前提に立った上での話ですけれども. 何だか話がそれてしまったけれど,まあそんなこんなで辞書の育成・活用の重 要性に繋がるというわけなんですね,強引ですけど.そしてその「活用」とい う点でMacCracは大きなアドバンテージをもたらしてくれるんだよというのが, 一応ここ迄の流れになります.強引ですけど. さて,ではその「法則が記述されたパターン集」をどうやって用意するのかと いう事ですけど,これもまた MacCracは秀越なんですね.主要なパターンがあ らかじめ付属してるんです.「 dicts.rules」という名前のファイルがそれで す.主要なといっても数百パターンはありますから,結構広範囲にカバーされ てます.ちなみに先程書いた“Lupin”の例だと,全てデフォルト状態でHITし ます.つまり“ Lupin”といいう1-wordを用意すれば大文字小文字の組み合わ せはもちろん,前後に数字を付加したり,逆に並べ替えたり,2回繰り返した り,“l”を数字の“1”に置き換えたり,などなど全て勝手に展開してくれる わけです.しかも相当ヒネクレた変形もデフォルトでこなしてくれます. 例えば“Lupin3Lu”ですけど,これは“元の単語に数字を付加した文字列を8 文字になるまで繰り返したパターン”ってやつで引っかかります.結構無茶な パターンですけど(笑).そしてもちろんこの「dicts.rules」ファイルは, 好みに合わせて自由にカスタマイズ出来ます.記述の仕方も「 dicts.rules」 中に書かれているので,そんなに苦労せずに追加・削除出来るでしょう. 1000パターンくらいに増やして(相当頭使う必要があるだろうけど)処理を目 一杯重くしてもいいだろうし,ある程度絞り込んで効率を追及する(これは もっと頭使う必要があるだろうけど)っていうのも良いだろうね.まあ,正規 表現をやや複雑にした感じ,くらいに捉えられれば きっと自在に組める様に なる事でしょう.ちなみにおいらはほとんどデフォルト状態で使ってるけど, 結構十分って感じです. ほんとは少し減らしたいくらいなんだけど もし追加するとしたら,例えば日 本人向けに -uji(氏)を付けてみたり,若者向けに cho-(超)を付けたりと か,ってまあこれは強引な例だけどそんな使い方も出来るので,少し応用して 辞書と dicts.rulesの抱き合わせセットとして使い分けるってのも,かなり通 な使い方だと思います.例えば,人名辞書に -kun,-chan,などを後付けした (HIT率良好な)優良辞書というのが実際にあるけれど,dicts.rulesを操れれ ば 特別な辞書を用意しなくてもかなり広範囲までカバー出来るわけです. ここでまたちょっと話をそらしますけど,使える辞書として出回ってるものの 中に,例えば“a”,“aa”,“aaa”,..といった連続や,単に数字や文字 を前後に付加したもの,或いは特定文字を別の特定文字に置き換えたもの等, 明らかな規則性を持ちながらも各々独立した単語としてリストされているのを よく見かけます.一見便利そうなものも結構あるけれど,MacCrackで使う場合 はそういったバリエーション辞書を用意しなくても取りこぼしがありません. そして,WordListの大きさは処理速度や時間に大きく影響する要素ですから, 必要最小限のリストから可能な限りの範囲をカバーするこの機能は,限られた 時間と CPUパワーを効率良く活用するという意味で実に有益な機能ですから, 新しく入手した辞書や手持ちの辞書などがもっとスリム化出来ないか,改めて 確認してみるといいでしょう.そういった文字列は思いきって抜いてしまって もMacCrackがちゃんとカバーしてくれますから. そういえば,もう一つのメジャーな Mac 用ツールで結構間違えがちな MacKrak というのがあるけれど,確かあの MacKrakに付属の辞書にはそういった繰り返し 文字が一杯含まれてた様に記憶している. おいらはそれを見た時に MacCrack って優れモンじゃん,と思ったんだ.. さて,今回も大分長文になってきた様なので,もう一点だけ触れてまとめる事 にしましょう. 確か以前ここでも話題が出てた様に思うんだけれど, /etc/passwd に書かれ ているユーザー情報,つまり“gecos”も無視できない情報ですよね.当然 Mac Crack はそれもチェックしてくれます.ユーザーネーム(アカウント名)と名 前(というか登録名)のフィールドから文字列を抽出して,辞書の時と同じ様 に一通りの処理を勝手にやってくれるのです.ん〜ん,働き者・ そしてこの 場合も,MacCrackと同じ階層に置かれた“ gecos.rules”ファイルに定義され ている法則に基づいて gecosを処理するので,例えばもっと様々な処理をさせ てみたり,軽快な動作を優先して逆にシンプルにしたりなど,好みのルールを 設定しておくことも出来る訳です.ちなみにおいらの実感値では,gecos の情 報をもとに展開された passwdって結構多いと思います. などなどなどなど...疲れたのでここでひとまず終わりにしよっと.   まあそーゆーわけですので,Macer の皆さん MacCrackを使いこなして,r00t アカウントを集めよう! 今ならキャンペーン期間中につき, r00t 5個集め ると,ナントその場でもう一本プレゼントらしいぞ.(知らないけど) 君も今スグ,Attack を始めよう! co,ac あたりが狙い目らしい! 急げ! (って,何のことか知らないけど.) うーん疲れた...じゃあまたね. ●__U_N_A__B_0_M_B_E_R___________________________________________@〜* .....................................WHERE_DO_YOU_WANT_TO_HACK_TODAY_?