MWS Cup 2022参加記兼writeup(DFIR)

Posted on Oct 26, 2022

はじめに

10月25日にComputer Security Symposium 2022 in Kumamotoで開催されたMWS Cup 2022(マルウェア解析のコンペ)に参加しました。自分の所属する研究室では毎年、修士課程の学生がMWS Cupに出場しており、自分も今年はM1の同期とともにチーム「卍脳筋鹿煎餅卍NEO」として出場することとなりました(チーム名は伝統に基づき決定)。

MWSCup 2022

今年のMWS Cupは以下の4課題から構成され、各課題25点で合計100点の配点となっていました。

  • 課題1: ハッカソン
  • 課題2: 静的解析
  • 課題3: 表層データ解析(Kaggle)
  • 課題4: DFIR

ハッカソンは事前に動画での発表が行われ、評価が行われます。また、課題3の表層データ解析(Kaggle)は3日程前から当日までKaggleでのコンペティションが行われ、課題2、4は当日にCTF形式で行われました。

ハッカソン

ハッカソンではサイバーセキュリティ関わるオープンなツールやデータセットを作成します。自分たちのチームは「セキュアなメールクライアント」を実装しました。

開発したメールクライアントはセキュリティのための2つの機能を持っています。一つ目の機能は「不審なURLの強調表示」です。メールに記載される不審なURLを機械学習を用いて検出し、強調して表示することで不用心なクリックを防止します。二つ目の機能は「サンドボックス環境でのファイルの無害化」です。専用のDockerコンテナ内で有害なOfficeファイルの無害化を行うことで、Officeファイル経由でのマルウェア感染を防ぎます。

開発後は動画にて発表を行い、以下のレポジトリに成果をまとめました。

当日までの準備期間

自分のチームは4人しかいなかったため、4つの課題に対して一人ずつ担当者を配置する方針で進めていました。ちなみにここ数年のMWS Cupは事前課題としてハッカソンがあり、課題1がDrive by Download, Exploit Kit解析でした。自分はこのDrive by Download, Exploit Kit解析を担当する予定で直前まで学習を進めていましたが、2日前に運営からのアナウンスで今年は課題1が消滅していることが明らかになりました(悲しみ)。

仕方ないので、自分は課題4のDFIRをチームメンバーのiwasakiとともに担当することとなりました。DFIRはログを解析して、インシデントの原因・内容を調査するというものです。前日に2021年の過去問の解き直しをiwasakiとともに行い、どのような流れで進めるかを確認しました。自分はVS Codeとシェルコマンドを用いてログ解析をしようと考えていましたが、iwasakiがsplunk enterpriseという便利解析ツールを用いており、かなり自分より手際が良かったので自分もsplunkを用いることにしました。

当日(DFIR writeup)

当日は9:00~13:00まで競技が行われ、14:20~17:20まで解説が行われました。以下で自分が担当していた課題4のwriteupを記します。ちなみに、公式の解法の方がスマートな解法なことが多いのでそちらの方が参考になるかと思われます(公式の解法が公開され次第URLを記載します)。

1.1 Initial Access/Execution (1pt)

SwanがExcelのプロセスを起動した日時(日本時間)と開いたファイル名を答えよ。

フォーマット: YYYY/MM/DD_hh:mm:ss_ファイル名

例: 2022/10/24 09:00:00 に test.xlsx を開いた場合、2022/10/24_09:00:00_test.xlsx

5回まで回答可

Swanがexcelのプロセスを起動しているログを探します。こちらはiwasakiが見つけてくれました。

1-1

ユーザーSwanがC:\Users\Swan\Desktop\tomatet.xlsmというファイルを開いています。.xlsmファイルはExcel2007以降のマクロ付きExcelファイルに付く拡張子だそうです。

答え: 2022/10/05_14:21:02_student_grades.xlsx

1.2 Initial Access / Execution (1pt)

Swanが 問題1.1 のExcelファイルを開いた後、ExcelからWindows標準ツールが実行され、攻撃ペイロードがダウンロードされている。
以下の選択肢のうち、Excelのプロセスから最初に実行されたWindows標準コマンドはどれか? (選択問題)

・ cscript
・ mshta
・ whoami
・ powershell

2回まで回答可

選択肢をもとに順番に調べていくと、該当のログが見つかりました。

usr="Swan" "evt=ps subEvt=start" mshta

1-2

mshta.exeを用いて、35.77.166.144からhttp経由で攻撃ペイロードをダウンロードしているようです。

答え: mshta

1.3 Initial Access/Execution (1pt)

問題1.2 のコマンド実行後、PowerShellを悪用して外部から不審なファイルをダウンロードして実行している。そのURLを答えよ。

例: https://example.com/hoge.txt

3回まで回答可

Proxyのログを見ると、1.2のs.htmlをダウンロードした後にs.pngをダウンロードしていることがわかります。

1-3

答え: http://35.77.166.144:8800/se/s.png

1.4 Initial Access/Execution (2pts)

問題1.3のあと、不審なファイルがダウンロードされてファイルとして保存されている。

そのダウンロード元のURLと、どのような場所(ファイルパス)に保存されたか答えよ。

フォーマット: URL_ファイルパス

5回まで回答可

解けませんでした。1.3以降の通信で怪しいものを見つけられませんでしたが、どうやら以下の通信が怪しかったようです(URLとファイルサイズの大きさが不審)。

1-4

1.5 Initial Access/Execution (1pt)

問題1.4で作られたファイルは、あるコマンドラインで実行されています。そのコマンドラインをコマンドライン引数含めて答えよ。

例: コマンドで C:¥Windows¥system32¥whoami.exe /all を実行していた場合 C:¥Windows¥system32¥whoami.exe /all

5回まで回答可

解けませんでした。1.4が解けないと解くのが難しい問題です。

1.6 Initial Access/Execution (1pt)

問題1.5の結果、外部へ接続が発生し、定期的に・頻繁に通信が行われている。
この通信先を答えよ。

(正答は複数あります。この問題では、どれを入力しても正解となります。
フォーマット: IPアドレス:ポート番号

3回まで回答可

Proxyのログを見ると、14:22:25のs.pngダウンロード以降で35.77.166.144:80に頻繁にリクエストが行われていることがわかります。

1-6

答え: 35.77.166.144:80

2.1 Discovery (1pt)

WS02ではActive Directoryを調査するツールが実行されている。起動されたActive Directoryの調査ツールの実行ファイルのパスを答えよ。

例: C:¥Users¥hoge¥fuga.exe

3回まで回答可

Active Directoryの調査ツールが使われているログを探すとAdFindというツールが使われているのが見つかります。こちらはiwasakiが見つけてくれました。

2-1

答え: C:\ProgramData\AdFind\AdFind.exe

2.2 Discovery (1pt)

WS02の偵察活動の1つにWindowsセキュリティセンターに登録されたソフトウェアの探索を試みたプロセス実行があった。

そのプロセス起動を示すログのシーケンス番号(sn)を答えよ。

例: 64941

3回まで回答可

解けませんでした。"com=WS02" SecurityCenterなどで検索していましたが見つからず。

3.1 Execution (1pt)

問題0のスクリーンショットで表示された画面は、攻撃者のどのような行動を示唆するものか。

MITRE ATT&CK (https://attack.mitre.org/) のTactics名で答えよ。(答えは Execution 以外です)

3回まで回答可

回答例: Initial Access

問題0のスクリーンショットはUser Account Control(UAC)のポップアップでした。このポップアップは管理者権限でスクリプトを実行した時などに表示されます。MITRE ATT&CKのTacticsの中だとPriviledge Escalationが該当します。

答え: Priviledge Escalation

3.2 Credential Access (1pt)

WS02では、MITRE ATT&CK (https://attack.mitre.org/) のT1003.001のテクニックが実行されている。

このテクニックを実行しているプロセス起動ログのシーケンス番号(sn)を答えよ。

例: 64941

3回まで回答可

T1003.001はOS Credential Dumping: LSASS Memoryです。

Adversaries may attempt to access credential material stored in the process memory of the Local Security Authority Subsystem Service (LSASS). After a user logs on, the system generates and stores a variety of credential materials in LSASS process memory. These credential materials can be harvested by an administrative user or SYSTEM and used to conduct Lateral Movement using Use Alternate Authentication Material.

"evt=ps subEvt=start" lsassで検索すると、該当のログが見つかります。

3-2

答え: 72810

4.1 Lateral Movement (1pt)

WS02では、C:¥Users¥Swan¥AppData¥Local¥Temp¥pe.exe という実行ファイルが作られている。
このファイルは、以下のうちどのような実行ファイルであると推測されるか?(選択問題)
・Ransomware
・Key Logger
・Password Dump Tool
・Microsoftの正規ファイル

2回まで回答可

pe.exeが実行されているログは以下。cmd-accepteula -u eden -p stellastar...と続いており、これはPsExecの実行であることが予想されます。PsExecはMicrosoftの純正ツールです。

4-1

答え: Microsoftの正規ファイル

4.2 Lateral Movement (1pt)

ユーザ名edenのパスワードとそのパスワードを使ってLateral Movementしたホスト名を答えよ。

フォーマット: ホスト名_edenのパスワード

例: WS01_hoge 3回まで回答可

4.1で見つけたログを見ると、edenのパスワードはstellastar、接続先が\\dc01.eden-college.localとなっているため、DC01がLateral Movementしたホスト名であることがわかリます。

答え: DC01_stellastar

5 Persistence (1pt)

DC01では、攻撃者が起動時もしくはログオン時にプログラムが自動起動されるようにプログラムを設置している。

自動起動されるように設置されたプログラムのパスを答えよ。

例: C:¥Users¥hoge¥fuga.exe

3回まで回答可

こちらはiwasakiが見つけてくれました。chairperson.exeというプログラムが自動起動されるよう設定されています。

5

6.1 Credential Access (2pts)

今回の攻撃では、KerberosのGolden Ticketが作成されている。
Golden Ticket作成に使われたNTLMハッシュと、そのハッシュがどのアカウントのものか答えよ。

フォーマット: アカウント名_NTLMハッシュ(記号以外はすべて小文字)

3回まで回答可

解けませんでした。該当ログは見つけており、アカウント名krbtgt、NTLMハッシュe3f41a65bddff59e84d4d9b9290e32efで提出したはずですが、タイポがあったのか通りませんでした。

6-1

6.2 Credential Access (2pts)

Golden Ticket 作成 および Pass The Ticket攻撃をされたことを専門家に話したところ、「krbtgtアカウントのパスワードをX回変更する必要があるね」と言われた。
Xに入る数値はいくつか。
また、なぜその回数変更する必要か、理由を答えよ。(記述問題)

こちらは記述問題です。こちらの記事を参考に記述しました。

答え: 2回
提出した理由: TGTを確実に無効化するためには、履歴から消去するために、変更を2回行う必要がある。
公式解答: krbtgtは直近2つのパスワードハッシュ履歴を保持しており、1つ目のパスワードハッシュによるチケット検証に失敗したら2つ目のパスワードハッシュによるチケット検証でチケット偽装ができてしまうため。

7 Exfiltration (4pts)

今回の攻撃によって、ファイルサーバのいくつかのファイルが外部に持ち出されている。
どのようなファイルがどこに持ち出されているか、いつ、どのような手段かも含めて、根拠とともに説明せよ。 (記述問題)
注意点
◼ ログを根拠の説明で使う際には、EDRログの場合は ログ名: シーケンス番号 (sn) 、Proxyログの場合は ログ名:行数 としてください

source="*.log" "file01" "evt=file subEvt=copy" | reverseで検索すると、3つのファイル(student_grades.xlsxstudent_list.xlsxentrance_exam.docx)がWC02にコピーされていることがわかります。

7

これは自分は気づけませんでしたが、さらにProxyログを確認するとhttp://35.76.102.7/bucketにファイルがアップロードされていたようです。

7-2

8.1 Incident Response (1pt)

攻撃者によってアクセスがあったシステムを以下からすべて選択し、その番号を列挙せよ。(記述問題)

1.WS01
2.WS02
3.WS03
4.DC01
5.FILE01

解けませんでした。

8.2 Incident Response (1pt)

攻撃者が悪用したアカウントを以下からすべて選択し、その番号を列挙せよ。(記述問題)

1.Henderson
2.Swan
3.Evans
4.eden

今までの問題を振り返ると、Swan、eden、Hendersonが悪用されていました。

答え: 1, 2, 4

DFIRまとめ

課題4のDFIRは25点中15点獲得し、3位(4チームいるので実質7位?)でした。作問者の方々はかなり力を入れて準備してくださっていたようで、攻撃シナリオはかなり現実の攻撃の流れに近いリアルなものだったと思います。また、公式解説ではレッドチームの観点を交えた話がなされており、とても勉強になりました。

全体の感想

最終的に自分のチームは14チーム中総合7位でした。MWS Cup自体はとても楽しく取り組めましたが、結果が微妙な感じになってしまいました。去年3位だった先輩方に結果を報告すると、お優しいお言葉をいただきました()😇。

okotoba

ぜひ来年も出場し、リベンジしたいと思います。