YARA · Volexity threat-intel
VOLEXITY_Apt_Malware_Py_Upstyle
Detect the UPSTYLE webshell.
- Author
- threatintel@volexity.com
- Date
- 2024-04-11
- Modified
- 2024-04-12
- Score / Quality
- 75 / 80
What this rule detects
Detect the UPSTYLE webshell.
It defines 6 patterns (6 text, 0 hex, 0 regex).
YARA-X says: warning[duplicate_pattern_value]: duplicate pattern value
Summary generated from the rule's metadata and condition.
Rule source
rule VOLEXITY_Apt_Malware_Py_Upstyle : UTA0218 FILE MEMORY
{
meta:
= "Detect the UPSTYLE webshell."
= "threatintel@volexity.com"
= "45726f35-8b3e-5095-b145-9e7f6da6838b"
= "2024-04-11"
= "2024-04-12"
= "TIB-20240412"
= "https://github.com/volexity/threat-intel/blob/3a9d0b52459877ee866a9a0ba06e60059b778c77/2024/2024-04-12 Palo Alto Networks GlobalProtect/indicators/rules.yar#L1-L34"
= "https://github.com/volexity/threat-intel/blob/3a9d0b52459877ee866a9a0ba06e60059b778c77/LICENSE.txt"
= "3de2a4392b8715bad070b2ae12243f166ead37830f7c6d24e778985927f9caac"
= "0d59d7bddac6c22230187ef6cf7fa22bca93759edc6f9127c41dc28a2cea19d8"
= "4dd4bd027f060f325bf6a90d01bfcf4e7751a3775ad0246beacc6eb2bad5ec6f"
= "51923600b23d23f4ce29eac7f5ab9f7e1ddb45bed5f6727ddec4dcb75872e473"
= 75
= 80
= "UTA0218, FILE, MEMORY"
= "linux"
= "all"
= "file,memory"
= "critical"
= "See license at https://github.com/volexity/threat-intel/blob/main/LICENSE.txt"
= 10429
= 2
strings:
$stage1_str1 = "/opt/pancfg/mgmt/licenses/PA_VM"
$stage1_str2 = "exec(base64."
$stage2_str1 = "signal.signal(signal.SIGTERM,stop)"
$stage2_str2 = "exec(base64."
$stage3_str1 = "write(\"/*\"+output+\"*/\")"
$stage3_str2 = "SHELL_PATTERN"
condition:
all of ( $stage1* ) or all of ( $stage2* ) or all of ( $stage3* )
}
Strings (6 patterns)
| Identifier | Type | Value | Modifiers |
|---|---|---|---|
| $stage1_str1 | text | "/opt/pancfg/mgmt/licenses/PA_VM" | |
| $stage1_str2 | text | "exec(base64." | |
| $stage2_str1 | text | "signal.signal(signal.SIGTERM,stop)" | |
| $stage2_str2 | text | "exec(base64." | |
| $stage3_str1 | text | "write(\"/*\"+output+\"*/\")" | |
| $stage3_str2 | text | "SHELL_PATTERN" |
Condition
all of ( $stage1* ) or all of ( $stage2* ) or all of ( $stage3* )In plain words (Heuristic)
- All patterns in ( $stage1* ) must match.
- All patterns in ( $stage2* ) must match.
- All patterns in ( $stage3* ) 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).
- 3de2a4392b8715bad070b2ae12243f166ead37830f7c6d24e778985927f9caac
- 0d59d7bddac6c22230187ef6cf7fa22bca93759edc6f9127c41dc28a2cea19d8
- 4dd4bd027f060f325bf6a90d01bfcf4e7751a3775ad0246beacc6eb2bad5ec6f
Licence & attribution
Author: threatintel@volexity.com
Source repository: Volexity threat-intel @ 3a9d0b5245
Licence: BSD 2-Clause License (stated in the rule's own meta)
“See license at https://github.com/volexity/threat-intel/blob/main/LICENSE.txt”
Copyright notice: Copyright 2022 by Volexity, Inc.
Mirrored via YARA Forge 20260927, which prefixes rule names with the source and adds normalised meta fields.
Rule id: 45726f35-8b3e-5095-b145-9e7f6da6838b
Metadata
| os | linux |
|---|---|
| os_arch | all |
| scan_context | file,memory |
| severity | critical |
| rule_id | 10429 |
| version | 2 |
Related rules
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2024-07-30
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2023-07-21
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2023-08-17
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2023-03-30
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2022-11-03
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2022-11-02
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2022-11-03
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2022-11-03