https://app.hackthebox.com/sherlocks/TickTock
Hack The Box Sherlocksとは
Sherlock Scenario
Gladys is a new joiner in the company, she has recieved an email informing her that the IT department is due to do some work on her PC, she is guided to call the IT team where they will inform her on how to allow them remote access. The IT team however are actually a group of hackers that are attempting to attack Forela.
Gladys は会社の新入社員です。彼女は、IT 部門が自分の PC で何らかの作業を行う予定であることを知らせる電子メールを受け取りました。IT チームに電話して、リモート アクセスを許可する方法を通知するように案内されます。 。しかし、IT チームは実際には Forela を攻撃しようとしているハッカーのグループです。
サポート詐欺が題材ですね。
サポート詐欺対策|警察庁Webサイト
警視庁のページにもあるようにTTPsとして遠隔操作ソフトのダウンロードを促してリモートコントロールする手法が用いられます。添付されているのはKAPEを使って抽出した、Windows端末に対するファイル群です。いろんなファイルがあるのであたりをつけながら探索していきます。
Tasks
Task 1
What was the name of the executable that was uploaded as a C2 Agent?
C2 エージェントとしてアップロードされた実行可能ファイルの名前は何ですか?
Windowsの解析といえばイベントログなので、まずはそこから見ていきましょう。C/Windows/System32/winevt/logs
にイベントログのデータであるevtxファイルがあるので、ファイル名を見ながら種類を確認していきます。Microsoft-Windows-Sysmon%4Operational.evtx
がありますね。Sysmonというのは、Microsoftが公式で提供しているSysinternalsという管理やトラブルシュートで使うツール群の1つであり、イベントログで標準でとれる情報以上の細かなイベント(プロセス生成やファイル作成など)を記録してくれるアプリケーションです。とても有用な情報が多く取れるので、ここから見ていくことにします。
evtxをイベントビューワで開きEventID 11: FileCreate
でフィルタリングして目grep(上から眺める)してみる。すると、怪しいものが見つかりました。
File created: RuleName: EXE UtcTime: 2023-05-04 10:32:39.290 ProcessGuid: {5080714d-3cbe-6452-2200-000000000700} ProcessId: 1936 Image: C:\Program Files\Windows Defender\MsMpEng.exe TargetFilename: C:\Users\gladys\Desktop\merlin.exe CreationUtcTime: 2023-05-04 10:32:39.290 User: NT AUTHORITY\SYSTEM
Desktopに置かれたexeファイル、怪しい。答えてみると正解でした。本当は、深堀した結果怪しいファイルだったという順序が正解だと思いますが、Sherlocksではsubmit制限もないのでとりあえず出してみて正解かを判断することができまず。この点があって難易度が全体的に下がっていますが…ありがたく使わせてもらいましょう。merlin.exe
Task 2
What was the session id for in the initial access?
初回アクセス時のセッションIDは何でしたか?
攻撃者にとってのinitial accessが攻撃者によって提供されるリモートアクセスだと思われるので、それっぽいリモートアクセスを探していきます。ファイルを巡回していくとTeamViewerのログが残っていることが分かります。発見の確認順序を簡単に説明すると、C/Users
を見ると、Default, gladys, Publicの3つのフォルダがあり、Default, Publicは標準であるので、gladysが被害にあったユーザーアカウントと推測できました。更にC/Users/gladys/AppData/Local
にユーザー向けのアプリケーションデータが入っているので、見てみるとTeamViewerのフォルダを発見しています。grepしながら内部のファイルを見ていくとC/Users/gladys/AppData/Local/TeamViewer/Logs/TeamViewer15_Logfile.log
というログファイルにいい感じの情報がありました。
2023/05/04 11:35:32.914 5716 5840 D3 WorkstationLocker::SetAutoLockOnSessionEnd() tvsessionprotocol::TVSessionID: -2102926010 lock: 0 can lock: 1
SessionIDというのが書いてありますね。-2102926010
Task 3
The attacker attempted to set a bitlocker password on the C: drive what was the password?
攻撃者はドライブに bitlocker パスワードを設定しようとしましたが、C:そのパスワードは何でしたか?
んーどこで見るんだ?と思ったので、ちょっとツールの力を借りることにしました。
hayabusa/README-Japanese.md at main · Yamato-Security/hayabusa
Hayabusaという日本コミュニティが作成したイベントログ解析ツールがあるので、この解析に投げてみましょう。Hayabusaの自動解析に投げると、以下のようなpowershell実行が報告されてきます。
Details Cmdline: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -e JABTAGUAYwB1AHIAZQBTAHQAcgBpAG4AZwAgAD0AIABDAG8AbgB2AGUAcgB0AFQAbwAtAFMAZQBjAHUAcgBlAFMAdAByAGkAbgBnACAAIgByAGUAYQBsAGwAeQBsAG8AbgBnAHAAYQBzAHMAdwBvAHIAZAAiACAALQBBAHMAUABsAGEAaQBuAFQAZQB4AHQAIAAtAEYAbwByAGMAZQAKAEUAbgBhAGIAbABlAC0AQgBpAHQATABvAGMAawBlAHIAIAAtAE0AbwB1AG4AdABQAG8AaQBuAHQAIAAiAEMAOgAiACAALQBFAG4AYwByAHkAcAB0AGkAbwBuAE0AZQB0AGgAbwBkACAAQQBlAHMAMgA1ADYAIAAtAFUAcwBlAGQAUwBwAGEAYwBlAE8AbgBsAHkAIAAtAFAAaQBuACAAJABTAGUAYwB1AHIAZQBTAHQAcgBpAG4AZwA= ¦ Proc: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe ¦ User: DESKTOP-R30EAMH\gladys ¦ ParentCmdline: - ¦ LID: 0x345d6d ¦ LGUID: 5080714D-427B-6452-6D5D-340000000000 ¦ PID: 2452 ¦ PGUID: 5080714D-9398-6453-9004-000000000700 ¦ ParentPID: 5768 ¦ ParentPGUID: 00000000-0000-0000-0000-000000000000 ¦ Description: Windows PowerShell ¦ Product: Microsoft® Windows® Operating System ¦ Company: Microsoft Corporation ¦ Hashes: MD5=190E6E0CDBEF529941D9E5F8F979F5D9,SHA256=8787D4B624880012ABDB442532BE762DB0361DECE169FEF9E1E877A9DF9E00CB,IMPHASH=44B4867FED7460EEC45FBEE7804BB612
CyberChefを使うと、以上のような感じで後ろについているbase64エンコード列をデコードします。
$SecureString = ConvertTo-SecureString "reallylongpassword" -AsPlainText -Force Enable-BitLocker -MountPoint "C:" -EncryptionMethod Aes256 -UsedSpaceOnly -Pin $SecureString
BitLockerにパスワードをつけようとしていますね。このパスワードを答えます。reallylongpassword
Task 4
What name was used by the attacker?
攻撃者はどのような名前を使用しましたか?
何の名前?と思ったが、運よくC/Users/gladys/AppData/Local/TeamViewer/Logs/TeamViewer15_Logfile.log
で名前っぽいものを見つけることができ、答えると正しかった。
2023/05/04 11:35:31.958 5716 2436 D3 CParticipantManagerBase participant fritjof olfasson (ID [1761879737,-207968498]) was added with the role 6
fritjof olfasson
が正答。
Task 5
What IP address did the C2 connect back to?
C2 はどの IP アドレスに接続し直しましたか?
C2はどれのことだろうと思いましたが、そういえばTask 1で見つけたmerlin.exe
をまだあまり解析していないですね。hayabusaのsearch機能を使って、merlin.exe
でイベントログ全体を検索してみると、Sysmonで通信が取れていました。
DestinationHostname: ec2-52-56-142-81.eu-west-2.compute.amazonaws.com ¦ DestinationIp: 52.56.142.81 ¦ DestinationIsIpv6: false ¦ DestinationPort: 80 ¦ DestinationPortName: http ¦ Image: C:\Users\gladys\Desktop\merlin.exe ¦ Initiated: true ¦ ProcessGuid: 5080714D-8736-6453-4002-000000000700 ¦ ProcessId: 1992 ¦ Protocol: tcp ¦ RuleName: Usermode ¦ SourceHostname: DESKTOP-R30EAMH.forela.local ¦ SourceIp: 10.10.0.79 ¦ SourceIsIpv6: false ¦ SourcePort: 50544 ¦ SourcePortName: - ¦ User: DESKTOP-R30EAMH\gladys ¦ UtcTime: 2023-05-03 11:24:58.561
いいですね。merlin.exeはC2クライアントなんですね。52.56.142.81
Task 6
What category did Windows Defender give to the C2 binary file?
Windows Defender は C2 バイナリ ファイルにどのカテゴリを与えましたか?
Hayabusaの自動解析に投げると教えてくれますが、真面目にMicrosoft-Windows-Windows Defender%4Operational.evtx
を見ても書いてあります。
Microsoft Defender ウイルス対策 でマルウェアまたは他の望ましくない可能性のあるソフトウェアが検出されました。 詳細については、次を参照してください: http://go.microsoft.com/fwlink/?linkid=37020&name=VirTool:Win32/Myrddin.D&threatid=2147812764&enterprise=0 名前: VirTool:Win32/Myrddin.D ID: 2147812764 重大度: Severe カテゴリ: Tool パス: file:_C:\Users\gladys\Desktop\merlin.exe;process:_pid:1992,ProcessStart:133276693023911786 検出元の場所: ローカル コンピューター 検出の種類: コンクリート 検出元: システム ユーザー: NT AUTHORITY\SYSTEM プロセス名: C:\Users\gladys\Desktop\merlin.exe セキュリティ インテリジェンスのバージョン: AV: 1.389.167.0, AS: 1.389.167.0, NIS: 0.0.0.0 エンジンのバージョン: AM: 1.1.20300.3, NIS: 0.0.0.0
VirTool:Win32/Myrddin.D
です。
Task 7
What was the filename of the powershell script the attackers used to manipulate time? 攻撃者が時間を操作するために使用した PowerShell スクリプトのファイル名は何ですか?
Hayabusaのキーワード検索で.ps1
を検索すると出てきました。
"2023-05-04 19:35:59.965 +09:00","DESKTOP-R30EAMH","Sysmon",11,1866,"File Creation or Overwrite","CreationUtcTime: 2023-05-04 10:35:59.962 ¦ Image: C:\Users\gladys\AppData\Local\Temp\TeamViewer\TeamViewer.exe ¦ ProcessGuid: 5080714D-8A4F-6453-D501-000000000700 ¦ ProcessId: 4428 ¦ RuleName: - ¦ TargetFilename: C:\Users\gladys\Desktop\Invoke-TimeWizard.ps1 ¦ User: DESKTOP-R30EAMH\gladys ¦ UtcTime: 2023-05-04 10:35:59.964","Collection/C/Windows/System32/winevt/logs/Microsoft-Windows-Sysmon%4Operational.evtx"
Invoke-TimeWizard.ps1
が答え。
Task 8
What time did the initial access connection start?
最初のアクセス接続が開始されたのは何時ですか?
initial accessはこれまでの質問を見るとTeamViewerであるといえますが、何をもって最初のアクセス接続とするかが問題です。色々な時刻を提出してみましたが、C/Users/gladys/AppData/Local/TeamViewer/Logs/TeamViewer15_Logfile.log
の一番古いログの時刻を出すと正解でした。2023/05/04 11:35:27
Task 9
What is the SHA1 and SHA2 sum of the malicious binary? 悪意のあるバイナリの SHA1 と SHA2 の合計はいくらですか?
悪意のあるバイナリはmerlin.exeのことですね。Sysmonの書き込みログからSHA2(SHA256)を持ってくることができます。
"2023-05-04 19:32:46.459 +09:00","DESKTOP-R30EAMH","Sysmon",1,2880,"Process Creation","CommandLine: ""C:\Users\gladys\Desktop\merlin.exe"" ¦ Company: - ¦ CurrentDirectory: C:\Users\gladys\Desktop\ ¦ Description: - ¦ FileVersion: - ¦ Hashes: MD5=AED56DA95650B4895707A1638BC941EF,SHA256=42EC59F760D8B6A50BBC7187829F62C3B6B8E1B841164E7185F497EB7F3B4DB9,IMPHASH=9CBEFE68F395E67356E2A5D8D1B285C0 ¦ Image: C:\Users\gladys\Desktop\merlin.exe ¦ IntegrityLevel: High ¦ LogonGuid: 5080714D-427B-6452-6D5D-340000000000 ¦ LogonId: 0x345d6d ¦ OriginalFileName: - ¦ ParentCommandLine: C:\Windows\Explorer.EXE ¦ ParentImage: C:\Windows\explorer.exe ¦ ParentProcessGuid: 5080714D-427C-6452-6B01-000000000700 ¦ ParentProcessId: 4780 ¦ ParentUser: DESKTOP-R30EAMH\gladys ¦ ProcessGuid: 5080714D-89CE-6453-C202-000000000700 ¦ ProcessId: 5768 ¦ Product: - ¦ RuleName: - ¦ TerminalSessionId: 3 ¦ User: DESKTOP-R30EAMH\gladys ¦ UtcTime: 2023-05-04 10:32:46.458","Collection/C/Windows/System32/winevt/logs/Microsoft-Windows-Sysmon%4Operational.evtx"
SHA1ハッシュはamcacheから抽出することが可能です。AmcacheではWindows上で最近実行されたファイルの情報が記録されていて、ZimmermanToolsのAmcacheParserで解析が可能です。AmcacheParser.exe -f .\Collection\C\Windows\AppCompat\Programs\Amcache.hve --csv ./
みたいな感じで使うと、ぞろぞろ情報が出てきます。UnassociatedFileEntries.csvを見ると欲しい情報が書いてあります。
ApplicationName,ProgramId,FileKeyLastWriteTimestamp,SHA1,IsOsComponent,FullPath,Name,FileExtension,LinkDate,ProductName,Size,Version,ProductVersion,LongPathHash,BinaryType,IsPeFile,BinFileVersion,BinProductVersion,Usn,Language,Description Unassociated,00064a2015882539b434ecb8e7c2ffb817ff0000ffff,2023-05-04 10:21:42,ac688f1ba6d4b23899750b86521331d7f7ccfb69,False,c:\users\gladys\desktop\merlin.exe,merlin.exe,.exe,1970-01-01 00:00:00,,11482112,,,merlin.exe|31c8a96379b998e0,pe64_amd64,True,,,0,0,
ac688f1ba6d4b23899750b86521331d7f7ccfb69:42EC59F760D8B6A50BBC7187829F62C3B6B8E1B841164E7185F497EB7F3B4DB9
が答え。
Task 10
How many times did the powershell script change the time on the machine?
PowerShell スクリプトがマシンの時刻を何回変更しましたか?
Security.evtxのEventID: 4616でマシンの時刻変更を監査可能です。Security.evtx
をZimmermanToolsのEvtxECmdを使ってcsvに変換できます。EvtxECmd.exe -f .\Collection\C\Windows\System32\winevt\logs\Security.evtx --csv ./ --csvf sec.csv
みたいな感じ。得られたcsvファイルをZimmermanToolsのTimeline Explorerで開いて[Event Id] = 4616 And [Executable Info] = 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
でフィルタすると該当ログが抽出できるので、フィルタリング後の件数を答えると正答。2371
Task 11
What is the SID of the victim user? 被害者ユーザーの SID は何ですか?
イベントログの適当なログからgladysのSIDを取って来れば良いです。
サブジェクト: セキュリティ ID: S-1-5-21-3720869868-2926106253-3446724670-1003 アカウント名: gladys アカウント ドメイン: DESKTOP-R30EAMH ログオン ID: 0x345D6D
みたいに残っているのでS-1-5-21-3720869868-2926106253-3446724670-1003
が答え。