CAPE-parsers 0.1.45__py3-none-any.whl → 0.1.46__py3-none-any.whl
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/CAPE/community/AgentTesla.py +18 -9
- cape_parsers/CAPE/community/Arkei.py +13 -15
- cape_parsers/CAPE/community/AsyncRAT.py +4 -2
- cape_parsers/CAPE/community/AuroraStealer.py +9 -6
- cape_parsers/CAPE/community/Carbanak.py +7 -7
- cape_parsers/CAPE/community/CobaltStrikeBeacon.py +2 -1
- cape_parsers/CAPE/community/CobaltStrikeStager.py +4 -1
- cape_parsers/CAPE/community/DCRat.py +4 -2
- cape_parsers/CAPE/community/Fareit.py +8 -9
- cape_parsers/CAPE/community/KoiLoader.py +3 -3
- cape_parsers/CAPE/community/LokiBot.py +1 -1
- cape_parsers/CAPE/community/Lumma.py +19 -15
- cape_parsers/CAPE/community/NanoCore.py +9 -9
- cape_parsers/CAPE/community/Nighthawk.py +1 -0
- cape_parsers/CAPE/community/Njrat.py +4 -4
- cape_parsers/CAPE/community/PhemedroneStealer.py +2 -0
- cape_parsers/CAPE/community/Snake.py +29 -16
- cape_parsers/CAPE/community/SparkRAT.py +3 -1
- cape_parsers/CAPE/community/Stealc.py +86 -64
- cape_parsers/CAPE/community/VenomRAT.py +4 -2
- cape_parsers/CAPE/community/XWorm.py +4 -2
- cape_parsers/CAPE/community/XenoRAT.py +4 -2
- cape_parsers/CAPE/community/monsterv2.py +96 -0
- cape_parsers/CAPE/core/AdaptixBeacon.py +7 -5
- cape_parsers/CAPE/core/Azorult.py +5 -3
- cape_parsers/CAPE/core/BitPaymer.py +5 -2
- cape_parsers/CAPE/core/BlackDropper.py +10 -5
- cape_parsers/CAPE/core/Blister.py +12 -10
- cape_parsers/CAPE/core/BruteRatel.py +20 -7
- cape_parsers/CAPE/core/BumbleBee.py +29 -17
- cape_parsers/CAPE/core/DarkGate.py +3 -3
- cape_parsers/CAPE/core/DoppelPaymer.py +4 -2
- cape_parsers/CAPE/core/DridexLoader.py +4 -3
- cape_parsers/CAPE/core/Formbook.py +2 -2
- cape_parsers/CAPE/core/GuLoader.py +2 -5
- cape_parsers/CAPE/core/IcedID.py +5 -5
- cape_parsers/CAPE/core/IcedIDLoader.py +4 -4
- cape_parsers/CAPE/core/Latrodectus.py +10 -7
- cape_parsers/CAPE/core/Oyster.py +8 -6
- cape_parsers/CAPE/core/PikaBot.py +6 -6
- cape_parsers/CAPE/core/PlugX.py +3 -1
- cape_parsers/CAPE/core/QakBot.py +2 -1
- cape_parsers/CAPE/core/Quickbind.py +7 -11
- cape_parsers/CAPE/core/RedLine.py +2 -2
- cape_parsers/CAPE/core/Remcos.py +58 -50
- cape_parsers/CAPE/core/Rhadamanthys.py +18 -8
- cape_parsers/CAPE/core/SmokeLoader.py +2 -2
- cape_parsers/CAPE/core/Socks5Systemz.py +5 -5
- cape_parsers/CAPE/core/SquirrelWaffle.py +3 -3
- cape_parsers/CAPE/core/Strrat.py +1 -1
- cape_parsers/CAPE/core/WarzoneRAT.py +3 -2
- cape_parsers/CAPE/core/Zloader.py +21 -15
- cape_parsers/RATDecoders/test_rats.py +1 -0
- cape_parsers/__init__.py +13 -4
- cape_parsers/deprecated/BlackNix.py +59 -0
- cape_parsers/{CAPE/core → deprecated}/BuerLoader.py +1 -1
- cape_parsers/{CAPE/core → deprecated}/ChChes.py +3 -3
- cape_parsers/{CAPE/core → deprecated}/Enfal.py +1 -1
- cape_parsers/{CAPE/core → deprecated}/EvilGrab.py +5 -6
- cape_parsers/{CAPE/community → deprecated}/Greame.py +3 -1
- cape_parsers/{CAPE/core → deprecated}/HttpBrowser.py +7 -8
- cape_parsers/{CAPE/community → deprecated}/Pandora.py +2 -0
- cape_parsers/{CAPE/community → deprecated}/Punisher.py +2 -1
- cape_parsers/{CAPE/core → deprecated}/RCSession.py +7 -9
- cape_parsers/{CAPE/community → deprecated}/REvil.py +10 -5
- cape_parsers/{CAPE/core → deprecated}/RedLeaf.py +5 -7
- cape_parsers/{CAPE/community → deprecated}/Retefe.py +0 -2
- cape_parsers/{CAPE/community → deprecated}/Rozena.py +2 -5
- cape_parsers/{CAPE/community → deprecated}/SmallNet.py +6 -2
- {cape_parsers-0.1.45.dist-info → cape_parsers-0.1.46.dist-info}/METADATA +20 -1
- cape_parsers-0.1.46.dist-info/RECORD +112 -0
- cape_parsers/CAPE/community/BlackNix.py +0 -57
- cape_parsers/CAPE/core/Stealc.py +0 -21
- cape_parsers-0.1.45.dist-info/RECORD +0 -112
- /cape_parsers/{CAPE/community → deprecated}/BackOffLoader.py +0 -0
- /cape_parsers/{CAPE/community → deprecated}/BackOffPOS.py +0 -0
- /cape_parsers/{CAPE/core → deprecated}/Emotet.py +0 -0
- /cape_parsers/{CAPE/community → deprecated}/PoisonIvy.py +0 -0
- /cape_parsers/{CAPE/community → deprecated}/TSCookie.py +0 -0
- /cape_parsers/{CAPE/community → deprecated}/TrickBot.py +0 -0
- /cape_parsers/{CAPE/core → deprecated}/UrsnifV3.py +0 -0
- {cape_parsers-0.1.45.dist-info → cape_parsers-0.1.46.dist-info}/LICENSE +0 -0
- {cape_parsers-0.1.45.dist-info → cape_parsers-0.1.46.dist-info}/WHEEL +0 -0
|
@@ -47,7 +47,7 @@ def decodeREvilConfig(config_key, config_data):
|
|
|
47
47
|
ECX = EAX = ESI = 0
|
|
48
48
|
|
|
49
49
|
for char in init255:
|
|
50
|
-
ESI = ((char & 0xFF) + (
|
|
50
|
+
ESI = ((char & 0xFF) + (key[EAX % len(key)] + ESI)) & 0xFF
|
|
51
51
|
init255[EAX] = init255[ESI] & 0xFF
|
|
52
52
|
EAX += 1
|
|
53
53
|
init255[ESI] = char & 0xFF
|
|
@@ -61,7 +61,7 @@ def decodeREvilConfig(config_key, config_data):
|
|
|
61
61
|
ESI = (ESI + DL) & 0xFF
|
|
62
62
|
init255[ECX] = init255[ESI]
|
|
63
63
|
init255[ESI] = DL
|
|
64
|
-
decoded_config.append((init255[((init255[ECX] + DL) & 0xFF)]) ^
|
|
64
|
+
decoded_config.append((init255[((init255[ECX] + DL) & 0xFF)]) ^ char)
|
|
65
65
|
EAX = LOCAL1
|
|
66
66
|
|
|
67
67
|
return json.loads("".join(map(chr, decoded_config)))
|
|
@@ -74,12 +74,17 @@ def extract_config(data):
|
|
|
74
74
|
|
|
75
75
|
if len(pe.sections) == 5:
|
|
76
76
|
section_names = getSectionNames(pe.sections)
|
|
77
|
-
required_sections = (".text", ".rdata", ".data", ".reloc")
|
|
77
|
+
required_sections = (b".text", b".rdata", b".data", b".reloc")
|
|
78
78
|
|
|
79
|
-
# print section_names
|
|
80
79
|
if all(sections in section_names for sections in required_sections):
|
|
81
80
|
# print("all required section names found")
|
|
82
|
-
|
|
81
|
+
section_names_set = set(section_names)
|
|
82
|
+
required_sections_set = set(required_sections)
|
|
83
|
+
config_section_names = section_names_set - required_sections_set
|
|
84
|
+
if len(config_section_names) == 1:
|
|
85
|
+
config_section_name = config_section_names.pop()
|
|
86
|
+
else:
|
|
87
|
+
return None # Or raise an exception, depending on desired behavior
|
|
83
88
|
config_key, config_data = getREvilKeyAndConfig(pe.sections, config_section_name)
|
|
84
89
|
if config_key and config_data:
|
|
85
90
|
return decodeREvilConfig(config_key, config_data)
|
|
@@ -16,9 +16,7 @@ DESCRIPTION = "RedLeaf configuration parser."
|
|
|
16
16
|
AUTHOR = "kevoreilly"
|
|
17
17
|
|
|
18
18
|
import struct
|
|
19
|
-
|
|
20
19
|
import pefile
|
|
21
|
-
|
|
22
20
|
import yara
|
|
23
21
|
|
|
24
22
|
rule_source = """
|
|
@@ -90,21 +88,21 @@ def extract_config(filebuf):
|
|
|
90
88
|
end_config = {}
|
|
91
89
|
c2_address = tmp_config[8 : 8 + MAX_IP_STRING_SIZE]
|
|
92
90
|
if c2_address:
|
|
93
|
-
end_config.setdefault("
|
|
91
|
+
end_config.setdefault("CNCs", []).append(c2_address)
|
|
94
92
|
c2_address = tmp_config[0x48 : 0x48 + MAX_IP_STRING_SIZE]
|
|
95
93
|
if c2_address:
|
|
96
|
-
end_config.setdefault("
|
|
94
|
+
end_config.setdefault("CNCs", []).append(c2_address)
|
|
97
95
|
c2_address = tmp_config[0x88 : 0x88 + MAX_IP_STRING_SIZE]
|
|
98
96
|
if c2_address:
|
|
99
|
-
end_config.setdefault("
|
|
97
|
+
end_config.setdefault("CNCs", []).append(c2_address)
|
|
100
98
|
missionid = string_from_offset(tmp_config, 0x1EC)
|
|
101
99
|
if missionid:
|
|
102
|
-
end_config["missionid"] = missionid
|
|
100
|
+
end_config.setdefault("raw", {})["missionid"] = missionid
|
|
103
101
|
mutex = unicode_string_from_offset(tmp_config, 0x508)
|
|
104
102
|
if mutex:
|
|
105
103
|
end_config["mutex"] = mutex
|
|
106
104
|
key = string_from_offset(tmp_config, 0x832)
|
|
107
105
|
if key:
|
|
108
|
-
end_config["
|
|
106
|
+
end_config["cryptokey"] = key
|
|
109
107
|
|
|
110
108
|
return end_config
|
|
@@ -9,8 +9,5 @@ def extract_config(data: bytes):
|
|
|
9
9
|
if matches:
|
|
10
10
|
ip = "".join(".".join(f"{c}" for c in matches[0][0]))
|
|
11
11
|
port = int.from_bytes(matches[0][1], byteorder="big")
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
config_dict["Port"] = port
|
|
15
|
-
|
|
16
|
-
return config_dict
|
|
12
|
+
config_dict["CNCs"] = f"{ip}:{port}"
|
|
13
|
+
return {}
|
|
@@ -96,8 +96,12 @@ def ver_5(data):
|
|
|
96
96
|
|
|
97
97
|
|
|
98
98
|
def extract_config(data):
|
|
99
|
+
config = {}
|
|
99
100
|
if "!!<3SAFIA<3!!" in data:
|
|
100
|
-
|
|
101
|
+
config = ver_52(data)
|
|
101
102
|
|
|
102
103
|
elif "!!ElMattadorDz!!" in data:
|
|
103
|
-
|
|
104
|
+
config = ver_5(data)
|
|
105
|
+
|
|
106
|
+
if config:
|
|
107
|
+
return {"raw": config}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: CAPE-parsers
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.46
|
|
4
4
|
Summary: CAPE: Malware Configuration Extraction
|
|
5
5
|
License: MIT
|
|
6
6
|
Keywords: cape,parsers,malware,configuration
|
|
@@ -32,3 +32,22 @@ CAPE core and community parsers
|
|
|
32
32
|
|
|
33
33
|
[](https://pypi.org/project/CAPE-parsers/)
|
|
34
34
|
|
|
35
|
+
### Configs structure
|
|
36
|
+
```
|
|
37
|
+
CNCs: []
|
|
38
|
+
campaign: str
|
|
39
|
+
botnet: str
|
|
40
|
+
dga_seed: hex str
|
|
41
|
+
version: str
|
|
42
|
+
mutex: str
|
|
43
|
+
user_agent: str
|
|
44
|
+
build: str
|
|
45
|
+
cryptokey: str
|
|
46
|
+
cryptokey_type: str (algorithm). Ex: RC4, RSA public key. salsa20, (x)chacha20
|
|
47
|
+
raw: {any other data goes here}
|
|
48
|
+
```
|
|
49
|
+
* All CNC entries should be in URL format. aka `<schema>://<hostname>:<port>/<uri>`
|
|
50
|
+
* Schema examples: `tcp://`, `ftp://`, `udp://`, `http(s)`, etc.
|
|
51
|
+
* Old CAPE configs still have lack of this structures as most of them are dead families.
|
|
52
|
+
* This CNC simplification make it easier to parse with tools like `tldextract` or `urlparse`
|
|
53
|
+
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
cape_parsers/CAPE/__init__.py,sha256=JcY8WPKzUFYgexwV1eyKIuT1JyNZzMJjBynlPSzxY_I,7
|
|
2
|
+
cape_parsers/CAPE/community/AgentTesla.py,sha256=rHhTmINQ0bGZEiJ5NhCKPhGobcifq3FDWZItgHTpBC8,3796
|
|
3
|
+
cape_parsers/CAPE/community/Arkei.py,sha256=k36qHxdo5yPa9V1cg7EImSWP06kMog0rBda4KXqLKCY,3783
|
|
4
|
+
cape_parsers/CAPE/community/AsyncRAT.py,sha256=0-FRT3d2x63KQ_cs1xmKFj7x0JRf7ID6QDc_DvBa0PM,1003
|
|
5
|
+
cape_parsers/CAPE/community/AuroraStealer.py,sha256=C0j9SZDJRi107PbfYZ9G168MCyqYItrI-XK5k0Bp4tE,2632
|
|
6
|
+
cape_parsers/CAPE/community/Carbanak.py,sha256=Smi_vTWDfWxYBQa661ZIy0624IYJA22LMHAJEQbstpk,5607
|
|
7
|
+
cape_parsers/CAPE/community/CobaltStrikeBeacon.py,sha256=Z40uxQ_OExtky7dIC372golAiuW9bR-_5TDBMBqsCo0,19427
|
|
8
|
+
cape_parsers/CAPE/community/CobaltStrikeStager.py,sha256=HLxROBjz453uHNq1bPz0VSAhtyWDfz79ZacTPdjuWmY,7535
|
|
9
|
+
cape_parsers/CAPE/community/DCRat.py,sha256=0-FRT3d2x63KQ_cs1xmKFj7x0JRf7ID6QDc_DvBa0PM,1003
|
|
10
|
+
cape_parsers/CAPE/community/Fareit.py,sha256=OyKeZdcvyAhjxZgJqkDPJHP4Npv1ArvTHJZ5F0C1Iac,1875
|
|
11
|
+
cape_parsers/CAPE/community/KoiLoader.py,sha256=F2gsgCvrVuwxY1bg8rlexsjCjikAP5HIGGOqU8zhT8E,4008
|
|
12
|
+
cape_parsers/CAPE/community/LokiBot.py,sha256=YGYfQ7Wr8PA2QW37yfoyh5cFAz2zxgOmpHOHIvy9CsM,5657
|
|
13
|
+
cape_parsers/CAPE/community/Lumma.py,sha256=Hz72U6i2apU6N5gj5IXnZ9HkbOqKDvW1EMnIge8sNQc,12167
|
|
14
|
+
cape_parsers/CAPE/community/NanoCore.py,sha256=8QZnf1AcY9481kSfsf3SHQShwPLn97peGAf8_xEasQc,6230
|
|
15
|
+
cape_parsers/CAPE/community/Nighthawk.py,sha256=8ss8yvslrwUt53zV6U0xuwGKU3hgYfOt13S5lkOVpNo,12105
|
|
16
|
+
cape_parsers/CAPE/community/Njrat.py,sha256=GiwSENBB43RUqyJ7zT7ZPkPUYqo8Ew4kd5MJUj0jzdc,4702
|
|
17
|
+
cape_parsers/CAPE/community/PhemedroneStealer.py,sha256=Z7_PdxC8bmd6P3AqOm7AHVRrbEVuREwMWbyLVHaAhK0,7095
|
|
18
|
+
cape_parsers/CAPE/community/QuasarRAT.py,sha256=dzVInOc-BPVRdArk92oEY4PKq1AEW04NUToL8UV-UGk,146
|
|
19
|
+
cape_parsers/CAPE/community/README.md,sha256=SHgVQraCdp033IQjM4Cm6t70U4kULn1MfSwTq3rsZv8,22
|
|
20
|
+
cape_parsers/CAPE/community/Snake.py,sha256=-x3Bfhs2HAuxNakUnAX1mm-mgtarJkD9U_fucmVY3u4,6638
|
|
21
|
+
cape_parsers/CAPE/community/SparkRAT.py,sha256=OVDty_1i9PTGuEumT0BHoDn0bD2UtdhHVNjThah80pg,2140
|
|
22
|
+
cape_parsers/CAPE/community/Stealc.py,sha256=RddvMmFmq85J3pCqtpACT1n6k02P1_GsxXIidtveNa4,5102
|
|
23
|
+
cape_parsers/CAPE/community/VenomRAT.py,sha256=0-FRT3d2x63KQ_cs1xmKFj7x0JRf7ID6QDc_DvBa0PM,1003
|
|
24
|
+
cape_parsers/CAPE/community/XWorm.py,sha256=0-FRT3d2x63KQ_cs1xmKFj7x0JRf7ID6QDc_DvBa0PM,1003
|
|
25
|
+
cape_parsers/CAPE/community/XenoRAT.py,sha256=0-FRT3d2x63KQ_cs1xmKFj7x0JRf7ID6QDc_DvBa0PM,1003
|
|
26
|
+
cape_parsers/CAPE/community/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
|
+
cape_parsers/CAPE/community/monsterv2.py,sha256=Y9DDN7OvC08QMGjN90sGA7E6A0fKG4tIKaQLiEcdjvQ,2995
|
|
28
|
+
cape_parsers/CAPE/core/AdaptixBeacon.py,sha256=40wMfrXt-7UG30WsLC5GxUtG6tSUaaP1OT-ntWzPZn0,2956
|
|
29
|
+
cape_parsers/CAPE/core/Azorult.py,sha256=YkMIhC6zRTxEkLVMUdr2MMsbV9iAnZ8hUS8be9GZ5N4,2150
|
|
30
|
+
cape_parsers/CAPE/core/BitPaymer.py,sha256=HQwoE0o7HMiXItxE08vBenf2ZWMxZp84-Hf_1eZ8QdE,3050
|
|
31
|
+
cape_parsers/CAPE/core/BlackDropper.py,sha256=sCSu2T5oPvcFHlSAzSsLj_gCv2Tldl0UPguwy0MVg6A,3282
|
|
32
|
+
cape_parsers/CAPE/core/Blister.py,sha256=wprcJMHixv4JHGqBjQeu26BJ6HgXeBMobh10Y-H6-Xg,18173
|
|
33
|
+
cape_parsers/CAPE/core/BruteRatel.py,sha256=_hFAYLbOsHdekWPOMXRmIYNXTNeNQSs3LZqh7xAVI2U,1147
|
|
34
|
+
cape_parsers/CAPE/core/BumbleBee.py,sha256=qyfvRw1pkc3lPsSrwg8y2W6_ciW3sluijdYcHe27iHY,10062
|
|
35
|
+
cape_parsers/CAPE/core/DarkGate.py,sha256=ppSRDfw-u2NltzQlrVvRwqxGaprShuv5CrwbNbnSvaw,3477
|
|
36
|
+
cape_parsers/CAPE/core/DoppelPaymer.py,sha256=LPAQ-7imcAWFciAd7Qb_r6js2PdIsTt9fRdYKoEkFMg,2537
|
|
37
|
+
cape_parsers/CAPE/core/DridexLoader.py,sha256=8NKppvGz7tVXnNTGEgS7R3LGn5vtW4xslQYbo38wQUg,7087
|
|
38
|
+
cape_parsers/CAPE/core/Formbook.py,sha256=rvf0BRuRl_v8K9SJuSSfbVVMWLSTEemIgP3NtPp2vFM,550
|
|
39
|
+
cape_parsers/CAPE/core/GuLoader.py,sha256=wH6t1e7rO60Bwe0ulqFdZq12-M087zT5WQtC_Wn2biU,354
|
|
40
|
+
cape_parsers/CAPE/core/IcedID.py,sha256=TEsvFq8qHz_D5kIURKWSC4lbvWaQbMriDZ3jQsVu2VA,4029
|
|
41
|
+
cape_parsers/CAPE/core/IcedIDLoader.py,sha256=YUOEILpTycO01KK4qqAxGSplsRVs2EzjscUw4T-DGWs,1602
|
|
42
|
+
cape_parsers/CAPE/core/Latrodectus.py,sha256=j7qq_R2fB9ls3jnm1zwWe-md29QONZN71I2MAQ0T0h4,7614
|
|
43
|
+
cape_parsers/CAPE/core/Oyster.py,sha256=QStBScevJuLyd5d4Rw093SxTlbRG1LFkDwYgmjZx-EQ,4881
|
|
44
|
+
cape_parsers/CAPE/core/PikaBot.py,sha256=6Q8goXfMsSoU8UkdE9iuZY2KTxX_AmWhH1szke_HfWA,5280
|
|
45
|
+
cape_parsers/CAPE/core/PlugX.py,sha256=lGwr1T3mttG6CTbZCj_Cf5HnOad60A3LP264jlCsGsc,13192
|
|
46
|
+
cape_parsers/CAPE/core/QakBot.py,sha256=SmXRuwOiaDLL7uN9RwCiQP62P3ctxGJ6y54zJG9yuyM,18230
|
|
47
|
+
cape_parsers/CAPE/core/Quickbind.py,sha256=5A077RFQQOL8dtr2Q9vmlTKsWk96JkRWuHGseApyTmU,3675
|
|
48
|
+
cape_parsers/CAPE/core/README.md,sha256=Zd84WEUj9NzKzGnVZV1jx6gMiEOtz01m32B7xEuS91k,17
|
|
49
|
+
cape_parsers/CAPE/core/RedLine.py,sha256=bZeKLvxaS6HDpWY4RDXtSEBt93qTNzZG5iE6FNS0dOY,5734
|
|
50
|
+
cape_parsers/CAPE/core/Remcos.py,sha256=nKn_4lwjX7xGkLGFmt3WAG1HEgmKCncIbkv7Je7W6vM,9477
|
|
51
|
+
cape_parsers/CAPE/core/Rhadamanthys.py,sha256=mx7kEF1e8LJZbwh2uUwU56ZKgrpLqZvYVDoqm-Dvl9w,6075
|
|
52
|
+
cape_parsers/CAPE/core/SmokeLoader.py,sha256=ruQ_GDiZvqtGxUTbN2N6fajUYWkIylFTvMXijgZ8L20,3890
|
|
53
|
+
cape_parsers/CAPE/core/Socks5Systemz.py,sha256=jSt6QejL5K99dIB3qdItvUHL28w6N60xuwc8EQHM5Mk,783
|
|
54
|
+
cape_parsers/CAPE/core/SquirrelWaffle.py,sha256=UMha7l60fL64VPHxueFUnCEGaO-CXau5ftEyK-Wv__o,3308
|
|
55
|
+
cape_parsers/CAPE/core/Strrat.py,sha256=PAKTzGZCdblXr4pNKsOpNOPhvcaAfRCiE9BtKAeOp0M,2240
|
|
56
|
+
cape_parsers/CAPE/core/WarzoneRAT.py,sha256=aHB6n-EX4uMZA93_R4yiFzRsvoqxfh7sdbtlAA-Ia2E,3780
|
|
57
|
+
cape_parsers/CAPE/core/Zloader.py,sha256=Etjowu5fZOW7fFykPNOTDhLWjTcdvtPZUy3s6R8ln8M,9598
|
|
58
|
+
cape_parsers/CAPE/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
59
|
+
cape_parsers/CAPE/core/test_cape.py,sha256=CrmghlO43hpnTLv0X8Dw4hTcrVHuJ0X20dPXcFpeWYo,31
|
|
60
|
+
cape_parsers/RATDecoders/README.md,sha256=SHgVQraCdp033IQjM4Cm6t70U4kULn1MfSwTq3rsZv8,22
|
|
61
|
+
cape_parsers/RATDecoders/__init__.py,sha256=JcY8WPKzUFYgexwV1eyKIuT1JyNZzMJjBynlPSzxY_I,7
|
|
62
|
+
cape_parsers/RATDecoders/test_rats.py,sha256=swkWvbnCd6_2aUP6MnIF4hyPL8zsdhtjlsBfx5Phgk4,610
|
|
63
|
+
cape_parsers/__init__.py,sha256=1xtenBXY23B8jf2x1fQ103qYFy0lBW12SN3HFJL7YfE,6243
|
|
64
|
+
cape_parsers/deprecated/BackOffLoader.py,sha256=gIwNDsWm1xGR9whKEEj1eTBB1-KTLY0_yNE50xVScKo,1402
|
|
65
|
+
cape_parsers/deprecated/BackOffPOS.py,sha256=lG7a_bXD3Exaoy-_lHpa90yiv_DesICFqClhqS_d8nk,1486
|
|
66
|
+
cape_parsers/deprecated/BlackNix.py,sha256=NPqXiHWt_UtLm35gi58UriEJRt_L_UWGfS8jvblAECM,2667
|
|
67
|
+
cape_parsers/deprecated/BuerLoader.py,sha256=ZA3IBl5JClHhgGxEVOS4DcihpZkX9FWPEituZcK6p58,1460
|
|
68
|
+
cape_parsers/deprecated/ChChes.py,sha256=RhuY8RnpUWVIZUNSCSComeyi4nHC9CyTwJdNVvhMxzg,2891
|
|
69
|
+
cape_parsers/deprecated/Emotet.py,sha256=aeQ0vwYvZXE8zZ0cgO7Funqsg53ogZow27LA7WeAFGM,41226
|
|
70
|
+
cape_parsers/deprecated/Enfal.py,sha256=J66KDwl3VBaEBt_zhAZ-ZYc_LVsE97armEOzCS0urz0,3902
|
|
71
|
+
cape_parsers/deprecated/EvilGrab.py,sha256=atGMTIpXSoCIZNR0WdKzHtL9Fhr_G7WRB4phyp74xfY,3996
|
|
72
|
+
cape_parsers/deprecated/Greame.py,sha256=pNxxyZzWuquZhZPmmkVhJvs_0444l_buqmsi8uOWILg,3690
|
|
73
|
+
cape_parsers/deprecated/Hancitor.py,sha256=onjSmfNGdw9fR96mTjwvJHFCxT6b7d-7fjP2PUsJP1g,2313
|
|
74
|
+
cape_parsers/deprecated/HttpBrowser.py,sha256=Ao0ZhMg6H7jGX6j86G7swF483TaIlvLppuHuhI025Ug,4541
|
|
75
|
+
cape_parsers/deprecated/JavaDropper.py,sha256=lbnvziAskmfeSs3un3uCujmQRTzV9cDDZKFSSXOJIYU,2716
|
|
76
|
+
cape_parsers/deprecated/Nymaim.py,sha256=OOHI1VlHZzCZW4SqiILUZVeQESpsMFxpCRYg_mksM04,8368
|
|
77
|
+
cape_parsers/deprecated/Pandora.py,sha256=LtGdlqU2rwDrEU3R2VzRNF5b-Mpry0w0bx9hc8WY4dI,2596
|
|
78
|
+
cape_parsers/deprecated/PoisonIvy.py,sha256=EFO-E91gkv5Byny8He81d7Wy-9yKPkM1ndWFhQrQ1pQ,4150
|
|
79
|
+
cape_parsers/deprecated/PredatorPain.py,sha256=CNG6zeak34_zGdeSaqFA5NNlvSWcVrjxpkUgqIsqjFs,6318
|
|
80
|
+
cape_parsers/deprecated/Punisher.py,sha256=vnvcOkAiv-LW_x0vxpb-uWP5MGcXhP9dZ13hOFt_Nbg,1354
|
|
81
|
+
cape_parsers/deprecated/RCSession.py,sha256=B6fuouLJQLOaPV9EPdnOByJjL9Nj0VPncW5M9nXlP1k,4397
|
|
82
|
+
cape_parsers/deprecated/REvil.py,sha256=8xxryaTlEtGnUTFQ1LMULVKOj09hBiPapaX4G7dbpW0,3055
|
|
83
|
+
cape_parsers/deprecated/RedLeaf.py,sha256=ID8R1hl4l83cZCnapkdDxCA9FVXWiSkJpYAuxUSjTXI,3947
|
|
84
|
+
cape_parsers/deprecated/Retefe.py,sha256=l2PcGcBDZFUhhOy1ACPREeykabt63dNtDZOnwREnqeU,5180
|
|
85
|
+
cape_parsers/deprecated/Rozena.py,sha256=z31LEQ8rwr-bkKlOrX3Hm1DmDg8HR-UwydWFDgy44G8,382
|
|
86
|
+
cape_parsers/deprecated/SmallNet.py,sha256=wKwDLBp1zTLrPOJkWX07mEPTp9izFLWCyd0r1fGt0_s,3948
|
|
87
|
+
cape_parsers/deprecated/TSCookie.py,sha256=f4b4HCnn6v3YkMrrmonR5WMdGO0vEiNe-ENhYHqfctk,5632
|
|
88
|
+
cape_parsers/deprecated/TrickBot.py,sha256=EdKOQtKlU0gLkWFiibpBmTIueRVYSqwYo0WCHmaRgGA,6967
|
|
89
|
+
cape_parsers/deprecated/UrsnifV3.py,sha256=Nu4X2l_zwlVMjvEa5gQRaR9SgYKL-C-C9onSmd2DtuU,5510
|
|
90
|
+
cape_parsers/deprecated/_ShadowTech.py,sha256=aMLJSVagsrg5Eb9LJyAZCUm78AtCHtRQOFAlWBQ_E10,3890
|
|
91
|
+
cape_parsers/deprecated/_VirusRat.py,sha256=ricU_b_7bEOqWoT3Z9u47YkHzTJ2o65P_8jZfsFH-ms,2697
|
|
92
|
+
cape_parsers/deprecated/_jRat.py,sha256=kZfrCaeLaiUKK_BXOWwqq3-xYPsiSDCQv1fs9zL5IzE,6575
|
|
93
|
+
cape_parsers/deprecated/unrecom.py,sha256=UxLwpW6w-aGsV6yUx8z35Qxj1v-5Z0pyCND894XXbgU,2076
|
|
94
|
+
cape_parsers/deprecated/xRAT.py,sha256=dey-MyJtnJOFsymC96xD_zlVyIwL0_Q7Lx2BgUu7494,4166
|
|
95
|
+
cape_parsers/malduck/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
96
|
+
cape_parsers/malduck/README.md,sha256=AnQYFz7opU0BriSbmNXP23lXYVo5a3s0MOsZRrKIUqI,1186
|
|
97
|
+
cape_parsers/malduck/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
98
|
+
cape_parsers/malduck/test_malduck.py,sha256=fiX-NXhgAFKN17bDQXVnTKQlMtCXIOSy-DZczrQ-_tE,243
|
|
99
|
+
cape_parsers/mwcp/README.md,sha256=SHgVQraCdp033IQjM4Cm6t70U4kULn1MfSwTq3rsZv8,22
|
|
100
|
+
cape_parsers/mwcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
101
|
+
cape_parsers/mwcp/test_mwcp.py,sha256=ZORPEQxIJeH68aKT_guI7EZqcwFrg4br5GgmsOvlbzo,191
|
|
102
|
+
cape_parsers/utils/__init__.py,sha256=JcY8WPKzUFYgexwV1eyKIuT1JyNZzMJjBynlPSzxY_I,7
|
|
103
|
+
cape_parsers/utils/aplib.py,sha256=U8m9p_IorZtcqk057eelaediLiyaIBdwqgP9JbIGcQY,5059
|
|
104
|
+
cape_parsers/utils/blzpack.py,sha256=y-myrTTkpY9qtM5WhyPxLeq-lQRaVZ5tLycwhjWWyAE,3042
|
|
105
|
+
cape_parsers/utils/blzpack_lib.so,sha256=5PJtnggw8fV5q4DlhwMJk4ZadvC3fFTsVTNZKvEYmUc,33368
|
|
106
|
+
cape_parsers/utils/dotnet_utils.py,sha256=pzQGbCqccz7DRv8T_i1JURlrKDIlDT2axxViiFF9hsU,1672
|
|
107
|
+
cape_parsers/utils/lznt1.py,sha256=X-BmJtP6AwYSl0ORg5dfSt-NIuXbHrtCO5kUaaJI2C8,4066
|
|
108
|
+
cape_parsers/utils/strings.py,sha256=a-nbvP9jYST7b6t_H37Ype-fK2jEmQr-wMF5a4i04e4,3062
|
|
109
|
+
cape_parsers-0.1.46.dist-info/LICENSE,sha256=88c01_HLG8WPj7R7aU_b-O-UoF38vrrifvcko4KDxcE,1069
|
|
110
|
+
cape_parsers-0.1.46.dist-info/METADATA,sha256=Kth4z4ynvX9pPUos60-6ZkId0-qpwLRegMArC-S5y-8,1753
|
|
111
|
+
cape_parsers-0.1.46.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
112
|
+
cape_parsers-0.1.46.dist-info/RECORD,,
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import pefile
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
def extract_raw_config(raw_data):
|
|
5
|
-
try:
|
|
6
|
-
pe = pefile.PE(data=raw_data)
|
|
7
|
-
rt_string_idx = [entry.id for entry in pe.DIRECTORY_ENTRY_RESOURCE.entries].index(pefile.RESOURCE_TYPE["RT_RCDATA"])
|
|
8
|
-
rt_string_directory = pe.DIRECTORY_ENTRY_RESOURCE.entries[rt_string_idx]
|
|
9
|
-
for entry in rt_string_directory.directory.entries:
|
|
10
|
-
if str(entry.name) == "SETTINGS":
|
|
11
|
-
data_rva = entry.directory.entries[0].data.struct.OffsetToData
|
|
12
|
-
size = entry.directory.entries[0].data.struct.Size
|
|
13
|
-
data = pe.get_memory_mapped_image()[data_rva : data_rva + size]
|
|
14
|
-
return data.split("}")
|
|
15
|
-
except Exception:
|
|
16
|
-
return None
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
def decode(line):
|
|
20
|
-
return "".join(chr(ord(char) - 1) for char in line)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
def domain_parse(config):
|
|
24
|
-
return [domain.split(":", 1)[0] for domain in config["Domains"].split(";")]
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
def extract_config(data):
|
|
28
|
-
try:
|
|
29
|
-
config_raw = extract_raw_config(data)
|
|
30
|
-
if config_raw:
|
|
31
|
-
return {
|
|
32
|
-
"Mutex": decode(config_raw[1])[::-1],
|
|
33
|
-
"Anti Sandboxie": decode(config_raw[2])[::-1],
|
|
34
|
-
"Max Folder Size": decode(config_raw[3])[::-1],
|
|
35
|
-
"Delay Time": decode(config_raw[4])[::-1],
|
|
36
|
-
"Password": decode(config_raw[5])[::-1],
|
|
37
|
-
"Kernel Mode Unhooking": decode(config_raw[6])[::-1],
|
|
38
|
-
"User More Unhooking": decode(config_raw[7])[::-1],
|
|
39
|
-
"Melt Server": decode(config_raw[8])[::-1],
|
|
40
|
-
"Offline Screen Capture": decode(config_raw[9])[::-1],
|
|
41
|
-
"Offline Keylogger": decode(config_raw[10])[::-1],
|
|
42
|
-
"Copy To ADS": decode(config_raw[11])[::-1],
|
|
43
|
-
"Domain": decode(config_raw[12])[::-1],
|
|
44
|
-
"Persistence Thread": decode(config_raw[13])[::-1],
|
|
45
|
-
"Active X Key": decode(config_raw[14])[::-1],
|
|
46
|
-
"Registry Key": decode(config_raw[15])[::-1],
|
|
47
|
-
"Active X Run": decode(config_raw[16])[::-1],
|
|
48
|
-
"Registry Run": decode(config_raw[17])[::-1],
|
|
49
|
-
"Safe Mode Startup": decode(config_raw[18])[::-1],
|
|
50
|
-
"Inject winlogon.exe": decode(config_raw[19])[::-1],
|
|
51
|
-
"Install Name": decode(config_raw[20])[::-1],
|
|
52
|
-
"Install Path": decode(config_raw[21])[::-1],
|
|
53
|
-
"Campaign Name": decode(config_raw[22])[::-1],
|
|
54
|
-
"Campaign Group": decode(config_raw[23])[::-1],
|
|
55
|
-
}
|
|
56
|
-
except Exception:
|
|
57
|
-
return None
|
cape_parsers/CAPE/core/Stealc.py
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import socket
|
|
2
|
-
from contextlib import suppress
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
def _is_ip(ip):
|
|
6
|
-
try:
|
|
7
|
-
socket.inet_aton(ip)
|
|
8
|
-
return True
|
|
9
|
-
except Exception:
|
|
10
|
-
return False
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
def extract_config(data):
|
|
14
|
-
config_dict = {"C2s": []}
|
|
15
|
-
with suppress(Exception):
|
|
16
|
-
if data[:2] == b"MZ":
|
|
17
|
-
return
|
|
18
|
-
for line in data.decode().split("\n"):
|
|
19
|
-
if _is_ip(line) and line not in config_dict["C2s"]:
|
|
20
|
-
config_dict["C2s"].append(line)
|
|
21
|
-
return config_dict
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
cape_parsers/CAPE/__init__.py,sha256=JcY8WPKzUFYgexwV1eyKIuT1JyNZzMJjBynlPSzxY_I,7
|
|
2
|
-
cape_parsers/CAPE/community/AgentTesla.py,sha256=T1gUd28eoCGA5by3ylAAK1naenF0fE3jgYx7UBkCRDk,3559
|
|
3
|
-
cape_parsers/CAPE/community/Arkei.py,sha256=kXn949PC2CksavsL1BgvKgiAUDcq2NQUirosCTQcDF0,3790
|
|
4
|
-
cape_parsers/CAPE/community/AsyncRAT.py,sha256=0nGLNnwnO93SPbCTgoIMvkh6_smuzQxDcYtL77afGx8,1001
|
|
5
|
-
cape_parsers/CAPE/community/AuroraStealer.py,sha256=UUoxgJtDan3fE1r8aDEKweC_URkV97QHBp1Hq_n7ShI,2419
|
|
6
|
-
cape_parsers/CAPE/community/BackOffLoader.py,sha256=gIwNDsWm1xGR9whKEEj1eTBB1-KTLY0_yNE50xVScKo,1402
|
|
7
|
-
cape_parsers/CAPE/community/BackOffPOS.py,sha256=lG7a_bXD3Exaoy-_lHpa90yiv_DesICFqClhqS_d8nk,1486
|
|
8
|
-
cape_parsers/CAPE/community/BlackNix.py,sha256=ToI6roQfjwJWb_a7mzwub8gqJnoUXmz-gLk_VPdH55o,2536
|
|
9
|
-
cape_parsers/CAPE/community/Carbanak.py,sha256=G-v2wb1Zs5NTkFFfpnvlNaX_YZzDEAE2_sB5_blWxtM,5567
|
|
10
|
-
cape_parsers/CAPE/community/CobaltStrikeBeacon.py,sha256=zZqvrK1TNLFsiQgTxo_0EN4sNIpM_WzyH7RGyk5oOnY,19399
|
|
11
|
-
cape_parsers/CAPE/community/CobaltStrikeStager.py,sha256=fdT3gPfCtjqtohwYD5Z7bRWQgKqwbM_e4LuuaZxvl7g,7473
|
|
12
|
-
cape_parsers/CAPE/community/DCRat.py,sha256=0nGLNnwnO93SPbCTgoIMvkh6_smuzQxDcYtL77afGx8,1001
|
|
13
|
-
cape_parsers/CAPE/community/Fareit.py,sha256=NYkcF7Ddf7SqaSJwGesGTumTJ2p8AT9qBE4tNpiS9Ao,2003
|
|
14
|
-
cape_parsers/CAPE/community/Greame.py,sha256=99W1aUoSNAQ9KMO85liel5rAN0Wutzo-m176iwfOzds,3633
|
|
15
|
-
cape_parsers/CAPE/community/KoiLoader.py,sha256=ZTDm7tGGNFyW8N9l35_ta7ucBuE5AL9YprNR36kfid8,4029
|
|
16
|
-
cape_parsers/CAPE/community/LokiBot.py,sha256=whdVVLqu760ai90Ep-_Ghc_Z1yaty9fMSOcnY5IajXc,5660
|
|
17
|
-
cape_parsers/CAPE/community/Lumma.py,sha256=0SxjHg61qvhXnqADEW3uS3aD_qbtPZUDKGhGsbNdQXE,12131
|
|
18
|
-
cape_parsers/CAPE/community/NanoCore.py,sha256=0dqhCoAyDJaYgAlbXIwCa1esfEuQSk5AtH1Rl4bj1l8,6120
|
|
19
|
-
cape_parsers/CAPE/community/Nighthawk.py,sha256=eXnDqwabnrlRROg503oXYLEgotMW4hKeYwLas8SrkTc,12104
|
|
20
|
-
cape_parsers/CAPE/community/Njrat.py,sha256=_noQM5058BYwTMcYCpcTD9gIxw4ANI35tUSLMAlN97Q,4713
|
|
21
|
-
cape_parsers/CAPE/community/Pandora.py,sha256=d6R3AsDr5WOfKKyA6HI0yQ5Eo7_Eif5LspW0cm2wM5M,2522
|
|
22
|
-
cape_parsers/CAPE/community/PhemedroneStealer.py,sha256=T6jMW73htNCRTqlEqeec9Y3p7BKuSmit3RvWFfd8IJ8,7032
|
|
23
|
-
cape_parsers/CAPE/community/PoisonIvy.py,sha256=EFO-E91gkv5Byny8He81d7Wy-9yKPkM1ndWFhQrQ1pQ,4150
|
|
24
|
-
cape_parsers/CAPE/community/Punisher.py,sha256=1CRo8Bg6O_S6k0aql7sSWH0bwU3Y5Ti_Rh6FRyeWYm0,1321
|
|
25
|
-
cape_parsers/CAPE/community/QuasarRAT.py,sha256=dzVInOc-BPVRdArk92oEY4PKq1AEW04NUToL8UV-UGk,146
|
|
26
|
-
cape_parsers/CAPE/community/README.md,sha256=SHgVQraCdp033IQjM4Cm6t70U4kULn1MfSwTq3rsZv8,22
|
|
27
|
-
cape_parsers/CAPE/community/REvil.py,sha256=tTbcJPN0wdNeSZjD3egZ8_FKjLgf5IVOzUE1p-hPUdw,2806
|
|
28
|
-
cape_parsers/CAPE/community/Retefe.py,sha256=belXWSqYPS5ApaepergVMF6I9iAI7k-mmPjQVEDRsS4,5182
|
|
29
|
-
cape_parsers/CAPE/community/Rozena.py,sha256=NpU3GtNwrFivRNqMbjEqLueZCl76WP6RNuV0KDEpwuE,414
|
|
30
|
-
cape_parsers/CAPE/community/SmallNet.py,sha256=Xg9jschAue_LnXZCUk1KUFj_CkKCdN7fHp6KWPROi_o,3881
|
|
31
|
-
cape_parsers/CAPE/community/Snake.py,sha256=mpUSZmVyxvJA9rdlWV5J7nshT4zKYIucCddvFxnR4BI,6195
|
|
32
|
-
cape_parsers/CAPE/community/SparkRAT.py,sha256=Fh7VPgIuTAiIzDbd-OS7WukQdgBfXIvVcT1Sx9OfxkA,2070
|
|
33
|
-
cape_parsers/CAPE/community/Stealc.py,sha256=UyAcdt47Tgo-dSncW9J62egnqMa2vKVlFW6Zxd7hUGA,3763
|
|
34
|
-
cape_parsers/CAPE/community/TSCookie.py,sha256=f4b4HCnn6v3YkMrrmonR5WMdGO0vEiNe-ENhYHqfctk,5632
|
|
35
|
-
cape_parsers/CAPE/community/TrickBot.py,sha256=EdKOQtKlU0gLkWFiibpBmTIueRVYSqwYo0WCHmaRgGA,6967
|
|
36
|
-
cape_parsers/CAPE/community/VenomRAT.py,sha256=0nGLNnwnO93SPbCTgoIMvkh6_smuzQxDcYtL77afGx8,1001
|
|
37
|
-
cape_parsers/CAPE/community/XWorm.py,sha256=0nGLNnwnO93SPbCTgoIMvkh6_smuzQxDcYtL77afGx8,1001
|
|
38
|
-
cape_parsers/CAPE/community/XenoRAT.py,sha256=0nGLNnwnO93SPbCTgoIMvkh6_smuzQxDcYtL77afGx8,1001
|
|
39
|
-
cape_parsers/CAPE/community/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
|
-
cape_parsers/CAPE/core/AdaptixBeacon.py,sha256=vjb2tK_Wpx4h71bImTJWyPJjrmr_4d6Z9_P827w_-48,2908
|
|
41
|
-
cape_parsers/CAPE/core/Azorult.py,sha256=7AWPeOWhji7n13qTjq-XNPA8LDKcCOOUy8nbT0TUU_I,2145
|
|
42
|
-
cape_parsers/CAPE/core/BitPaymer.py,sha256=N3Ssi_zNliKn1vt2Z1UndMGZg4CIOjf75XDdpCx2ITc,2898
|
|
43
|
-
cape_parsers/CAPE/core/BlackDropper.py,sha256=OyplMDY4GFcBgqoZqbpCRIusNHhcxK2qZuH8bQu8qlw,3173
|
|
44
|
-
cape_parsers/CAPE/core/Blister.py,sha256=JAh_lmWNGLjgMH53SDmN73J_x6RW2yrRsUKHGZ-U9ug,18106
|
|
45
|
-
cape_parsers/CAPE/core/BruteRatel.py,sha256=8FhDHhVGB7qBEjKSujHHTgMeV1LlTXiljqb_yK6BS7U,758
|
|
46
|
-
cape_parsers/CAPE/core/BuerLoader.py,sha256=X1PwdDypVyvOTEF7I44rED68uCQGBFQrcNOuJ9p60ic,1463
|
|
47
|
-
cape_parsers/CAPE/core/BumbleBee.py,sha256=spDp7mAr6cAXvHFkVJqLdMwcDRonTLk2_EoTTrOiVVM,9837
|
|
48
|
-
cape_parsers/CAPE/core/ChChes.py,sha256=h230wjgdLaAFYPWybHnz6Lve2OKPkzprxW5szBcK9hE,2905
|
|
49
|
-
cape_parsers/CAPE/core/DarkGate.py,sha256=QGz6od5OGwdHHkmeU5OyXcevT7SapkNa8luu9WtNfKM,3464
|
|
50
|
-
cape_parsers/CAPE/core/DoppelPaymer.py,sha256=jND9-9iqpAirrg0N9kCTgdiz6cvdKUx4k_1TC2DHIf0,2386
|
|
51
|
-
cape_parsers/CAPE/core/DridexLoader.py,sha256=iABJTcq7Al6sdMrWfvi0BPj0znUyL-VQTffU1F4EpxA,7041
|
|
52
|
-
cape_parsers/CAPE/core/Emotet.py,sha256=aeQ0vwYvZXE8zZ0cgO7Funqsg53ogZow27LA7WeAFGM,41226
|
|
53
|
-
cape_parsers/CAPE/core/Enfal.py,sha256=4t2ccKq2MqQkPwnsiZBe2C00DutollcozCpNFNTsOT8,3908
|
|
54
|
-
cape_parsers/CAPE/core/EvilGrab.py,sha256=gaxmG65ntiE8Y_MRKMtELICbBym1tvKpolpk1WMgN4I,3909
|
|
55
|
-
cape_parsers/CAPE/core/Formbook.py,sha256=EMnrc-vNr2rfuQGkMiwKjodhsJV_qM5wQRvos1VHD3g,526
|
|
56
|
-
cape_parsers/CAPE/core/GuLoader.py,sha256=2DgE2hMkkNO2KVdtF8B4PmuCDnkK64u7xPMHD--UZ8U,407
|
|
57
|
-
cape_parsers/CAPE/core/HttpBrowser.py,sha256=rlJhbv06m3XkPb_oIN3dGrfl_uNxwR1tDv0M4ctstx8,4539
|
|
58
|
-
cape_parsers/CAPE/core/IcedID.py,sha256=lKJZoRWQa-q0TNaylLCmm2hoj1h0wNP6eUmp-uI94pQ,4023
|
|
59
|
-
cape_parsers/CAPE/core/IcedIDLoader.py,sha256=SQ3cqAnQ4elTiOrDQb5hMkFG-ymzek97yRNZd1967pA,1588
|
|
60
|
-
cape_parsers/CAPE/core/Latrodectus.py,sha256=19bQUZBjPJ7sxz6OMpNVvsboq8LHO5z-fGGj9qC-lfA,7493
|
|
61
|
-
cape_parsers/CAPE/core/Oyster.py,sha256=WVUimz6M3DxSnM6pnUI2s6hbLIQKiwhVs4KNwxEbJhE,4818
|
|
62
|
-
cape_parsers/CAPE/core/PikaBot.py,sha256=s3jJL--NNwsvy9FkAADutbmqndlCZP6-ZI3W11p4QjE,5264
|
|
63
|
-
cape_parsers/CAPE/core/PlugX.py,sha256=NiXAqkE5fFBioyRYALX8azaIo9pvfFfPP6xiLzO3TRQ,13156
|
|
64
|
-
cape_parsers/CAPE/core/QakBot.py,sha256=SfYl6I78pSptAldoljdALJYFDyahCw9zfC26knPC69c,18198
|
|
65
|
-
cape_parsers/CAPE/core/Quickbind.py,sha256=g5HQ7_yHROCy2Nv5o741GI7dH5mo8kD_beluc7NCY54,3728
|
|
66
|
-
cape_parsers/CAPE/core/RCSession.py,sha256=U8O7fDI-uU1gJ_BLRjosF80FuNqhIgSV0RQXfQ9XXSg,4301
|
|
67
|
-
cape_parsers/CAPE/core/README.md,sha256=Zd84WEUj9NzKzGnVZV1jx6gMiEOtz01m32B7xEuS91k,17
|
|
68
|
-
cape_parsers/CAPE/core/RedLeaf.py,sha256=Eo49AKDSNmaIOnoRq1nVVhsxGEniejNkTiOXop8c_fw,3939
|
|
69
|
-
cape_parsers/CAPE/core/RedLine.py,sha256=4veoGo4X1pApCn9dAFmFamfDsS-BROh_PuwiWcIwY8E,5704
|
|
70
|
-
cape_parsers/CAPE/core/Remcos.py,sha256=WusmTiu5hwIeLCO75xmtrDFhIvaYefUJv79nSVhBdX4,9384
|
|
71
|
-
cape_parsers/CAPE/core/Rhadamanthys.py,sha256=TuhWqOssRiTOEuCk_UXBd3SPz-V71pOCYLwpSaZXX2I,6107
|
|
72
|
-
cape_parsers/CAPE/core/SmokeLoader.py,sha256=y3PGuAhGkvRSlbi1-PViv66LW4N8AA2Rc5UzxV_nRvw,3889
|
|
73
|
-
cape_parsers/CAPE/core/Socks5Systemz.py,sha256=k5AdoNKl32m6g1MlOWw4EXvfqMJOFuyw5I0VkQicjRs,759
|
|
74
|
-
cape_parsers/CAPE/core/SquirrelWaffle.py,sha256=ErCT5eeo5xiQTBzhpaS22PQ8pp-u-G4cjJ4bapjKT2U,3283
|
|
75
|
-
cape_parsers/CAPE/core/Stealc.py,sha256=LJivSCnho9KrSp5Lbw5oRa8vdKm3y7cNxXaev4tdl-8,488
|
|
76
|
-
cape_parsers/CAPE/core/Strrat.py,sha256=StKPm9Qx8iIIjWb-2P7Naow6sMSJ9tclXJcUQ8JUcWc,2243
|
|
77
|
-
cape_parsers/CAPE/core/UrsnifV3.py,sha256=Nu4X2l_zwlVMjvEa5gQRaR9SgYKL-C-C9onSmd2DtuU,5510
|
|
78
|
-
cape_parsers/CAPE/core/WarzoneRAT.py,sha256=Gk0eZVCNGgscNlpsbB123v4P5rvCeyf8avcTHRAd4aA,3725
|
|
79
|
-
cape_parsers/CAPE/core/Zloader.py,sha256=OQI2zM_L98QiElOK1l26QGV0253sXbPoUfYLR2M2uHQ,9403
|
|
80
|
-
cape_parsers/CAPE/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
81
|
-
cape_parsers/CAPE/core/test_cape.py,sha256=CrmghlO43hpnTLv0X8Dw4hTcrVHuJ0X20dPXcFpeWYo,31
|
|
82
|
-
cape_parsers/RATDecoders/README.md,sha256=SHgVQraCdp033IQjM4Cm6t70U4kULn1MfSwTq3rsZv8,22
|
|
83
|
-
cape_parsers/RATDecoders/__init__.py,sha256=JcY8WPKzUFYgexwV1eyKIuT1JyNZzMJjBynlPSzxY_I,7
|
|
84
|
-
cape_parsers/RATDecoders/test_rats.py,sha256=84bha95FLKXiLDzP_yAn6E9BJlfBPPE77KWSa4OzS4k,609
|
|
85
|
-
cape_parsers/__init__.py,sha256=KeYDB482ZnBsNNXYGZNjFFdFJkSIOjmgGnAGlTRgCek,6220
|
|
86
|
-
cape_parsers/deprecated/Hancitor.py,sha256=onjSmfNGdw9fR96mTjwvJHFCxT6b7d-7fjP2PUsJP1g,2313
|
|
87
|
-
cape_parsers/deprecated/JavaDropper.py,sha256=lbnvziAskmfeSs3un3uCujmQRTzV9cDDZKFSSXOJIYU,2716
|
|
88
|
-
cape_parsers/deprecated/Nymaim.py,sha256=OOHI1VlHZzCZW4SqiILUZVeQESpsMFxpCRYg_mksM04,8368
|
|
89
|
-
cape_parsers/deprecated/PredatorPain.py,sha256=CNG6zeak34_zGdeSaqFA5NNlvSWcVrjxpkUgqIsqjFs,6318
|
|
90
|
-
cape_parsers/deprecated/_ShadowTech.py,sha256=aMLJSVagsrg5Eb9LJyAZCUm78AtCHtRQOFAlWBQ_E10,3890
|
|
91
|
-
cape_parsers/deprecated/_VirusRat.py,sha256=ricU_b_7bEOqWoT3Z9u47YkHzTJ2o65P_8jZfsFH-ms,2697
|
|
92
|
-
cape_parsers/deprecated/_jRat.py,sha256=kZfrCaeLaiUKK_BXOWwqq3-xYPsiSDCQv1fs9zL5IzE,6575
|
|
93
|
-
cape_parsers/deprecated/unrecom.py,sha256=UxLwpW6w-aGsV6yUx8z35Qxj1v-5Z0pyCND894XXbgU,2076
|
|
94
|
-
cape_parsers/deprecated/xRAT.py,sha256=dey-MyJtnJOFsymC96xD_zlVyIwL0_Q7Lx2BgUu7494,4166
|
|
95
|
-
cape_parsers/malduck/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
96
|
-
cape_parsers/malduck/README.md,sha256=AnQYFz7opU0BriSbmNXP23lXYVo5a3s0MOsZRrKIUqI,1186
|
|
97
|
-
cape_parsers/malduck/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
98
|
-
cape_parsers/malduck/test_malduck.py,sha256=fiX-NXhgAFKN17bDQXVnTKQlMtCXIOSy-DZczrQ-_tE,243
|
|
99
|
-
cape_parsers/mwcp/README.md,sha256=SHgVQraCdp033IQjM4Cm6t70U4kULn1MfSwTq3rsZv8,22
|
|
100
|
-
cape_parsers/mwcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
101
|
-
cape_parsers/mwcp/test_mwcp.py,sha256=ZORPEQxIJeH68aKT_guI7EZqcwFrg4br5GgmsOvlbzo,191
|
|
102
|
-
cape_parsers/utils/__init__.py,sha256=JcY8WPKzUFYgexwV1eyKIuT1JyNZzMJjBynlPSzxY_I,7
|
|
103
|
-
cape_parsers/utils/aplib.py,sha256=U8m9p_IorZtcqk057eelaediLiyaIBdwqgP9JbIGcQY,5059
|
|
104
|
-
cape_parsers/utils/blzpack.py,sha256=y-myrTTkpY9qtM5WhyPxLeq-lQRaVZ5tLycwhjWWyAE,3042
|
|
105
|
-
cape_parsers/utils/blzpack_lib.so,sha256=5PJtnggw8fV5q4DlhwMJk4ZadvC3fFTsVTNZKvEYmUc,33368
|
|
106
|
-
cape_parsers/utils/dotnet_utils.py,sha256=pzQGbCqccz7DRv8T_i1JURlrKDIlDT2axxViiFF9hsU,1672
|
|
107
|
-
cape_parsers/utils/lznt1.py,sha256=X-BmJtP6AwYSl0ORg5dfSt-NIuXbHrtCO5kUaaJI2C8,4066
|
|
108
|
-
cape_parsers/utils/strings.py,sha256=a-nbvP9jYST7b6t_H37Ype-fK2jEmQr-wMF5a4i04e4,3062
|
|
109
|
-
cape_parsers-0.1.45.dist-info/LICENSE,sha256=88c01_HLG8WPj7R7aU_b-O-UoF38vrrifvcko4KDxcE,1069
|
|
110
|
-
cape_parsers-0.1.45.dist-info/METADATA,sha256=pWGudbNe69KiEDcgrBiRneTOsE-pIWMCLdqa7Umj_pw,1149
|
|
111
|
-
cape_parsers-0.1.45.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
112
|
-
cape_parsers-0.1.45.dist-info/RECORD,,
|
|
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
|