Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add 4 miscellaneous persistence techniques #956

Merged

Conversation

jorik-utwente
Copy link
Contributor

Add 4 miscellaneous persistence techniques.

The BITS Jobs and WMI subscription rules may result in false positives because of the ole32.CoCreateInstance matching.
We might want to remove that part, but that would result in false negatives. Thoughts on this are welcome! :)

This PR requires #952 to be merged.

@jorik-utwente jorik-utwente changed the title Add 4 miscellaneous persistence techniques. Add 4 miscellaneous persistence techniques Nov 5, 2024
Copy link
Collaborator

@mr-tz mr-tz left a comment

Choose a reason for hiding this comment

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

very cool, see my initial feedback attached

nursery/persist-via-bits-job.yml Outdated Show resolved Hide resolved
nursery/persist-via-application-shimming.yml Show resolved Hide resolved
nursery/persist-via-application-shimming.yml Outdated Show resolved Hide resolved
nursery/persist-via-application-shimming.yml Show resolved Hide resolved
nursery/persist-via-application-shimming.yml Outdated Show resolved Hide resolved
nursery/persist-via-bits-job.yml Outdated Show resolved Hide resolved
nursery/persist-via-wmi-event-subscription.yml Outdated Show resolved Hide resolved
Comment on lines 17 to 18
- api: ole32.CoCreateInstance
- com/class: BackgroundCopyManager # 4991d34b-80a1-4291-83b6-3328366b9097
Copy link
Collaborator

Choose a reason for hiding this comment

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

do you think it's enough signal to just see the COM usage?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

There could be false positives here indeed, but from my experience malware mostly uses BITS for persistence. So in this case I would argue the COM usage is enough

Copy link
Collaborator

Choose a reason for hiding this comment

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

per the reference, BITS could also be used to download a payload, for example

Copy link
Collaborator

Choose a reason for hiding this comment

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

we could change the rule to detect BITS usage in general here

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I removed the COM part in the latest commit. Now the rule looks for the cmd/powershell commands. This removes the false positives. As you said, we could add a rule in the future to detect BITS usage in general.

Comment on lines 18 to 19
- api: ole32.CoCreateInstance
- com/class: WbemLocator # 4590F811-1D3A-11D0-891F-00AA004B2E24
Copy link
Collaborator

Choose a reason for hiding this comment

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

do you think it's enough signal to just see the COM usage?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Malware also uses WMI for information gathering etc.. To reduce false positives we should remove it indeed. I don't see any way in Cape that we can use to reduce the false positives, as we can't match the communication with WMI.

Copy link
Collaborator

Choose a reason for hiding this comment

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

agreed, for static analysis we could add more details, for dynamic I'd have to do more research myself to see what features are available

Copy link
Collaborator

Choose a reason for hiding this comment

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

like above we could generalize the rule to detect WMI usage

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I moved this to the rule for WMI usage detection. Let me know what you think.

Copy link
Collaborator

@mr-tz mr-tz left a comment

Choose a reason for hiding this comment

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

LGTM, thank you!

- string: /ROOT\\DEFAULT/i
- or:
- call:
- description: dynamic detection rule
Copy link
Collaborator

Choose a reason for hiding this comment

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

this is great, thank you!

@mr-tz mr-tz merged commit f3bb093 into mandiant:master Nov 25, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants