本稿では、TryHackMeにて提供されている「Advent of Cyber 2」ルームに関する攻略方法(Walkthrough)について検証します。
「Advent of Cyber 2」は「free room」(無料)で提供されています。購読を必要とせずに仮想マシンを「展開(Deploy)」することができます。
『Advent of Cyber 2』のWalkthroughインデックスを「[TryHackMe] Advent of Cyber 2に参加してみた」にて公開しました。
[Day 21] Blue Teaming: Time for some ELForensics
ストーリー
「little helpers」の一人がワークステーションにログインしたところ、データベースのコネクタファイルが差し替えられていることに気付き、いたずらリストを見つけることができなくなってしまいました。さらに、データベース・コネクタファイルを実行すると、そのファイルが別の場所に移動されたことを示すメッセージが表示されました。
エルフ・McEagerは通知を受け、データベース・コネクタファイルを探すためにピースをまとめます。
タスク
フォレンジックのような調査技術を使って、データベースのコネクタファイルが隠されている場所を探します。
Day 21 - #1.
Read the contents of the text file within the Documents folder. What is the file hash for db.exe?
CMD
、PowerShell
のそれぞれにて調査してみます。
コマンドプロンプトにて、テキストファイルなどの内容を画面表示するにはTYPE
コマンドが使用できます。
C:\Users\littlehelper\Documents>type "db file hash.txt"
Filename: db.exe
MD5 Hash: 5966{BLOCKED}E3A1
PowerShellでは、Get-Content
コマンドレットが使用できます。
PS C:\Users\littlehelper\Documents> Get-Content -Path '.\db file hash.txt'
Filename: db.exe
MD5 Hash: 5966{BLOCKED}E3A1
Day 21 - #2.
What is the file hash of the mysterious executable within the Documents folder?
コマンドプロンプトにて、ファイルのハッシュ値を計算するにはCertUtil
コマンドが使用できます。
C:\Users\littlehelper\Documents>CertUtil -hashfile deebee.exe md5
MD5 hash of deebee.exe:
5f03{BLOCKED}09f0
CertUtil: -hashfile command completed successfully.
PowerShellでは、Get-FileHash
コマンドレットが使用できます。
PS C:\Users\littlehelper\Documents> Get-FileHash -Algorithm MD5 .\deebee.exe
Algorithm Hash Path
--------- ---- ----
MD5 5F03{BLOCKED}09F0 C:\Users\littlehelper\Documen...
Day 21 - #3.
Using Strings find the hidden flag within the executable?
Windows Sysinternalsの「Strings.exe」ユーティリティーを使用することで、バイナリに含まれる文字列を調べることが可能です。
また、findstr
コマンドと組み合わせると、正規表現を使った柔軟な文字列検索を行うことができます。
c:\Tools>strings64.exe C:\Users\littlehelper\Documents\deebee.exe | findstr THM*
THM{f618{BLOCKED}b6f9}
PowerShellでは、Select-String
コマンドレットと-Pattern
オプションが使用できます。
PS C:\Users\littlehelper\Documents> Select-String -Path .\deebee.exe -Pattern 'THM*'
意図した文字列のみ抽出するには、-Pattern
オプションの指定方法に工夫が必要です。
Day 21 - #4.
What is the flag that is displayed when you run the database connector file?
NTFSファイルシステムには「代替データストリーム(ADS:Alternate Data Stream)」という機能があります。
コマンドプロンプトにて、代替データストリームの情報を表示するにはdir
コマンドの/r
オプションが使用できます。
Microsoft Windows [Version 10.0.17763.737]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Users\littlehelper\Documents>dir /r
Volume in drive C has no label.
Volume Serial Number is C2ED-B403
Directory of C:\Users\littlehelper\Documents
11/23/2020 04:12 PM <DIR> .
11/23/2020 04:12 PM <DIR> ..
11/23/2020 11:21 AM 63 db file hash.txt
11/23/2020 11:22 AM 5,632 deebee.exe
6,144 deebee.exe:hidedb:$DATA
2 File(s) 5,695 bytes
2 Dir(s) 4,928,839,680 bytes free
PowerShellでは、Get-Item
コマンドレットと-Stream
オプションが使用できます。
PS C:\Users\littlehelper\Documents> Get-Item .\deebee.exe -Stream *
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Users\littlehelper\Documents\deebee.exe::$DATA
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Users\littlehelper\Documents
PSChildName : deebee.exe::$DATA
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName : C:\Users\littlehelper\Documents\deebee.exe
Stream : :$DATA
Length : 5632
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Users\littlehelper\Documents\deebee.exe:hidedb
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Users\littlehelper\Documents
PSChildName : deebee.exe:hidedb
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName : C:\Users\littlehelper\Documents\deebee.exe
Stream : hidedb
Length : 6144
代替データストリームに追加されている実行ファイルを起動させるには、wmic.exe
(Windows Management Instrumentation Command Line)コマンドライン・ツールが使用できます。
コマンド構文は次のとおりです。
PS C:\Users\littlehelper\Documents> wmic process call create $(Resolve-Path .\deebee.exe:hidedb)
Executing (Win32_Process)->Create()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
ProcessId = 4804;
ReturnValue = 0;
};
これにて、21日目のミッションが終了です。
参考情報
- @IT, 「Windows PowerShell基本Tips(6):【 Get-Content 】コマンドレット――ファイルの内容を参照する」
- @IT, 「Tech TIPS:WindowsでMD5/SHA-1/SHA-256ハッシュ値を計算してファイルの同一性を確認する」
- @IT, 「Tech TIPS:Windowsのfindstrで正規表現を検索する」
- @IT, 「Windows PowerShell基本Tips(3):【 Select-String 】コマンドレット――ファイルからテキスト(文字列)を検索する」
- @IT, 「Tech TIPS:dirやPowerShellでNTFSの代替データストリーム情報を表示する」