YARA · Signature Base (Florian Roth / Nextron)
SIGNATURE_BASE_APT_MAL_LNX_Hunting_Linux_WHIRLPOOL_1
Hunting rule looking for strings observed in WHIRLPOOL samples.
- Author
- Mandiant
- Date
- 2023-06-15
- Modified
- 2023-12-05
- Score / Quality
- 70 / 85
What this rule detects
Hunting rule looking for strings observed in WHIRLPOOL samples.
Targets: Linux ELF.
It defines 7 patterns (6 text, 1 hex, 0 regex).
Summary generated from the rule's metadata and condition.
Rule source
rule SIGNATURE_BASE_APT_MAL_LNX_Hunting_Linux_WHIRLPOOL_1 : FILE
{
meta:
= "Hunting rule looking for strings observed in WHIRLPOOL samples."
= "Mandiant"
= "a997bd65-c502-53a0-8bb8-62daaa916f0d"
= "2023-06-15"
= "2023-12-05"
= "https://www.mandiant.com/resources/blog/barracuda-esg-exploited-globally"
= "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/yara/apt_barracuda_esg_unc4841_jun23.yar#L154-L173"
= "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/LICENSE"
= "177add288b289d43236d2dba33e65956"
= "d03c0e292b9b97bbf76585fc74208e4263d753807b8e4a445be80d41264d5432"
= 70
= 85
= "FILE"
strings:
$s1 = "error -1 exit" fullword
$s2 = "create socket error: %s(error: %d)\n" fullword
$s3 = "connect error: %s(error: %d)\n" fullword
$s4 = {C7 00 20 32 3E 26 66 C7 40 04 31 00}
$c1 = "plain_connect" fullword
$c2 = "ssl_connect" fullword
$c3 = "SSLShell.c" fullword
condition:
uint32( 0 ) == 0x464c457f and filesize < 15MB and ( all of ( $s* ) or all of ( $c* ) )
}
Strings (7 patterns)
| Identifier | Type | Value | Modifiers |
|---|---|---|---|
| $s1 | text | "error -1 exit" | fullword |
| $s2 | text | "create socket error: %s(error: %d)\n" | fullword |
| $s3 | text | "connect error: %s(error: %d)\n" | fullword |
| $s4 | hex | {C7 00 20 32 3E 26 66 C7 40 04 31 00} | |
| $c1 | text | "plain_connect" | fullword |
| $c2 | text | "ssl_connect" | fullword |
| $c3 | text | "SSLShell.c" | fullword |
Condition
uint32( 0 ) == 0x464c457f and filesize < 15MB and ( all of ( $s* ) or all of ( $c* ) )In plain words (Heuristic)
- The file must start with the ELF header — a Linux/Unix executable.
- The file must be smaller than 15MB (a cheap guard that skips large files).
- All patterns in ( $s* ) must match.
- All patterns in ( $c* ) must match.
Test this rule in your browser
Drop a file to scan it with this rule using YARA-X compiled to WebAssembly. Nothing is uploaded.
Sample hashes
Hashes of samples the author lists in the rule's meta (look them up in your threat-intelligence platform).
- 177add288b289d43236d2dba33e65956
Licence & attribution
Author: Mandiant
Source repository: Signature Base (Florian Roth / Nextron) @ 94a1c48d7a
Licence: Detection Rule License 1.1 (repository licence)
Mirrored via YARA Forge 20260927, which prefixes rule names with the source and adds normalised meta fields.
Rule id: a997bd65-c502-53a0-8bb8-62daaa916f0d
Tags:FILE
Related rules
- APT / threat actorSignature Base (Florian Roth / Nextron)· Mandiant· 2022-04-28
- APT / threat actorSignature Base (Florian Roth / Nextron)· Mandiant· 2023-04-20
- APT / threat actorSignature Base (Florian Roth / Nextron)· Mandiant· 2023-04-20
- APT / threat actorSignature Base (Florian Roth / Nextron)· Mandiant· 2023-04-20
- APT / threat actorSignature Base (Florian Roth / Nextron)· Mandiant· 2023-04-20
- APT / threat actorSignature Base (Florian Roth / Nextron)· Mandiant· 2023-04-20
- APT / threat actorSignature Base (Florian Roth / Nextron)· Mandiant· 2023-04-20
- APT / threat actorSignature Base (Florian Roth / Nextron)· Mandiant· 2023-03-04