428 Commits
Author SHA1 Message Date
ninadgowdru 805f9eaccf rule: graduate .NET time delay rule (#1196)
Resolves #1178 by moving the final rule out of nursery.
2026-09-08 15:06:23 -06:00
ninadgowdru 9b81293a81 rule: graduate four rules from nursery
Fixes #1178 by moving the .NET time delay and three thread pool injection rules out of the nursery.
2026-08-31 19:30:33 +05:30
w3lld1 a49d066055 feat: add SearchPath rule coverage (#1175)
* feat: add SearchPath rule coverage

* fix: address SearchPath rule review

* fix: address final SearchPath rule review

* fix: align SearchPath rule filename
2026-08-10 10:49:22 -06:00
Still / Azaka 67f626eecb Detect assembly loading via nLoadImage (#1172)
* Initial support for nLoadImage

Signed-off-by: Still Hsu <[email protected]>

* Merge 'invoke .NET assembly method' rule match into condition

Signed-off-by: Still Hsu <[email protected]>

* Update dynamic scope per requested changes

https://github.com/mandiant/capa-rules/pull/1172#discussion_r3647155878
Signed-off-by: Still Hsu <[email protected]>

---------

Signed-off-by: Still Hsu <[email protected]>
2026-07-28 10:59:09 -06:00
CaptWake 524cbaa5b6 Fix namespace typo error 2026-06-19 10:12:44 +02:00
Willi Ballenthin 97f800e26d fix invalid regex syntax
nursery/disable-automatic-windows-recovery-features.yml — Patterns
contain {default} which some regex engines interprets as a repetition
quantifier. fix: escape as \{default\}.

nursery/persist-via-hhctrl-com-hijack.yml — Pattern contains
{52A2AAAE-085D-4187-97EA-8C30DB990436} (a GUID). fix: escape as
\{52A2AAAE-085D-4187-97EA-8C30DB990436\}

closes #1163
2026-06-12 15:09:53 +02:00
Ange Albertini 2a7f18b12e Add rule for PE stored as UUID (#1158) 2026-05-20 09:09:00 +02:00
Aryan KhandhadiyaandMike Hunhoff 89637fba22 Add .NET Environment.TickCount timing anti-debug rule (#1137)
* Passing all the lint rules and the test

* Update nursery/check-for-time-delay-in-dotnet.yml

* Update nursery/check-for-time-delay-in-dotnet.yml

---------

Co-authored-by: Mike Hunhoff <[email protected]>
2026-05-15 13:11:58 -06:00
Mike Hunhoff 2adb480e41 add new .NET rules (#1157) 2026-05-15 08:05:49 -06:00
Ange Albertini 3839c06e79 Merge pull request #1156 from corkamig/patch-1
Add rule for payload stored as IPv6 strings
2026-05-15 12:32:33 +02:00
msanchit-dev 2af9fbfc1c add get http custom header (#1147)
* add get http custom header

* Rename rule as per review feedback

* rename rule file to fix linting error
2026-03-31 10:39:02 -06:00
Aryan Khandhadiya 7bb186f6d6 Add nursery rules for Linux kernel rootkit techniques (#1136)
* Add nursery rules for Linux kernel rootkit techniques

* Address review comments: update scopes, namespace, and authors
2026-03-27 11:03:16 -06:00
Tarang 03a20f69ae Split .NET features from windows file & process rules (#1130)
* remove .NET features

* create separate read-file-in-dotnet.yml

* remove .NET features

* create separate write-file-dotnet.yml

* split create process rule into windows & .NET

* change static scope to instruction

* change static scope to insn and add dotnet match

* change static & dynamic scope to insn & call and add dotnet match

* change static scope to insn
2026-03-12 11:41:24 -06:00
Akshat Pal 3ce071c2f9 broaden ITaskService scheduled-task detection for .NET TaskService usage (#1133)
* broaden ITaskService scheduled-task detection for .NET TaskService usage

* requested-changes
2026-03-12 11:08:16 -06:00
Tarang 5c346a3389 Add get HTTP Query date (#1128)
* rule: add get http query date

* change to github username
2026-03-12 11:04:32 -06:00
Maijin f0292fc977 feat(targeting): add cloud and container collection/interaction rules (#1098)
This adds rules for:

- enumerating AWS resources (CloudFormation, CloudTrail, DirectConnect, EC2, IAM, S3, Support)

- stealing credentials for AWS, GCP, Cloudflare

- stealing credentials for Docker and Kubernetes

Rules are categorized into host-interaction and collection namespaces.
2026-02-23 09:32:32 -07:00
Saniya Fatima 94e855bebc Fix: False positive in UDP socket (#1111) 2026-01-30 10:04:39 -07:00
Still / Azaka 6120dfb6e0 Add Thread Pool injection techniques (#1087)
* Add Thread Pool injection techniques

Signed-off-by: Still Hsu <[email protected]>

* Fix format

Signed-off-by: Still Hsu <[email protected]>

* Replace filename to be lint-compliant

Signed-off-by: Still Hsu <[email protected]>

* Add description for each of the rules

Signed-off-by: Still Hsu <[email protected]>

* Remove PoolParty PoC reference

Signed-off-by: Still Hsu <[email protected]>

---------

Signed-off-by: Still Hsu <[email protected]>
2025-12-04 10:17:27 -07:00
Mike Hunhoff 3b42582539 adding/updating rules based on recent samples (#1085) 2025-11-25 13:38:55 -07:00
Mike Hunhoff 7a52b6f9c0 dotnet: adding new rules based on recent samples (#1082)
* dotnet: adding new rules based on recent samples
2025-11-07 08:39:46 +01:00
Zeze 9e4cc28265 feat: log keystrokes via rawinput (#1078)
* feat: log keystrokes via directx

* fix: williballenthin review

* move register-raw-input-devices from nursery

* use original rule name
2025-10-28 09:20:39 -06:00
JJ 1a065e6dea Move get-routing-table.yml out of nursery. Add enumerate-tcp-connecti… (#1074)
* Move get-routing-table.yml out of nursery. Add enumerate-tcp-connections-via-wmi-com-api.yml and create-routing-table-entry.yml

* Update scopes in enumerate-tcp-connections-via-wmi-com-api.yml, create-routing-table-entry.yml, get-routing-table.yml
2025-09-09 13:21:48 -06:00
Elad Levi 5d990adef2 Move impersonate user from nursery (#1072)
* Move and update impersonate-user rule

Renamed impersonate-user.yml from nursery to host-interaction/user and added an examples section with a sample hash.

* Simplify API checks in impersonate-user rule

Removed optional and or conditions for GetUserName and DuplicateToken APIs

* Bring the Ex back
2025-09-03 10:27:04 -06:00
JJ 35b17b676e Merge linking/static/hp-socket/linked-against-hp-socket.yml and nursery/linked-against-hp-socket.yml (#1070) 2025-08-22 08:57:57 -06:00
Mike Hunhoff 7a719809d1 new/updated rules from recent malware samples (#1063) 2025-08-12 10:21:05 -06:00
Moritz 2f09b4d471 add create executable heap rule (#1058) 2025-08-04 12:40:42 -06:00
Mike Hunhoff d64c2c91ea add new rules to detect disabling system features via registry on Windows (#1034)
* add new rules to detect disabling features via registry on Windows

* refactor

* refactor

* refactor

* update control registry regex to better handle multiple control sets
2025-03-24 10:38:19 -06:00
Mike Hunhoff 2800fd34de add disable-system-features-via-registry-on-windows (#1033)
* add disable-system-tools-via-registry-on-windows

* rename to "disable system features via registry on windows"
2025-03-21 08:39:42 -06:00
Tanmay R K af09ec07d0 detect usage of TripleDesCryptoServiceProvider (#1021)
* detect usage of TripleDESCryptoServiceProvider

* detect usage of TripleDes via dotnet api

* detect usage of TripleDesCryptoServiceProvider

* removed duplicate file

* seperate encrypt and decrypt methods

* changed file names to match desc

* lint fix

* lint fix

* small fixes
2025-03-20 09:06:27 -06:00
Mike Hunhoff e85887a875 fix: escape "." that are not expected to be dot operators (#1028) 2025-03-18 15:01:39 -06:00
Dhruva Kumar Kaushal 6697513245 improve TCP/UDP socket creation matching #964 (#993)
* improve TCP/UDP socket creation matching #964

* Adding references

* adding IPPROTO_UDP

* relax rule

* function -> basic block

* adding bytes for indirect(0)

* adding bytes for indirect(0)

* back to default changes

* moved to nursery

* final change

* resolving comment

* indentation error
2025-03-14 11:45:36 -06:00
vibhatsu 740d47393e Enter debug mode rule (#1022)
* add rule for enterdebugmode in nursery

Signed-off-by: vibhatsu <[email protected]>

* better description for enterdebugmode

Signed-off-by: vibhatsu <[email protected]>

* enter-debug-mode-in-dotnet: rename, reduce static scope to basic block, format dotnet only

Signed-off-by: vibhatsu <[email protected]>

* enter-debug-mode-in-dotnet: fix linting error

Signed-off-by: vibhatsu <[email protected]>

* enter-debug-mode-in-dotnet: more specific namespace

Signed-off-by: vibhatsu <[email protected]>

---------

Signed-off-by: vibhatsu <[email protected]>
2025-03-14 11:41:19 -06:00
Elad LeviandMike Hunhoff 3bd8cf7646 Improve Accuracy of Various Detections (#1010)
* Update impersonate-user.yml

* Update enumerate-processes-on-remote-desktop-session-host.yml

* Update enumerate-processes-on-remote-desktop-session-host.yml

* Update enumerate-processes-on-remote-desktop-session-host.yml

* Update nursery/impersonate-user.yml

Co-authored-by: Mike Hunhoff <[email protected]>

* Update host-interaction/process/list/enumerate-processes-on-remote-desktop-session-host.yml

Co-authored-by: Mike Hunhoff <[email protected]>

---------

Co-authored-by: Mike Hunhoff <[email protected]>
2025-03-10 14:19:23 -06:00
Mike Hunhoff 71dd21d88e tighten Windows mutex related rules (#1004) 2025-02-21 12:37:01 -07:00
Mike Hunhoff 8c62595952 use "span of calls" scope for registry operations that span multiple calls, e.g. open registry key and set value (#999)
* use span of calls scope for registry operations

* fix lints
2025-02-20 14:02:16 -07:00
Willi Ballenthin 79afc557f1 remove testing rule (#989) 2025-02-04 10:23:23 +01:00
Willi Ballenthin 0ea3394942 graduate onedrive rule
closes #943
2025-01-29 18:54:25 +01:00
Willi Ballenthin 36bf945aee fix scopes from lint errors
ref https://github.com/mandiant/capa/pull/2579
2025-01-29 18:54:25 +01:00
Willi BallenthinandMike Hunhoff c1d20764ad use "span of calls" scope (#973)
* use sequence scope instead of thread scope for "static: function" rules

* use sequence scope instead of thread scope for "static: basic block" rules

* make runtime linking rules more concise

* doc: describe sequence scope

* rename "sequence" scope to "span of calls" scope

* Update anti-analysis/anti-av/check-for-sandbox-and-av-modules.yml

Co-authored-by: Mike Hunhoff <[email protected]>

* Update anti-analysis/anti-vm/vm-detection/check-for-windows-sandbox-via-device.yml

Co-authored-by: Mike Hunhoff <[email protected]>

* Update collection/get-geographical-location.yml

Co-authored-by: Mike Hunhoff <[email protected]>

* Update collection/file-managers/gather-classicftp-information.yml

Co-authored-by: Mike Hunhoff <[email protected]>

* Update collection/database/wmi/reference-wmi-statements.yml

Co-authored-by: Mike Hunhoff <[email protected]>

* Update collection/database/sql/reference-sql-statements.yml

Co-authored-by: Mike Hunhoff <[email protected]>

---------

Co-authored-by: Mike Hunhoff <[email protected]>
2025-01-29 10:27:13 +01:00
vibhatsu b4e0c8cdf8 remove duplicate features from some rules (#984)
* remove duplicate features from some rules

* keep commented hex values to show AfdOpenPacketX structure

Signed-off-by: vibhatsu <[email protected]>

---------

Signed-off-by: vibhatsu <[email protected]>
2025-01-28 12:54:17 +01:00
Ana María Martínez Gómez 70851020c5 New rules: RSA & bigint (#982)
* Add use-bigint-function

Add new `data-manipulation/encryption/use-bigint-function.yml` rule to
identify bigint functions as these functions may help reverse engineers
identifying crypto. Example of bigint functions identified by this rule:
- `bi_copi`
- `bi_permanent`
- `bi_depermant`
- `bi_free`

Reference:
- https://github.com/ezhangle/krypton/blob/147d69429bfb03cce7113dca6dba36e77f8a9325/src/bigint.c
- https://github.com/bnoordhuis/mongrel2/blob/3e9b57d82aeb627be0aebfb346199bfdfd67e530/src/crypto/bigint.c

* Add rsa-encrypt

Add new rule `data-manipulation/encryption/rsa/rsa-encrypt.yml` that
identifies the RSA encryption implementation from:
- https://github.com/ezhangle/krypton/blob/147d69429bfb03cce7113dca6dba36e77f8a9325/src/rsa.c#L232
- https://github.com/bnoordhuis/mongrel2/blob/3e9b57d82aeb627be0aebfb346199bfdfd67e530/src/crypto/rsa.c#L233

Rename current RSA encryption/decryption rules in the nursery to add
`via WinAPI` to prevent name conflict.
2025-01-21 11:36:04 -07:00
Jorik e033410c89 Add 38 new registry-based persistence techniques (#954)
* Add 38 new registry-based persistence techniques

* fix hhctrl com hijack match statement

* fix core_profiler_path rule

* remove optional from disk cleanup handler rule

* update dotnet_startup_hooks

* improve filter handler rule

* update persist via PATH

* merge task schedule persistence with existing rule

* update UserInitMprLogonScript rule

* merge universal app uri with default file association; add better reference
2024-12-09 11:29:56 +01:00
JorikandMoritz ce5e041006 Improve existing persistence rules (#953)
* Improve existing persistence rules by limiting their scope, and adding some more details.

* Update persistence/startup-folder/write-file-to-startup-folder.yml

Co-authored-by: Moritz <[email protected]>

* change scope to call for shell command via WRM

* Update persistence/startup-folder/write-file-to-startup-folder.yml

Co-authored-by: Moritz <[email protected]>

* fix startup folder persistence rule

* change name screensaver persistence technique

* change name screensaver persistence technique pt 2

* fix write to startup folder persistence rule

---------

Co-authored-by: Moritz <[email protected]>
2024-12-09 10:51:47 +01:00
JorikandMoritz ed816a8e53 Add 10 file system-based persistence techniques (#955)
* Add file system based persistence techniques

---------

Co-authored-by: Moritz <[email protected]>
2024-12-03 17:26:03 +01:00
Moritz f3bb093ab0 Merge pull request #956 from jorik-utwente/add-miscellaneous-persistence-techniques
Add 4 miscellaneous persistence techniques
2024-11-25 09:21:49 +01:00
jorik 5873d7ff75 Remove COM usage detection from BITS jobs persistence 2024-11-22 16:16:19 +01:00
jorik 82a9d4030e move WMI persistence rule to WMI usage detection rule 2024-11-22 16:12:11 +01:00
Moritz cd12dbfa39 enable namespace 2024-11-18 18:45:50 +01:00
jorik 2627820f8b add comment about overwriting .sdb files 2024-11-15 15:05:30 +01:00
jorik d95d7b6027 add sdbinst.exe to shimming rule 2024-11-13 11:56:26 +01:00