Magnet User Summit CTF, Defcon DFIR CTF 2018 writeup

最近、DFIR系のCTFに2つ参加したのでその紹介と全体像に対するwriteupです。


一般的なCTFにおけるForensicsのジャンルの問題と言えば、1つのファイルを渡されてその中にあるフラグを探すという形式が多いかと思います。
今回、紹介する2つのCTFは大きな(10GB以上の)イメージファイルが数台分提供されます。それらを解析して各問題文の内容に回答するといった感じです。問題例は次のような感じです。

問題例:攻撃者が最初にシステムにログオンしたのはいつか? UTC時間で YYYY-MM-DD hh:mm:ss という形式で答えろ。

問題例からも分かる通り、フラグはMyCTF{663d63e8c755f1b4}のような形ではないです。そのため、一般的なCTFとは若干毛色が異なります。
それでは2つのCTFの紹介です。

CTF紹介

Magnet User Summit CTF

解析対象は1台のディスクイメージとメモリイメージ。
問題ジャンルは4種類

  • Intrusion
  • Anti-Forensics
  • Misc
  • Exfiltration
Defcon DFIR CTF 2018

解析対象は3台のディスクイメージ。

  • HR Server
  • File Server
  • Desktop

配布イメージにはパスワードがかかっており、HR Serverの解凍パスワードは tacoproblems
一定の点数を獲得すると、次のイメージを解凍するためのパスワードが書かれた問題が現れる。

writeup

問題としては一問一答形式なので全体の流れを意識しなくても解ける問題も多いです。
ただし、イメージファイルはストーリーがあるので一問ずつ解いて、分かった事実を時系列に並べていくことで全体のストーリーが見えてくるのが楽しかったです。(終わってからも調べたくなる事がいくつか出てきました)
Defcon DFIR CTF 2018についてはwriteupを検索すると日本語の記事が3件あったので紹介させていただきます。

Defcon DFIR CTF 2018 # Image1 - HRServerをやる - socketo.hatenablog.jp
Defcon DFIR CTF 2018 # Image2 - FileServerをやる - socketo.hatenablog.jp
Defcon DFIR CTF 2018 Writeup(HR Server + File Server) - Shi0shishi0

今回は、個々の問題に対する解き方ではなく、全体のタイムラインから大きな流れを読み取っていきます。(以降、ネタバレ注意です。)

作成したタイムラインは下にも書いてみましたが、googleスプレッドシートにも書いてあります。(色分けしている部分もあるので見やすいと思います)
docs.google.com

Magnet User Summit CTF
  • 端末情報
対象 OS IPアドレス 端末名
MaxPowers Windows 10 Enterprise (2018/3/13 18:15:49) 172.81.132.172 DESKTOP-EDSLQM8
  • タイムライン

以下、日付は全て2018/04/26 のため省略。

時間(UTC) 事象 ソース
15:33:51 Tom Hanksから悪意のあるExcelファイルが届く ost
15:34:27 Outlookを起動 Prefetch
15:35:34 メールで添付されたzipファイルを7zipで解凍する Prefetch
15:37:45 Excelを起動して解凍した添付ファイルを開く NTUSER.DAT
15:37:52 マクロが動き、powershellが動く Prefetch
18:07:21 nc.exe が作られる Created
18:09:23 nc.exe が実行される Prefetch
18:16:29 RDPログオン(maxpowers アカウント) EVTX
18:17:12 itsupport ユーザ作成 SAM
18:20:16 RDPログオフ(maxpowers アカウント) EVTX
18:22:31 RDPログオン(itsupport アカウント) EVTX
18:28:09 itsupport ユーザが maxthon5.2.1 のインストーラをダウンロード Web Firefox
18:28:28 maxthonを起動 Prefetch
18:32:51 Dropboxを起動 Prefetch
18:35:29 Dropbox 経由で ProjectE,S,U,Cを持ち出し Created
18:39:03 itsupport ユーザが ERASER をインストール Prefetch
18:39:43 ERASER.EXE でワイプ Prefetch
18:41:50 RDPログオフ(itsupport アカウント) EVTX
18:44:27 RDPログオン(maxpowers アカウント) EVTX
18:45:28 WebBrowserPassView で chrome に保存された github の認証情報を取得する Prefetch
18:45:29 chromegithub.com にログインし、レポジトリ削除 Web Chrome
18:48:46 RDPログオフ(maxpowers アカウント) EVTX
  • メモ

攻撃の起点はメールによるexcelファイルからのマクロ実行。
新規でitsupportというユーザを作成され、Dropboxを経由して複数のProjectフォルダを持ちだされる。
最後にgithubの認証情報が取得され、リポジトリが削除される。
問題を解く上で最初のきっかけとなるマクロを細かく解析する必要はなかったのですが、深く読んでいくと msfvenom で作成されたと思われるshellcodeが実行されることを確認しました。
実行されるAPIは以下の流れで処理を実行します。ただし、途中でゴミが入っていて、私の解析環境では途中で動作を停止したので、若干環境依存の箇所があるのかもしれません。

LoadLibrary("ws2_32")
WSAStartup()
WSASocketA()
connect()
recv()
VirtualAlloc()
recv()
VirtualFree()
closesocket()
ExitProcess()
Defcon DFIR CTF 2018
  • 端末情報
対象 OS IPアドレス 端末名
HR Server Windows Server 2016 Datacenter (2018/5/1 21:57:49) 74.118.139.108 WIN-29U41M70JCO
File Server Windows Server 2008 R2 Enterprise SP1 (2017/1/29 12:46:34) 74.118.139.11 WIN-M5327EF98B9
Desktop Windows 10 Enterprise (2018/7/6 18:45:44) 74.118.138.195 DESKTOP-1N4R894
  • タイムライン

以下、日付は全て2018/08/07 のため省略。

時間(UTC) 事象 対象 ソース
18:38:30 http[:]//142[.]93.50.86:8000/out.hta からout.hta をダウンロード Desktop Web Chrome
18:38:30 Chromeで http[:]//142[.]93.50.86:8000/out.hta からダウンロードし、 C:\Users\mpowers\Downloads\out.hta に保存 Desktop Web Chrome
18:39:56 out.hta を mshta で実行 Desktop Prefetch
18:39:59 empire の stager が Powershell にて実行される Desktop EVTX
18:40:55 TeamViewer 経由で mpowers アカウントで侵入 Desktop TeamViewer Log
18:43:16 KeePass を実行 Desktop UserAssist
19:12:11 31.14.75.59 から Administrator で RDPログオン成功 Desktop EVTX
19:31:56 Administratorのパスワード変更 Desktop SAM
19:38:46 C:\vss\SAM をコピー Desktop Created
19:38:49 C:\vss\SYSTEM をコピー Desktop Created
19:52:05 Administrator が https[:]//www[.]dropbox.com/request/51bpm0D7zHjRbfvuqGzt にアクセス (データのアップロード) Desktop Web IE/Edge
19:52:49 7zip を実行 Desktop Prefetch
19:52:57 C:\vss\Desktop.7z を作成 Desktop Created
19:54:50 C:\vss 削除 Desktop Recycle.bin
19:54:58 C:\temp 削除 Desktop Recycle.bin
20:05:18 74.118.138.195 から RDPログオン FileServer EVTX
20:05:58 Desktop\project_0x03.zip を作成 FileServer LNK
20:08:38 Desktop\test\Projections.zip を作成 FileServer LNK
20:11:08 mpowers が https[:]//www[.]dropbox.com/request/51bpm0D7zHjRbfvuqGzt にアクセス (データのアップロード) FileServer Web Chrome
20:32:34 C:\M4Projects\project_0x02 がPrivaZer.exeによって削除 FileServer UsnJrnl
20:34:26 FileServer から Administrator でRDPログオン HRServer EVTX
22:20:09 localhost で稼働している /symfony/web/index.php/dashboard にアクセス HRServer Web IE/Edge
23:05:57 phpmyadmin にアクセスし、orangehrm_mysql データベースを取得する HRServer Web Chrome
23:06:57 Administrator が https://www[.]dropbox.com/request/51bpm0D7zHjRbfvuqGzt にアクセス (データのアップロード) HRServer Web Chrome
23:10:39 Security.evtx の監査ログが消去される HRServer EVTX
23:11:40 FileServer から Administrator でRDPログオフ HRServer EVTX
23:11:50 74.118.138.195 から RDPログアウト FileServer EVTX
  • メモ

攻撃起点はwebからダウンロードした empire の stager。
KeePassのマスタパスワードが弱く、他のシステムへの認証情報が盗まれたことをきっかけにFile Serverのproject関連のファイルが持ちだされ、HR ServerからはDBを抜き出される。
情報の持ち出し方法はdropboxへのアップロードを利用。

まとめ

個々の証拠だけではなくて、複数の証拠をつなぎ合わせることで攻撃者の狙いや動きが少し見えてくる点が面白く、楽しいと感じました。
今回、参加してみて解析の網羅性や速度、正確性など課題を色々と感じました。XWF欲しい。課金したい気持ちもありますが、不便だからこそどういうツールがあると便利か見えてくると思うのでしばらく頑張ろうと思います。
間違い等あれば後学のためにご指摘いただけると幸いです。