Skip to content

Commit 0b758e9

Browse files
authored
Merge branch 'master' into staging
2 parents fde3933 + 8a4ca63 commit 0b758e9

File tree

25 files changed

+702
-92
lines changed

25 files changed

+702
-92
lines changed

analyzer/windows/data/yara/Formbook.yar

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ rule FormhookB
2626
$new_remap = {8B (86 [2] 00 00|46 ??|06) 5F 5E 5B 8B E5 5D C3}
2727
$code = {8B 4E 18 50 6A 00 51 57 56 E8 9A 18 00 00 8B 55 10 8B 45 0C 8B 0F 83 C4 1C 52 50 FF D1 5F 5E 5D C3}
2828
condition:
29-
any of them
29+
2 of them
3030
}
3131

3232
rule FormconfA

analyzer/windows/data/yara/Stealc.yar

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,40 @@ rule StealcStrings
1717
meta:
1818
author = "kevoreilly"
1919
description = "Stealc string decryption"
20-
cape_options = "bp0=$decode+17,action0=string:edx,count=1,typestring=Stealc Strings"
20+
cape_options = "bp0=$decode+17,action0=string:edx,count=0,typestring=Stealc Strings"
2121
packed = "d0c824e886f14b8c411940a07dc133012b9eed74901b156233ac4cac23378add"
2222
strings:
2323
$decode = {51 8B 15 [4] 52 8B 45 ?? 50 E8 [4] 83 C4 0C 6A 04 6A 00 8D 4D ?? 51 FF 15 [4] 83 C4 0C 8B 45 ?? 8B E5 5D C3}
2424
condition:
2525
uint16(0) == 0x5A4D and any of them
2626
}
27+
28+
rule StealcV2Strings
29+
{
30+
meta:
31+
author = "kevoreilly"
32+
description = "StealcV2 string decryption"
33+
cape_options = "bp0=$decode32*,action0=string:[esp],bp1=$decode64,action1=string:eax,bp2=$dump,action2=dumpstrings,count=0,typestring=Stealc Strings"
34+
packed = "2f42dcf05dd87e6352491ff9d4ea3dc3f854df53d548a8da0c323be42df797b6"
35+
packed = "8301936f439f43579cffe98e11e3224051e2fb890ffe9df680bbbd8db0729387"
36+
strings:
37+
$decode32 = {AB AB AB AB 8B 45 0C 89 4E 10 89 4E 14 39 45 08 75 0B C7 46 14 0F 00 00 00 88 0E EB 0F 2B 45 08 50 51 FF 75 ?? 8B}
38+
$decode64 = {40 53 48 83 EC 20 48 8B 19 48 85 DB 74 ?? 48 8B 53 18 48 83 FA 0F 76 2C 48 8B 0B 48 FF C2 48 81 FA 00 10 00 00 72}
39+
$dump32 = {33 C0 89 46 30 88 46 34 89 46 38 89 46 3C 89 46 40 89 46 44 89 46 48 89 46 4C 89 46 50 89 46 54 89 46 58 8B C6 5F 5E C3}
40+
$dump64 = {48 8B C7 89 6F 40 40 88 6F 44 48 89 6F 48 48 89 6F 50 48 89 6F 58 48 89 6F 60 48 89 6F 68 48 89 6F 70 48 89 6F 78 48 89}
41+
condition:
42+
uint16(0) == 0x5A4D and 2 of them
43+
}
44+
45+
rule StealcV2DateCheck
46+
{
47+
meta:
48+
author = "kevoreilly"
49+
description = "StealcV2 date check bypass"
50+
cape_options = "patch=$date32*-1:B000,patch=$date64*-2:B00090"
51+
strings:
52+
$date32 = {F3 A5 8D 45 ?? 50 E8 [4] 59 8B F8 8B F2 8D 45 A4 50 E8 [4] 59 3B F2 7C 08 7F 04 3B F8 76 02 B3 01 8A C3}
53+
$date64 = {0F 11 44 [2] 0F 11 8C [2] 00 00 00 89 8C [2] 00 00 00 48 8D 4C [2] E8 [4] 48 8B D8 48 8D 4C [2] E8 [4] 48 3B D8 0F 9F C0}
54+
condition:
55+
uint16(0) == 0x5A4D and any of them
56+
}

analyzer/windows/dll/capemon.dll

2 KB
Binary file not shown.
4.5 KB
Binary file not shown.

changelog.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
### [05.08.2025]
2+
* Monitor updates:
3+
* Enhance dynamic patching capability: new PatchBytes() function, submission/yara option patch=<address>:<bytes>
4+
* Create DumpStrings debugger action for corresponding function
5+
* Standalone mode improvements (thanks heck-gd)
6+
* Improve NtGetContextThread & NtSetContextThread hooks to handle e.g. a2d4e1c831808d0a791608db40cd1e4df598e5fee4bac1b239d4f8194f8e2d4a
7+
* Debugger: add flag changes to trace output
8+
* Stealc V2 detection, dynamic strings & config extraction (requires accompanying CAPE-parsers update)
9+
110
### [11.06.2025]
211
* __Action required!__ For users of Python 3.12+ in guest, update the agent to solve #2621 affecting e.g. MSI detonation
312
* Agent update: Fix issue with analyzer directory creation lacking required ACLs for Python 3.12, remove predictable "tmp" prefix for directory name(s) (fixes #2621)

conf/default/api.conf.default

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,13 @@ auth_only = no
204204
rps = 1/s
205205
#rpm = 10/m
206206

207+
# Pull a PCAP from a specific task
208+
[tasktlspcap]
209+
enabled = yes
210+
auth_only = no
211+
rps = 1/s
212+
#rpm = 10/m
213+
207214
# Pull a EVTX from a specific task
208215
[taskevtx]
209216
enabled = yes

conf/default/auxiliary.conf.default

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,12 @@ enabled = no
8484

8585
[Mitmdump]
8686
# Enable or disable the use of mitmdump (mitmproxy) to get dump.har [yes/no].
87-
# This module requires installed mitmproxy see install_mitmproxy
87+
# This module requires mitmproxy to be installed see install_mitmproxy
8888
# (https://github.com/kevoreilly/CAPEv2/blob/master/installer/cape2.sh#L1320)
8989
enabled = no
90+
91+
[PolarProxy]
92+
# Enable or disable the use of PolarProxy to get dump.pcap with decrypted TLS streams [yes/no].
93+
# This module requires PolarProxy to be installed see install_polarproxy.
94+
# Use add the options "polarproxy=1" when submitting a sample.
95+
enabled = no
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
[cfg]
2+
# bin path to PolarProxy
3+
bin = /opt/PolarProxy/PolarProxy
4+
5+
# Host ip where PolarProxy is listening
6+
host = 192.168.122.1
7+
8+
# Interface where PolarProxy is listening
9+
interface = virbr0
10+
11+
# PKCS#12 certificate/private key file
12+
cert = /opt/PolarProxy/PolarProxy-key-crt.p12
13+
14+
# Password to unlock PKCS#12 file
15+
password = CHANGEME
16+
17+
# See https://www.netresec.com/?page=TlsFirewall for details on PolarProxy TLS firewall
18+
# Newline separated file containing domain regexes for PolarProxy to not MITM
19+
bypass_list = /opt/PolarProxy/bypass-domains.txt
20+
# Newline separated file containing domain regexes for PolarProxy to block connections to
21+
block_list = /opt/PolarProxy/block-domains.txt
22+
23+
# bin path to mergecap
24+
mergecap = /usr/bin/mergecap
25+
26+
# Future options like custom ports, cert paths, etc

conf/default/processing.conf.default

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -153,14 +153,11 @@ do_file_lookup = yes
153153
do_url_lookup = yes
154154
urlscrub = (^http:\/\/serw\.clicksor\.com\/redir\.php\?url=|&InjectedParam=.+$)
155155

156+
# Since Suricata 8, socket mode is deprecated.
156157
[suricata]
157-
# Notes on getting this to work check install_suricata function:
158-
# https://github.com/kevoreilly/CAPEv2/blob/master/installer/cape2.sh
159-
160-
enabled = yes
161-
#Runmode "cli" or "socket"
162-
runmode = socket
163-
#Outputfiles
158+
enabled = no
159+
runmode = cli
160+
# Outputfiles
164161
# if evelog is specified, it will be used instead of the per-protocol log files
165162
evelog = eve.json
166163

@@ -176,13 +173,14 @@ fileslog = files-json.log
176173
filesdir = files
177174
# Amount of text to carve from plaintext files (bytes)
178175
buffer = 8192
179-
#Used for creating an archive of extracted files
176+
#Used for creating an archive of extracted files
180177
7zbin = /usr/bin/7z
181178
zippass = infected
182-
##Runmode "cli" options
179+
# Runmode "cli" options
183180
bin = /usr/bin/suricata
184181
conf = /etc/suricata/suricata.yaml
185-
##Runmode "socket" Options
182+
183+
# Runmode "socket" Options. Deprecated since Suricata 8.
186184
socket_file = /tmp/suricata-command.socket
187185

188186
# Community
@@ -316,3 +314,9 @@ enabled = yes
316314

317315
[html_scraper]
318316
enabled = no
317+
318+
# Community
319+
[polarproxy]
320+
# Enable when using the PolarProxy option during analysis. This will merge the tls.pcap containing
321+
# plain-text TLS streams into the task PCAP.
322+
enabled = no

conf/default/reporting.conf.default

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -147,10 +147,6 @@ user = admin
147147
pass = admin
148148
realm = Moloch
149149

150-
# Community
151-
[resubmitexe]
152-
enabled = no
153-
resublimit = 5
154150

155151
# Community
156152
[compression]

0 commit comments

Comments
 (0)