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

hamayanhamayan's blog

Hack The Box Sherlocks - OpTinselTrace-5 Writeup

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によって仮想化が挟まるらしい。
なんもわからんが、これによってファイル操作に対してログが残るようになる。