【Write up】NISM CTF

NISM CTFに参加をしたので、そのwriteupを書きます。

 

NISM CTFって?

NISM(Nagasaki Info-Sec Meetup)と連動した初心者向けCTF

開催期間:

2022年12月17日(土) 14:00(JST) ~ 2022年12月25日(日) 14:00(JST)

参考:NISM (siebold-cyber.net)

 

CTF開催前に2日間にわたるイベントが開催されていたらしく、各分野の問題を解くのに必要な知識やツールの紹介を含む資料が事前公開されていました。

フォレンジック初心者の私からしたら、本当にありがたいです。

ちなみにCTFに関する説明・ハンズオンに関しては、学生の方が実施されていたらしいです。すご~、、、、

 

というわけでWriteup、いきます。

 

Welcome

When is Christmas ?

2022年のクリスマスの日を答えました。

Answer: NISM{2022_12_25}

 

Forensics

Lost USB memory

青空白猫を使用して、pdfファイルを抽出しました。

Answer: NISM{1t_1s_34sy_t0_r3st0r3_d3l3t3d_f1l3s}

※ダウンロードファイルが消えてしまったため詳しく書けずすみません。

 

Hidden files

青空白猫を使用して、各ファイルに隠されている別ファイルからflagを発見。

Answer: NISM{5pl1tt3d_1mp0rt4nt_f1l35_1nt0_53v3r4l_p4rt5}

exif見るのかな、、、とか思っていろいろ調べたけど違った;;

※ダウンロードファイルが消えてしまったため詳しく書けずすみません。

 

A file is opening

volatilityを使います。そして事前配布されていた資料を見て進めます。(ありがとうございます!!)

 

以下コマンドを入力します。これにより、対象プロセスの実行時のコマンドを明らかにします。

python3 vol.py -f "Win10_MEMORY.DMP" windows.cmdline.CmdLine

notepad.exe実行時のコマンドの一部をbase64でデコードします。

Answer: NISM{M3m0ry_dump_t377_u5_5t4t3_0f_th3_PC_1n_th3_m0m3nt}

 

Find Reg Value

OSがインストールされた時間を明らかにします。

最終的に、レジストリハイブ「¥SystemRoot¥System32¥Config¥SOFTWARE」下のレジストリーキー「Microsoft\Windows NT\CurrentVersion」の値を明らかにしたいです。

まず、レジストリハイブのオフセットを表示するために以下コマンドを打ちます。

python3 vol.py -f  "Win10_MEMORY.DMP" windows.registry.hivelist.HiveList

オフセットは「0x8edec008」であると分かりました。

 

次に、判明したオフセットを用いて、レジストリーキー「Microsoft\Windows NT\CurrentVersion」の値を明らかにします。

python3 vol.py -f "Win10_MEMORY.DMP" windows.registry.printkey.PrintKey --offset 0x8edec008 --key "Microsoft\Windows NT\CurrentVersion"

InstallTime、ありました。

これを指定の表記に変換します。

w32tm /ntte 133012080566588255

Answer: NISM{2022_07_02_13_00_56}

 

WEB

超、易問!

与えられたURLにアクセスし、色のリンク(white、redなど)を押したところすべて誤りであるといわれました。

そこで答えはblueか?と思い、URLのクエリにblueを指定しました。

Answer: NISM{7h1s_ls_4_GE7_qu3ry.}

frog,frog,frog

与えられたURLにアクセスしたところ、一部タイトルしかトグルで表示できませんでした。

見たところ「The flag hiding」にフラグがありそうですね。

ということで、Burp Suiteを使用して「The flag hiding」を表示させました。

すると、新しくページが表示されました。

なんとなくページのソースを表示したところ、気になるところを発見しました。

divタグのidに、hlddenとhiddenという箇所があります。

スペルミス?と思いつつhlddenの「君には何が見えている?」が、表示されていないことに気づきます。

ここでcssの中身(/stylesheet.css)が気になったので見たところ、ビンゴ!

Answer: NISM{Why_c4n_y0u_C_m3!?}

 

米食べろ

パッと見SQLか~となったので、情報を取得するために以下を入力しました。

2010' UNION SELECT table_schema,table_name,column_name from information_schema.columns;--

出力結果より、以下情報があることが判明しました。

スキーマ: flags
テーブル:flags
列:id,flag

 

おそらくflag列にフラグが存在すると思い、以下を入力しました。

' UNION SELECT id,flag,null from flags.flags;— 

いくつかある中から、NISM{ではじまるものを選びました。

Answer: NISM{wh3r3_m3t4d4t4_1s_loca7ed_d3p3ndz_on_7he_7ype_of_d@t@b@se.}

 

NW

Electrical talk

q1.pcapを見てみます。

送信元アドレス:192.168.100.2から複数のホストへping要求が飛んでいることが分かります。

フィルタに「icmp.type==0」を指定します。これでping応答をしているホストのIPアドレス(192.168.200.98)が判明しました。

q1_ホスト名対応表.csvより、IPアドレス:192.168.200.98はホスト名:tHekLRUU3dRMH5kJ5Qに紐づいていることが分かりました。

Answer: NISM{tHekLRUU3dRMH5kJ5Q}

 

Insecure communications

q2.pcapを開き、アクセス先(hxxp://network[.]tuda-organization[.]siebold-cyber[.]net/)を特定します。

パケットを見ていると、メルマガ認証と思われるプログラムへ何度かPOSTしていることが分かります。

追跡で中身を見てみます。

ユーザー名とパスワードが何度もPOSTされています。

マジでなんだっけを挟み・・・

それっぽいのを見つけました!

/magazine.htmlに、ユーザーネーム(mu05201914)とパスワード(zaCra-a4a_l9@kU3-8g)を入れます。

きました!

Answer: NISM{like_a_magic_highway_and_network_is_deep_but_fun}

 

Where am I?

192.168.1.0/28のネットワークにおいて、192.168.1.93のネットワークアドレスを答える問題です。
第4オクテットを2進数にすると、01011101です。
第4オクテットの上位4bitまでがネットワークアドレスになります。

Answer: NISM{192.168.1.80}

 

Misc

カラーコード

NISMのロゴ(rgb(0,153,204))のカラーコードを明らかにするために、カラーコード変換webサービスを使用しました。

Answer: NISM{#0099CC}

 

奇妙な文字列

「TklTTXtiQHNlNjRfYzRuX2IzX2VhNWkxeV9kZWMwZGVkfQ==」をBase64でデコードしました。
Answer: NISM{b@se64_c4n_b3_ea5i1y_dec0ded}

 

 

最後に

本CTFの開催と関連する資料を公開してくださった運営の方々、ありがとうございました!!

ちょっとだけ自信につながった、とても思い出深いCTFになりました。