CAPE-parsers 0.1.57__tar.gz → 0.1.58__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.
Files changed (118) hide show
  1. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/PKG-INFO +1 -1
  2. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/SmokeLoader.py +16 -8
  3. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/pyproject.toml +1 -1
  4. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/LICENSE +0 -0
  5. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/README.md +0 -0
  6. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/__init__.py +0 -0
  7. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/AgentTesla.py +0 -0
  8. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/Amadey.py +0 -0
  9. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/Amatera.py +0 -0
  10. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/Arkei.py +0 -0
  11. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/AsyncRAT.py +0 -0
  12. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/AuroraStealer.py +0 -0
  13. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/Carbanak.py +0 -0
  14. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/CobaltStrikeBeacon.py +0 -0
  15. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/CobaltStrikeStager.py +0 -0
  16. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/DCRat.py +0 -0
  17. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/Fareit.py +0 -0
  18. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/KoiLoader.py +0 -0
  19. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/LokiBot.py +0 -0
  20. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/Lumma.py +0 -0
  21. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/MonsterV2.py +0 -0
  22. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/MyKings.py +0 -0
  23. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/NanoCore.py +0 -0
  24. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/Nighthawk.py +0 -0
  25. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/Njrat.py +0 -0
  26. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/PhemedroneStealer.py +0 -0
  27. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/QuasarRAT.py +0 -0
  28. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/README.md +0 -0
  29. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/Snake.py +0 -0
  30. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/SparkRAT.py +0 -0
  31. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/Stealc.py +0 -0
  32. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/VenomRAT.py +0 -0
  33. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/WinosStager.py +0 -0
  34. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/XWorm.py +0 -0
  35. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/XenoRAT.py +0 -0
  36. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/community/__init__.py +0 -0
  37. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/AdaptixBeacon.py +0 -0
  38. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/AuraStealer.py +0 -0
  39. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/Azorult.py +0 -0
  40. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/BitPaymer.py +0 -0
  41. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/BlackDropper.py +0 -0
  42. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/Blister.py +0 -0
  43. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/BruteRatel.py +0 -0
  44. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/BumbleBee.py +0 -0
  45. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/DarkGate.py +0 -0
  46. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/DoppelPaymer.py +0 -0
  47. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/DridexLoader.py +0 -0
  48. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/Formbook.py +0 -0
  49. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/GuLoader.py +0 -0
  50. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/IcedID.py +0 -0
  51. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/IcedIDLoader.py +0 -0
  52. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/Latrodectus.py +0 -0
  53. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/NitroBunnyDownloader.py +0 -0
  54. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/Oyster.py +0 -0
  55. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/PikaBot.py +0 -0
  56. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/PlugX.py +0 -0
  57. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/QakBot.py +0 -0
  58. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/Quickbind.py +0 -0
  59. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/README.md +0 -0
  60. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/RedLine.py +0 -0
  61. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/Remcos.py +0 -0
  62. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/Rhadamanthys.py +0 -0
  63. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/Socks5Systemz.py +0 -0
  64. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/SquirrelWaffle.py +0 -0
  65. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/Strrat.py +0 -0
  66. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/WarzoneRAT.py +0 -0
  67. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/Zloader.py +0 -0
  68. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/__init__.py +0 -0
  69. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/CAPE/core/test_cape.py +0 -0
  70. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/RATDecoders/README.md +0 -0
  71. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/RATDecoders/__init__.py +0 -0
  72. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/RATDecoders/test_rats.py +0 -0
  73. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/__init__.py +0 -0
  74. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/BackOffLoader.py +0 -0
  75. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/BackOffPOS.py +0 -0
  76. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/BlackNix.py +0 -0
  77. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/BuerLoader.py +0 -0
  78. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/ChChes.py +0 -0
  79. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/Emotet.py +0 -0
  80. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/Enfal.py +0 -0
  81. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/EvilGrab.py +0 -0
  82. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/Greame.py +0 -0
  83. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/Hancitor.py +0 -0
  84. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/HttpBrowser.py +0 -0
  85. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/JavaDropper.py +0 -0
  86. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/Nymaim.py +0 -0
  87. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/Pandora.py +0 -0
  88. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/PoisonIvy.py +0 -0
  89. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/PredatorPain.py +0 -0
  90. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/Punisher.py +0 -0
  91. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/RCSession.py +0 -0
  92. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/REvil.py +0 -0
  93. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/RedLeaf.py +0 -0
  94. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/Retefe.py +0 -0
  95. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/Rozena.py +0 -0
  96. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/SmallNet.py +0 -0
  97. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/TSCookie.py +0 -0
  98. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/TrickBot.py +0 -0
  99. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/UrsnifV3.py +0 -0
  100. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/_ShadowTech.py +0 -0
  101. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/_VirusRat.py +0 -0
  102. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/_jRat.py +0 -0
  103. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/unrecom.py +0 -0
  104. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/deprecated/xRAT.py +0 -0
  105. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/malduck/LICENSE +0 -0
  106. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/malduck/README.md +0 -0
  107. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/malduck/__init__.py +0 -0
  108. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/malduck/test_malduck.py +0 -0
  109. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/mwcp/README.md +0 -0
  110. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/mwcp/__init__.py +0 -0
  111. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/mwcp/test_mwcp.py +0 -0
  112. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/utils/__init__.py +0 -0
  113. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/utils/aplib.py +0 -0
  114. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/utils/blzpack.py +0 -0
  115. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/utils/blzpack_lib.so +0 -0
  116. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/utils/dotnet_utils.py +0 -0
  117. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/utils/lznt1.py +0 -0
  118. {cape_parsers-0.1.57 → cape_parsers-0.1.58}/cape_parsers/utils/strings.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: CAPE-parsers
3
- Version: 0.1.57
3
+ Version: 0.1.58
4
4
  Summary: CAPE: Malware Configuration Extraction
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -14,17 +14,14 @@ rule SmokeLoader
14
14
  {
15
15
  meta:
16
16
  author = "kevoreilly"
17
- description = "SmokeLoader Payload"
18
- cape_type = "SmokeLoader Payload"
17
+ description = "SmokeLoader Config Extraction"
19
18
  strings:
20
- $rc4_decrypt64 = {41 8D 41 01 44 0F B6 C8 42 0F B6 [2] 41 8D 04 12 44 0F B6 D0 42 8A [2] 42 88 [2] 42 88 [2] 42 0F B6 [2] 03 CA 0F B6 C1 8A [2] 30 0F 48 FF C7 49 FF CB 75}
21
- $rc4_decrypt32 = {47 B9 FF 00 00 00 23 F9 8A 54 [2] 0F B6 C2 03 F0 23 F1 8A 44 [2] 88 44 [2] 88 54 [2] 0F B6 4C [2] 0F B6 C2 03 C8 81 E1 FF 00 00 00 8A 44 [2] 30 04 2B 43 3B 9C 24 [4] 72 C0}
22
- $fetch_c2_64 = {74 ?? B? E8 03 00 00 B9 58 02 00 00 FF [5] 48 FF C? 75 F0 [6-10] 48 8D 05}
19
+ $fetch_c2_64_1 = {74 ?? B? E8 03 00 00 B9 58 02 00 00 FF [5] 48 (FF C?|83 EF 01) 75 (F0|EF) [6-10] 48 8D 05}
20
+ $fetch_c2_64_2 = {74 ?? B? E8 03 00 00 B9 58 02 00 00 FF [5] 48 (FF C?|83 EF 01) 75 (F0|EF) 33 C9 E8}
23
21
  $fetch_c2_32 = {8B 96 [2] (00|01) 00 8B CE 5E 8B 14 95 [4] E9}
24
22
  condition:
25
- 2 of them
23
+ any of them
26
24
  }
27
-
28
25
  """
29
26
 
30
27
  yara_rules = yara.compile(source=rule_source)
@@ -69,7 +66,7 @@ def extract_config(filebuf):
69
66
  continue
70
67
  for item in match.strings:
71
68
  for instance in item.instances:
72
- if "$fetch_c2_64" in item.identifier:
69
+ if "$fetch_c2_64_1" in item.identifier:
73
70
  match_offset = (int(instance.offset) & 0xFFFF) + instance.matched_length
74
71
  try:
75
72
  c2list_offset = (
@@ -78,6 +75,17 @@ def extract_config(filebuf):
78
75
  except Exception:
79
76
  break
80
77
  delta = 8
78
+ if "$fetch_c2_64_2" in item.identifier:
79
+ match_offset = (int(instance.offset) & 0xFFFF) + instance.matched_length
80
+ try:
81
+ func = (
82
+ struct.unpack("<I", filebuf[match_offset : match_offset + 4])[0] + match_offset + 4
83
+ ) & 0xFFFF
84
+ c2list_pointer = struct.unpack("i", filebuf[func+11:func+15])[0]+func+15
85
+ c2list_offset = struct.unpack("H", filebuf[c2list_pointer:c2list_pointer+2])[0]
86
+ except Exception:
87
+ break
88
+ delta = 8
81
89
  if "$fetch_c2_32" in item.identifier:
82
90
  match_offset = (int(instance[0]) & 0xFFFF) + 12
83
91
  try:
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "CAPE-parsers"
3
- version = "0.1.57"
3
+ version = "0.1.58"
4
4
  description = "CAPE: Malware Configuration Extraction"
5
5
  authors = ["Kevin O'Reilly <kev@capesandbox.com>", "doomedraven <doomedraven@capesandbox.com>"]
6
6
  license = "MIT"
File without changes
File without changes