CAPE-parsers 0.1.32__tar.gz → 0.1.34__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/PKG-INFO +2 -2
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/Njrat.py +9 -9
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/Latrodectus.py +4 -4
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/pyproject.toml +2 -2
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/LICENSE +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/README.md +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/__init__.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/AgentTesla.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/Arkei.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/AsyncRAT.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/AuroraStealer.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/BackOffLoader.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/BackOffPOS.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/BlackNix.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/Carbanak.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/CobaltStrikeBeacon.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/CobaltStrikeStager.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/DCRat.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/Fareit.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/Greame.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/KoiLoader.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/LokiBot.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/Lumma.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/NanoCore.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/Nighthawk.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/Pandora.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/PhemedroneStealer.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/PoisonIvy.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/Punisher.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/QuasarRAT.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/README.md +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/REvil.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/Retefe.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/Rozena.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/SmallNet.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/Snake.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/SparkRAT.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/Stealc.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/TSCookie.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/TrickBot.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/VenomRAT.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/XWorm.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/XenoRAT.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/__init__.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/Azorult.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/BitPaymer.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/BlackDropper.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/Blister.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/BruteRatel.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/BuerLoader.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/BumbleBee.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/ChChes.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/DarkGate.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/DoppelPaymer.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/DridexLoader.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/Emotet.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/Enfal.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/EvilGrab.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/Formbook.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/GuLoader.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/HttpBrowser.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/IcedID.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/IcedIDLoader.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/Oyster.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/PikaBot.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/PlugX.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/QakBot.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/Quickbind.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/RCSession.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/README.md +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/RedLeaf.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/RedLine.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/Remcos.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/Rhadamanthys.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/SmokeLoader.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/Socks5Systemz.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/SquirrelWaffle.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/Strrat.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/UrsnifV3.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/WarzoneRAT.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/Zloader.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/__init__.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/core/test_cape.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/RATDecoders/README.md +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/RATDecoders/__init__.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/RATDecoders/test_rats.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/__init__.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/deprecated/Hancitor.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/deprecated/JavaDropper.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/deprecated/Nymaim.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/deprecated/PredatorPain.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/deprecated/_ShadowTech.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/deprecated/_VirusRat.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/deprecated/_jRat.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/deprecated/unrecom.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/deprecated/xRAT.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/malduck/LICENSE +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/malduck/README.md +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/malduck/__init__.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/malduck/test_malduck.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/mwcp/README.md +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/mwcp/__init__.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/mwcp/test_mwcp.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/utils/__init__.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/utils/aplib.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/utils/blzpack.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/utils/blzpack_lib.so +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/utils/dotnet_utils.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/utils/lznt1.py +0 -0
- {cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/utils/strings.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: CAPE-parsers
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.34
|
|
4
4
|
Summary: CAPE: Malware Configuration Extraction
|
|
5
5
|
License: MIT
|
|
6
6
|
Keywords: cape,parsers,malware,configuration
|
|
@@ -24,7 +24,7 @@ Requires-Dist: pycryptodomex (>=3.20.0)
|
|
|
24
24
|
Requires-Dist: rat-king-parser (>=4.0.0)
|
|
25
25
|
Requires-Dist: ruff (>=0.7.2)
|
|
26
26
|
Requires-Dist: unicorn (==2.1.1)
|
|
27
|
-
Requires-Dist: yara-python (
|
|
27
|
+
Requires-Dist: yara-python (>=4.5.1)
|
|
28
28
|
Description-Content-Type: text/markdown
|
|
29
29
|
|
|
30
30
|
# CAPE-parsers
|
|
@@ -174,15 +174,15 @@ def extract_config(data):
|
|
|
174
174
|
dotnet_file_parser = Parser(data=data)
|
|
175
175
|
config_dict = get_config_dict(dotnet_file_parser, data)
|
|
176
176
|
config = get_clean_config(config_dict)
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
177
|
+
if config:
|
|
178
|
+
if config.get("domain") and config.get("port"):
|
|
179
|
+
conf["cncs"] = [f"{config['domain']}:{config['port']}"]
|
|
180
|
+
|
|
181
|
+
if config.get("campaign_id"):
|
|
182
|
+
conf["campaign id"] = config["campaign_id"]
|
|
183
|
+
|
|
184
|
+
if config.get("version"):
|
|
185
|
+
conf["version"] = config["version"]
|
|
186
186
|
|
|
187
187
|
dotnet_file_parser.close()
|
|
188
188
|
return conf
|
|
@@ -41,7 +41,7 @@ rule Latrodectus
|
|
|
41
41
|
$fnvhash2 = {8B 0C 24 33 C8 8B C1 89 04 24 69 04 24 93 01 00 01}
|
|
42
42
|
$procchk1 = {E8 [3] FF 85 C0 74 [2] FF FF FF FF E9 [4] E8 [4] 89 44 24 ?? E8 [4] 83 F8 4B 73 ?? 83 [3] 06}
|
|
43
43
|
$procchk2 = {72 [2] FF FF FF FF E9 [4] E8 [4] 83 F8 32 73 ?? 83 [3] 06}
|
|
44
|
-
$version = {C7 44 2? ??
|
|
44
|
+
$version = {C7 44 2? ?? ?? 00 00 00 C7 44 2? ?? ?? 00 00 00 8B 05 [4] 89}
|
|
45
45
|
condition:
|
|
46
46
|
all of them
|
|
47
47
|
}
|
|
@@ -59,7 +59,7 @@ rule Latrodectus_AES
|
|
|
59
59
|
$key = {C6 44 2? ?? ?? [150] C6 44 2? ?? ?? B8 02}
|
|
60
60
|
$aes_ctr_1 = {8B 44 24 ?? FF C8 89 44 24 ?? 83 7C 24 ?? 00 7C ?? 4? 63 44 24 ?? 4? 8B 4C 24 ?? 0F B6 84 01 F0 00 00 00 3D FF 00 00 00}
|
|
61
61
|
$aes_ctr_2 = {48 03 C8 48 8B C1 0F B6 ?? 48 63 4C 24 ?? 0F B6 4C 0C ?? 33 C1 48 8B 4C 24 ?? 48 8B 54 24 ?? 48 03 D1 48 8B CA 88 01}
|
|
62
|
-
$version = {C7 44 2? ??
|
|
62
|
+
$version = {C7 44 2? ?? ?? 00 00 00 C7 44 2? ?? ?? 00 00 00 8B 05 [4] 89}
|
|
63
63
|
condition:
|
|
64
64
|
all of them
|
|
65
65
|
}
|
|
@@ -150,8 +150,8 @@ def extract_config(filebuf):
|
|
|
150
150
|
for instance in item.instances:
|
|
151
151
|
if "$version" in item.identifier and not version:
|
|
152
152
|
data = instance.matched_data[::-1]
|
|
153
|
-
major = int.from_bytes(data[
|
|
154
|
-
minor = int.from_bytes(data[
|
|
153
|
+
major = int.from_bytes(data[10:11], byteorder="big")
|
|
154
|
+
minor = int.from_bytes(data[18:19], byteorder="big")
|
|
155
155
|
version = f"{major}.{minor}"
|
|
156
156
|
if "$key" in item.identifier:
|
|
157
157
|
key = instance.matched_data[4::5]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "CAPE-parsers"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.34"
|
|
4
4
|
description = "CAPE: Malware Configuration Extraction"
|
|
5
5
|
authors = ["Kevin O'Reilly <kev@capesandbox.com>", "doomedraven <doomedraven@capesandbox.com>"]
|
|
6
6
|
license = "MIT"
|
|
@@ -20,7 +20,7 @@ pycryptodomex = ">=3.20.0"
|
|
|
20
20
|
# regex = ">=2021.7.6"
|
|
21
21
|
netstruct = "1.1.2"
|
|
22
22
|
maco = "1.1.8"
|
|
23
|
-
yara-python = "4.5.1"
|
|
23
|
+
yara-python = ">=4.5.1"
|
|
24
24
|
dnfile = ">=0.15.1"
|
|
25
25
|
dncil = ">=1.0.2"
|
|
26
26
|
unicorn = "2.1.1"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/CobaltStrikeBeacon.py
RENAMED
|
File without changes
|
{cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/CobaltStrikeStager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cape_parsers-0.1.32 → cape_parsers-0.1.34}/cape_parsers/CAPE/community/PhemedroneStealer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|