はまやんはまやんはまやん

hamayanhamayan's blog

Hack The Box Sherlocks - TickTock Writeup

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

https://gchq.github.io/CyberChef/#recipe=From_Base64('A-Za-z0-9%2B/%3D',true,false)Decode_text('UTF-16LE%20(1200)')&input=SkFCVEFHVUFZd0IxQUhJQVpRQlRBSFFBY2dCcEFHNEFad0FnQUQwQUlBQkRBRzhBYmdCMkFHVUFjZ0IwQUZRQWJ3QXRBRk1BWlFCakFIVUFjZ0JsQUZNQWRBQnlBR2tBYmdCbkFDQUFJZ0J5QUdVQVlRQnNBR3dBZVFCc0FHOEFiZ0JuQUhBQVlRQnpBSE1BZHdCdkFISUFaQUFpQUNBQUxRQkJBSE1BVUFCc0FHRUFhUUJ1QUZRQVpRQjRBSFFBSUFBdEFFWUFid0J5QUdNQVpRQUtBRVVBYmdCaEFHSUFiQUJsQUMwQVFnQnBBSFFBVEFCdkFHTUFhd0JsQUhJQUlBQXRBRTBBYndCMUFHNEFkQUJRQUc4QWFRQnVBSFFBSUFBaUFFTUFPZ0FpQUNBQUxRQkZBRzRBWXdCeUFIa0FjQUIwQUdrQWJ3QnVBRTBBWlFCMEFHZ0Fid0JrQUNBQVFRQmxBSE1BTWdBMUFEWUFJQUF0QUZVQWN3QmxBR1FBVXdCd0FHRUFZd0JsQUU4QWJnQnNBSGtBSUFBdEFGQUFhUUJ1QUNBQUpBQlRBR1VBWXdCMUFISUFaUUJUQUhRQWNnQnBBRzRBWndBPQ

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.evtxZimmermanToolsの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が答え。