YARA · Signature Base (Florian Roth / Nextron)
SIGNATURE_BASE_M_APT_VIRTUALPITA_3
Finds opcodes from 409dd8 to 409e46 in fe34b7c071d96dac498b72a4a07cb246 to set the HISTFILE environment variable to 'F' with a putenv() after loading each character individually.
- Author
- Mandiant
- Date
- 2022-10-01
- Modified
- 2025-12-19
- Score / Quality
- 75 / 85
What this rule detects
Finds opcodes from 409dd8 to 409e46 in fe34b7c071d96dac498b72a4a07cb246 to set the HISTFILE environment variable to 'F' with a putenv() after loading each character individually.
Targets: Linux ELF.
It defines 1 patterns (0 text, 1 hex, 0 regex).
Summary generated from the rule's metadata and condition.
Rule source
rule SIGNATURE_BASE_M_APT_VIRTUALPITA_3 : FILE
{
meta:
= "Finds opcodes from 409dd8 to 409e46 in fe34b7c071d96dac498b72a4a07cb246 to set the HISTFILE environment variable to 'F' with a putenv() after loading each character individually."
= "Mandiant"
= "29ea2db0-4ab2-5e9c-8d42-7590ceabf99a"
= "2022-10-01"
= "2025-12-19"
= "https://github.com/Neo23x0/signature-base"
= "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/yara/apt_unc3886_virtualpita.yar#L27-L37"
= "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/LICENSE"
= "fe34b7c071d96dac498b72a4a07cb246"
= "6f44d516b3cbe54542ae0991aad49274fc4728570e9498b319fc98840ceb7d7d"
= 75
= 85
= "FILE"
strings:
$x = { 4? 8b 4? ?? c6 00 48 4? 8b 4? ?? 4? 83 c0 05 c6 00 49 4? 8b 4? ?? 4? 83 c0 01 c6 00 49 4? 8b 4? ?? 4? 83 c0 06 c6 00 4c 4? 8b 4? ?? 4? 83 c0 02 c6 00 53 4? 8b 4? ?? 4? 83 c0 07 c6 00 45 4? 8b 4? ?? 4? 83 c0 03 c6 00 54 4? 8b 4? ?? 4? 83 c0 08 c6 00 3d 4? 8b 4? ?? 4? 83 c0 04 c6 00 46 4? 8b 4? ?? 4? 83 c0 09 c6 00 00 4? 8b 7? ?? e8 }
condition:
uint32( 0 ) == 0x464c457f and all of them
}
Strings (1 patterns)
| Identifier | Type | Value | Modifiers |
|---|---|---|---|
| $x | hex | { 4? 8b 4? ?? c6 00 48 4? 8b 4? ?? 4? 83 c0 05 c6 00 49 4? 8b 4? ?? 4? 83 c0 01 c6 00 49 4? 8b 4? ?? 4? 83 c0 06 c6 00 4c 4? 8b 4? ?? 4? 83 c0 02 c6 00 53 4? 8b … |
Condition
uint32( 0 ) == 0x464c457f and all of themIn plain words (Heuristic)
- The file must start with the ELF header — a Linux/Unix executable.
- All patterns in the rule 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).
- fe34b7c071d96dac498b72a4a07cb246
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: 29ea2db0-4ab2-5e9c-8d42-7590ceabf99a
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