YARA · ditekSHen detection
DITEKSHEN_MALWARE_Win_WSHRAT
Detects WASHRAT
- Author
- ditekSHen
- Date
- 2020-11-06
- Modified
- 2024-11-01
- Score / Quality
- 75 / 73
What this rule detects
Detects WASHRAT
Associated malware family: WSHRAT.
Targets: Windows PE.
It defines 11 patterns (10 text, 0 hex, 1 regex).
Summary generated from the rule's metadata and condition.
Rule source
malware-win-wshrat.yarBSD 2-Clause License
rule DITEKSHEN_MALWARE_Win_WSHRAT : FILE
{
meta:
= "Detects WASHRAT"
= "ditekSHen"
= "e7940b7f-51dd-5a32-899b-64310f27bf3e"
= "2020-11-06"
= "2024-11-01"
= "https://github.com/ditekshen/detection"
= "https://github.com/ditekshen/detection/blob/e76c93dcdedff04076380ffc60ea54e45b313635/yara/malware.yar#L10582-L10600"
= "https://github.com/ditekshen/detection/blob/e76c93dcdedff04076380ffc60ea54e45b313635/LICENSE.txt"
= "297bfe65815637a464e2a8fc23570c6e79694ffe0467d5898b7c845f1450de95"
= 75
= 73
= "FILE"
strings:
$x1 = "WSH Rat v" wide
$x2 = "SOFTWARE\\WSHRat" wide
$x3 = "WSH Remote" wide nocase
$x4 = "WSHRAT" wide nocase
$s1 = "shellobj.regwrite \"HKEY_" ascii nocase
$s2 = "shellobj.run(\"%comspec% /c" ascii nocase
$s3 = "objhttpdownload.setrequestheader \"user-agent:\"," ascii nocase
$s4 = "WScript.CreateObject(\"Shell.Application\").ShellExecute" ascii nocase
$s5 = "objwmiservice.ExecQuery(\"select" ascii nocase
$s6 = "httpobj.open(\"post\",\"http" ascii nocase
$s7 = /(rdp|keylogger|get-pass|uvnc)\|http/ wide
condition:
uint16( 0 ) == 0x5a4d and ( 2 of ( $x* ) or ( 1 of ( $x* ) and 1 of ( $s* ) ) or ( 6 of ( $s* ) ) )
}
Strings (11 patterns)
| Identifier | Type | Value | Modifiers |
|---|---|---|---|
| $x1 | text | "WSH Rat v" | wide |
| $x2 | text | "SOFTWARE\\WSHRat" | wide |
| $x3 | text | "WSH Remote" | wide nocase |
| $x4 | text | "WSHRAT" | wide nocase |
| $s1 | text | "shellobj.regwrite \"HKEY_" | ascii nocase |
| $s2 | text | "shellobj.run(\"%comspec% /c" | ascii nocase |
| $s3 | text | "objhttpdownload.setrequestheader \"user-agent:\"," | ascii nocase |
| $s4 | text | "WScript.CreateObject(\"Shell.Application\").ShellExecute" | ascii nocase |
| $s5 | text | "objwmiservice.ExecQuery(\"select" | ascii nocase |
| $s6 | text | "httpobj.open(\"post\",\"http" | ascii nocase |
| $s7 | regex | /(rdp|keylogger|get-pass|uvnc)\|http/ | wide |
Condition
uint16( 0 ) == 0x5a4d and ( 2 of ( $x* ) or ( 1 of ( $x* ) and 1 of ( $s* ) ) or ( 6 of ( $s* ) ) )In plain words (Heuristic)
- The file must start with “MZ” — a Windows executable (PE).
- At least 2 patterns in ( $x* ) must match.
- At least 1 patterns in ( $x* ) must match.
- At least 1 patterns in ( $s* ) must match.
- At least 6 patterns in ( $s* ) 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.
References
Licence & attribution
Author: ditekSHen
Source repository: ditekSHen detection @ e76c93dcde
Licence: BSD 2-Clause License (repository licence)
Copyright notice: Copyright 2021 by ditekSHen (https://github.com/ditekshen/detection).
Mirrored via YARA Forge 20260927, which prefixes rule names with the source and adds normalised meta fields.
Rule id: e7940b7f-51dd-5a32-899b-64310f27bf3e
Tags:FILE
Related rules
- MalwareSignature Base (Florian Roth / Nextron)· Yoroi Malware ZLab· 2021-03-09
- SECUINFRA_DROPPER_WSHRAT_Stage_1Metadata onlyMalwareSecuInfra Falcon Team· SECUINFRA Falcon Team· 2022-11-02
- SECUINFRA_OBFUS_Javascript_Wscript_Hex_Strings_UsageMetadata onlyMalwareSecuInfra Falcon Team· SECUINFRA Falcon Team· 2022-12-02
- MalwareditekSHen detection· ditekSHen· 2034-02-17
- MalwareditekSHen detection· ditekSHen· 2020-11-06
- MalwareditekSHen detection· ditekSHen· 2020-11-06
- MalwareditekSHen detection· ditekSHen· 2020-11-06
- MalwareditekSHen detection· ditekSHen· 2020-11-06