Skip to content

Conversation

@AAtashGar
Copy link

Add detection for BitLocker COM Hijacking Lateral Movement (T1546.015)

What does this PR do?

Adds a new experimental ESCU detection + analytic story for the novel BitLocker Network Unlock COM Object Hijacking technique published in August 2025.

This living-off-the-land lateral movement method:

  • Enables RemoteRegistry service
  • Writes a malicious DLL path to HKCU\Software\Classes\CLSID\{A7A63E5C-3877-4840-8727-C1EA9D7A4D50}\InprocServer32
  • Triggers code execution via baaupdate.exe (from explorer.exe) or BdeUISrv.exe (from svchost.exe)

This is the first public detection covering this advanced technique.

Files added:

  • detections/endpoint/lateral_movement_bitlocker_com_hijacking.yml
  • macros/lateral_movement_bitlocker_com_hijacking_filter.yml
  • stories/bitlocker_com_hijacking_lateral_movement.yml

Screenshots

Screenshot 2025-11-23 at 20-40-39 Search Splunk 10 0 1

Checklist

  • Validate name matches <platform>_<mitre att&ck technique>_<short description> nomenclature
  • [CI/CD](https://github.com/splunk/security_content/actions) jobs passed (local contentctl validate --path . → No issues)
  • Validated SPL logic (tested on simulated events)
  • Validated tags, description, how_to_implement, known_false_positives
  • Verified references match analytic
  • No lookup updates — N/A
  • All lines < 80 characters, yamllint clean

Testing Performed

→ Validation Completed - No issues detected!

→ All files valid

@nasbench
Copy link
Contributor

Hey @AAtashGar before reviewing this. Just wanted to ask any particular reason you want this as experimental instead of production. From your screenshot it looks like you have the data already.

Simply export it as raw and then upload it to https://github.com/splunk/attack_data as LFS with a corresponding yaml definition. (See old PRs for reference).

Or if you want you could upload the raw logs here and we will take care of it, if we deem the rule ineteresting.

@nasbench nasbench added the WIP DO NOT MERGE Work in Progress label Nov 25, 2025
@AAtashGar
Copy link
Author

Dear @nasbench
Regarding experimental vs production: I marked it experimental because it's a novel technique (first public detection) and I used simulated data from BitlockMove repo for testing. But you're right — I have the raw logs ready. I'll export them and create a PR to splunk/attack_data with YAML definition.

Should I change status to production after adding the data? Happy to upload raw logs here if needed.

Let me know if there's anything else!

@nasbench
Copy link
Contributor

@AAtashGar in this repo context. Production means tested rules aka with logs and experimental means untested. So yes once you upload the data to attack data and Link it you can switch the status and I can start reviewing it.

Cheers

@AAtashGar
Copy link
Author

@nasbench Perfect, thanks for clarifying! Got it
I'll export the raw logs and create a PR to splunk/attack_data, After that, I'll update the status to production and push the change. Looking forward to your review
Thank you

@AAtashGar
Copy link
Author

@nasbench Done! attack_data PR created with LFS logs and YAML definition:
splunk/attack_data#1098

Status changed to production in detection file and pushed.

Ready for review — thanks!

@AAtashGar AAtashGar changed the title detection(experimental): Lateral Movement via BitLocker COM Hijacking detection Lateral Movement via BitLocker COM Hijacking Nov 25, 2025
@nasbench nasbench self-assigned this Dec 12, 2025
@@ -0,0 +1,3 @@
name: lateral_movement_via_bitlocker_com_hijacking_filter
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AAtashGar - these filter macros are auto generated during build time ! can we remove this macros/ file from the PR

@@ -0,0 +1,32 @@
---
# Analytic Story: BitLocker COM Hijacking Lateral Movement
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lets remove the line1 and 2

id: 9d1f4a2b-6e3c-4f7d-8a9b-1c5e7f8d3e4f
version: 1
date: '2025-11-23'
author: Ali Atashgar (AAtashGar)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you add Ali Atashgar (AAtashGar), Github Community

author: Ali Atashgar (AAtashGar)
status: production
description: |
Detection content for the 2025 BitLocker COM hijacking lateral
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we perhaps add more details to this description?

id: 990d5907-c022-4358-9ada-f6e5e69514e8
version: 1
date: '2025-09-28'
author: AAtashGar
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you add Ali Atashgar (AAtashGar), Github Community

@@ -0,0 +1,140 @@
---
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets remove this line 1

handle operations on CLSIDs, and executions of specific processes like
baaupdate.exe and BdeUISrv.exe. These events are correlated by host to
detect sequences indicative of this attack vector.
type: Correlation
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

update this type to TTP

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Detections Macros Stories WIP DO NOT MERGE Work in Progress

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants