お使いのブラウザは最新版ではありません。最新のブラウザでご覧ください。

CNET Japan ブログ

「ブラッディ・マンデイ」を考察する

2008/10/12 12:51
  • このエントリーをはてなブックマークに追加

プロフィール

石森 大貴

Webサービスやインフラ、セキュリティに触れながら気になる情報をお届けします。 ※旧「元現役高校生サーバー管理者の考察日誌」を改め、「isidaiの考察日誌」にしました。
ブログ管理

最近のエントリー

追記(10/13 16:52) 

 すみません。色々反響があったので追記しておきます。羅列ってことで。 

 この記事の内容はほぼネタバレですのでこれから読まれる方はご注意下さい。HP2133はVistaですね。HP2133はどんなにカスタムしてもそこら辺のサーバーと「比べ物にならないくらい」高いってわけでは無いと思います。中高生のみなさん,Pythonを勉強してもクラックするには別途知識が必要です。 Pythonスクリプトの中身は実質無意味な動きばかりでしたが,たまにポートの指定やオーバーフローを起こす為の計算式が登場しました。日景先生のPCをリモート操作する時のvncviewerを実行したとき時間が表示されましたが結構朝方でした。たしか3時か4時くらい。時計がズレている・時差がある・JST+09:00のタイムゾーンに設定されていないなど色々あるかもです。いや実際は単に画面の撮影を朝方にやってしまっただけだと思いますが。あとLinuxでls打ったのにWindowsのdirのような結果が表示されるのはpyshの中で行った操作なので正常な表示です。変ではありません。

 (また,本記事を無断転載されたブログが存在しますが本記事及びisidaiとは一切関係ありません。 )

 技術アドバイザーは市川さんという方みたいです。詳細はコチラ  技術監修はサイバーディフェンス研究所のようです。 (10/15 1:07追記)

 それでは以下記事となります。 

 みなさんこんにちは。昨夜から放送が開始されたTBSドラマ「ブラッディ・マンデイ」をご覧になられた方も多いかと思います。同番組は見た目はごく普通の高校生が実は天才ハッカーで,警視庁の秘密部隊と協力しながら事件の全容を暴いていくという粗筋です。今回は番組中に登場するコマンドクラックシーンを考察してみようかと思います。

日景潔が実行したjpegファイル

 実に卑猥で変態な生物教師に「先生,お願いします。」という件名のメールが届いた。メールには写真を添付した旨が書かれており,添付ファイルには「お願いします。.jpg」(165KB)のファイルがありました。

  日景先生はこのファイルをニヤつきながら開きましたが,展開された画像は「バカが見る」という画像。しかしこのとき同時にVNCというリモート操作をするためのプログラムがバックグラウンドで動作を始めます。画面が変わり藤丸のターミナル画面が映し出されます。

 3つのウィンドウが確認でき,「Terminal」ウィンドウでは「falcon@ws2 [~] # dumpcap -i tap0 -w vnc.pcap」のコマンドを実行しています。二つ目のウィンドウでは「trojan1.asm + (~/Code) -VI」で実際に展開しているファイルは「mailto.py + trojan1.asm」1行目には「use32」の記述が見えます。この「mailto.py」は後にも登場するPythonスクリプトかと思います。

 そして,一番上にあるアクティブウィンドウには「falcon@ws2 # vncviewer 192.168.8.1」

 IPアドレス変だな〜と思ったらやはり後に「192.168.8.130」に入力し直しました。 学内ネットにVPNとかで入れるんでしょうか。きっと。

 VNCでは通常リモート操作されている場合でも操作ができなくなるということは無いと思うのですが,日景先生は操作が利かなくなったらしく慌ててキーボードを操作したり,液晶ディスプレイを叩いたりしています。ディスプレイ叩いても治らないと思うのですが…汗

 その後日景先生は放送で呼び出され席を立ちます。その直後藤丸の操作なく日景先生のコンピュータが動き出し,藤丸も「きたぁ」と発言。ここではVNCによる操作ではなくウィルスによるバックドアを開ける自動的な動作のようです。(ウィルスがコマンドプロンプトでipconfigする意味はよく分かりません…笑) 

 ちなみに少し後に出る澤北のTerminal画面は機密ファイルへのアクセスログのようですが,そこに記録されているIPアドレスも偶然なのか「192.168.8.130」です。 

休み時間の藤丸のクラック 

 休み時間にクラック用スクリプトを書いてクラックするみたいです。

 直後に実際に攻撃スクリプトを実行します。 この番組,相当Pythonが好きなようです(笑)藤丸のターミナルには「falcon@ws2 # nasm sc3.asm」と「falcon@ws2 # python -i atk3.py web25.boucka.ru 2323 -f sc3」で既存の脆弱性を狙いリモートアタック。見事にroot権限を取得し攻撃先に侵入しました。多分オーバーフローさせて参照先アドレスを攻撃者の任意のものに書き換えて,書き換えた参照先に攻撃者の任意のスクリプトを置いておけば成功する脆弱性なのかなーっと思います。

 ちなみに藤丸は侵入直後の「/var/www」ディレクトリで「ls -al」コマンドを発行しています。表示されるファイルは「.htpasswd」と「index.html」…。.htpasswdを公開ディレクトリに置いてあるし,.htaccessは無いし…よくわからないですね(笑)何の意図でしょうか。

 rootなのでシャドーパスワードを走査できますね。「brute_des」でパスワードを探している様子が伺えます。 

 内部からポートスキャンしたのが監視システムにバレたらしく,藤丸は焦って自分の実行させているコマンドをkillしようとします。ターミナルには

 「kill -9 $$」や「>>>connkill() Stopping...」のような画面が見えます。 killが成功したようですが,ログの改ざんなどはしっかりやったのでしょうか…汗

自宅での藤丸のクラック

 自宅でクラックを決行する藤丸。「ぽっかり穴が空いている」というそのポートは「31337」番ポート。31337番は他人のWindowsを乗っ取る「BackOrifice」というクラックツールがデフォルトで使うUDPポートですね。…ということは攻撃したいのはWindowsというわけですね。

 ここで登場する藤丸のターミナルには「sv281.boucka.ru port 25 ... Open. SMTP」や「sv281.boucka.ru port 80... Open. IIS」などが見えます。

 藤丸は次に「python」コマンドをうち,そのターミナル上で即席攻撃ツールを書いていきます。ちなみにPythonのバージョンは2.5.2で使っているOSはDebian(4.2.4-1)と表記されています。Debianだったことに個人的に感動(笑)

  [../Code]から「test_code」をimportしてクラックを行っています。多分休み時間に行った攻撃をスクリプトにしておいたのでしょう。あっという間にWindowsコンソールに入りました。流石Back Orificeですね。攻撃先はWindows2000です。個人的にWindows2000はカナリ好きです(笑)番組制作の技術スタッフと趣味合うかも…爆

 ここで藤丸がアクセスしたのは「C:\Documents and Settings\Sergei」と思いきや「cd \winnt」に行ったので結局「C:\WINNT\」に戻ってきました。 WINNTディレクトリをdirして藤丸は「やったぜ,あった!」と云います。いや,一番最初に見てもよさそうなのですが…(笑)気付くのちょっと遅い感じ。

  で,ロシア語のファイルを \inetpub\wwwroot\dataに移して,藤丸は別ターミナル画面からwgetでHTTPとしてファイルをダウンロードしています。1.93M/s程度の速度でダウンロードしていますね。ちなみに攻撃先の「sv281.boucka.ru」というサーバーですが実在しています。(Address: 208.67.216.132)

 番組中でアクセスした「sv281.boucka.ru」のIPアドレスとは異なっています。セッションの終了も予め書いておいたpythonスクリプトをimportして実行させた感じですね。 

 藤丸は翌朝までバイナリエディタで暗号化方式を探っていたようです……(笑) うまく画面が見えないのですが多分vim+xxdかと。

学校でのクラック 

  折原先生の部屋に呼び出された藤丸はその場でクラックをする…? 人の前でクラックするのはバカかと思いました。しかし折原先生の「私のプレゼントしたのじゃダメ?」に対して藤丸は「あー無線LANだと盗聴されてる恐れがある」と返します。確かに確かに(笑)WEPなんて使っていたら使っていないのと同然ですよね。

 ちなみにこの時点で藤丸は「暗号化キーで変換されている」と,鍵方式なことに気付いています。で,そのハッシュ値計算を分散コンピューティングで行っています。どうやって分散コンピューティングのネットワークを数時間の内に構築したかは不明ですがやり方としては適当かと(笑)

 その場で見事鍵を見つけデコードして動画ファイルを見てしまいます。揚げ句学校のネットからTHIRD-i本部に動画を送信しています。まーVPNとかscpとかSSHでフォワードするとか色々策はありますけどね…。 

電力会社へのクラック 

 藤丸はpythonスクリプトでポートチェックから始めました。 結局ここでも以前使ったmailto.pyスクリプトでウィルス付きメールを送信します。多分OEのファイルを開いてしまうバグを利用したものかと思います。ただ,何故メールは電力会社の営業部や広報部ではなく制御センターに直接届くのか,電力会社の制御センターなのにメールのゲートウェイにウィルス対策システムは導入されていないのかなど疑問が残りますね。それ以前に制御系のネットワークは外部と隔離され制御システムとしかつながっていないのが普通だと思います。実際にはありえない設定ですね。

 で,簡単にバックドアをアップロードして実行させ,管理者パスワードを盗み出します。Windowsのパスワードハッシュは簡単に破れますからね。汗汗 

 しかし制御系システムの管理者パスワードと制御室のWindowsのパスワードは同一だったのでしょうか…。 

 その後藤丸は「システムの周りにJailを組んでおいた」と発言します。Jailは元々BSD系だなーとか思いつつ。どういうJailになっているのかは不明ですが 一瞬出るコンソールには「/home/falcon/jail/lib」などが見えます。犯人がログインすると自動的にJailとして入って「/home/falcon/jail/ -> /」になるはずなので実システムにはアクセスできないという事ですねー。きっと。rootならjailやchrootを抜けられそうな気がしますが,そこはきっとセキュアOS機構が有効だったとか強制アクセスコントロールがあったとか言い訳が付きそうです。

豊洲フロンティアのカメラへのアクセス 

 最初にnmapでポートチェックしています。今回はpythonスクリプトじゃないですね。でも普通こんなに早く結果は出力されないのですが,結構一瞬でポートスキャンが終了します。httpが空いてるのに気付いたのは良いのですが,その次に「cadaver」コマンドでWebDAVにアクセスしていますね。カメラの映像データが何故一般のLANから直でWebDAV公開されているのか謎です。 

まとめ 

 ここまで書くのに結構疲れましたね…。ドラマなのでやはりあり得ない設定が多いのですが,使用環境は結構好きでした。今回のクラックの仕方は普通のドラマよりもレベルの高いものだったかと思います。実際のクラックに近い部分もありましたし。でもそれは脆弱性あっての話です。重要施設などは最新バージョンにしているとかもっとレベルの高いセキュリティなはず。もしかしたらオープンソースは使わず自社開発ってことも多いですよね・・・。でもこういう考察も楽しみながらやらせていただきました。それではっ。 

おまけ 

写真は僕の部屋のコンピュータ周りです。ちょうどTBSのマスコットキャラクターのぬいぐるみが部屋に居たので一緒に撮影。

 

 

 

※このエントリは CNET Japan ブロガーにより投稿されたものです。朝日インタラクティブ および CNET Japan 編集部の見解・意向を示すものではありません。
運営事務局に問題を報告

最新ブログエントリー

個人情報保護方針
利用規約
訂正
広告について
運営会社