MWS Cup 2021
課題4 DFIR
課題解説

課題4 担当メンバー
●

主担当
○

保要 隆明（株式会社エヌ・エフ・ラボラトリーズ）

全体調整
攻撃シナリオ作成
擬似攻撃検証、実行
問題作成

● 担当
○
○
○
○
○
○
○
○
○
○

荒木 粧子（株式会社ソリトンシステムズ）
白鳥 隆史（株式会社ソリトンシステムズ）
後藤 公太（株式会社ソリトンシステムズ）
尾曲 晃忠（株式会社ソリトンシステムズ）
竹澤 一輝（株式会社ソリトンシステムズ）
木野田 渉（株式会社ソリトンシステムズ）
阿部 航太（株式会社エヌ・エフ・ラボラトリーズ）
飯田 良 （NTTコミュニケーションズ株式会社）田口 裕介（NTTコミュニケーションズ株式会社）
久保 佑介（NTTコミュニケーションズ株式会社）監修
問題レビュー
ログ取得環境構築・運用
問題レビュー

擬似攻撃検証、実行問題レビュー2

今年の方針2020

2021○ 人の手による攻撃○ 複数端末○ EDRログ（InfoTrace Mark II）
から侵害状況を明らかにする○ 人の手による攻撃○ 複数端末○ EDRログ（InfoTrace Mark II）＋プロキシログから侵害状況を明らかにする○ 環境情報やフォーマットの
事前アナウンス○ 現実の攻撃を再現した擬似攻撃

3

今年のテーマ

Human-Operated Ransomware（標的型ランサムウェア）

4Human-Operated Ransomware（標的型ランサムウェア）•

2019年頃からランサムウェアを用いた新たな攻撃が急増•••

APT のような手法で横展開し組織の奥深くに侵入する
最近では発見した機密情報の窃取も行う
ランサムウェアを組織全体に配信し、復号と情報公開をネタに二重脅迫

https://www.ipa.go.jp/security/announce/2020-ransom.html

https://jsac.jpcert.or.jp/archive/2020/pdf/JSAC2020_1_tamada-yamazaki-nakatsuru_jp.pdf

5インシデント事例

https://www3.nhk.or.jp/news/html/20210509/k10013019791000.html

https://news.yahoo.co.jp/articles/4fb2485ce69b7ae5f73eaba1a8c0e7505ac411b3

6

事の始まりフューチャー・ガジェット・ラボラトリー（FGLab）はコロナウイルス感染拡大による緊急事態宣言の影響により、ラボに集まって研究を続けることができなくなっていた。
急遽クラウド上にリモート業務用サーバを構築し、リモートから研究開発活動を行うことを余儀なくされた。

7

FGLabのリモートワーク環境

8ある日、事件が起こる
業務環境をクラウドに移行して数週間経った2021年の10月6日の朝、仕事を始めたところ「リモート業務用サー
バ上のファイルが開くことができない」という事象が発生した。
IT管理者のhashidaがこの件について調査を行っていたところ、ファイルの拡張子が.encryptedに変更されて暗号化されており、 身代金を要求されるREAD_TO_DECRYPT.html という名前のファイルが一部のユーザのDesktopに作成されていた ことがわかった。

9

ラボの危機を救え！
どうやら今流行りのランサムウェアを使ったサイバー攻撃を受けてしまったらしい。

FGLabで何が起きたのか、 EDR（InfoTrace Mark II) ログとプロキシログを分析し、攻撃の全容を明らかにせよ！

10

ヒント
ヒント① ：すべての問題はつながっている
1つの問題解いて終了ではなく、問題を解いて得られた情報を活用してさらに調査を進める
各問題は点になっており、点をつなげることで1本の線になる

ヒント② ：出題された問題が起きたことのすべてではない問題で出題していること以外にも、攻撃者の行動がある

ヒント③ ：発見したログ、情報は記録しておく
記録した情報を整理し、全体像を把握する
最後に記述問題があります。記録を残しておけば、記述問題もスムーズ

ヒント④ ：回答回数に注意
総当り力や推測力を競うコンテストではない。ログの中に答えはある。
複数のログとインターネットで調査した情報を相関して分析し、答えを導き出す
11

課題概要
0. Prolouge0

インシデントの発生状況説明

1.1 Impact
1

1.2 Command and Control
1

1.3 Lateral Movement /Execution
1

2.1 Lateral Movement /Execution
1

2.2 Execution
1

2.3 Credential Access /Exfiltration
1

3.1 Execution /Privilege Escalation
2

3.2 Collection /Exfiltration
1

3.3 Lateral Movement
1

4 Defense Evasion
1

5 Persistence2

6 Timeline
5

1.4 Lateral Movement2

Flag形式/選択形式
15点

記述形式
5点
攻撃の順序

12

結果
回答チーム
16
14
12
10
8
6
4
2
0
0

1.1

1.2

1.3

1.4

2.1

2.2

2.3

3.1

3.2

3.3

4

5

6

回答チーム
13

問題解説

14

最初に
● MK2ログを結合したファイルを作っておく
cat mk2/* | sort > combined.log● 複数の端末のログが時間順にソートされて結合され、分析がやりやすくなる● 結合したログで解説

15

解説に使用するツール● テキストエディタ: Visual Studio Code○○○

言語モードを「Log」にすることで、見やすくハイライトしてくれる
表示の「右端で折り返す」必要に応じて切り替えると見やすい
ターミナルを表示し、grepを使う● ログ検索コマンド: grep○○

LinuxやmacOSは標準的にインストール
Windowsの場合、WSLやCygwinをインストールして使うと良い● Webブラウザ: Google Chrome○

関連情報をググるのに使用

16解説に使用するツール

17

1.1 Impact
暗号化プログラムが動作したコンピュータ名（ホスト名）を答えよ。
答えの形式は、暗号化プログラムが実行された順番が早い順に, 区切りでコンピュータ名（ホスト名）
例: WS01->WS02->WS03 の順番で暗号化が実行された場合
WS01,WS02,WS01
3回まで回答可18

1.1 Impact
ポイント● 暗号化された端末には .encrypted の拡張子のファイル、
READ_TO_DECRYPT.html が作られる● プロセスが起動ログは？

19

1.1 Impact● C:¥Users¥hashida¥r.exe がREAD_TO_DECRYPT.htmlを作成● WS01, WS03, FILE01, DC01, WS02 の順番で作成
grep “evt=file subEvt=create” combined.log | grep "READ_TO_DECRYPT.html"

20

1.1 Impact● .encrypted ファイルを作成しているのも C:¥Users¥hashida¥r.exe● C:¥Users¥hashida¥r.exe が暗号化プログラム！
grep “evt=file subEvt=create” combined.log | grep ".encrypted"

21

1.1 Impact● プロセス起動ログを調べると、暗号化プログラムが動作した正確な順番がわかる● WS01, WS03, FILE01, DC01, WS02 の順番で動作
grep "evt=ps subEvt=start" combined.log | grep 'psPath="C:¥¥Users¥¥hashida¥¥r.exe"'221.2 Command and Control
暗号化プログラムが通信している外部サーバのURLを答えよ。
例: https[:]//example[.]com/path/to/file
3回まで回答可。

23

1.2 Command and Control
ポイント● 1.1 Impact で見つけた暗号化プログラムの挙動を追う● プロキシログと相関して分析24

1.2 Command and Control● WS01のログで説明○

WS03、FILE01、DC01にも同様のログが残っている● 暗号化プログラムのTCP接続時のイベントを確認● 14:15:41にIP: 35.75.228[.]21, Port: 8080 へ通信● URLの情報がわからない
grep "evt=net subEvt=con" combined.log | grep 'com="WS01"' | grep 'psPath="C:¥¥Users¥¥hashida¥¥r.exe"'25

1.2 Command and Control● 14:15:41 WS01から35.75.228[.]21, Port: 8080への通信がないかプロキシログで探す● URL: http://35.75.228[.]21:8080/api/keys/add へ通信している● WS03, FILE01, DC01, WS02 からも同様の通信が発生

26

1.3 Lateral Movement / Execution
暗号化プログラムはWindowsのある機能を用いてリモートから起動されている。
リモートから起動する際に使用した手段を選べ。
●
●
●
●

WMI
スケジュールタスク
WinRM
リモートデスクトップ

2回まで回答可27

1.3 Lateral Movement / Execution
ポイント● 暗号化プログラムはどのようなプロセスから起動されているか● プログラム起動時の付近の通信

281.3 Lateral Movement / Execution● WS01のログで説明○

WS03、FILE01、DC01にも同様のログが残っている● 暗号化プログラムは C:¥Windows¥System32¥wsmprovhost.exe から起動
grep "evt=ps subEvt=start" combined.log | grep 'com="WS01"' | grep 'psPath="C:¥¥Users¥¥hashida¥¥r.exe"'● C:¥Windows¥System32¥wsmprovhost.exe の正体は？？

29

1.3 Lateral Movement / Execution● C:¥Windows¥System32¥wsmprovhost.exe 起動時のログを確認○

親プロセスのGUIDでトレース● Microsoftの署名付きの正規のWindowsプロセス● fileDescを見ると、Host process for WinRM plug-ins
grep "evt=ps subEvt=start" combined.log | grep 'psGUID={AA683042-E1E9-46E0-9AB3-CBC9A4B330FA}'30

1.3 Lateral Movement / Execution● ほぼ同時刻にWS02からWinRM（5985/tcp）への通信が発生○

WS01では14:15:36にWinRMの通信が発生

mk2tree.pyで可視化した結果

31

1.4 Lateral Movement
暗号化プログラムがリモート起動された時刻付近のログを調査していると、あるコンピュータからあるユーザのアカウントで複数のコンピュータに対してリモートログインされていることがわかった。
複数のコンピュータに対してリモートログインを行っていたコンピュータ名とリモートログインに使われたユーザ名を以下の形式で答えよ。
[リモートログインを行っていたコンピュータ名]_[リモートログインに使われたユーザ名]
例: WS01_okabe
3回まで回答可32

1.4 Lateral Movement
ポイント● 暗号化プログラムが実行された前にリモートからログインされたログは？
● ログインと同時刻に発生している端末に対する通信の発信元は？
● ログインされたログがない端末は？

33

1.4 Lateral Movement●●●●

WS01で暗号化プログラムが実行されたのは 14:15 頃
この時間にリモートからのログインログはないか
hashidaでログイン
ログイン元のコンピュータは記録されていない

grep 'evt=session subEvt=loginR' combined.log | grep 'com="WS01"' | grep " 14:15"

34

1.4 Lateral Movement● リモートからログイン -> 通信関連のログはないか？
● 同時刻に 172.16.1.102 (WS02) から tcp/5985（WinRM）の通信● WS03, FILE01, DC01 にも同様のログ。WS02のみログインのログがない
grep -e 'evt=session subEvt=loginR' -e 'evt=net' combined.log | grep 'com="WS01"' | grep " 14:15"

35

2.1 Lateral Movement / Execution
さらにログを調査していくと、暗号化プログラムを実行するよりも前にWS02からhashidaのアカウントでDC01へログインされてコマンド実行されていた。
WS02からDC01でコマンド実行する際にWS02上で利用されたプログラムのフルパスを答えよ。
例: C:¥Windows¥system32¥calc.exe
5回まで回答可36

2.1 Lateral Movement / Execution
ポイント● WS02からDC01にログインした時間は？
● ログインした時間にWS02で実行されていたプロセスは？

37

2.1 Lateral Movement / Execution● 暗号化プログラム実行以前に、hashidaでDC01にログインしたログを確認● 13:52:30, 13:55:12, 13:58:50 に AD¥hashida で 172.16.1.102(WS02) からログインしているログ

grep 'evt=session subEvt=loginR' combined.log | grep 'com="DC01"' | grep hashida38

2.1 Lateral Movement / Execution● 13:52:30, 13:55:12, 13:58:50 頃のWS02のプロセス起動ログ● 13:55:12, 13:58:50 に C:¥Users¥hashida¥Desktop¥PsExec.exe を用いて
DC01でコマンド実行
grep 'evt=ps subEvt=start' combined.log | grep 'com="WS02"' | grep -e " 13:52" -e " 13:55" -e " 13:58"

39

2.1 Lateral Movement / Execution（参考）PsExec を使用すると、接続先に痕跡が複数残る● 管理共有経由で、ファイル C:¥Windows¥PSEXESVC.exe が作成● レジストリ HKLM¥SYSTEM¥ControlSet001¥Services¥PSEXESVC が作成

40

2.2 Execution
Proxyログを確認すると、DC01から http://35.75.228[.]21/start への不審な通信が発生していた。
DC01で通信を発生させているプロセスの起動時刻（日本時間）を答えよ。
起動時刻はミリ秒まで答えよ。
例: 12:01:03.456

41

2.2 Execution
ポイント● プロキシログで該当の通信先へアクセスしている時間を特定● 該当時間付近のEDRログでプロセスを確認

42

2.2 Execution● プロキシログでDC01から http://35.75.228[.]21/start への不審な通信が発生していた時間を特定● 13:59:11

43

2.2 Execution● 13:59頃のnetイベントのログを確認● psGUID={C1D7D99C-AF2A-490C-B3F5-931E02A431E9} からURLと同じ
IPアドレスへの通信
grep 'evt=net' combined.log | 'com="DC01"' | grep " 13:59"

44

2.2 Execution● psGUID={C1D7D99C-AF2A-490C-B3F5-931E02A431E9} の起動ログ確認● 13:59:10.964 にプロセス起動
grep 'psGUID={C1D7D99C-AF2A-490C-B3F5-931E02A431E9}' combined.log | grep 'evt=ps subEvt=start'● Base64デコードすると、http://35.75.228.21/start へ通信するスクリプト45

2.2 Execution● C:¥Windows¥PSEXESVC.exe が親プロセスとしてプロセス起動● PsExecによって起動されたものとわかる

46

2.3 Credential Access / Exfiltration
攻撃者はDC01からあるデータを盗んでいる。 盗まれたデータを取得するために実行しているプロセスの起動ログのシーケンス番号 (sn) を答えよ。
3回まで回答可47

2.3 Credential Access / Exfiltration
ポイント● 2.2で不正な通信を発生 -> これ以降に何かされたかもしれない● 通信を発生させているプロセスの挙動を追う。
● Active Directoryに標準でインストールされているツールを用いてデータベー
スファイルを取得。

48

2.3 Credential Access / Exfiltration● 不正な通信を発生させているプロセスの起動ログを追う。
● プロセスを起動しているログは、14:01:23に ntdsutil.exe を起動しているのみ● シーケンス番号は 917371
grep 'evt=ps subEvt=start' combined.log | grep 'com="DC01"' | grep C1D7D99C-AF2A-490C-B3F5-931E02A431E9

492.3 Credential Access / Exfiltration● ntdsutil.exe 実行後、14:03:11に取得したデータをZIP圧縮 (dump.zip)

50

2.3 Credential Access / Exfiltration● 14:04:21頃にdump.zip を持ち出した（と考えられる）51

3.1 Execution / Privilege Escalation
Proxyログを確認するとWS02では http[:]//35.75.228[.]21/start への通信が2回発生していた。
2回目に通信を発生させたプログラムを実行させたツールの名称を答えよ。
答えはすべて英字小文字
3回まで回答可52

3.1 Execution / Privilege Escalation
ヒント (-1pt)● 通信を発生させている親プロセスをたどる。
● 目に見えるファイル名が正しいとは限らない

53

3.1 Execution / Privilege Escalation● プロキシログでWS02から http[:]//35.75.228[.]21/start への通信を確認● 2回目の通信は 13:51:17 に発生$ grep 172.16.1.102 proxy/access.log | grep "http://35.75.228.21/start"54

3.1 Execution / Privilege Escalation● 13:51:17 付近のEDRログを確認
grep 'com="WS02"' combined.log | grep " 13:51"● E888BC02-6945-4685-9490-FB309982A0C5 から通信発生● エンコードされたPowerShellコマンド実行55

3.1 Execution / Privilege Escalation● 親プロセスをたどる● E888BC02-6945-4685-9490-FB309982A0C5 の親プロセス

56

3.1 Execution / Privilege Escalation● C5B276C9-C2B2-41F5-A42A-25FB14F0EC26 の親プロセス● C:¥Users¥kitting¥notepad.exe が実行○

本物のnotepad.exe は C:¥Windows¥Sytem32¥notepad.exe● cmd、fileDescの値から mimikatz が実行されていると考えられる

57

3.2 Collection / Exfiltration
WS02では、不審な圧縮ファイルが複数作成されていた。いずれもファイル共有
されている別のコンピューターから持ち出されたデータであると思われる。
本来データが保存されていたコンピューター名と、共有フォルダ経由でWS02からアクセスされ、圧縮して持ち出されたと思われるファイル数を以下の形式で答えよ。
[本来データが保存されていたコンピューター名]_[圧縮して持ち出されたと思われるファイル数]
例: WS01_3
3回まで回答可58

3.2 Collection / Exfiltration
ポイント● 作成された圧縮ファイルは？
● 圧縮ファイル作成と同時刻にアクセスされたファイルは？

59

3.2 Collection / Exfiltration● WS02で圧縮ファイルの拡張子として思い当たるもので検索● ZIPの拡張子のものがいくつか存在
grep 'com="WS02"' combined.log | grep zip● 14:08:06 にDevelopers.zip 作成● 14:08:41 にSales.zip 作成

60

3.2 Collection / Exfiltration● 14:08:06 のファイルイベントを確認
grep 'com="WS02"' combined.log | grep "evt=file" | grep " 14:08:06"● FILE01で共有されているDevelopers の8個のファイルにアクセス

61

3.2 Collection / Exfiltration● 14:08:41 のファイルイベントを確認
grep 'com="WS02"' combined.log | grep "evt=file" | grep " 14:08:41"● FILE01で共有されているSales の1個のファイルにアクセス● 合計でFILE01の9個のファイルが持ち出されたと考えられる

62

3.3 Lateral Movement / Execution
WS02で http[:]//35.75.228[.]21/start への1回目の通信を発生させたプログラムは他のコンピュータから実行されている。
プログラムを実行した他のコンピュータのコンピュータ名とユーザ名を以下の形式で答えよ。
`[プログラムを実行した他のサーバのコンピュータ名]_[他のサーバでプログラ
ムを実行したユーザ名]`
例: WS01_okabe
3回まで回答可63

3.3 Lateral Movement / Execution
ポイント● プロキシログで1回目の通信を確認● EDRログで通信が発生した時刻のログを確認● ログオン元の端末のEDRログを調べる

64

3.3 Lateral Movement / Execution● 3.1 と同様にプロキシログでWS02から http[:]//35.75.228[.]21/start への通信を確認● 1回目の通信は 13:42:06 に発生$ grep 172.16.1.102 proxy/access.log | grep "http://35.75.228.21/start"65

3.3 Lateral Movement / Execution● 13:42:06 頃のWS02のログを確認● kittingユーザで WS01 (172.16.1.101)からログオンされている
grep 'com="WS02"' combined.log | grep " 13:42"

66

3.3 Lateral Movement / Execution● 13:42:06 頃のWS01のログを確認● WS01からWMICでkittingユーザの認証情報用いてWS02でコマンド実行● プロセスを実行しているユーザは Administrator
grep 'com="WS01"' combined.log | grep " 13:42"

67

4. Defense Evasion
攻撃者は攻撃全体を通して防御機構を回避するためにあるコマンドを使用している。
防御回避のために実行したと考えられるコマンド（引数も含む）を答えよ。
5回まで回答可68

4. Defense Evasion
ポイント● 他の端末でプログラムを実行させる前に必ず行っているコマンドがある69

4. Defense Evasion● 各サーバのログを見ると、しきりにSet-MpPreferenceを実行している

70

4. Defense Evasion● ドキュメントを読むと、リアルタイム検知を設定するコマンド○○$False (0) の場合は有効、$True(1)の場合は無効
https://docs.microsoft.com/en-us/powershell/module/defender/setmppreference?view=windowsserver2019-ps● Windows Defenderを停止させることで、防御を回避しようとしている

71

5. Persistence
WS01で実行された永続化手法をMITRE ATT&CKのTechnique IDで答えろ。
Sub-Techniqueがある場合、Sub-TechniqheのIDで答えよ。
答えは3回まで回答可能。

72

5. Persistence
ポイント● 攻撃者はWS01にどのように侵入したか？侵入した時間は？
● WS01で攻撃者が実行してるコマンドは？

73

5. Persistence● WS01に攻撃者はどのように侵入したのか？
○○

ネットワーク構成的に、RDP経由かプロキシを経由したWebメール経由が考えられる
プロキシログにはWebメールへアクセスした形跡はなし● リモートログオンのログを確認
grep 'evt=session subEvt=loginR' combined.log | grep 'com="WS01"'

74

5. Persistence● 35.74.200[.]209 大量のリモートログオン失敗ログを確認● 35.74.200[.]209 から13:11:38にAdministratorでログオン = 攻撃者活動開始

75

5. Persistence● WS01のプロセス起動ログを抽出
grep 'evt=ps subEvt=start' combined.log | grep 'com="WS01"'● 攻撃者が活動開始した 13:11:38 以降のプロセス起動ログを確認● 13:15:55、Administrat0rユーザを追加● 13:16:25、AdministratorsグループにAdministrat0rユーザを追加

76

5. Persistence● MITRE ATT&CK の Persistence の中に Create Account: Local Account がある○○○

https://attack.mitre.org/techniques/T1136/001/
net user /add も代表的なユーザ追加のコマンドとして紹介
Technique IDは T1136.001

77解答まとめ#

問題名（Tactics）

Point

答え

1.1

Impact1

WS01,WS03,FILE01,DC01,WS02

1.2

Command and Control

1

http://35.75.228.21:8080/api/keys/add

1.3

Lateral Movement / Execution

1

WinRM

1.4

Lateral Movement

WS02_hashida

2.1

Lateral Movement / Execution

2
1

C:¥Users¥hashida¥Desktop¥PsExec.exe

2.2

Execution

1

13:59:10.964

2.3

Credential Access / Exfiltration

917371

3.1

Execution / Privilege Escalation

1
2

mimikatz

3.2

Collection / Exfiltration

1

FILE01_9

3.3
45Lateral Movement / Execution
Defense Evasion
Persistence

1
1
2

WS01_Administrator
powershell Set-MpPreference -DisableRealtimeMonitoring 1
T1136.001

78

擬似攻撃 解説79

注意事項
● 擬似攻撃の手法を紹介しますが、悪用しないでください○○

システム管理者の許可なくこれから紹介する行為を行った場合、「不正アクセス行為の禁止等に関する法律」に抵触する可能性があります■ https://elaws.egov.go.jp/search/elawsSearch/elaws_search/lsg0500/detail?lawId=411AC0000000128
正当な理由なくこれから紹介する行為を行った場合、「不正指令電磁的記録に関する罪」に問われる可能性があります■ https://elaws.egov.go.jp/search/elawsSearch/elaws_search/lsg0500/detail?lawId=140AC0000000045#740● 正当な理由があり攻撃を試す場合は、自分で作った環境や管理者に許可を貰った環境でやりましょう● 今回は擬似社内環境、擬似攻撃サーバ、疑似C2サーバには Amazon EC2 を使用● 各環境は関係する環境からのみアクセスを許可し使用
80使用した擬似マルウェア● RAT (Remote Access Trojan) : Covenant○

C#で書かれたC2フレームワーク○

https://github.com/cobbr/Covenant/tree/master/Covenant● ランサムウェア（暗号化プログラム）: Ransomware○

goで書かれた実験用ランサムウェア○

https://github.com/mauri870/ransomware● 透明性を保つためOSSとして公開されているフレームワークを使用

81

擬似攻撃
概要

① AdministratorユーザにRDP辞書攻撃、AdministratorユーザでRDPでの不正ログイン

35.74.200[.]209

RAT実行

35.75.228[.]21

ランサムウェア
実行82

RDPポートスキャン、辞書攻撃、ログオン● 多くの事例で、外部公開されているサービスから侵入● レポートで報告されている事例は特にRDPからの侵入が多い

83
https://www.secureworks.jp/resources/at-targeted-ransomware-spreading-in-japan

RDPポートスキャン、辞書攻撃、ログオン● shodanで検索するとAdministratorでのログオンしているユーザが多い

84

RDPポートスキャン、辞書攻撃、ログオン● 35.74.200[.]209 からWS01に対してポートスキャンを実行● 35.74.200[.]209 から辞書攻撃を実行○

Administratorのパスワードが chris ということがわかる

85

RDPポートスキャン、辞書攻撃、ログオン● RDPからWS01のAdministratorでログオン成功

86

擬似攻撃
概要

② mimikatzによりokabeの認証情報を窃取
okabeへ権限でcmd.exeを実行

35.74.200[.]209

RAT実行

35.75.228[.]21

ランサムウェア
実行87

WS01の環境情報収集● whoami /all○

ログオンユーザ情報の確認● ipconfig /all○

ネットワーク情報の確認● net user○

ローカルユーザ情報の確認● net localgroup○

ローカルグループ情報の確認● net localgroup Adminisistrators○

Administratorsグループに属するユーザ確認88WS01の環境情報収集● net user で kittingユーザの存在を確認● net localgroup Adminisistrators で kittingユーザがAdministratorsグループに所属していることを確認

89WS01でのバックドアユーザ作成 (5. Persistence)● バックアップ用のローカルアカウント Administrat0r 作成○

Administratorのパスワードが変更されても継続的にログイン出来るようにするため● 管理者権限を維持するため、Administrators グループにも追加● ATT&CK T1136.001: Create Account: Local Account に当てはまる○

https://attack.mitre.org/techniques/T1136/001/
90

Windows Defender を無効化 (4. Defense Evaision)● ローカル管理者権限を持つので Windows Defender の無効化が可能○

この後使うmimikatzが検知されるので無効化する● PowerShellコマンドを使用○○○

powershell Set-MpPreference –DisableRealtimeMonitoring 1
このコマンド自体は正規のコマンド
攻撃全体を通じて防御機構を回避（Defense Evaision）するために使われている91認証情報窃取● mimikatz (m.exe)をRDPでコピー、実行。okabeの認証情報を窃取● 管理者権限があるので実行可能○○

報告されている事例でも、侵入時のアカウントが管理者権限であることが多いため、mimikatzが悪用されている
https://jsac.jpcert.or.jp/archive/2020/pdf/JSAC2020_1_tamada-yamazaki-nakatsuru_jp.pdf

92

権限昇格
● mimikatzを用いてPass The Hashの手法でokabeに権限昇格● okabeの権限を持つ別のcmd.exeが立ち上がる○

ただし、ログ上はAdministratorで記録される

93

擬似攻撃
概要

③ okabeの権限でファイルサーバ上のkittingユーザの認証情報（パスワード）を取得

35.74.200[.]209

RAT実行

35.75.228[.]21

ランサムウェア
実行94

ドメインの情報収集● net user /domain○

ドメインユーザの確認● net group /domain○

ドメイングループの確認● net group "Domain Admins" /domain○

Domain Adminsグループのメンバ確認● net group "Domain Computers” /domain
○

●
●
●
●

ドメインコンピュータの確認

nslookup ws02.ad.future-gadget.lab
nslookup ws03.ad.future-gadget.lab
nslookup file01.ad.future-gadget.lab
net view ¥¥file01.ad.future-gadget.lab○

ファイル共有の確認

95

ファイルサーバの認証情報の閲覧● net use Z: ¥¥file01.ad.future-gadget.lab¥kitting○

Zドライブに ファイル共有フォルダ kitting をマウント● 認証情報が書かれた credentials.txt を閲覧○

ファイルサーバには生の認証情報が書かれたファイルは置かない方が良い

96

擬似攻撃
概要
④ 窃取した認証情報を用いてkittingでWS01->WS02に横展開（RAT実行）
35.74.200[.]209

RAT実行

35.75.228[.]21

ランサムウェア
実行
97

WMIを使ったRAT実行 (3.3 Lateral Movement / Execution)● 窃取した認証情報を用いてWMIを使用○○○

WMI(Windows Management Instrumentation) はWindowsを効率よく管理する仕組み
使用するためにはユーザ情報とパスワードが必要
リモートコンピュータで指定したプロセスを起動できる。

● WS02でRATをダウンロードするコマンドを実行

WMIC
http://35.75.228[.]21/start

RPC
http://35.75.228.21/en-us/index.html など

WS01
Administrator

WS02
kitting

C2 Server
35.75.228[.]2198

WS02でのWMIのFirewall許可● WS01からWMICを実行したところ、Firewallにより使用不可● WS01からWS02にRDPでログインし、WMIをFirewallで許可

99

WMICでRAT起動 (3.3 Lateral Movement / Execution)● WS01からWMICでWindows Defender無効化後、WS02でRATをダウンロード
するコマンドを実行

100

擬似攻撃
概要
⑤ mimikatzによりhashidaの認証情報を窃取
hashidaへ権限でRAT実行④ 窃取した認証情報を用いて
WS01->WS02に横展開（RAT実行）
35.74.200[.]209

RAT実行

35.75.228[.]21

ランサムウェア
実行101

認証情報窃取● mimikatz (notepad.exe)をCovenantの機能でアップロードし、実行● hashidaの認証情報を窃取● kittingも管理者権限があるので、mimikatzを実行できる102

権限昇格、RAT実行(3.1 Execution / Privilege Escalation)● RATを起動するconfig.batをアップロード● mimikatz (notepad.exe)を用いてPass The Hashの手法でhashidaに権限昇格● hashidaの権限を持つでRAT起動○

ただし、ログ上はkittingユーザで記録される

103

擬似攻撃
概要

⑥ WS02からPsExecを用いて
DC01でRAT実行

35.74.200[.]209

RAT実行

35.75.228[.]21

ランサムウェア
実行
104

Domain ControllerでRAT実行(2.1 Lateral Movement / Execution)(2.2 Execution)● WS02のRATからhashida (Domain Admins) の権限でPsExecを使用○○

PsExecはWindows Sysinternalsのツールで、サーバのメンテナンス等で利用される正規ツール
今回はWS02はシステム管理者がデスクトップに置いて使ってたものを利用

PsExechttp://35.75.228[.]21/start

SMB
http://35.75.228.21/en-us/index.html など

WS02
hashidaDC01
SYSTEM

C2 Server
35.75.228[.]21

105

Domain ControllerでRAT実行(2.1 Lateral Movement / Execution)(2.2 Execution)● WS02のRATからhashida (Domain Admins) の権限でPsExecを使用

106

Domain ControllerでRAT実行(2.1 Lateral Movement / Execution)(2.2 Execution)● DC01でRATのDownloaderが実行され、SYSTEM権限でRATが起動

107

擬似攻撃
概要

⑦ DC01でNTDS.ditを窃取

35.74.200[.]209

RAT実行

35.75.228[.]21

ランサムウェア
実行
108

ADの認証情報を窃取(2.3 Credential Access / Exfiltration)● ntdsutil.exe で NTDSのコピーを作成、ZIP圧縮して持ち出し○

NTDSは Active DirectoryのDomain Database109

ADの認証情報を窃取(2.3 Credential Access / Exfiltration)● ntdsutil.exe でdumpしたファイルをZIPで圧縮、持出し110

ADの認証情報を窃取(2.3 Credential Access / Exfiltration)● NTDS.ditからDomain UserのCredential (NTLM Hash) をdumpできる○

すべてのDomain Userのパスワード変更が必要

111

擬似攻撃
概要
⑧ ファイルサーバのファイルを圧縮、持ち出し
35.74.200[.]209

RAT実行

35.75.228[.]21

ランサムウェア
実行112

WS02から情報の持出し(3.2 Collection / Exfiltration)● WS02でFILE01のDevelopersフォルダ、SalesフォルダのファイルをZIPで圧縮、持出し113

WS02から情報の持出し(3.2 Collection / Exfiltration)● Developers.zip (ファイル数: 8)● Sales.zip (ファイル数: 1）

114

擬似攻撃
概要
⑨ WS02から各サーバへ
ランサムウェアをダウンロード・
実行するコマンドを配信。
WS02でも同様のコマンド実行
35.74.200[.]209

RAT実行

35.75.228[.]21

ランサムウェア
実行
115

ランサムウェアの実行(1.2 Command and Control)(1.3 Lateral Movement / Execution)(1.4 Lateral Movement )● WS02からPowerShell Remotingを用いて、暗号化プログラムを
http://35.75.228[.]21/files/r.exe からダウンロード、実行○

リモート端末でWinRMを使用してPowerShellコマンドを実行可能○

ユーザを指定しない場合は、現在のユーザの権限（hashida）で実行● PowerShell RemotingでWindows Defenderを停止するコマンドも実行● 暗号化プログラムは、 http://35.75.228[.]21:8080/api/keys/add と通信
http://35.75.228[.]21/files/r.exe

WinRM

http://35.75.228[.]21:8080/api/keys/add

WS02

WS01, WS03,
FILE01, DC01

C2 Server
35.75.228[.]21116

ランサムウェアの実行(1.1 Impact)● WS01, WS03, FILE01, DC01の順番で、スクリプト実行

117

ランサムウェアの実行(1.1 Impact)● WS02はPowerShellで同様のコマンド実行でランサムウェア実行

118

Timeline (1/2)
Time

Event

橙色は重要なイベント（加点対象）
グレーはログから確認が難しいイベント
host

user

13:08:18 WS01に対して3389/tcpが開いているかポートスキャン attacker
13:09:46 WS01に対してAdministratorへ辞書攻撃
attacker
発見したパスワードでAdministratorでWS01にRDP接13:11:38 続
attacker
13:12:35 ユーザ情報の確認
WS01 Administrator
13:12:53 IPアドレスの確認
WS01 Administrator
13:13:44 ローカルユーザの列挙
WS01 Administrator
13:14:13 ローカルグループの列挙
WS01 Administrator
13:14:41 Administratorsグループのユーザ確認
WS01 Administrator

Time

Event

host

user

13:25:42 ドメインユーザの列挙

WS01

Administrator (AD¥okabe)

13:26:06 ドメイングループの列挙

WS01

Administrator (AD¥okabe)

13:26:35 Domain Admins グループのユーザ確認

WS01

Administrator (AD¥okabe)

13:27:06 Domain Computerを確認

WS01

Administrator (AD¥okabe)

13:27:51 WS02のIPアドレス確認

WS01

Administrator (AD¥okabe)

13:28:05 WS03のIPアドレス確認

WS01

Administrator (AD¥okabe)

13:28:13 FILE01のIPアドレス確認

WS01

Administrator (AD¥okabe)

13:29:35 すべてのファイル共有を確認（失敗）WS01

Administrator (AD¥okabe)

13:29:55 ドメインのすべてのファイル共有を確認（失敗） WS01

Administrator (AD¥okabe)

13:15:55 バックドアユーザAdministrat0rの作成、パスワード設定 WS01

Administrator

13:16:25 管理者グループにAdministrat0rを追加（失敗）
13:17:01 管理者グループにAdministrat0rを追加

WS01
WS01

Administrator
Administrator

13:17:31 管理者グループに追加されていることを確認
13:18:16 Windows Defenderの動作状況確認

WS01
WS01

Administrator
Administrator

13:30:54 ファイルサーバの情報収集

WS01

Administrator (AD¥okabe)

13:19:27 WS01のWindows Defenderのリアルタイム検知無効
13:21:18 mimikatzを作成

WS01
WS01

Administrator
Administrator

13:31:40 kittingディレクトリをZドライブにマウント

WS01

Administrator (AD¥okabe)

13:22:05 mimikatzを実行し、パスワードハッシュをdump
WS01
mimikatzでPass The Hashを実行し、ドメインユーザの
13:24:04 AD¥okabeに権限昇格
WS01

Administrator

13:32:04 kittingディレクトリのマウント確認

WS01

Administrator (AD¥okabe)

Administrator

ファイルサーバから管理アカウントの13:32:57 認証情報（credentials.txt）を閲覧

WS01

Administrator (AD¥okabe)

119Timeline (2/2)
Time

Event

橙色は重要なイベント（加点対象）
グレーはログから確認が難しいイベント

host

user

13:36:31 RDPでWS01からWS02にログイン

WS02 kitting

13:38:20 WMIを許可

WS02 kitting

13:39:01 RDP切断

WS02 kititing

13:39:31 取得したCredentialでWMIが実行できるか確認

WS01 Administrator

WMIを用いてWS02のWindows Defenderのリ
13:41:15 アルタイム検知無効
WS01 Administrator
13:42:04 WMIを用いてWS02でRATを起動

WS01 Administrator

13:44:16 Seatbeltによるローカルホスト情報の収集
WS02 kitting
mimikatzをCovenantの機能を使ってアップロード
C:¥Users¥kitting¥にmimikatz（notepad.exe）
13:46:43 作成
WS02 kitting

13:47:44 mimikatzを実行し、hashidaのhashを取得

WS02 kitting

13:49:40 hashidaに実行させるbatファイルをアップロード

WS02 kitting

mimikatzでPass The Hashを実行し、ドメインユ
13:51:16 ーザのAD¥hashidaに権限昇格
WS02 kitting

Time

Event
host
PsExecを用いてDC01のWindows Defenderのリ
13:55:12 アルタイム検知無効
WS02

user
kitting (AD¥hashida)

13:56:58 DC01で実行させるbatファイルをアップロード
WS02
13:58:49 PsExecを用いてDC01でconfig.batを実行
WS02
Windows標準のntdsutilを使ってNTDS.ditを
14:01:23 dump
DC01
14:03:10 dumpしたフォルダをzip形式に圧縮
DC01
14:04:22 dump.zipをRAT経由で持ち出し
DC01
14:07:09 FILE01の共有を確認
WS02
FILE01の共有フォルダDecelopersのファイルを圧
14:08:06 縮WS02

kitting (AD¥hashida)kitting (AD¥hashida)

14:08:41 FILE01の共有フォルダSalesのファイルを圧縮

WS02

kitting (AD¥hashida)

14:09:46 Developers.zipをRATt経由で持ち出し
14:10:17 Sales.zipをRAT経由で持出し
WS01のDefenderを停止
14:15:37 WS01内のすべてのファイルを暗号化
WS03のDefenderを停止
14:16:58 WS03内のすべてのファイルを暗号化
FILE01のDefenderを停止
14:18:08 FILE01内のすべてのファイルを暗号化
DC01のDefenderを停止
14:18:59 DC01内のすべてのファイルを暗号化
14:20:05 WS02内のすべてのファイルを暗号化

WS02
WS02
WS02
WS02
WS02
WS02
WS02
WS02
WS02
WS02
WS02

kitting (AD¥hashida)kitting (AD¥hashida)kitting (AD¥hashida)kitting (AD¥hashida)kitting (AD¥hashida)kitting (AD¥hashida)kitting (AD¥hashida)kitting (AD¥hashida)kitting (AD¥hashida)kitting (AD¥hashida)kitting (AD¥hashida)

SYSTEMSYSTEMSYSTEMkitting (AD¥hashida)kitting (AD¥hashida)120

Thank you for litening
ご意見・ご質問はSlack-MWSの #mwscup までお気軽にどうぞ！