YARA · Signature Base (Florian Roth / Nextron)
SIGNATURE_BASE_FE_APT_Webshell_PL_PULSECHECK_1
Detects samples mentioned in PulseSecure report
APT / threat actorSignature Base (Florian Roth / Nextron)Detection Rule License 1.1Compiles with YARA-X
- Author
- Mandiant
- Date
- 2021-04-16
- Modified
- 2023-12-05
- Score / Quality
- 75 / 85
What this rule detects
Detects samples mentioned in PulseSecure report
It defines 8 patterns (7 text, 0 hex, 1 regex).
Summary generated from the rule's metadata and condition.
Rule source
fe-apt-webshell-pl-pulsecheck-1.yarDetection Rule License 1.1
rule SIGNATURE_BASE_FE_APT_Webshell_PL_PULSECHECK_1
{
meta:
= "Detects samples mentioned in PulseSecure report"
= "Mandiant"
= "f375fdd8-567b-569b-85f4-af54a35d2a93"
= "2021-04-16"
= "2023-12-05"
= "https://www.fireeye.com/blog/threat-research/2021/04/suspected-apt-actors-leverage-bypass-techniques-pulse-secure-zero-day.html"
= "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/yara/apt_pulsesecure.yar#L116-L136"
= "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/LICENSE"
= "a1dcdf62aafc36dd8cf64774dea80d79fb4e24ba2a82adf4d944d9186acd1cc1"
= "aba457dd33232ef37ca145c5b7cd9c5fe809730339a55c5e90ac46b4a136f6cb"
= 75
= 85
= ""
strings:
$r1 = /while[\x09\x20]{0,32}\(<\w{1,64}>\)[\x09\x20]{0,32}\{\s{1,256}\$\w{1,64}[\x09\x20]{0,32}\.=[\x09\x20]{0,32}\$_;\s{0,256}\}/
$s1 = "use Crypt::RC4;"
$s2 = "use MIME::Base64"
$s3 = "MIME::Base64::decode("
$s4 = "popen("
$s5 = " .= $_;"
$s6 = "print MIME::Base64::encode(RC4("
$s7 = "HTTP_X_"
condition:
$s1 and $s2 and ( @s3 [ 1 ] < @s4 [ 1 ] ) and ( @s4 [ 1 ] < @s5 [ 1 ] ) and ( @s5 [ 1 ] < @s6 [ 1 ] ) and ( #s7 > 2 ) and $r1
}
Strings (8 patterns)
| Identifier | Type | Value | Modifiers |
|---|---|---|---|
| $r1 | regex | /while[\x09\x20]{0,32}\(<\w{1,64}>\)[\x09\x20]{0,32}\{\s{1,256}\$\w{1,64}[\x09\x20]{0,32}\.=[\x09\x20]{0,32}\$_;\s{0,256}\}/ | |
| $s1 | text | "use Crypt::RC4;" | |
| $s2 | text | "use MIME::Base64" | |
| $s3 | text | "MIME::Base64::decode(" | |
| $s4 | text | "popen(" | |
| $s5 | text | " .= $_;" | |
| $s6 | text | "print MIME::Base64::encode(RC4(" | |
| $s7 | text | "HTTP_X_" |
Condition
$s1 and $s2 and ( @s3 [ 1 ] < @s4 [ 1 ] ) and ( @s4 [ 1 ] < @s5 [ 1 ] ) and ( @s5 [ 1 ] < @s6 [ 1 ] ) and ( #s7 > 2 ) and $r1In plain words (Heuristic)
- Pattern $s7 must occur > 2 times.
- Pattern $s1 must be present.
- Pattern $s2 must be present.
- Pattern $r1 must be present.
Test this rule in your browser
Drop a file to scan it with this rule using YARA-X compiled to WebAssembly. Nothing is uploaded.
Drop a file here or click to chooseScanned locally with YARA-X. Files up to 200 MB.
Sample hashes
Hashes of samples the author lists in the rule's meta (look them up in your threat-intelligence platform).
- a1dcdf62aafc36dd8cf64774dea80d79fb4e24ba2a82adf4d944d9186acd1cc1
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: f375fdd8-567b-569b-85f4-af54a35d2a93
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