1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MNCTF2024 - Writeup

Last updated at Posted at 2024-06-25

はじめに

6/21(金)に、マクニカ主催の MNCTF に参加してきました!
マルウェア解析お仕事体験!という感じで、シナリオがしっかりしていて楽しいCTFでした。

image.png

コーディング不要でOSINTとツールだけで解ける問題も多いので、コーディングに苦手意識がある人にもおすすめです(?)

作問者が作った自作マルウェアを解析したりするCTFで、本格的でわくわくしながら解くことができました!

過去問が公開されているので気になる方はぜひトライしてみてください。

シナリオ

CSIRTに、ランサムウェアに暗号化されてファイルが開けないと連絡がきた。
バックアップは取っていない。さてどうしよう?

yahara_desktop_after.png

問題

複数の問題がこのシナリオにそっていて、順番に解くことで攻撃者の情報を得たり、ファイル復号のためのヒントが得られたりします。

image.png

今回必死に解きすぎてかなり適当なWriteupとなっておりますがご容赦ください。

マルウェアの通信先

マルウェアの実行ファイルをstringsコマンドで確認。

$ strings ---.exe | grep http

攻撃者のBitcoinウォレットは?

ランサムノートにURLがあるので、見てみよう。

image.png

onion.pet というプロキシを使うと、Torブラウザを使わずに安全にTorに接続することが出来る。

https://----.onion の末尾に.pet を付けるだけで良い。

ダークネット上のWebサイトが見れました。ビットコインアドレスが書いてありますね。

image.png

マルウェアのBitcoinウォレットの調べ方

ARKHAMというサイトで調べる。

ブロックチェーンインテリジェンスというものらしいです。

bitcoinアドレスを入れるとわかる
犯罪者が使っているかどうかなどもわかるっぽい?

image.png

ホスト名の確認

マルウェア amrw.exe は特定の文字列がコンピュータ名に含まれていないと発動しないようです。
その文字列は何か答えてください。

strings で解いたのですが、正攻法はリバースエンジニアリングとのこと。
C言語の gethostname というところを見に行くと良い。
Ghidra を使う。

復号1:パスワード

パスワードファイルを復号しましょう。
Webサイトに100Byte未満であれば復号できるとあるので復号。

image.png

こういった復号してくれるサービス?はあるが、普通のランサムウェアの場合はバイトではなくファイルの個数が制限されるようです。

使われている暗号化アルゴリズムは?

Q. amrw.exeが利用している暗号化アルゴリズムを答えてください。

Ghidra などでリバースエンジニアリングして、暗号化されている部分を特定し、そのコードをchatGPTに聞くとRC4と分かる。

mod256 で分かる人もいる。

本当のマルウェアの場合、VirtuaTotalというサイトにハッシュを入れるとわかる。

image.png

ファイルアップロードでも良いし、マルウェアのハッシュでも良い。暗号化方式などの情報が分かる。

復号2:議事録

RC4は先頭から暗号化されるブロック暗号なので、先頭だけ切り取って復号化することが出来る。
バイナリエディタで100byteまでにしてアップロードする

復号3:部分的に暗号化されたファイル

ビットイメージを見ると、暗号化されている部分は黒くなる

binwalk -e を使うと、

最近のランサムウェアはファイルの先頭ファイルだけ暗号化することが多い。
時間かかると見つかってしまうし、先頭が暗号化されていればほとんどの人が復号することが出来ないから。

部分的に復元するという手法をやる。

暗号鍵

やはら君はたまたまランサムウェアに感染したタイミングでパケットキャプチャを取っていた。
ransom_traffic.pcapng
パケットを解析し、暗号化鍵を答えてください。
ヒント)すべてのバイトがそのまま鍵とは限りません。

とりあえずstringsコマンドで見てみます。赤い部分が怪しい?

└─$ strings ransom_traffic.pcapng
11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz (with SSE4.2)
64-bit Windows 10 (20H2), build 19042
Dumpcap (Wireshark) 4.2.4 (v4.2.4-0-g1fe5bce8d665)
\Device\NPF_{8CC47053-6D41-4018-8B32-8B93281D768C}
Ethernet0
64-bit Windows 10 (20H2), build 19042
amrwc2  angrymusu
amrwc2  angrymusu
GET /amrwc2/ HTTP/1.1
Connection: Keep-Alive
User-Agent: A WinHTTP Example Program/1.0
Host: amrwc2.angrymusu.me
HTTP/1.1 200 OK
Server: nginx/1.25.4
Date: Wed, 19 Jun 2024 02:28:52 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 40
Connection: keep-alive
X-Powered-By: PHP/8.1.29
- 0000002c9e688c523f5dea24513ef54848a136e7
- ENEBELFFEOEJELEJDADJDEDFCACACABM
- ENEBELFFEOEJELEJDADJDEDFCACACABM
- ENEBELFFEOEJELEJDADJDEDFCACACABM
- ENEBELFFEOEJELEJDADJDEDFCACACABM
- ENEBELFFEOEJELEJDADJDEDFCACACABM
Counters provided by dumpcap

Webサイトを何回かリロードすると変わる文字列から推測するらしい。

image.png

image.png

9e688c523f5dea24513ef54848a136e7

一部が暗号鍵
正攻法は静的解析とのこと、、、

復号4:ボーナスはいくら?

↑でゲットした暗号鍵を使ってRC4をciberchefで復号してダウンロードするとできる

暗号化対象のディレクトリは?

静的解析をしないと絶対に解けない問題とのこと

暗号化対象のディレクトリは?

暗号化対象のディレクトリは複数あるようです。検体の中の、パスを取得する関数の定数の数値を調べて、十進数で答えてください。

Ghidraなどで静的解析をする。

SHGetFolderPath の第2引数をみると2,5と書いてあるので、
デスクトップと何かが暗号化されるディレクトリだということがわかる。

犯罪者グループの組織名

リークサイト

image.png

/confirm/id=--- の部分のidを変えるとわかる

最近あった事件

image.png

blockchainエクスプローラーを使うと、暗号通貨の取引履歴やウォレットアドレスが特定できる

image.png

image.png

マルウェア特定

この暗号化されたファイルからマルウェアの名称を調査して答えてください。

ググるとJPSIRTブログが出てくる LODEINFO

カナリートークン

ファイルに埋め込んでおいて、開くとhttpが飛ぶ仕組み

webサーバ上で小さい画像をurlで挿入する。これを入れておくと、httpが毎回飛ぶのでサーバにログがたまっていく。

docx -> zip

find . -type f -print0 | xargs -0 strings | grep -oP 'http[s]*://[^ ]+'

ビーコン

image.png

image.png

アクセス者

クラウドストレージに格納されている機密文書。
アクセスログからユーザ名を特定する。

Json to CSV というファイルで表にして見えるようにする

EDRのログ

どこに機密文書が保存されたのか調査する。

さいごに

途中から解説を聞きながらメモしただけなので適当になっていますが、
とても楽しいCTFだったので社内や友人とまた解き直したいなと思います!

来年また絶対に参加したい~

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?