Shi0shishi0

汐鹿生

MNCTF2018 - Writeup

はじめに

Macnica Networks DAY 2018の中で開催された、MNCTF2018に参加しました。最終的な順位は3位でした。

f:id:echoha610:20180712142629p:plain

問題ページは以下のURLになります。

http://mnctf.info/mnctf2018/

Writeup

練習問題☆☆☆(その他)

練習問題。

FLAG : MNCTF2018

新人奮闘I☆☆☆(マルウェア解析)

与えられたファイル(AD_OptimizationTool.exe)のSHA-256ハッシュ値を答える問題。 自分はpestudioでハッシュ値を確認しましたが、解説ではCyberChefというツールがオススメされていました。

FLAG : F24F5629BE2E0F821ADB36FE4D47407937F5A318BF96AE3655B628F833040F29

新人奮闘II★☆☆(マルウェア解析)

与えられたファイルの解析レポートを埋める問題。 入力フォームがあるので、各種ハッシュ値、ファイルサイズ、コンパイル日時、Import関数を入力すると、画面の上の方に答えが表示された。

f:id:echoha610:20180712163454p:plain

新人奮闘III★☆☆(マルウェア解析)

与えられたファイルが実行するコマンドを確認する問題。 先の問題でこのファイルがShellExecuteAを実行するであろうことが推測できていたので、x32dbgでShellExecuteAのあたりまで実行してみると、"/c net user /add /domain vpnadmin P@ssw0rD1!"という文字列が見える。

FLAG : cmd /c net user /add /domain vpnadmin P@ssw0rD1!

新人奮闘IV★☆☆(フォレンジック)

VPNのログを調査する問題。先ほどのFLAGの中に含まれていたユーザ名"vpnadmin"で検索すると"2018/07/13 15:01,vpnadmin,27.117.128.1"がヒットする。

FLAG : 2018/07/13 15:01

新人奮闘V★☆☆(その他)

vpnadmin の接続元IPアドレス 27.117.128.1 について、DomainBigDataで調べる。 このIPアドレスは韓国のものらしい。

FLAG : 韓国

大量不正★★☆(マルウェア解析)

競技時間中に解けなかった問題。ssdeepで類似する問題を調べようと思ったが、ssdeepの使い方を忘れてて上手くいかなかった。解説によると、"ssdeep -bcdr * "というコマンドで解ける問題だったらしい。

種類特定★★☆(ネットワーク)

与えられたpcapファイルから、この通信を発生させているマルウェアの種類を答える問題。通信を見た感じ、UrsnifっぽかったのでUrsnifと入力したが違った。 Ursnifファミリーの他の呼称(DreamBotとかGoziとか)をいくつか試したらGoziが正解だった。

FLAG : Gozi

標的攻撃I★★☆(マルウェア解析)

与えられたファイル"製品価格一覧20180711.xls"について調査する問題。このファイルは特定のユーザ名の環境でないと動作しないらしい。VirusTotalハッシュ値検索したら既に投稿あり。マクロの情報も見えるのでこれを取り出す。模範解答ではoletoolsを使ってマクロを抽出していた。

https://www.virustotal.com/ja/file/43dc564d51880ee2cd48bf4e3774edf70e9dcd15154a81b2606234e41b179af1/analysis/

WorkBook_Openという関数が定義されている。(TypeはAutoExec)

Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)

Private Sub Workbook_Open()

us = Application.UserName

For Each C In ActiveSheet.Range("C6:C11")
    If us = C.Value Then
(略)

usがCの中身と一致すれば良いらしい。CはExcelファイルのC6〜C11の範囲から取得している? Excelファイルを開いて見ると、A,B,D列はあるがC列が無い。非表示になっているっぽいので表示させるとユーザ名らしきものが見つかる。複数あるが全部正解なはず。

f:id:echoha610:20180712143620p:plain

FLAG : Yasu Kobayashi とか

標的攻撃II★★☆(マルウェア解析)

製品価格一覧20180711.xls を実行すると発生する通信のURLを答える問題。製品価格一覧20180711.xls からflossで文字列を抽出して、"https"で検索してURLを探した。

FLAG : https : // gist . githubusercontent . com/Sh1n0g1/3a240ce15fe7f26263ddf1877e5acc38/raw/d1d74601e5f4c94c958130accb16add9bb16e33d/cert

(URLリンクにならないように半角スペースを入れてます)

標的型攻撃III★★☆(マルウェア解析)

製品価格一覧20180711.xls がダウンロードする2次検体のSHA-256ハッシュ値を答える問題。 上のFLAGのURLにアクセスすると、"-----BEGIN CERTIFICATE-----"以下にBase64エンコードされた文字列っぽいものが見えるので、保存してデコードする。デコードしたファイルは実行形式のファイル。

FLAG : C4F069D079330CD46E51F9469C27015ED34C6371481DF83A323BC098F3B53382

標的攻撃IV★★☆(ネットワーク)

2次検体から発生するHTTPS通信のURLを確認する問題。 上の2次検体を実行すると一瞬コマンドプロンプトが立ち上がって何かをしている。ProcessMonitorを起動して2次検体を実行し、ProcessNameを"cmd.exe"でフィルターするとPowerShellのコマンドを実行しているのが分かる。このPowerShellのコマンドに含まれるURLが答え。

f:id:echoha610:20180712143216p:plain

FLAG : https:// shinobotps1 . com /download_get.php

(URLリンクにならないように半角スペースを入れてます)

穴埋防御★★★(マルウェア解析)

解けなかった問題。不審なファイルのYARAルールを作成する(途中までできているので穴を埋める)問題。 与えられたファイルをBase64デコードするとPowerShellスクリプトファイルになる。 コードインジェクションを行うっぽいが、自分の環境では上手く動かなかったので一旦後回しにした。

ファイルをちゃんと見るとPowerShellスクリプト内にBase64エンコードされたデータがハードコードされていた。Base64デコードするとXORエンコードされた実行形式ファイルらしきものが出てくる。これをデコードしようと思ったあたりで時間切れだった。

盗難情報★★☆(暗号)

与えられたデータをRot13で復号し、出てきたデータを更にBase64でデコードする。次はシングルバイトのXORでデコードすれば良さそうだが、鍵が分からない。ただ、ヘッダのあたりを眺めると0x15が多いように感じたので、0x15でXORしてみたらPNGファイル(画像ファイル)が得られたので当たりっぽい。画像の中には「一度締めたら抜けないねじ」とかいうヤバそうな製品説明と"NEJI_190_3GM"という製品番号が記載されていた。

解説ではCyberChefのXORブルートフォース機能を使って解いていた。

FLAG : NEJI_190_3GM

おわりに

オンサイトのCTFに参加するのが凄く久しぶりでしたが、程よい緊張感があって楽しかったです。解説で何度も紹介されていたCyberChefというツールがかなり良さそうだったので使ってみたいと思います。

gchq.github.io

賞品として頂いたスマート電球は色々触って遊んでみたいと思います。

f:id:echoha610:20180712203938j:plain