とある京大生の作業ログと日々の雑記

コンピュータサイエンスについて学んだことを可視化したり日々の雑記をまとめてます。

クラッキングツールをいくつか触ってみた

こんばんは!




最近留学に向けてフランス語の勉強ばっかりしてて技術方面であんまり進捗がないコミさん(@komi3__ )です!




留学が8月頭に始まるんですけど、授業が半分くらいフランス語で行われるので今は必死こいて毎日フランス語の文法問題解きまくってます。





最近ようやく「文法以前に語彙力がないと何も始まらない」という事実に気づきました....w





4ヶ月後にはスイスにいるけど大丈夫なんかなぁ....?



本題へ

実は最近中古のThinkpadを買いました!




ずっとLinux用のマシンが欲しくて、でも今使ってるMacbook Airはあんまりいじりたくないなぁってことでいろんな中古ストアを探してたんですよ。




で、ぼく英語配列のキーボードじゃないと嫌で、日本の中古ストアに置いてるのは全部日本語配列だったからアメリカのAmazonで買いましたw




え?なんで英語配列かって?




そりゃもう決まってるじゃないですか〜




ぼくがアメリカかぶれの意識高い系だからです!





まあそんなこんなでThinkpadを手に入れたわけで、とりあえずWindowsを吹き飛ばしました。





それでMacbook Airの方でどのディストリビューションにするか選んでたわけです。





当初の予定としてはZorinかArchにする予定だったんですけど、「そういえばセキュリティ方面の勉強してるし、それに使えるディストリにするか」ってことで、ちょっとセキュリティ方面を見てたんですよね。





まあということでセキュリティ方面では有名どころのKali LinuxのLive USBにしてMacbookでUSBブートしてみたんですけど、抱いた感想が




「んー.... なんかUIが好きじゃない....」



って感じで....w




んで、結局選んだのがこれです。



f:id:komi1230:20180415201621j:plain




このOSはParrot Securityです!




Kaliと同様にクラッキングセキュリティ対策用のツールが約200種類ほど標準搭載されていて、とりあえずいろんなシチュエーションに対応できるんです。




ぼく自身まだParrotを全部いじくりまわしたわけではないんですが、パスワードクラック系のツールはいくつか回してみたのでとりあえず簡単にいくつかのツールを紹介していこうかと思います。





注. 各種ツールを簡単な使用方法と一緒に軽く紹介しますが、絶対に犯罪等に使わないで下さい!



John The Ripper

正式名称をJohn the Ripper password crackerといって、代表的なパスワードクラックツールの一つです。




UNIXLinuxのユーザーパスワードの暗号化に使われるDES、MD5Windowsログオンに使われるNTMLなど、幅広い暗号化アルゴリズムに対応しているようです。




UNIXLinuxMacWindowsなどいろんなプラットフォームにて使用可能です。





使い道としては自身の設定したパスワードがいかに脆弱であるかを診断するツールで、passwdファイルとshadowファイルに含まれる暗号化されたパスワードを推測します。




準備としては、まずはJohn The RipperGithubからcloneして持ってきます。

github.com


コマンドとしては以下の通りです。

git clone https://github.com/magnumripper/JohnTheRipper

cd src

./configure && make


多分これでいけるかと思います。


コンパイルに失敗する場合もあるらしく、その時は以下のQiitaのページに飛んでトラブルシューティングをして下さい。

qiita.com



とりあえず何かパスワードを解析してみたいならば、自分のOSのパスワード解析などをしてみてもいいかもしれません。


自分のパスワード等はroot権限でアクセスできます。

sudo su root

cat /etc/passwd > passwd

cat /etc/shadow > shadow


これをした上で、あとはこれらのファイルを連結してjohnの前に引きずり出してしまえばあとはもう準備完了です。

sudo unshadow passwd shadow < passwdfile

さて、準備は整いました.....


さあ始めようか....!!

john --users=[ユーザー名] passwdfile

これで、いけるかと思います。



すごいなぁ.....ドラマとかでハッカーがやってたパスワード解析がこんなんでできてしまうとは....



ちなみに辞書攻撃もできるらしいので、辞書に載ってる単語とか使うとホントに一瞬でパスワードクラックができてしまうという知見。(ホントに高速です)



いや〜すげえ。感動。



ただ、中身がどういうアルゴリズムでやってるのかはまだ知らないので、まだまだこれから勉強が楽しみ。


Aircrack-ng

これも有名どころ。


これは簡単に言っちゃえばWi-Fiのパスワードクラックをするツールです。


厳密に言えばWEP方式のやつに使えるやつ(?)



まあ導入として、MacならMacportsを使って入れます。


sudo port install aircrack-ng

portがない場合は、このQiitaのページに従って下さい。(パス通すの忘れないでね?)

qiita.com




準備ができたということで、解説を。




基本的にはモニターモードに移行してからパケット収集をする感じです。

airman-ng start wlan0

これでモニターモードに移行します。



wlan0というのはWi-Fiアダプターの名前で、ほとんどの環境がそうであると思いますが、一応気になる人は

iwconfig

で確認しておいてください。



で、iwconfigでwlan0のモードがモニターモードであることが確認できたら、次にAirodump-ngを使ってパケット収集をします。

airodump-ng mon0

これを行うと受信可能範囲のAPが全て表示されます。



今回はターゲットを絞るために、その中でターゲットを絞ったらそのBSSIDとMACアドレス、APのチャンネルをコピペしといてください。



もう一度、そのターゲットに絞ってAirodump-ngをします。

airodump-ng --channel [チャンネル番号] --bssid [BSSID] -w [ファイル名] mon0

ファイル名はなんでもよくて、hogeとかにすればhoge-01.capというキャプチャーファイルが同じディレクトリに作られます。



だいたいこれで準備は整ったもんで、あとはもう一枚ターミナルを立てて攻めるだけです。

aircrack-ng hoge-01.cap

これでできます。



最初すぐにやるとパケット数が足らなくてできないかもしれませんが、このポートを使って他者が動画視聴(Youtubeとかニコニコ動画とか)などを使用してればそれなりにパケットが集まるのでパスワードクラックができます。




また、ほっておいても5000パケット毎に自動解析をしてくれるのでそのうちできます。




ただ、「パケットが集まるのを待つのは嫌だ!さっさとヤっちまいたいぜ!ヒャッハー!」みたいな荒くれ者もいるかもしれません。




まあ問題のない表現をすれば、通信量の少ないAPの解析がしたいシチュエーションですね。




受動的なWEP解析から能動的なWEP解析に移るわけです。




こちらから特定のパケットを多数 AP に送りつけ、 それに対して AP が返答してくるパケットを収集する。




もちろん、AP にちょっかいを出しているわけだか ら、攻撃相手に気がつかれる可能性はある(自分は使ってないのにAPのランプが激しく明滅するなど)し、AP のログにも残ります。




まあそういうリスクもありますが、確実に高速に攻撃を仕掛けることができます。




一応これを行うには一つ条件があって、最低一つのデバイスがこれに接続されていることが条件となります。




この攻撃手法はARP replayというもので、どういうものかというとARPというデバイスが接続先を探す際に発行するパケットを何度も送りつけることでパケットを溜めてWEPキー解析を可能にするというものです。

(別にパケットだったら何でもいいわけじゃない)




このARP replayを使うことでAPのARPパケットに対する応答パケットを収集します。




しかし再送するためには、そもそもまずARP要求パケットを入手しなければなりません。



そのためにAPに接続しているクライアントが必要になるわけです。



正規のクライアントが発行したARPパケットを傍受すれば良い、というスタンスですw




んで、見ず知らずの攻撃者からARP要求を送ればいいんですけど、まあ反応はしれくれません。




どうすればいいかというと、まずはAPに認証を受ける必要があります(アソシエーションを確立するわけです)





アソシエーションを確立するとは、「自分の管轄下にこのステーション入ったよー!」と認識されることで、これでAPには認識されるわけですがAPに登録されただけなのでその後通信をすることはできません(WEPキーを知らないので)




APの認証の受け方について、「共有鍵方式」と「オープンシステム認証」があるのですが、オープンシステム認証は「誰でもええよ〜」というまさにハリボテのような認証システムで、コマンド一発でアソシエーションを確立できるのでここから攻めます。




まあ理論的なことが長くなりましたが、コマンドは以下の通りです。

airplay-ng -1 [認証を受ける間隔(秒)] -q [Keep Aliveを送る間隔] -a [MACアドレス] mon0


これで認証はオッケーです。



もう一枚ターミナルを立てて

airplay-ng -3 -b [MACアドレス] mon0


としておけば、正規クライアントが一度でもARPを送ればズラーっとパケットを流し込むことができます。



あとはARP要求さえ来れば終了です。


まとめ

少し長くなってしまいましたが、とりあえずWEP方式はゴミであるということで結論づけておきます。



いや〜ホントにセキュリティ方面は面白いですね...!!



もっともっと勉強がんばろうと思います!



他にもツールは何個か使ったんですけど、ちょっと長くなりすぎたので今回はここら辺で!



お疲れ様でした(特に自分)