YARA · Signature Base (Florian Roth / Nextron)
SIGNATURE_BASE_WEBSHELL_JAVA_Versamem_JAR_Aug24_1
Detects VersaMem Java webshell samples (as used by Volt Typhoon)
- Author
- blacklotuslabs (modified by Florian Roth and X__Junior)
- Date
- 2024-08-27
- Modified
- 2024-08-29
- Score / Quality
- 75 / 85
What this rule detects
Detects VersaMem Java webshell samples (as used by Volt Typhoon)
It defines 9 patterns (8 text, 1 hex, 0 regex).
Summary generated from the rule's metadata and condition.
Rule source
webshell-java-versamem-jar-aug24-1.yarDetection Rule License 1.1
rule SIGNATURE_BASE_WEBSHELL_JAVA_Versamem_JAR_Aug24_1 : FILE
{
meta:
= "Detects VersaMem Java webshell samples (as used by Volt Typhoon)"
= "blacklotuslabs (modified by Florian Roth and X__Junior)"
= "9b666e61-cfa8-58b3-a362-772cd907c57c"
= "2024-08-27"
= "2024-08-29"
= "https://x.com/ryanaraine/status/1828440883315999117"
= "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/yara/apt_volttyphoon_versamem.yar#L2-L24"
= "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/LICENSE"
= "d21558eb6c8e700b8a4cb86fdaa5487179828152af68828e878397859d6d3952"
= 75
= 85
= "FILE"
strings:
$sa1 = "com.versa.vnms.ui.TestMain"
$sa2 = "captureLoginPasswordCode"
$sa3 = "com/versa/vnms/ui/services/impl/VersaAuthenticationServiceImpl"
$sa4 = "/tmp/.temp.data"
$sa5 = "getInsertCode"
$sa6 = "VersaMem"
$sa7 = "Versa-Auth"
$sb1 = "/tmp/.java_pid"
$sb2 = {2f 75 73 72 2f 62 69 6e 2f 70 67 72 65 70 01 00 02 2d 66 01 00 25 6f 72 67 2e 61 70 61 63 68 65 2e 63 61 74 61 6c 69 6e 61 2e 73 74 61 72 74 75 70 2e 42 6f 6f 74 73 74 72 61 70 07}
condition:
filesize < 5MB and ( 3 of them or all of ( $sb* ) )
}
Strings (9 patterns)
| Identifier | Type | Value | Modifiers |
|---|---|---|---|
| $sa1 | text | "com.versa.vnms.ui.TestMain" | |
| $sa2 | text | "captureLoginPasswordCode" | |
| $sa3 | text | "com/versa/vnms/ui/services/impl/VersaAuthenticationServiceImpl" | |
| $sa4 | text | "/tmp/.temp.data" | |
| $sa5 | text | "getInsertCode" | |
| $sa6 | text | "VersaMem" | |
| $sa7 | text | "Versa-Auth" | |
| $sb1 | text | "/tmp/.java_pid" | |
| $sb2 | hex | {2f 75 73 72 2f 62 69 6e 2f 70 67 72 65 70 01 00 02 2d 66 01 00 25 6f 72 67 2e 61 70 61 63 68 65 2e 63 61 74 61 6c 69 6e 61 2e 73 74 61 72 74 75 70 2e 42 6f 6f … |
Condition
filesize < 5MB and ( 3 of them or all of ( $sb* ) )In plain words (Heuristic)
- The file must be smaller than 5MB (a cheap guard that skips large files).
- All patterns in ( $sb* ) must match.
- At least 3 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.
Drop a file here or click to chooseScanned locally with YARA-X. Files up to 200 MB.
Licence & attribution
Author: blacklotuslabs (modified by Florian Roth and X__Junior)
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: 9b666e61-cfa8-58b3-a362-772cd907c57c
Tags:FILE