https://app.hackthebox.com/sherlocks/OpTinselTrace-5
Hack The Box Sherlocksとは
Sherlock Scenario
You'll notice a lot of our critical server infrastructure was recently transferred from the domain of our MSSP - Forela.local over to Northpole.local. We actually managed to purchase some second hand servers from the MSSP who have confirmed they are as secure as Christmas is! It seems not as we believe christmas is doomed and the attackers seemed to have the stealth of a clattering sleigh bell, or they didn’t want to hide at all!!!!!! We have found nasty notes from the Grinch on all of our TinkerTech workstations and servers! Christmas seems doomed. Please help us recover from whoever committed this naughty attack!
最近、重要なサーバー インフラストラクチャの多くが MSSP のドメイン (Forela.local) から Northpole.local に移管されたことがわかります。実際、私たちは MSSP から中古サーバーをいくつか購入することができました。MSSP はクリスマスと同じくらい安全であることを確認しました。私たちが信じているようにクリスマスは滅びる運命にあるわけではないようで、攻撃者らはそりのカタカタ音を立てるような鐘の音のようなステルスを持っていたか、まったく隠れたくなかったように見えました!!!!!! すべての TinkerTech ワークステーションとサーバーで、グリンチからの厄介なメモが見つかりました。クリスマスは運命にあるようだ。このいたずらな攻撃を行った人物から立ち直るためにご協力ください。
2023年のSherlocksクリスマスイベント問題の5問目、最終問題。
Windowsに対するフォレンジックデータを解析していく。
Tasks
Task 1
Which CVE did the Threat Actor (TA) initially exploit to gain access to DC01?
脅威アクター (TA) が DC01 にアクセスするために最初に悪用したのはどの CVE ですか?
とりあえずノーヒントなのでイベントログをhayabusaで解析してみる。
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ Top critical alerts: Top high alerts: │ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │ Active Directory Replication from Non Machine Account (66) Mimikatz DC Sync (66) │ │ Defender Alert (Severe) (36) Antivirus Relevant File Paths Alerts (24) │ │ Antivirus Exploitation Framework Detection (6) Antivirus Hacktool Detection (18) │ │ Antivirus Ransomware Detection (2) Defender Alert (High) (14) │ │ Antivirus Password Dumper Detection (1) User Added To Global Domain Admins Grp (6) │ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
この結果を眺めるとこんな感じの検出が出ている。
2023-12-13 09:19:52Z | Mimikatz DC Sync 2023-12-13 09:24:27Z | powershell.exe -c Reset-ComputerMachinePassword
ここからZeroLogonが使われていることを当てる。大分時間をかけてしまった。
CVE-2020-1472
が答え。
Task 2
What time did the TA initially exploit the CVE? (UTC)
TA が最初に CVE を悪用したのはいつですか? (UTC)
どのタイミングを悪用タイミングと判断するかであるが、ZeroLogonを使ってマシンアカウントのパスワードを変更した履歴の日時を答えると正答だった。
Security.evtxからEventId:4742を漁り、Task 1で報告のあった時刻に近いものを答える。2023-12-13 09:24:23
Task 3
What is the name of the executable related to the unusual service installed on the system around the time of the CVE exploitation?
CVE の悪用の頃にシステムにインストールされた異常なサービスに関連する実行可能ファイルの名前は何ですか?
サービスインストールに関連するイベントログを探そう。
System.evtxのEventId:7045に情報が残っていた。
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> - <System> <Provider Name="Service Control Manager" Guid="{555908d1-a6d7-4695-8e1e-26931d2012f4}" EventSourceName="Service Control Manager" /> <EventID Qualifiers="16384">7045</EventID> <Version>0</Version> <Level>4</Level> <Task>0</Task> <Opcode>0</Opcode> <Keywords>0x8080000000000000</Keywords> <TimeCreated SystemTime="2023-12-13T09:24:23.3902677Z" /> <EventRecordID>18393</EventRecordID> <Correlation /> <Execution ProcessID="700" ThreadID="2648" /> <Channel>System</Channel> <Computer>DC01.northpole.local</Computer> <Security UserID="S-1-5-21-555278382-3747106525-1010465941-500" /> </System> - <EventData> <Data Name="ServiceName">vulnerable_to_zerologon</Data> <Data Name="ImagePath">%systemroot%\hAvbdksT.exe</Data> <Data Name="ServiceType">user mode service</Data> <Data Name="StartType">demand start</Data> <Data Name="AccountName">LocalSystem</Data> </EventData> </Event>
答えるべきは実行ファイルの名前なので hAvbdksT.exe
が答え。
Task 4
What date & time was the unusual service start?
異例のサービス開始日時は何時ですか?
サービスの状態変更についてはEventID:7036に残るので、これでフィルタリングしてサービス名の
vulnerable_to_zerologon
で検索すれば見つかる。
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> - <System> <Provider Name="Service Control Manager" Guid="{555908d1-a6d7-4695-8e1e-26931d2012f4}" EventSourceName="Service Control Manager" /> <EventID Qualifiers="16384">7036</EventID> <Version>0</Version> <Level>4</Level> <Task>0</Task> <Opcode>0</Opcode> <Keywords>0x8080000000000000</Keywords> <TimeCreated SystemTime="2023-12-13T09:24:24.1072677Z" /> <EventRecordID>18395</EventRecordID> <Correlation /> <Execution ProcessID="700" ThreadID="792" /> <Channel>System</Channel> <Computer>DC01.northpole.local</Computer> <Security /> </System> - <EventData> <Data Name="param1">vulnerable_to_zerologon</Data> <Data Name="param2">running</Data> <Binary>760075006C006E0065007200610062006C0065005F0074006F005F007A00650072006F006C006F0067006F006E002F0034000000</Binary> </EventData> </Event>
2023-12-13 09:24:24
が答え。
Task 5
What was the TA's IP address within our internal network?
内部ネットワーク内の TA の IP アドレスは何でしたか?
2023-12-13 09:24:24Z
周りで攻撃が発生していそうなので、このあたりのログイン履歴を見てみる。
EventId:4624でフィルタリングして眺める。
すると、見慣れぬNORTHPOLE\DC01$
でのログインが2023-12-13 09:24:23に発生している。
この時に使われたIPアドレスを使うと正答。
{"EventData":{"Data":[{"@Name":"SubjectUserSid","#text":"S-1-0-0"},{"@Name":"SubjectUserName","#text":"-"},{"@Name":"SubjectDomainName","#text":"-"},{"@Name":"SubjectLogonId","#text":"0x0"},{"@Name":"TargetUserSid","#text":"S-1-5-21-555278382-3747106525-1010465941-1000"},{"@Name":"TargetUserName","#text":"DC01$"},{"@Name":"TargetDomainName","#text":"NORTHPOLE"},{"@Name":"TargetLogonId","#text":"0x1E1165"},{"@Name":"LogonType","#text":"3"},{"@Name":"LogonProcessName","#text":"NtLmSsp "},{"@Name":"AuthenticationPackageName","#text":"NTLM"},{"@Name":"WorkstationName"},{"@Name":"LogonGuid","#text":"00000000-0000-0000-0000-000000000000"},{"@Name":"TransmittedServices","#text":"-"},{"@Name":"LmPackageName","#text":"NTLM V2"},{"@Name":"KeyLength","#text":"128"},{"@Name":"ProcessId","#text":"0x0"},{"@Name":"ProcessName","#text":"-"},{"@Name":"IpAddress","#text":"192.168.68.200"},{"@Name":"IpPort","#text":"53228"},{"@Name":"ImpersonationLevel","#text":"%%1833"},{"@Name":"RestrictedAdminMode","#text":"-"},{"@Name":"TargetOutboundUserName","#text":"-"},{"@Name":"TargetOutboundDomainName","#text":"-"},{"@Name":"VirtualAccount","#text":"%%1843"},{"@Name":"TargetLinkedLogonId","#text":"0x0"},{"@Name":"ElevatedToken","#text":"%%1842"}]}}
よって192.168.68.200
が答え。
Task 6
Please list all user accounts the TA utilised during their access. (Ascending order)
TA がアクセス中に使用したすべてのユーザー アカウントをリストしてください。(昇順)
EventId:4624でフィルタリングして、更にキーワードとして192.168.68.200
を使って絞り込もう。
NORTHPOLE\DC01$ NORTHPOLE\Administrator NORTHPOLE\Bytesparkle NT AUTHORITY\ANONYMOUS LOGON
このようにログイン履歴が残っている。
ユーザーアカウントに絞って答えると Administrator, Bytesparkle
が答えだった。
Task 7
What was the name of the scheduled task created by the TA?
TA が作成したスケジュールされたタスクの名前は何ですか?
C:\Windows\System32\Tasks
以下を見てみると、C:\Windows\System32\Tasks\Microsoft\svc_vnc
というファイルがある。
svc_vnc
が答え。
ちなみにNORTHPOLE\bytesparkle
が追加したみたい。
Task 8
Santa's memory is a little bad recently! He tends to write a lot of stuff down, but all our critical files have been encrypted! Which creature is Santa's new sleigh design planning to use?
最近サンタさんの物覚えが悪いんです!彼は多くのことを書き留める傾向がありますが、私たちの重要なファイルはすべて暗号化されています。サンタの新しいそりのデザインで使用される予定の生き物はどれですか?
splunk_svd.dll
をghidraに入れて解析してみると、暗号化処理を行っているように見える。
それっぽい暗号化処理を探していくと、このような部分が見つかる。
fputc((int)"EncryptingC4Fun!"[lVar29] ^ uVar18,_File_00);
EncryptingC4Fun!
でXORしているだけでは?ということで、
topsecret.png.xmax
についてEncryptingC4Fun!
でXORするとpngファイルが復元できる。
中を見てみるとユニコーンの画像がTOP SECRETになっているので英語で答えると正答。
Unicorn
Task 9
Please confirm the process ID of the process that encrypted our files.
ファイルを暗号化したプロセスのプロセス ID を確認してください。
hayabusaでキーワード.xmax
で検索するとよく分からないイベントログが引っかかる。
2023-12-13 20:03:20.445 +09:00 ‖ DC01.northpole.local ‖ MS-Win-UAC-FileVirtualization/Op ‖ 4000 ‖ 42 ‖ - ‖ CreateOptions: 83886176 ¦ DesiredAccess: 1180054 ¦ FileNameBuffer: \Device\HarddiskVolume4\ProgramData\VMware\VMware VGAuth\vgauth.conf.xmax ¦ FileNameLength: 73 ¦ Flags: 8 ¦ IrpMajorFunction: 0 ¦ ProcessImageNameBuffer: \Device\HarddiskVolume4\Windows\System32\rundll32.exe ¦ ProcessImageNameLength: 53 ¦ Sid: S-1-5-21-555278382-3747106525-1010465941-1110 ¦ SidLength: 28 ‖ DC01.northpole.local-KAPE/uploads/auto/C%3A/Windows/System32/winevt/Logs/Microsoft-Windows-UAC-FileVirtualization%254Operational.evtx
よくわからんから開いて、.xmax
で検索して、イベントログを見る。
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> - <System> <Provider Name="Microsoft-Windows-UAC-FileVirtualization" Guid="{c02afc2b-e24e-4449-ad76-bcc2c2575ead}" /> <EventID>4000</EventID> <Version>0</Version> <Level>4</Level> <Task>0</Task> <Opcode>0</Opcode> <Keywords>0x8000000000000000</Keywords> <TimeCreated SystemTime="2023-12-13T11:03:20.4382420Z" /> <EventRecordID>37</EventRecordID> <Correlation /> <Execution ProcessID="5828" ThreadID="6480" /> <Channel>Microsoft-Windows-UAC-FileVirtualization/Operational</Channel> <Computer>DC01.northpole.local</Computer> <Security UserID="S-1-5-21-555278382-3747106525-1010465941-1110" /> </System> - <EventData> <Data Name="Flags">8</Data> <Data Name="SidLength">28</Data> <Data Name="Sid">S-1-5-21-555278382-3747106525-1010465941-1110</Data> <Data Name="FileNameLength">79</Data> <Data Name="FileNameBuffer">\Device\HarddiskVolume4\ProgramData\VMware\VMware Tools\tools.conf.example.xmax</Data> <Data Name="ProcessImageNameLength">53</Data> <Data Name="ProcessImageNameBuffer">\Device\HarddiskVolume4\Windows\System32\rundll32.exe</Data> <Data Name="CreateOptions">83886176</Data> <Data Name="DesiredAccess">1180054</Data> <Data Name="IrpMajorFunction">0</Data> </EventData> </Event>
よくわからんけどProcessIDが書いてあって答えると正答だった。5828
https://learn.microsoft.com/ja-jp/windows-server/security/user-account-control/how-user-account-control-works
ファイル操作はUACによって仮想化が挟まるらしい。
なんもわからんが、これによってファイル操作に対してログが残るようになる。