Skip to content

Commit f7a5d7f

Browse files
authored
Merge pull request kevoreilly#2971 from YungBinary/master
Add Yara rules for STX RAT
2 parents a4f9fdf + 59ac0b4 commit f7a5d7f

File tree

1 file changed

+120
-0
lines changed

1 file changed

+120
-0
lines changed

data/yara/CAPE/STXRat.yar

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
rule STXRatLoader
2+
{
3+
meta:
4+
author = "YungBinary"
5+
description = "https://www.esentire.com/blog/stx-rat-a-new-rat-in-2026-with-infostealer-capabilities"
6+
cape_type = "STXRat Loader"
7+
strings:
8+
9+
// Kernel32 ROR-14
10+
$ror1 = { B9 4E 15 F5 1F E8 }
11+
// VirtualProtect ROR-14
12+
$ror2 = {
13+
BA 35 EC 33 57
14+
48 8B C8
15+
48 8B D8
16+
E8
17+
}
18+
// CreateThread ROR-14
19+
$ror3 = {
20+
BA 36 91 AC 32
21+
}
22+
// Ntdll ROR-14
23+
$ror4 = {
24+
BA 7E 91 90 5A
25+
48 8B C8
26+
E8
27+
}
28+
// XXTEA constant
29+
$s1 = {
30+
69 D0 47 86 C8 61
31+
}
32+
// Zlib
33+
$s2 = {
34+
B8 85 10 42 08
35+
41 F7 E2
36+
}
37+
// ROR
38+
$s3 = {
39+
41 C1 C8 0E
40+
0F BE C0
41+
44 03 C0
42+
}
43+
$init = "init"
44+
$run = "run"
45+
condition:
46+
uint16(0) == 0x5a4d and $init and $run and 1 of ($ror*) and 1 of ($s*)
47+
}
48+
49+
rule STXRat
50+
{
51+
meta:
52+
author = "YungBinary"
53+
description = "https://www.esentire.com/blog/stx-rat-a-new-rat-in-2026-with-infostealer-capabilities"
54+
cape_type = "STXRat Payload"
55+
strings:
56+
57+
// Lowercasing
58+
$s1 = {
59+
8D 51 BF
60+
83 FA 19
61+
8D 41 20
62+
0F 47 C1
63+
C2
64+
}
65+
// AMSI ghosting
66+
$s2 = {
67+
48 8D 05 ?? ?? ?? ??
68+
66 C7 45 ?? 48 B8 [0-6]
69+
48 89 45 ??
70+
48 8D 55 ??
71+
66 C7 45 ?? FF E0
72+
}
73+
// Debugger check
74+
$s3 = {
75+
65 48 8B 04 25 60 00 00 00
76+
80 78 02 01
77+
}
78+
// Crypto string
79+
$s4 = "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)" ascii
80+
81+
// AES key/size/algo handling
82+
$s5 = {
83+
B9 10 66 00 00 [0-3]
84+
0F 44 C1
85+
B9 0F 66 00 00
86+
41 81 ?? C0 00 00 00
87+
0F 44 C1
88+
B9 0E 66 00 00
89+
}
90+
// module name copying
91+
$s6 = {
92+
48 83 FB 5A
93+
73 ??
94+
88 84 1C ?? ?? ?? ??
95+
48 FF C3
96+
48 FF C1
97+
8A 01
98+
84 C0
99+
75
100+
}
101+
// Sha1 initialization constants
102+
$s7 = {
103+
83 61 18 00
104+
83 61 14 00
105+
C7 01 01 23 45 67
106+
C7 41 04 89 AB CD EF
107+
C7 41 08 FE DC BA 98
108+
C7 41 0C 76 54 32 10
109+
C7 41 10 F0 E1 D2 C3
110+
C3
111+
}
112+
// X25519 clamping
113+
$s8 = {
114+
80 61 1F 3F
115+
80 49 1F 40
116+
80 21 F8
117+
}
118+
condition:
119+
uint16(0) == 0x5a4d and (4 of ($s*))
120+
}

0 commit comments

Comments
 (0)