From 3cc89f2eb1fad4fac8194dfb94d0b372239b9d2e Mon Sep 17 00:00:00 2001 From: jeFF0Falltrades <8444166+jeFF0Falltrades@users.noreply.github.com> Date: Sun, 1 Sep 2024 10:20:31 -0400 Subject: [PATCH 01/98] Updates RAT King Parser to commit b85abe5 --- lib/parsers_aux/ratking/__init__.py | 50 ++++--- lib/parsers_aux/ratking/utils/config_item.py | 7 +- .../decryptors/config_decryptor_aes_ecb.py | 1 + modules/processing/parsers/CAPE/AsyncRat.py | 88 +---------- modules/processing/parsers/CAPE/XWorm.py | 137 +----------------- 5 files changed, 44 insertions(+), 239 deletions(-) diff --git a/lib/parsers_aux/ratking/__init__.py b/lib/parsers_aux/ratking/__init__.py index 821b0b402d6..93359cf676f 100644 --- a/lib/parsers_aux/ratking/__init__.py +++ b/lib/parsers_aux/ratking/__init__.py @@ -5,7 +5,7 @@ # Author: jeFF0Falltrades # # Provides the primary functionality for parsing configurations from the -# AsyncRAT, DcRAT, QuasarRAT, VenomRAT, etc. RAT families +# AsyncRAT, DcRAT, QuasarRAT, VenomRAT, XWorm, XenoRAT, etc. RAT families # # MIT License # @@ -49,7 +49,9 @@ class RATConfigParser: config_item.SpecialFolderConfigItem(), config_item.EncryptedStringConfigItem(), ] - MIN_CONFIG_LEN = 7 + # Min and max number of items in a potential config section + MIN_CONFIG_LEN_FLOOR = 5 + MIN_CONFIG_LEN_CEILING = 7 PATTERN_VERIFY_HASH = rb"(?:\x7e.{3}\x04(?:\x6f.{3}\x0a){2}\x74.{3}\x01.+?\x2a.+?\x00{6,})" def __init__(self, file_data=False): @@ -73,7 +75,7 @@ def __init__(self, file_data=False): self.report["config"] = f"Exception encountered: {e}" # Decrypts/decodes values from an encrypted config - def decrypt_and_decode_config(self, encrypted_config): + def decrypt_and_decode_config(self, encrypted_config, min_config_len): decoded_config = {} selected_decryptor = 0 for item in self.CONFIG_ITEM_TYPES: @@ -101,8 +103,8 @@ def decrypt_and_decode_config(self, encrypted_config): arr_size, arr_rva = item_data[k] item_data[k] = self.dnpp.byte_array_from_size_and_rva(arr_size, arr_rva).hex() decoded_config.update(item_data) - if len(decoded_config) < self.MIN_CONFIG_LEN: - raise ConfigParserException("Minimum threshold of config items not met") + if len(decoded_config) < min_config_len: + raise ConfigParserException(f"Minimum threshold of config items not met for threshold: {len(decoded_config)}/{min_config_len}") return decoded_config # Searches for the RAT configuration in the Settings module @@ -130,17 +132,20 @@ def get_config_cctor_brute_force(self): # Get each .cctor method RVA and bytes content up to a RET op candidate_data = {rva: self.dnpp.string_from_offset(self.dnpp.offset_from_rva(rva), OPCODE_RET) for rva in candidates} config_start, decrypted_config = None, None - for method_rva, method_ins in candidate_data.items(): - logger.debug(f"Attempting brute force at .cctor method at {hex(method_rva)}") - try: - config_start, decrypted_config = ( - method_rva, - self.decrypt_and_decode_config(method_ins), - ) - break - except Exception as e: - logger.debug(e) - continue + min_config_len = self.MIN_CONFIG_LEN_CEILING + while decrypted_config is None and min_config_len >= self.MIN_CONFIG_LEN_FLOOR: + for method_rva, method_ins in candidate_data.items(): + logger.debug(f"Attempting brute force at .cctor method at {hex(method_rva)}") + try: + config_start, decrypted_config = ( + method_rva, + self.decrypt_and_decode_config(method_ins, min_config_len), + ) + break + except Exception as e: + logger.debug(e) + continue + min_config_len -= 1 if decrypted_config is None: raise ConfigParserException("No valid configuration could be parsed from any .cctor methods") return config_start, decrypted_config @@ -159,8 +164,17 @@ def get_config_verify_hash_method(self): config_start = self.dnpp.next_method_from_instruction_offset(hit.start()) # Configuration ends with ret operation, so use that as our terminator encrypted_config = self.dnpp.string_from_offset(config_start, OPCODE_RET) - decrypted_config = self.decrypt_and_decode_config(encrypted_config) - return config_start, decrypted_config + min_config_len = self.MIN_CONFIG_LEN_CEILING + while True: + try: + decrypted_config = self.decrypt_and_decode_config( + encrypted_config, min_config_len + ) + return config_start, decrypted_config + except Exception as e: + if min_config_len < self.MIN_CONFIG_LEN_FLOOR: + raise e + min_config_len -= 1 # Sorts the config by field name RVA prior to replacing RVAs with field # name strings (this is done last to preserve config ordering) diff --git a/lib/parsers_aux/ratking/utils/config_item.py b/lib/parsers_aux/ratking/utils/config_item.py index 2192f30917e..5bfbf78d73c 100644 --- a/lib/parsers_aux/ratking/utils/config_item.py +++ b/lib/parsers_aux/ratking/utils/config_item.py @@ -61,8 +61,11 @@ def parse_from(self, data): except Exception: logger.debug(f"Could not parse value from {obj} at {string_rva}") continue - fields[field_rva] = field_value - found_items += 1 + if field_rva not in fields: + fields[field_rva] = field_value + found_items += 1 + else: + logger.warning(f"Overlapping Field RVAs detected in config at {field_rva}") logger.debug(f"Parsed {found_items} {self.label} values") return fields diff --git a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_ecb.py b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_ecb.py index cb0578fce86..943fb58ddfa 100644 --- a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_ecb.py +++ b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_ecb.py @@ -100,6 +100,7 @@ def decrypt_encrypted_strings(self): last_exc = e if result is None: logger.debug(f"Decryption failed for item {v}: {last_exc}") + result = v logger.debug(f"Key: {k}, Value: {result}") decrypted_config_strings[k] = result logger.debug("Successfully decrypted strings") diff --git a/modules/processing/parsers/CAPE/AsyncRat.py b/modules/processing/parsers/CAPE/AsyncRat.py index 040c41c084f..29c59a04fa2 100644 --- a/modules/processing/parsers/CAPE/AsyncRat.py +++ b/modules/processing/parsers/CAPE/AsyncRat.py @@ -1,87 +1,5 @@ -# based on https://github.com/c3rb3ru5d3d53c/mwcfg-modules/blob/master/asyncrat/asyncrat.py +from lib.parsers_aux.ratking import RATConfigParser -import base64 -import binascii -import re -import string -import struct -from contextlib import suppress -from Cryptodome.Cipher import AES -from Cryptodome.Protocol.KDF import PBKDF2 - - -def get_string(data, index, offset): - return data[index][offset:].decode("utf-8", "ignore") - - -def get_wide_string(data, index, offset): - return (data[index][offset:] + b"\x00").decode("utf-16") - - -def get_salt(): - return bytes.fromhex("BFEB1E56FBCD973BB219022430A57843003D5644D21E62B9D4F180E7E6C33941") - - -def decrypt(key, ciphertext): - aes_key = PBKDF2(key, get_salt(), 32, 50000) - cipher = AES.new(aes_key, AES.MODE_CBC, ciphertext[32 : 32 + 16]) - plaintext = cipher.decrypt(ciphertext[48:]).decode("ascii", "ignore").strip() - return plaintext - - -def decrypt_config_string(key, data, index): - return "".join(filter(lambda x: x in string.printable, decrypt(key, base64.b64decode(data[index][2:])))) - - -def decrypt_config_list(key, data, index): - result = decrypt_config_string(key, data, index) - if result == "null": - return [] - return result.split(",") - - -def extract_config(filebuf): - config = {} - addr = re.search(b"BSJB", filebuf).start() - if not addr: - return - - strings_offset = struct.unpack(" 1: - return filtered_bytes - return "".join(filtered_bytes) - - -def extract_config(data): - config_dict = {} - with suppress(Exception): - if data[:2] == b"MZ": - dn = dnfile.dnPE(data=data) - extracted = [] - conf = [] - - ## Mutex is used to derive AES key, so if it's not found, the extractor is useless - ## The main problem is Mutex is not found in fixed location, so this trick is used to find the Mutex - for pattern in mutexPatterns: - mutexMatched = pattern.findall(data) - if mutexMatched: - mutex = dn.net.user_strings.get(int.from_bytes(mutexMatched[0], "little")).value - AESKey = deriveAESKey(mutex) - break - else: - return - - for match in confPattern.findall(data): - er_string = dn.net.user_strings.get(int.from_bytes(match, "little")).value - extracted.append(er_string) - - for i in range(5): - with suppress(Exception): - conf.append(decryptAES(AESKey, extracted[i], AES.MODE_ECB)) - - config_dict["C2"] = conf[0] - - ## Sometimes the port is not found in configs and 'AES Key (connections)' is shifted with SPL' - if 1 <= int(conf[1]) <= 65535: - config_dict["Port"] = conf[1] - config_dict["AES Key (connections)"] = conf[2] - config_dict["SPL"] = conf[3] - else: - config_dict["Port"] = "" - config_dict["AES Key (connections)"] = conf[1] - config_dict["SPL"] = conf[2] - config_dict["AES Key (configs)"] = AESKey - config_dict["Mutex"] = mutex - - installBinMatch = installBinNamePattern.findall(data) - installDirMatch = installDirPattern.findall(data) - - if installDirMatch: - installDir = dn.net.user_strings.get(int.from_bytes(installDirMatch[0], "little")).value - config_dict["InstallDir"] = decryptAES(AESKey, installDir, AES.MODE_ECB) - if installBinMatch: - installBinName = dn.net.user_strings.get(int.from_bytes(installBinMatch[0], "little")).value - config_dict["InstallBinName"] = decryptAES(AESKey, installBinName, AES.MODE_ECB) - else: - lines = data.decode().split("\n") - if "," in lines[0]: - c2_list = lines[0].split(",") - config_dict["C2s"] = c2_list - else: - config_dict["C2"] = lines[0] - config_dict["Port"] = lines[1] - config_dict["AES Key (connections)"] = lines[2] - config_dict["SPL"] = lines[3] - config_dict["USBNM"] = lines[4] - - return config_dict +def extract_config(data: bytes): + return RATConfigParser(data).report.get("config", {}) From bdac3e0acbf524af38c57cb79f5595af8d7906f3 Mon Sep 17 00:00:00 2001 From: jeFF0Falltrades <8444166+jeFF0Falltrades@users.noreply.github.com> Date: Thu, 19 Sep 2024 23:44:34 -0400 Subject: [PATCH 02/98] Brings RAT King Parser to parity with v3.0.0 --- lib/parsers_aux/ratking/__init__.py | 243 +++++++++++------- .../{utils => }/config_parser_exception.py | 3 +- lib/parsers_aux/ratking/utils/__init__.py | 25 ++ lib/parsers_aux/ratking/utils/config_item.py | 75 +++--- lib/parsers_aux/ratking/utils/data_utils.py | 23 +- .../ratking/utils/decryptors/__init__.py | 18 +- .../utils/decryptors/config_decryptor.py | 29 ++- .../decryptors/config_decryptor_aes_cbc.py | 209 +++++++++------ .../decryptors/config_decryptor_aes_ecb.py | 83 ++++-- .../config_decryptor_decrypt_xor.py | 128 +++++++++ .../decryptors/config_decryptor_plaintext.py | 97 ++++++- .../config_decryptor_random_hardcoded.py | 108 ++++++++ .../ratking/utils/dotnet_constants.py | 9 +- .../ratking/utils/dotnetpe_payload.py | 202 +++++++++------ 14 files changed, 917 insertions(+), 335 deletions(-) rename lib/parsers_aux/ratking/{utils => }/config_parser_exception.py (93%) create mode 100644 lib/parsers_aux/ratking/utils/decryptors/config_decryptor_decrypt_xor.py create mode 100644 lib/parsers_aux/ratking/utils/decryptors/config_decryptor_random_hardcoded.py diff --git a/lib/parsers_aux/ratking/__init__.py b/lib/parsers_aux/ratking/__init__.py index 93359cf676f..6b724e46bbf 100644 --- a/lib/parsers_aux/ratking/__init__.py +++ b/lib/parsers_aux/ratking/__init__.py @@ -29,159 +29,220 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. from logging import getLogger -from re import DOTALL, search +# from os.path import isfile +from re import DOTALL, compile, search +from typing import Any, Tuple + +# from yara import Rules + +from .config_parser_exception import ConfigParserException from .utils import config_item -from .utils.config_parser_exception import ConfigParserException -from .utils.decryptors import SUPPORTED_DECRYPTORS -from .utils.dotnet_constants import OPCODE_RET +from .utils.decryptors import ( + SUPPORTED_DECRYPTORS, + ConfigDecryptor, + IncompatibleDecryptorException, +) from .utils.dotnetpe_payload import DotNetPEPayload logger = getLogger(__name__) class RATConfigParser: - CONFIG_ITEM_TYPES = [ - config_item.BoolConfigItem(), - config_item.ByteArrayConfigItem(), - config_item.IntConfigItem(), - config_item.NullConfigItem(), - config_item.SpecialFolderConfigItem(), - config_item.EncryptedStringConfigItem(), - ] # Min and max number of items in a potential config section - MIN_CONFIG_LEN_FLOOR = 5 - MIN_CONFIG_LEN_CEILING = 7 - PATTERN_VERIFY_HASH = rb"(?:\x7e.{3}\x04(?:\x6f.{3}\x0a){2}\x74.{3}\x01.+?\x2a.+?\x00{6,})" + _MIN_CONFIG_LEN_FLOOR = 5 + _MIN_CONFIG_LEN_CEILING = 9 + + # Pattern to find the VerifyHash() method + _PATTERN_VERIFY_HASH = compile( + rb"\x7e.{3}\x04(?:\x6f.{3}\x0a){2}\x74.{3}\x01", DOTALL + ) - def __init__(self, file_data=False): - self.report = {"config": {}} + # def __init__(self, file_path: str, yara_rule: Rules = None) -> None: + def __init__(self, file_data: bytes = None) -> None: + self.report = { + "config": {}, + } try: + # Filled in _decrypt_and_decode_config() + self._incompatible_decryptors: list[int] = [] + try: + self._dnpp = DotNetPEPayload(file_data) + except Exception as e: + raise e + # self.report["sha256"] = self._dnpp.sha256 + # self.report["yara_possible_family"] = self._dnpp.yara_match - self.dnpp = DotNetPEPayload(file_data) - # self.report["sha256"] = self.dnpp.sha256 - # self.report["possible_yara_family"] = self.dnpp.yara_match - if self.dnpp.dotnetpe is None: - raise ConfigParserException("Failed to load file as .NET executable") - self.decryptor = None # Created in decrypt_and_decode_config() - self.report["config"] = self.get_config() - self.report["config"]["aes_key"] = ( - self.decryptor.key.hex() if self.decryptor is not None and self.decryptor.key is not None else "None" + # Assigned in _decrypt_and_decode_config() + self._decryptor: ConfigDecryptor = None + self.report["config"] = self._get_config() + self.report["key"] = ( + self._decryptor.key.hex() + if self._decryptor is not None and self._decryptor.key is not None + else "None" ) - self.report["config"]["aes_salt"] = ( - self.decryptor.salt.hex() if self.decryptor is not None and self.decryptor.salt is not None else "None" + self.report["salt"] = ( + self._decryptor.salt.hex() + if self._decryptor is not None and self._decryptor.salt is not None + else "None" ) except Exception as e: + # self.report["config"] = f"Exception encountered for {file_path}: {e}" self.report["config"] = f"Exception encountered: {e}" - # Decrypts/decodes values from an encrypted config - def decrypt_and_decode_config(self, encrypted_config, min_config_len): + # Decrypts/decodes values from an encrypted config and returns the + # decrypted/decoded config + def _decrypt_and_decode_config( + self, encrypted_config: bytes, min_config_len: int + ) -> dict[str, Any]: decoded_config = {} - selected_decryptor = 0 - for item in self.CONFIG_ITEM_TYPES: - item_data = item.parse_from(encrypted_config) + + for item_class in config_item.SUPPORTED_CONFIG_ITEMS: + item = item_class() + # Translate config Field RVAs to Field names + item_data = { + self._dnpp.field_name_from_rva(k): v + for k, v in item.parse_from(encrypted_config).items() + } + if len(item_data) > 0: if type(item) is config_item.EncryptedStringConfigItem: - # Translate encrypted string RVAs to encrypted values + # Translate config value RVAs to string values for k in item_data: - item_data[k] = self.dnpp.user_string_from_rva(item_data[k]) - # Decrypt the values - while selected_decryptor < len(SUPPORTED_DECRYPTORS): + item_data[k] = self._dnpp.user_string_from_rva(item_data[k]) + + # Attempt to decrypt encrypted values + for decryptor in SUPPORTED_DECRYPTORS: + if decryptor in self._incompatible_decryptors: + continue + + if self._decryptor is None: + # Try to instantiate the selected decryptor + # Add to incompatible list and move on upon failure + try: + self._decryptor = decryptor(self._dnpp) + except IncompatibleDecryptorException as ide: + logger.debug( + f"Decryptor incompatible {decryptor} : {ide}" + ) + self._incompatible_decryptors.append(decryptor) + continue try: - if self.decryptor is None: - self.decryptor = SUPPORTED_DECRYPTORS[selected_decryptor](self.dnpp, item_data) - item_data = self.decryptor.decrypt_encrypted_strings() + # Try to decrypt the encrypted strings + # Continue to next compatible decryptor on failure + item_data = self._decryptor.decrypt_encrypted_strings( + item_data + ) break except Exception as e: logger.debug( - f"Decryption failed with decryptor {SUPPORTED_DECRYPTORS[selected_decryptor]} : {e}, trying next decryptor..." + f"Decryption failed with decryptor {decryptor} : {e}" ) - self.decryptor = None - selected_decryptor += 1 + self._decryptor = None + + if self._decryptor is None: + raise ConfigParserException("All decryptors failed") + elif type(item) is config_item.ByteArrayConfigItem: for k in item_data: arr_size, arr_rva = item_data[k] - item_data[k] = self.dnpp.byte_array_from_size_and_rva(arr_size, arr_rva).hex() + item_data[k] = self._dnpp.byte_array_from_size_and_rva( + arr_size, arr_rva + ).hex() + decoded_config.update(item_data) + if len(decoded_config) < min_config_len: - raise ConfigParserException(f"Minimum threshold of config items not met for threshold: {len(decoded_config)}/{min_config_len}") + raise ConfigParserException( + f"Minimum threshold of config items not met: {len(decoded_config)}/{min_config_len}" + ) return decoded_config - # Searches for the RAT configuration in the Settings module - def get_config(self): + # Searches for the RAT configuration section, using the VerifyHash() marker + # or brute-force, returning the decrypted config on success + def _get_config(self) -> dict[str, Any]: logger.debug("Extracting config...") try: - config_start, decrypted_config = self.get_config_verify_hash_method() + config_start, decrypted_config = self._get_config_verify_hash_method() except Exception: logger.debug("VerifyHash() method failed; Attempting .cctor brute force...") - # If the typical patterns are not found, start brute-forcing + # If the VerifyHash() method does not work, move to brute-forcing + # static constructors try: - config_start, decrypted_config = self.get_config_cctor_brute_force() + config_start, decrypted_config = self._get_config_cctor_brute_force() except Exception as e: - raise ConfigParserException("Could not identify config") from e - logger.debug(f"Config found at offset {hex(config_start)}...") - return self.translate_config_field_names(decrypted_config) + raise ConfigParserException(f"Could not identify config: {e}") + logger.debug(f"Config found at RVA {hex(config_start)}...") + return decrypted_config # Attempts to retrieve the config via brute-force, looking through every # static constructor (.cctor) and attempting to decode/decrypt a valid - # config from that constructor - def get_config_cctor_brute_force(self): - candidates = self.dnpp.method_rvas_from_name(".cctor") + # config from that constructor, returning the config RVA and decrypted + # config on success + def _get_config_cctor_brute_force(self) -> Tuple[int, dict[str, Any]]: + candidates = self._dnpp.methods_from_name(".cctor") if len(candidates) == 0: raise ConfigParserException("No .cctor method could be found") - # Get each .cctor method RVA and bytes content up to a RET op - candidate_data = {rva: self.dnpp.string_from_offset(self.dnpp.offset_from_rva(rva), OPCODE_RET) for rva in candidates} + + # For each .cctor method, map its RVA and body (in raw bytes) + candidate_cctor_data = { + method.rva: self._dnpp.method_body_from_method(method) + for method in candidates + } + config_start, decrypted_config = None, None - min_config_len = self.MIN_CONFIG_LEN_CEILING - while decrypted_config is None and min_config_len >= self.MIN_CONFIG_LEN_FLOOR: - for method_rva, method_ins in candidate_data.items(): - logger.debug(f"Attempting brute force at .cctor method at {hex(method_rva)}") + # Start at our ceiling value for number of config items + min_config_len = self._MIN_CONFIG_LEN_CEILING + + while decrypted_config is None and min_config_len >= self._MIN_CONFIG_LEN_FLOOR: + for method_rva, method_body in candidate_cctor_data.items(): + logger.debug( + f"Attempting brute force at .cctor method at {hex(method_rva)}" + ) try: config_start, decrypted_config = ( method_rva, - self.decrypt_and_decode_config(method_ins, min_config_len), + self._decrypt_and_decode_config(method_body, min_config_len), ) break except Exception as e: - logger.debug(e) + logger.debug( + f"Brute force failed for method at {hex(method_rva)}: {e}" + ) continue + # Reduce the minimum config length until we reach our floor min_config_len -= 1 + if decrypted_config is None: - raise ConfigParserException("No valid configuration could be parsed from any .cctor methods") + raise ConfigParserException( + "No valid configuration could be parsed from any .cctor methods" + ) return config_start, decrypted_config # Attempts to retrieve the config via looking for a config section preceded - # by the "VerifyHash()" function that is typically found in the Settings - # module - def get_config_verify_hash_method(self): + # by the VerifyHash() method typically found in a Settings module, + # returning the config RVA and decrypted config on success + def _get_config_verify_hash_method(self) -> Tuple[int, dict[str, Any]]: # Identify the VerifyHash() Method code - hit = search(self.PATTERN_VERIFY_HASH, self.dnpp.data, DOTALL) - if hit is None: - raise ConfigParserException("Could not identify VerifyHash() marker method") - # Reverse the VerifyHash() instruction offset, look up VerifyHash() in - # the MethodDef metadata table, and then get the offset to the - # subsequent function, which should be our config constructor - config_start = self.dnpp.next_method_from_instruction_offset(hit.start()) - # Configuration ends with ret operation, so use that as our terminator - encrypted_config = self.dnpp.string_from_offset(config_start, OPCODE_RET) - min_config_len = self.MIN_CONFIG_LEN_CEILING + verify_hash_hit = search(self._PATTERN_VERIFY_HASH, self._dnpp.data) + if verify_hash_hit is None: + raise ConfigParserException("Could not identify VerifyHash() marker") + + # Reverse the hit to find the VerifyHash() method, then grab the + # subsequent function + config_method = self._dnpp.method_from_instruction_offset( + verify_hash_hit.start(), 1 + ) + encrypted_config = self._dnpp.method_body_from_method(config_method) + min_config_len = self._MIN_CONFIG_LEN_CEILING while True: try: - decrypted_config = self.decrypt_and_decode_config( + decrypted_config = self._decrypt_and_decode_config( encrypted_config, min_config_len ) - return config_start, decrypted_config + return config_method.rva, decrypted_config except Exception as e: - if min_config_len < self.MIN_CONFIG_LEN_FLOOR: + # Reduce the minimum config length until we reach our floor + if min_config_len < self._MIN_CONFIG_LEN_FLOOR: raise e min_config_len -= 1 - - # Sorts the config by field name RVA prior to replacing RVAs with field - # name strings (this is done last to preserve config ordering) - def translate_config_field_names(self, decrypted_config): - translated_config = {} - for field_rva, field_value in sorted(decrypted_config.items()): - key = self.dnpp.field_name_from_rva(field_rva) - translated_config[key] = field_value - logger.debug(f"Config item parsed {key}: {field_value}") - return translated_config diff --git a/lib/parsers_aux/ratking/utils/config_parser_exception.py b/lib/parsers_aux/ratking/config_parser_exception.py similarity index 93% rename from lib/parsers_aux/ratking/utils/config_parser_exception.py rename to lib/parsers_aux/ratking/config_parser_exception.py index c1d84e341b1..2b8c1b06282 100644 --- a/lib/parsers_aux/ratking/utils/config_parser_exception.py +++ b/lib/parsers_aux/ratking/config_parser_exception.py @@ -4,8 +4,7 @@ # # Author: jeFF0Falltrades # -# Provides a simple custom Exception class for use with configuration parsing -# actions +# A simple custom Exception class for use with configuration parsing actions # # MIT License # diff --git a/lib/parsers_aux/ratking/utils/__init__.py b/lib/parsers_aux/ratking/utils/__init__.py index e69de29bb2d..716cb99880a 100644 --- a/lib/parsers_aux/ratking/utils/__init__.py +++ b/lib/parsers_aux/ratking/utils/__init__.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python3 +# +# __init__.py +# +# Author: jeFF0Falltrades +# +# Copyright (c) 2024 Jeff Archer +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. diff --git a/lib/parsers_aux/ratking/utils/config_item.py b/lib/parsers_aux/ratking/utils/config_item.py index 5bfbf78d73c..cba36ed272c 100644 --- a/lib/parsers_aux/ratking/utils/config_item.py +++ b/lib/parsers_aux/ratking/utils/config_item.py @@ -28,8 +28,10 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. +from abc import ABC, abstractmethod from logging import getLogger -from re import DOTALL, findall +from re import DOTALL, compile, findall +from typing import Any, Tuple from .data_utils import bytes_to_int from .dotnet_constants import OPCODE_LDC_I4_0, SpecialFolder @@ -38,68 +40,71 @@ # Provides an abstract class for config items -class ConfigItem: - def __init__(self, label, pattern): - self.label = label - self.pattern = pattern +class ConfigItem(ABC): + def __init__(self, label: str, pattern: bytes) -> None: + self._label = label + self._pattern = compile(pattern, flags=DOTALL) # Should be overridden by children to provide a meaningful value - def derive_item_value(self): - return None + @abstractmethod + def _derive_item_value(self) -> Any: + pass - # Derives config field RVAs and values from data using the specified + # Derives config Field RVAs and values from data using the specified # ConfigItem's pattern - def parse_from(self, data): - logger.debug(f"Parsing {self.label} values from data...") + def parse_from(self, data: bytes) -> dict[int, Any]: + logger.debug(f"Parsing {self._label} values from data...") fields = {} - raw_data = findall(self.pattern, data, DOTALL) + raw_data = findall(self._pattern, data) found_items = 0 - for obj, string_rva in raw_data: + for obj, bytes_rva in raw_data: try: - field_value = self.derive_item_value(obj) - field_rva = bytes_to_int(string_rva) + field_value = self._derive_item_value(obj) + field_rva = bytes_to_int(bytes_rva) except Exception: - logger.debug(f"Could not parse value from {obj} at {string_rva}") + logger.debug(f"Could not parse value from {obj} at {hex(bytes_rva)}") continue if field_rva not in fields: fields[field_rva] = field_value found_items += 1 else: - logger.warning(f"Overlapping Field RVAs detected in config at {field_rva}") - logger.debug(f"Parsed {found_items} {self.label} values") + logger.debug( + f"Overlapping Field RVAs detected in config at {hex(field_rva)}" + ) + logger.debug(f"Parsed {found_items} {self._label} values") return fields class BoolConfigItem(ConfigItem): - def __init__(self): + def __init__(self) -> None: super().__init__("boolean", b"(\x16|\x17)\x80(.{3}\x04)") # Boolean values are derived by examing if the opcode is "ldc.i4.0" (False) # or "ldc.i4.1" (True) - def derive_item_value(self, opcode): + def _derive_item_value(self, opcode: bytes) -> bool: return bool(bytes_to_int(opcode) - bytes_to_int(OPCODE_LDC_I4_0)) class ByteArrayConfigItem(ConfigItem): - def __init__(self): + def __init__(self) -> None: super().__init__( "byte array", rb"\x1f(.\x8d.{3}\x01\x25\xd0.{3}\x04)\x28.{3}\x0a\x80(.{3}\x04)", ) - # Byte array size and RVA is returned, as these are needed to + # Byte array size and RVA are returned, as these are needed to # extract the value of the bytes from the payload - def derive_item_value(self, byte_data): + def _derive_item_value(self, byte_data: bytes) -> Tuple[int, int]: arr_size = byte_data[0] arr_rva = bytes_to_int(byte_data[-4:]) return (arr_size, arr_rva) class IntConfigItem(ConfigItem): - def __init__(self): + def __init__(self) -> None: super().__init__("int", b"(\x20.{4}|[\x18-\x1e])\x80(.{3}\x04)") - def derive_item_value(self, int_bytes): + def _derive_item_value(self, int_bytes: bytes) -> int: # If single byte, must be value 2-8, represented by opcodes 0x18-0x1e # Subtract 0x16 to get the int value, e.g.: # ldc.i4.8 == 0x1e - 0x16 == 8 @@ -110,27 +115,37 @@ def derive_item_value(self, int_bytes): class NullConfigItem(ConfigItem): - def __init__(self): + def __init__(self) -> None: super().__init__("null", b"(\x14\x80)(.{3}\x04)") # If "ldnull" is being used, simply return "null" - def derive_item_value(self, _): + def _derive_item_value(self, _: bytes) -> str: return "null" class SpecialFolderConfigItem(ConfigItem): - def __init__(self): + def __init__(self) -> None: super().__init__("special folder", b"\x1f(.)\x80(.{3}\x04)") # Translates SpecialFolder ID to name - def derive_item_value(self, folder_id): + def _derive_item_value(self, folder_id: bytes) -> str: return SpecialFolder(bytes_to_int(folder_id)).name class EncryptedStringConfigItem(ConfigItem): - def __init__(self): + def __init__(self) -> None: super().__init__("encrypted string", b"\x72(.{3}\x70)\x80(.{3}\x04)") # Returns the encrypted string's RVA - def derive_item_value(self, enc_str_rva): + def _derive_item_value(self, enc_str_rva: bytes) -> int: return bytes_to_int(enc_str_rva) + + +SUPPORTED_CONFIG_ITEMS = [ + BoolConfigItem, + ByteArrayConfigItem, + IntConfigItem, + NullConfigItem, + SpecialFolderConfigItem, + EncryptedStringConfigItem, +] diff --git a/lib/parsers_aux/ratking/utils/data_utils.py b/lib/parsers_aux/ratking/utils/data_utils.py index 6e0ea6c8723..34d96ce3964 100644 --- a/lib/parsers_aux/ratking/utils/data_utils.py +++ b/lib/parsers_aux/ratking/utils/data_utils.py @@ -27,20 +27,20 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -from .config_parser_exception import ConfigParserException +from ..config_parser_exception import ConfigParserException # Converts a bytes object to an int object using the specified byte order -def bytes_to_int(bytes, order="little"): +def bytes_to_int(bytes: bytes, order: str = "little") -> int: try: return int.from_bytes(bytes, byteorder=order) - except Exception as e: - raise ConfigParserException(f"Error parsing int from value: {bytes}") from e + except Exception: + raise ConfigParserException(f"Error parsing int from value: {bytes}") # Decodes a bytes object to a Unicode string, using UTF-16LE for byte values # with null bytes still embedded in them, and UTF-8 for all other values -def decode_bytes(byte_str): +def decode_bytes(byte_str: bytes | str) -> str: if isinstance(byte_str, str): return byte_str.strip() result = None @@ -49,13 +49,16 @@ def decode_bytes(byte_str): result = byte_str.decode("utf-16le") else: result = byte_str.decode("utf-8") - except Exception as e: - raise ConfigParserException(f"Error decoding bytes object to Unicode: {byte_str}") from e + except Exception: + raise ConfigParserException( + f"Error decoding bytes object to Unicode: {byte_str}" + ) return result -def int_to_bytes(int, length=4, order="little"): +# Converts an int to a bytes object, with the specified length and order +def int_to_bytes(int: int, length: int = 4, order: str = "little") -> bytes: try: return int.to_bytes(length, order) - except Exception as e: - raise ConfigParserException(f"Error parsing bytes from value: {int}") from e + except Exception: + raise ConfigParserException(f"Error parsing bytes from value: {int}") diff --git a/lib/parsers_aux/ratking/utils/decryptors/__init__.py b/lib/parsers_aux/ratking/utils/decryptors/__init__.py index 9a9176ae343..a340a598f31 100644 --- a/lib/parsers_aux/ratking/utils/decryptors/__init__.py +++ b/lib/parsers_aux/ratking/utils/decryptors/__init__.py @@ -4,8 +4,6 @@ # # Author: jeFF0Falltrades # -# MIT License -# # Copyright (c) 2024 Jeff Archer # # Permission is hereby granted, free of charge, to any person obtaining a copy @@ -25,12 +23,28 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. +from .config_decryptor import ConfigDecryptor, IncompatibleDecryptorException from .config_decryptor_aes_cbc import ConfigDecryptorAESCBC from .config_decryptor_aes_ecb import ConfigDecryptorAESECB +from .config_decryptor_decrypt_xor import ConfigDecryptorDecryptXOR from .config_decryptor_plaintext import ConfigDecryptorPlaintext +from .config_decryptor_random_hardcoded import ConfigDecryptorRandomHardcoded + +__all__ = [ + ConfigDecryptor, + IncompatibleDecryptorException, + ConfigDecryptorAESCBC, + ConfigDecryptorAESECB, + ConfigDecryptorDecryptXOR, + ConfigDecryptorRandomHardcoded, + ConfigDecryptorPlaintext, +] +# ConfigDecryptorPlaintext should always be the last fallthrough case SUPPORTED_DECRYPTORS = [ ConfigDecryptorAESCBC, ConfigDecryptorAESECB, + ConfigDecryptorDecryptXOR, + ConfigDecryptorRandomHardcoded, ConfigDecryptorPlaintext, ] diff --git a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor.py b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor.py index 9df3620f373..16084742d56 100644 --- a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor.py +++ b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor.py @@ -28,19 +28,28 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. from abc import ABC, abstractmethod +from logging import getLogger +from ..dotnetpe_payload import DotNetPEPayload -class ConfigDecryptor(ABC): - def __init__(self, payload, config_strings): - self.payload = payload - self.config_strings = config_strings - self.key = None - self.salt = None +logger = getLogger(__name__) - @abstractmethod - def decrypt(self, ciphertext): - pass +# Custom Exception to denote that a decryptor is incompatible with a payload +class IncompatibleDecryptorException(Exception): + pass + + +class ConfigDecryptor(ABC): + def __init__(self, payload: DotNetPEPayload) -> None: + self.key: bytes | str = None + self._payload = payload + self.salt: bytes = None + + # Abstract method to take in a map representing a configuration of config + # Field names and values and return a decoded/decrypted configuration @abstractmethod - def decrypt_encrypted_strings(self): + def decrypt_encrypted_strings( + self, encrypted_strings: dict[str, str] + ) -> dict[str, list[str] | str]: pass diff --git a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_cbc.py b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_cbc.py index fdc2a1bf5a7..8389886bcfc 100644 --- a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_cbc.py +++ b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_cbc.py @@ -1,11 +1,12 @@ #!/usr/bin/env python3 # -# config_aes_decryptor.py +# config_decryptor_aes_cbc.py # # Author: jeFF0Falltrades # -# Provides a custom AES decryptor for RAT payloads utilizing the known -# encryption patterns of AsyncRAT, DcRAT, QuasarRAT, VenomRAT, etc. +# Provides a custom AES decryptor for RAT payloads utilizing CBC mode +# +# Example Hash: 6b99acfa5961591c39b3f889cf29970c1dd48ddb0e274f14317940cf279a4412 # # MIT License # @@ -30,7 +31,8 @@ # SOFTWARE. from base64 import b64decode from logging import getLogger -from re import DOTALL, search +from re import DOTALL, compile, search +from typing import Tuple from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives.ciphers import Cipher @@ -40,51 +42,68 @@ from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC from cryptography.hazmat.primitives.padding import PKCS7 -from ..config_parser_exception import ConfigParserException +from ...config_parser_exception import ConfigParserException from ..data_utils import bytes_to_int, decode_bytes, int_to_bytes from ..dotnet_constants import OPCODE_LDSTR, OPCODE_LDTOKEN -from .config_decryptor import ConfigDecryptor +from ..dotnetpe_payload import DotNetPEPayload +from .config_decryptor import ConfigDecryptor, IncompatibleDecryptorException logger = getLogger(__name__) -MIN_CIPHERTEXT_LEN = 48 - class ConfigDecryptorAESCBC(ConfigDecryptor): - PATTERN_AES_KEY_AND_BLOCK_SIZE = b"[\x06-\x09]\x20(.{4})\x6f.{4}[\x06-\x09]\x20(.{4})" - PATTERN_AES_KEY_BASE = b"(.{3}\x04).%b" - PATTERN_AES_SALT_ITER = b"[\x02-\x05]\x7e(.{4})\x20(.{4})\x73" - PATTERN_AES_SALT_INIT = b"\x80%b\x2a" + # Minimum length of valid ciphertext + _MIN_CIPHERTEXT_LEN = 48 + + # Patterns for identifying AES metadata + _PATTERN_AES_KEY_AND_BLOCK_SIZE = compile( + b"[\x06-\x09]\x20(.{4})\x6f.{4}[\x06-\x09]\x20(.{4})", DOTALL + ) + # Do not compile in-line replacement patterns + _PATTERN_AES_KEY_BASE = b"(.{3}\x04).%b" + _PATTERN_AES_SALT_INIT = b"\x80%b\x2a" + _PATTERN_AES_SALT_ITER = compile(b"[\x02-\x05]\x7e(.{4})\x20(.{4})\x73", DOTALL) - def __init__(self, payload, config_strings): - super().__init__(payload, config_strings) - self.key_size = self.block_size = self.iterations = self.key_candidates = None - self.aes_metadata = self.get_aes_metadata() + def __init__(self, payload: DotNetPEPayload) -> None: + super().__init__(payload) + self._block_size: int = None + self._iterations: int = None + self._key_candidates: list[bytes] = None + self._key_size: int = None + self._key_rva: int = None + try: + self._get_aes_metadata() + except Exception as e: + raise IncompatibleDecryptorException(e) # Given an initialization vector and ciphertext, creates a Cipher # object with the AES key and specified IV and decrypts the ciphertext - def decrypt(self, iv, ciphertext): - logger.debug(f"Decrypting {ciphertext} with key {self.key.hex()} and IV {iv.hex()}...") + def _decrypt(self, iv: bytes, ciphertext: bytes) -> bytes: + logger.debug( + f"Decrypting {ciphertext} with key {self.key.hex()} and IV {iv.hex()}..." + ) aes_cipher = Cipher(AES(self.key), CBC(iv), backend=default_backend()) decryptor = aes_cipher.decryptor() # Use a PKCS7 unpadder to remove padding from decrypted value # https://cryptography.io/en/latest/hazmat/primitives/padding/ - unpadder = PKCS7(self.block_size).unpadder() + unpadder = PKCS7(self._block_size).unpadder() + try: padded_text = decryptor.update(ciphertext) + decryptor.finalize() unpadded_text = unpadder.update(padded_text) + unpadder.finalize() except Exception as e: raise ConfigParserException( - f"Error decrypting ciphertext {ciphertext} with IV {iv.hex()} and key {self.key.hex()}" - ) from e + f"Error decrypting ciphertext {ciphertext} with IV {iv.hex()} and key {self.key.hex()} : {e}" + ) + logger.debug(f"Decryption result: {unpadded_text}") return unpadded_text # Derives AES passphrase candidates from a config + # # If a passphrase is base64-encoded, both its raw value and decoded value # will be added as candidates - def derive_aes_passphrase_candidates(self, aes_key_rva): - key_val = self.config_strings[aes_key_rva] + def _derive_aes_passphrase_candidates(self, key_val: str) -> list[bytes]: passphrase_candidates = [key_val.encode()] try: passphrase_candidates.append(b64decode(key_val)) @@ -94,15 +113,21 @@ def derive_aes_passphrase_candidates(self, aes_key_rva): return passphrase_candidates # Decrypts encrypted config values with the provided cipher data - def decrypt_encrypted_strings(self): + def decrypt_encrypted_strings( + self, encrypted_strings: dict[str, str] + ) -> dict[str, str]: logger.debug("Decrypting encrypted strings...") + if self._key_candidates is None: + self._key_candidates = self._get_aes_key_candidates(encrypted_strings) + decrypted_config_strings = {} - for k, v in self.config_strings.items(): + for k, v in encrypted_strings.items(): # Leave empty strings as they are if len(v) == 0: logger.debug(f"Key: {k}, Value: {v}") decrypted_config_strings[k] = v continue + # Check if base64-encoded string b64_exception = False try: @@ -111,10 +136,11 @@ def decrypt_encrypted_strings(self): b64_exception = True # If it was not base64-encoded, or if it is less than our min length # for ciphertext, leave the value as it is - if b64_exception or len(decoded_val) < MIN_CIPHERTEXT_LEN: + if b64_exception or len(decoded_val) < self._MIN_CIPHERTEXT_LEN: logger.debug(f"Key: {k}, Value: {v}") decrypted_config_strings[k] = v continue + # Otherwise, extract the IV from the 16 bytes after the HMAC # (first 32 bytes) and the ciphertext from the rest of the data # after the IV, and run the decryption @@ -122,44 +148,36 @@ def decrypt_encrypted_strings(self): result, last_exc = None, None key_idx = 0 # Run through key candidates until suitable one found or failure - while result is None and key_idx < len(self.key_candidates): + while result is None and key_idx < len(self._key_candidates): try: - self.key = self.key_candidates[key_idx] + self.key = self._key_candidates[key_idx] key_idx += 1 - result = decode_bytes(self.decrypt(iv, ciphertext)) + result = decode_bytes(self._decrypt(iv, ciphertext)) except ConfigParserException as e: last_exc = e + if result is None: - logger.debug(f"Decryption failed for item {v}: {last_exc}; Leaving as original value...") + logger.debug( + f"Decryption failed for item {v}: {last_exc}; Leaving as original value..." + ) result = v + logger.debug(f"Key: {k}, Value: {result}") decrypted_config_strings[k] = result + logger.debug("Successfully decrypted strings") return decrypted_config_strings # Extracts AES key candidates from the payload - def get_aes_key_candidates(self, metadata_ins_offset): - logger.debug("Extracting possible AES key values...") + def _get_aes_key_candidates(self, encrypted_strings: dict[str, str]) -> list[bytes]: + logger.debug("Extracting AES key candidates...") keys = [] - # Get the RVA of the method that sets up AES256 metadata - metadata_method_rva = self.payload.next_method_from_instruction_offset(metadata_ins_offset, step_back=1, by_token=True) - - # Insert this RVA into the KEY_BASE pattern to find where the AES key - # is initialized - key_hit = search( - self.PATTERN_AES_KEY_BASE % int_to_bytes(metadata_method_rva), - self.payload.data, - DOTALL, - ) - if key_hit is None: - raise ConfigParserException("Could not find AES key pattern") - key_rva = bytes_to_int(key_hit.groups()[0]) - logger.debug(f"AES key RVA: {hex(key_rva)}") - - # Since we already have a map of all field names, use the key field - # name to index into our existing config dict - passphrase_candidates = self.derive_aes_passphrase_candidates(key_rva) + # Use the key Field name to index into our existing config + key_raw_value = encrypted_strings[ + self._payload.field_name_from_rva(self._key_rva) + ] + passphrase_candidates = self._derive_aes_passphrase_candidates(key_raw_value) for candidate in passphrase_candidates: try: @@ -167,83 +185,113 @@ def get_aes_key_candidates(self, metadata_ins_offset): # cryptography library, but we keep it here for compatibility kdf = PBKDF2HMAC( SHA1(), - length=self.key_size, + length=self._key_size, salt=self.salt, - iterations=self.iterations, + iterations=self._iterations, backend=default_backend(), ) keys.append(kdf.derive(candidate)) logger.debug(f"AES key derived: {keys[-1]}") except Exception: continue + if len(keys) == 0: - raise ConfigParserException(f"Could not derive key from passphrase candidates: {passphrase_candidates}") + raise ConfigParserException( + f"Could not derive key from passphrase candidates: {passphrase_candidates}" + ) return keys # Extracts the AES key and block size from the payload - def get_aes_key_and_block_size(self): + def _get_aes_key_and_block_size(self) -> Tuple[int, int]: logger.debug("Extracting AES key and block size...") - hit = search(self.PATTERN_AES_KEY_AND_BLOCK_SIZE, self.payload.data, DOTALL) + hit = search(self._PATTERN_AES_KEY_AND_BLOCK_SIZE, self._payload.data) if hit is None: raise ConfigParserException("Could not extract AES key or block size") + # Convert key size from bits to bytes by dividing by 8 # Note use of // instead of / to ensure integer output, not float key_size = bytes_to_int(hit.groups()[0]) // 8 block_size = bytes_to_int(hit.groups()[1]) + logger.debug(f"Found key size {key_size} and block size {block_size}") return key_size, block_size - # Identifies the initialization of the AES256 object in the payload - def get_aes_metadata(self): + # Given an offset to an instruction within the Method that sets up the + # Cipher, extracts the AES key RVA from the payload + def _get_aes_key_rva(self, metadata_ins_offset: int) -> int: + logger.debug("Extracting AES key RVA...") + + # Get the RVA of the method that sets up AES256 metadata + metadata_method_token = self._payload.method_from_instruction_offset( + metadata_ins_offset, by_token=True + ).token + + # Insert this RVA into the KEY_BASE pattern to find where the AES key + # is initialized + key_hit = search( + self._PATTERN_AES_KEY_BASE % int_to_bytes(metadata_method_token), + self._payload.data, + DOTALL, + ) + if key_hit is None: + raise ConfigParserException("Could not find AES key pattern") + + key_rva = bytes_to_int(key_hit.groups()[0]) + logger.debug(f"AES key RVA: {hex(key_rva)}") + return key_rva + + # Identifies the initialization of the AES256 object in the payload and + # sets the necessary values needed for decryption + def _get_aes_metadata(self) -> None: logger.debug("Extracting AES metadata...") - # Important to use DOTALL here (and with all regex ops to be safe) - # as we are working with bytes, and if we do not set this, and the - # byte sequence contains a byte that equates to a newline (\n or 0x0A), - # the search will fail - metadata = search(self.PATTERN_AES_SALT_ITER, self.payload.data, DOTALL) + metadata = search(self._PATTERN_AES_SALT_ITER, self._payload.data) if metadata is None: raise ConfigParserException("Could not identify AES metadata") logger.debug(f"AES metadata found at offset {hex(metadata.start())}") - self.key_size, self.block_size = self.get_aes_key_and_block_size() + self._key_size, self._block_size = self._get_aes_key_and_block_size() logger.debug("Extracting AES iterations...") - self.iterations = bytes_to_int(metadata.groups()[1]) - logger.debug(f"Found AES iteration number of {self.iterations}") + self._iterations = bytes_to_int(metadata.groups()[1]) + logger.debug(f"Found AES iteration number of {self._iterations}") - self.salt = self.get_aes_salt(metadata.groups()[0]) - self.key_candidates = self.get_aes_key_candidates(metadata.start()) - return metadata + self.salt = self._get_aes_salt(metadata.groups()[0]) + self._key_rva = self._get_aes_key_rva(metadata.start()) # Extracts the AES salt from the payload, accounting for both hardcoded # salt byte arrays, and salts derived from hardcoded strings - def get_aes_salt(self, salt_rva): + def _get_aes_salt(self, salt_rva: int) -> bytes: logger.debug("Extracting AES salt value...") + # Use % to insert our salt RVA into our match pattern # This pattern will then find the salt initialization ops, # specifically: # # stsfld uint8[] Client.Algorithm.Aes256::Salt # ret - aes_salt_initialization = self.payload.data.find(self.PATTERN_AES_SALT_INIT % salt_rva) + aes_salt_initialization = self._payload.data.find( + self._PATTERN_AES_SALT_INIT % salt_rva + ) if aes_salt_initialization == -1: raise ConfigParserException("Could not identify AES salt initialization") - # Look at opcode used to initialize the salt to decide how to - # proceed on extracting the salt value (start of pattern - 10 bytes) + # Look at the opcode used to initialize the salt to decide how to + # proceed with extracting the salt value (start of pattern - 10 bytes) salt_op_offset = aes_salt_initialization - 10 # Need to use bytes([int]) here to properly convert from int to byte # string for our comparison below - salt_op = bytes([self.payload.data[salt_op_offset]]) + salt_op = bytes([self._payload.data[salt_op_offset]]) # Get the salt RVA from the 4 bytes following the initialization op - salt_strings_rva_packed = self.payload.data[salt_op_offset + 1 : salt_op_offset + 5] + salt_strings_rva_packed = self._payload.data[ + salt_op_offset + 1 : salt_op_offset + 5 + ] salt_strings_rva = bytes_to_int(salt_strings_rva_packed) - # If the op is a ldstr op (0x72), just get the bytes value of the - # string being used to initialize the salt + # If the op is a ldstr op, just get the bytes value of the string being + # used to initialize the salt if salt_op == OPCODE_LDSTR: - salt_encoded = self.payload.user_string_from_rva(salt_strings_rva) + salt_encoded = self._payload.user_string_from_rva(salt_strings_rva) # We use decode_bytes() here to get the salt string without any # null bytes (because it's stored as UTF-16LE), then convert it # back to bytes @@ -251,9 +299,12 @@ def get_aes_salt(self, salt_rva): # If the op is a ldtoken (0xd0) operation, we need to get the salt # byte array value from the FieldRVA table elif salt_op == OPCODE_LDTOKEN: - salt_size = self.payload.data[salt_op_offset - 7] - salt = self.payload.byte_array_from_size_and_rva(salt_size, salt_strings_rva) + salt_size = self._payload.data[salt_op_offset - 7] + salt = self._payload.byte_array_from_size_and_rva( + salt_size, salt_strings_rva + ) else: raise ConfigParserException(f"Unknown salt opcode found: {salt_op.hex()}") + logger.debug(f"Found salt value: {salt.hex()}") return salt diff --git a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_ecb.py b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_ecb.py index 943fb58ddfa..75e54f3f4c6 100644 --- a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_ecb.py +++ b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_ecb.py @@ -6,6 +6,8 @@ # # Provides a custom AES decryptor for RAT payloads utilizing ECB mode # +# Example Hash: d5028e10a756f2df677f32ebde105d7de8df37e253c431837c8f810260f4428e +# # MIT License # # Copyright (c) 2024 Jeff Archer @@ -30,7 +32,7 @@ from base64 import b64decode from hashlib import md5 from logging import getLogger -from re import DOTALL, search +from re import DOTALL, compile, search from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives.ciphers import Cipher @@ -38,24 +40,28 @@ from cryptography.hazmat.primitives.ciphers.modes import ECB from cryptography.hazmat.primitives.padding import PKCS7 -from ..config_parser_exception import ConfigParserException +from ...config_parser_exception import ConfigParserException from ..data_utils import bytes_to_int, decode_bytes -from .config_decryptor import ConfigDecryptor +from ..dotnetpe_payload import DotNetPEPayload +from .config_decryptor import ConfigDecryptor, IncompatibleDecryptorException logger = getLogger(__name__) class ConfigDecryptorAESECB(ConfigDecryptor): - PATTERN_MD5_HASH = rb"\x7e(.{3}\x04)\x28.{3}\x06\x6f" + # MD5 hash pattern used to detect AES key + _PATTERN_MD5_HASH = compile(rb"\x7e(.{3}\x04)\x28.{3}\x06\x6f", DOTALL) - def __init__(self, payload, config_strings): - super().__init__(payload, config_strings) + def __init__(self, payload: DotNetPEPayload) -> None: + super().__init__(payload) + try: + self._aes_key_rva = self._get_aes_key_rva() + except Exception as e: + raise IncompatibleDecryptorException(e) # Given ciphertext, creates a Cipher object with the AES key and decrypts # the ciphertext - def decrypt(self, ciphertext): - if self.key is None: - self.get_aes_key() + def _decrypt(self, ciphertext: bytes) -> bytes: logger.debug(f"Decrypting {ciphertext} with key {self.key.hex()}...") aes_cipher = Cipher(AES(self.key), ECB(), backend=default_backend()) decryptor = aes_cipher.decryptor() @@ -63,24 +69,39 @@ def decrypt(self, ciphertext): # Use a PKCS7 unpadder to remove padding from decrypted value # https://cryptography.io/en/latest/hazmat/primitives/padding/ unpadder = PKCS7(AES.block_size).unpadder() + try: padded_text = decryptor.update(ciphertext) + decryptor.finalize() unpadded_text = unpadder.update(padded_text) + unpadder.finalize() except Exception as e: - raise ConfigParserException(f"Error decrypting ciphertext {ciphertext} with key {self.key.hex()}") from e + raise ConfigParserException( + f"Error decrypting ciphertext {ciphertext} with key {self.key.hex()}: {e}" + ) + logger.debug(f"Decryption result: {unpadded_text}") return unpadded_text # Decrypts encrypted config values with the provided cipher data - def decrypt_encrypted_strings(self): + def decrypt_encrypted_strings( + self, encrypted_strings: dict[str, str] + ) -> dict[str, str]: logger.debug("Decrypting encrypted strings...") + + if self.key is None: + try: + raw_key_field = self._payload.field_name_from_rva(self._aes_key_rva) + self.key = self._derive_aes_key(encrypted_strings[raw_key_field]) + except Exception as e: + raise ConfigParserException(f"Failed to derive AES key: {e}") + decrypted_config_strings = {} - for k, v in self.config_strings.items(): + for k, v in encrypted_strings.items(): # Leave empty strings as they are if len(v) == 0: logger.debug(f"Key: {k}, Value: {v}") decrypted_config_strings[k] = v continue + # Check if base64-encoded string b64_exception = False try: @@ -92,38 +113,44 @@ def decrypt_encrypted_strings(self): logger.debug(f"Key: {k}, Value: {v}") decrypted_config_strings[k] = v continue + ciphertext = decoded_val result, last_exc = None, None try: - result = decode_bytes(self.decrypt(ciphertext)) + result = decode_bytes(self._decrypt(ciphertext)) except ConfigParserException as e: last_exc = e + if result is None: logger.debug(f"Decryption failed for item {v}: {last_exc}") result = v + logger.debug(f"Key: {k}, Value: {result}") decrypted_config_strings[k] = result + logger.debug("Successfully decrypted strings") return decrypted_config_strings - # Extracts AES key candidates from the payload - def get_aes_key(self): - logger.debug("Extracting possible AES key value...") - key_hit = search( - self.PATTERN_MD5_HASH, - self.payload.data, - DOTALL, - ) - if key_hit is None: - raise ConfigParserException("Could not find AES key pattern") - key_rva = bytes_to_int(key_hit.groups()[0]) - logger.debug(f"AES key RVA: {hex(key_rva)}") - key_unhashed = self.config_strings[key_rva] + # Given the raw bytes that will become the key value, derives the AES key + def _derive_aes_key(self, key_unhashed: str) -> bytes: # Generate the MD5 hash md5_hash = md5() md5_hash.update(key_unhashed.encode("utf-8")) md5_digest = md5_hash.digest() + # Key is a 32-byte value made up of the MD5 hash overlaying itself, # tailed with one null byte - self.key = md5_digest[:15] + md5_digest[:16] + b"\x00" - logger.debug(f"AES key derived: {self.key}") + key = md5_digest[:15] + md5_digest[:16] + b"\x00" + logger.debug(f"AES key derived: {key}") + return key + + # Extracts the AES key RVA from the payload + def _get_aes_key_rva(self) -> int: + logger.debug("Extracting AES key value...") + key_hit = search(self._PATTERN_MD5_HASH, self._payload.data) + if key_hit is None: + raise ConfigParserException("Could not find AES key pattern") + + key_rva = bytes_to_int(key_hit.groups()[0]) + logger.debug(f"AES key RVA: {hex(key_rva)}") + return key_rva diff --git a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_decrypt_xor.py b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_decrypt_xor.py new file mode 100644 index 00000000000..74311e5e7a2 --- /dev/null +++ b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_decrypt_xor.py @@ -0,0 +1,128 @@ +#!/usr/bin/env python3 +# +# config_decryptor_decrypt_xor.py +# +# Author: jeFF0Falltrades +# +# Provides a custom decryptor for RAT payloads utilizing the DecryptXOR +# method of embeddeding config strings +# +# Example Hash: 6e5671dec52db7f64557ba8ef70caf53cf0c782795236b03655623640f9e6a83 +# +# MIT License +# +# Copyright (c) 2024 Jeff Archer +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +from logging import getLogger +from re import DOTALL, compile, findall, search + +from ...config_parser_exception import ConfigParserException +from ..data_utils import bytes_to_int, decode_bytes +from ..dotnet_constants import PATTERN_LDSTR_OP +from ..dotnetpe_payload import DotNetPEPayload +from .config_decryptor import ConfigDecryptor, IncompatibleDecryptorException +from .config_decryptor_plaintext import ConfigDecryptorPlaintext + +logger = getLogger(__name__) + + +class ConfigDecryptorDecryptXOR(ConfigDecryptor): + _KEY_XOR_DECODED_STRINGS = "xor_decoded_strings" + + # Pattern to detect usage of DecryptXOR Method + _PATTERN_DECRYPT_XOR_BLOCK = compile( + rb"(\x2d.\x72.{3}\x70\x28.{3}\x06\x2a(?:\x02[\x16-\x1f].?\x33.\x72.{3}\x70\x28.{3}\x06\x2a){7,}.+?\x72.{3}\x70)", + flags=DOTALL, + ) + + def __init__(self, payload: DotNetPEPayload) -> None: + super().__init__(payload) + # Filled in _get_xor_metadata() + self._xor_strings: list[str] = [] + try: + self._get_xor_metadata() + except Exception as e: + raise IncompatibleDecryptorException(e) + + # Returns a list of decoded XOR-encoded strings found in the payload + def _decode_encoded_strings(self) -> list[str]: + decoded_strings = [] + + for string in self._xor_strings: + decoded = [] + # Do not modify unencoded strings + if ":" not in string: + decoded_strings.append(string) + continue + + # Split encoded string by ':' and run XOR decoding + arr, arr2 = (bytes.fromhex(arr) for arr in string.split(":")) + for idx, byte in enumerate(arr2): + decoded.append(byte ^ self.key[idx % len(self.key)] ^ arr[idx]) + decoded_strings.append(decode_bytes(bytes(decoded))) + + logger.debug(f"Decoded {len(decoded_strings)} strings") + return decoded_strings + + # Parses the config, adds decoded XOR strings, and returns the decoded + # config + def decrypt_encrypted_strings( + self, encrypted_strings: dict[str, str] + ) -> dict[str, list[str] | str]: + config = {} + # Pass off plaintext config to a ConfigDecryptorPlaintext + ptcd = ConfigDecryptorPlaintext(self._payload) + config.update(ptcd.decrypt_encrypted_strings(encrypted_strings)) + config[self._KEY_XOR_DECODED_STRINGS] = self._decode_encoded_strings() + return config + + # Gathers XOR metadata from the payload + def _get_xor_metadata(self): + dxor_block = search(self._PATTERN_DECRYPT_XOR_BLOCK, self._payload.data) + if dxor_block is None: + raise ConfigParserException("Could not identify DecryptXOR block") + logger.debug(f"DecryptXOR block found at offset {hex(dxor_block.start())}") + + # Derive all XOR-encoded string references in the DecryptXOR block + xor_string_rvas = findall(PATTERN_LDSTR_OP, dxor_block.groups()[0]) + self._xor_strings = list( + filter( + None, + [ + self._payload.user_string_from_rva(bytes_to_int(rva)) + for rva in xor_string_rvas + ], + ) + ) + logger.debug(f"{len(self._xor_strings)} XOR strings found") + + # Get the static constructor containing the XOR key + xor_key_cctor = self._payload.method_from_instruction_offset( + dxor_block.start(), step=1, by_token=True + ) + xor_key_cctor_body = self._payload.method_body_from_method(xor_key_cctor) + + # Derive the XOR key RVA and value + xor_rva = search(PATTERN_LDSTR_OP, xor_key_cctor_body) + if xor_rva is None: + raise ConfigParserException("Could not identify XOR key RVA") + xor_rva = bytes_to_int(xor_rva.groups()[0]) + self.key = bytes(self._payload.user_string_from_rva(xor_rva), encoding="utf-8") + logger.debug(f"XOR key found at {hex(xor_rva)} : {self.key}") diff --git a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_plaintext.py b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_plaintext.py index c6e71f8a350..ebd87c49ee8 100644 --- a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_plaintext.py +++ b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_plaintext.py @@ -5,7 +5,8 @@ # Author: jeFF0Falltrades # # Provides a fall-through decryptor that will attempt to return the plaintext -# values of a found config when all other decryptors fail +# values of a found config when all other decryptors fail by matching known +# config field names from supported RAT families # # MIT License # @@ -30,18 +31,98 @@ # SOFTWARE. from logging import getLogger +from ...config_parser_exception import ConfigParserException +from ..dotnetpe_payload import DotNetPEPayload from .config_decryptor import ConfigDecryptor logger = getLogger(__name__) +KNOWN_CONFIG_FIELD_NAMES = set( + [ + "AUTHKEY", + "An_ti", + "Anti", + "Anti_Process", + "BDOS", + "BS_OD", + "Certifi_cate", + "Certificate", + "DIRECTORY", + "De_lay", + "Delay", + "DoStartup", + "ENABLELOGGER", + "EncryptionKey", + "Groub", + "Group", + "HIDEFILE", + "HIDEINSTALLSUBDIRECTORY", + "HIDELOGDIRECTORY", + "HOSTS", + "Hos_ts", + "Hosts", + "Hw_id", + "Hwid", + "INSTALL", + "INSTALLNAME", + "In_stall", + "Install", + "InstallDir", + "InstallFile", + "InstallFolder", + "InstallStr", + "Install_File", + "Install_Folder", + "Install_path", + "KEY", + "Key", + "LOGDIRECTORYNAME", + "MTX", + "MUTEX", + "Mutex", + "Paste_bin", + "Pastebin", + "Por_ts", + "Port", + "Ports", + "RECONNECTDELAY", + "SPL", + "STARTUP", + "STARTUPKEY", + "SUBDIRECTORY", + "ServerIp", + "ServerPort", + "Server_signa_ture", + "Serversignature", + "Sleep", + "TAG", + "USBNM", + "VERSION", + "Ver_sion", + "Version", + "delay", + "mutex_string", + "startup_name", + ] +) + class ConfigDecryptorPlaintext(ConfigDecryptor): - def __init__(self, payload, config_strings): - super().__init__(payload, config_strings) + # Minimum threshold for matching Field names + MIN_THRESHOLD_MATCH = 3 - def decrypt(self, ciphertext): - return ciphertext + def __init__(self, payload: DotNetPEPayload) -> None: + super().__init__(payload) - def decrypt_encrypted_strings(self): - logger.debug("Could not find applicable decryptor, returning found config as plaintext...") - return self.config_strings + # Calculates whether the config meets the minimum threshold for known Field + # Names and returns it if it does + def decrypt_encrypted_strings( + self, encrypted_strings: dict[str, str] + ) -> dict[str, str]: + field_names = set(encrypted_strings.keys()) + num_overlapping_field_names = len(KNOWN_CONFIG_FIELD_NAMES & field_names) + if num_overlapping_field_names < self.MIN_THRESHOLD_MATCH: + raise ConfigParserException( + "Plaintext threshold of known config items not met" + ) + return encrypted_strings diff --git a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_random_hardcoded.py b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_random_hardcoded.py new file mode 100644 index 00000000000..747364b8a9d --- /dev/null +++ b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_random_hardcoded.py @@ -0,0 +1,108 @@ +#!/usr/bin/env python3 +# +# config_decryptor_random_hardcoded.py +# +# Author: jeFF0Falltrades +# +# Provides a custom decryptor for RAT payloads utilizing the method of +# randomly selecting from an embedded list of C2 domains/supradomains +# +# Example hash: a2817702fecb280069f0723cd2d0bfdca63763b9cdc833941c4f33bbe383d93e +# +# MIT License +# +# Copyright (c) 2024 Jeff Archer +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +from logging import getLogger +from re import DOTALL, compile, findall, search + +from ...config_parser_exception import ConfigParserException +from ..data_utils import bytes_to_int +from ..dotnet_constants import PATTERN_LDSTR_OP +from ..dotnetpe_payload import DotNetPEMethod, DotNetPEPayload +from .config_decryptor import ConfigDecryptor, IncompatibleDecryptorException +from .config_decryptor_plaintext import ConfigDecryptorPlaintext + +logger = getLogger(__name__) + + +class ConfigDecryptorRandomHardcoded(ConfigDecryptor): + _KEY_HARDCODED_HOSTS = "hardcoded_hosts" + + # Pattern to find the Method that retrieves a random domain + _PATTERN_RANDOM_DOMAIN = compile( + rb"(?:\x73.{3}\x0a){2}\x25.+?\x0a\x06(?:\x6f.{3}\x0a){2}\x0b", flags=DOTALL + ) + + def __init__(self, payload: DotNetPEPayload) -> None: + super().__init__(payload) + try: + self._random_domain_method = self._get_random_domain_method() + except Exception as e: + raise IncompatibleDecryptorException(e) + + # Returns a combined config containing config fields + hardcoded hosts + def decrypt_encrypted_strings( + self, encrypted_strings: dict[str, str] + ) -> dict[str, list[str] | str]: + config = {} + # Pass off plaintext config to a ConfigDecryptorPlaintext + ptcd = ConfigDecryptorPlaintext(self._payload) + config.update(ptcd.decrypt_encrypted_strings(encrypted_strings)) + config[self._KEY_HARDCODED_HOSTS] = self._get_hardcoded_hosts() + return config + + # Retrieves and returns a list of hardcoded hosts + def _get_hardcoded_hosts(self) -> list[str]: + random_domain_method_body = self._payload.method_body_from_method( + self._random_domain_method + ) + hardcoded_host_rvas = findall(PATTERN_LDSTR_OP, random_domain_method_body) + + hardcoded_hosts = [] + for rva in hardcoded_host_rvas: + try: + harcoded_host = self._payload.user_string_from_rva(bytes_to_int(rva)) + if harcoded_host != ".": + hardcoded_hosts.append(harcoded_host) + except Exception as e: + logger.error(f"Error translating hardcoded host at {hex(rva)}: {e}") + continue + + logger.debug(f"Hardcoded hosts found: {hardcoded_hosts}") + return hardcoded_hosts + + # Retrieves the Method that randomly selects from a list of embedded hosts + def _get_random_domain_method(self) -> DotNetPEMethod: + logger.debug("Searching for random domain method") + random_domain_marker = search(self._PATTERN_RANDOM_DOMAIN, self._payload.data) + if random_domain_marker is None: + raise ConfigParserException( + "Could not identify random domain generator method" + ) + + random_domain_method = self._payload.method_from_instruction_offset( + random_domain_marker.start() + ) + + logger.debug( + f"Random domain generator found at offset {hex(random_domain_method.offset)}" + ) + return random_domain_method diff --git a/lib/parsers_aux/ratking/utils/dotnet_constants.py b/lib/parsers_aux/ratking/utils/dotnet_constants.py index 2de1a34027a..84f82e14619 100644 --- a/lib/parsers_aux/ratking/utils/dotnet_constants.py +++ b/lib/parsers_aux/ratking/utils/dotnet_constants.py @@ -28,16 +28,19 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. from enum import IntEnum +from re import DOTALL, compile -# Notable CIL Opcodes and Base RVAs +# Notable CIL Opcodes and Tokens OPCODE_LDC_I4_0 = b"\x16" -OPCODE_LDC_I4_1 = b"\x17" OPCODE_LDSTR = b"\x72" OPCODE_LDTOKEN = b"\xd0" -OPCODE_RET = b"\x2a" MDT_FIELD_DEF = 0x04000000 MDT_METHOD_DEF = 0x06000000 MDT_STRING = 0x70000000 +PATTERN_LDSTR_OP = compile( + rb"\x72(.{3}\x70)", + flags=DOTALL, +) # IntEnum derivative used for translating a SpecialFolder ID to its name diff --git a/lib/parsers_aux/ratking/utils/dotnetpe_payload.py b/lib/parsers_aux/ratking/utils/dotnetpe_payload.py index be66c0433f6..d704b3397d2 100644 --- a/lib/parsers_aux/ratking/utils/dotnetpe_payload.py +++ b/lib/parsers_aux/ratking/utils/dotnetpe_payload.py @@ -5,7 +5,7 @@ # Author: jeFF0Falltrades # # Provides a wrapper class for accessing metadata from a DotNetPE object and -# performing RVA to data offset conversions +# performing data conversions # # MIT License # @@ -28,124 +28,182 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. +from dataclasses import dataclass from hashlib import sha256 from logging import getLogger from dnfile import dnPE +from yara import Rules -from .config_parser_exception import ConfigParserException +from ..config_parser_exception import ConfigParserException +from .data_utils import bytes_to_int from .dotnet_constants import MDT_FIELD_DEF, MDT_METHOD_DEF, MDT_STRING logger = getLogger(__name__) +# Helper class representing a single Method +@dataclass +class DotNetPEMethod: + name: str + offset: int + rva: int + size: int + token: int + + class DotNetPEPayload: - def __init__(self, file_data, yara_rule=None): + # def __init__(self, file_path: str, yara_rule: Rules = None) -> None: + def __init__(self, file_data: bytes, yara_rule: Rules = None) -> None: # self.file_path = file_path - self.data = file_data # self.get_file_data() - self.sha256 = self.calculate_sha256() - self.dotnetpe = None + self.data = file_data # self._get_file_data() + + # Calculate SHA256 + sha256_obj = sha256() + sha256_obj.update(self.data) + self.sha256 = sha256_obj.hexdigest() + + self.dotnetpe: dnPE = None try: + # self.dotnetpe = dnPE(self.file_path, clr_lazy_load=True) self.dotnetpe = dnPE(data=file_data, clr_lazy_load=True) - except Exception as e: - logger.exception(e) + except Exception: + raise ConfigParserException("Failed to load project as dotnet executable") + self.yara_match = "" if yara_rule is not None: - self.yara_match = self.match_yara(yara_rule) + self.yara_match = self._match_yara(yara_rule) + + # Pre-sort Method table for efficient lookups + self._methods = self._generate_method_list() + self._methods_by_offset = sorted(self._methods, key=lambda m: m.offset) + self._methods_by_token = sorted(self._methods, key=lambda m: m.token) # Given a byte array's size and RVA, translates the RVA to the offset of # the byte array and returns the bytes of the array as a byte string - def byte_array_from_size_and_rva(self, arr_size, arr_rva): + def byte_array_from_size_and_rva(self, arr_size: int, arr_rva: int) -> bytes: arr_field_rva = self.fieldrva_from_rva(arr_rva) arr_offset = self.offset_from_rva(arr_field_rva) - arr_value = self.data[arr_offset : arr_offset + arr_size] - return arr_value - - # Calculates the SHA256 hash of file data - def calculate_sha256(self): - sha256_hash = sha256() - sha256_hash.update(self.data) - return sha256_hash.hexdigest() - - # Given an RVA, derives the corresponding Field name from the RVA - def field_name_from_rva(self, rva): - return self.dotnetpe.net.mdtables.Field.rows[(rva ^ MDT_FIELD_DEF) - 1].Name.value + return self.data[arr_offset : arr_offset + arr_size] + + # Given an offset, and either a terminating offset or delimiter, extracts + # the byte string + def byte_string_from_offset( + self, offset_start: int, offstart_end: int = -1, delimiter: bytes = b"\0" + ) -> bytes: + if offstart_end != -1: + try: + return self.data[offset_start:offstart_end] + except Exception: + raise ConfigParserException( + f"Could not extract string value from offset range [{hex(offset_start)}:{offstart_end}]" + ) + try: + return self.data[offset_start:].partition(delimiter)[0] + except Exception: + raise ConfigParserException( + f"Could not extract string value from offset {hex(offset_start)} with delimiter {delimiter}" + ) - # Given an RVA, derives the corresponding FieldRVA value from the RVA - def fieldrva_from_rva(self, rva): + # Given an RVA, derives the corresponding Field name + def field_name_from_rva(self, rva: int) -> str: + try: + return self.dotnetpe.net.mdtables.Field.rows[ + (rva ^ MDT_FIELD_DEF) - 1 + ].Name.value + except Exception: + raise ConfigParserException(f"Could not find Field for RVA {rva}") + + # Given an RVA, derives the corresponding FieldRVA value + def fieldrva_from_rva(self, rva: int) -> int: field_id = rva ^ MDT_FIELD_DEF for row in self.dotnetpe.net.mdtables.FieldRva: if row.struct.Field_Index == field_id: return row.struct.Rva - raise ConfigParserException(f"Could not find FieldRVA for address {rva}") + raise ConfigParserException(f"Could not find FieldRVA for RVA {rva}") + + # Generates a list of DotNetPEMethod objects for efficient lookups of method + # metadata in other operations + def _generate_method_list( + self, + ) -> list[DotNetPEMethod]: + method_objs = [] + + for idx, method in enumerate(self.dotnetpe.net.mdtables.MethodDef.rows): + method_offset = self.offset_from_rva(method.Rva) + + # Parse size from flags + flags = self.data[method_offset] + method_size = 0 + if flags & 3 == 2: # Tiny format + method_size = flags >> 2 + elif flags & 3 == 3: # Fat format (add 12-byte header) + method_size = 12 + bytes_to_int( + self.data[method_offset + 4 : method_offset + 8] + ) + + method_objs.append( + DotNetPEMethod( + method.Name.value, + method_offset, + method.Rva, + method_size, + (MDT_METHOD_DEF ^ idx) + 1, + ) + ) + return method_objs - # Reads in payload binary content - def get_file_data(self): + # Returns payload binary content + def _get_file_data(self) -> bytes: logger.debug(f"Reading contents from: {self.file_path}") try: with open(self.file_path, "rb") as fp: data = fp.read() - except Exception as e: - raise ConfigParserException(f"Error reading from path: {self.file_path}") from e - logger.debug("Successfully read data") + except Exception: + raise ConfigParserException(f"Error reading from path: {self.file_path}") + logger.debug(f"Successfully read {len(data)} bytes") return data - # Tests a given YARA rule object against the file at file_path - def match_yara(self, rule): + # Tests a given YARA rule object against the file at self.file_path, + # returning the matching rule's name, or "No match" + def _match_yara(self, rule: Rules) -> str: try: - match = rule.match(data=self.file_data) + match = rule.match(self.file_path) return str(match[0]) if len(match) > 0 else "No match" except Exception as e: logger.exception(e) return f"Exception encountered: {e}" - # Given a method name, returns RVAs of methods matching that name - def method_rvas_from_name(self, name): - return [row.Rva for row in self.dotnetpe.net.mdtables.MethodDef if row.Name.value == name] + # Given a DotNetPEMethod, returns its body as raw bytes + def method_body_from_method(self, method: DotNetPEMethod) -> bytes: + return self.byte_string_from_offset(method.offset, method.offset + method.size) + + # Given a Method name, returns a list of DotNetPEMethods matching that name + def methods_from_name(self, name: str) -> list[DotNetPEMethod]: + return [method for method in self._methods if method.name == name] # Given the offset to an instruction, reverses the instruction to its - # parent Method, and then finds the subsequent Method in the MethodDef - # table and returns its offset or index - def next_method_from_instruction_offset(self, ins_offset, step_back=0, by_token=False): - # Translate the instruction offset to RVA - ins_rva = self.dotnetpe.get_rva_from_offset(ins_offset) - # Get both the regular MethodDef table and a sorted (by RVA) copy - # This is because the table is not guaranteed to be ordered by RVA - methods = self.dotnetpe.net.mdtables.MethodDef.rows - sorted_methods = sorted(methods, key=lambda m: m.Rva) - # Go through the sorted table and find the Method RVA that is greater - # than the instruction RVA (the subsequent function), and use step_back - # to get the function containing the instruction if necessary - for idx, method in enumerate(sorted_methods): - if method.Rva > ins_rva: + # parent Method, optionally returning an adjacent Method using step to + # signify the direction of adjacency, and using by_token to determine + # whether to calculate adjacency by token or offset + def method_from_instruction_offset( + self, ins_offset: int, step: int = 0, by_token: bool = False + ) -> DotNetPEMethod: + for idx, method in enumerate(self._methods_by_offset): + if method.offset <= ins_offset < method.offset + method.size: return ( - # Add 1 to token ID as table starts at index 1, not 0 - methods.index(sorted_methods[idx - step_back]) + 1 + MDT_METHOD_DEF + self._methods_by_token[self._methods_by_token.index(method) + step] if by_token - else self.offset_from_rva(methods[methods.index(sorted_methods[idx - step_back])].Rva) + else self._methods_by_offset[idx + step] ) - raise ConfigParserException(f"Could not find method from instruction offset {ins_offset}") + raise ConfigParserException( + f"Could not find method from instruction offset {hex(ins_offset)}" + ) # Given an RVA, returns a data/file offset - def offset_from_rva(self, rva): + def offset_from_rva(self, rva: int) -> int: return self.dotnetpe.get_offset_from_rva(rva) - # Given a string offset, and, optionally, a delimiter, extracts the string - def string_from_offset(self, str_offset, delimiter=b"\0"): - try: - result = self.data[str_offset:].partition(delimiter)[0] - except Exception as e: - raise ConfigParserException( - f"Could not extract string value from offset {hex(str_offset)} with delimiter {delimiter}" - ) from e - return result - - def string_from_range(self, start_offset, end_offset): - try: - return self.data[start_offset, end_offset] - except Exception as e: - raise ConfigParserException(f"Could not extract string value from range {hex(start_offset)}:{hex(end_offset)}") from e - # Given an RVA, derives the corresponding User String - def user_string_from_rva(self, rva): + def user_string_from_rva(self, rva: int) -> str: return self.dotnetpe.net.user_strings.get(rva ^ MDT_STRING).value From bcc76e21ae44a1b21abb31ac30093f4ebe53ec92 Mon Sep 17 00:00:00 2001 From: jeFF0Falltrades <8444166+jeFF0Falltrades@users.noreply.github.com> Date: Fri, 27 Sep 2024 09:42:37 -0400 Subject: [PATCH 03/98] Minor fix to escape RVAs which may contain regex escape sequences --- .../ratking/utils/decryptors/config_decryptor_aes_cbc.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_cbc.py b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_cbc.py index 8389886bcfc..13bd9b4a359 100644 --- a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_cbc.py +++ b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_cbc.py @@ -31,7 +31,7 @@ # SOFTWARE. from base64 import b64decode from logging import getLogger -from re import DOTALL, compile, search +from re import DOTALL, compile, escape, search from typing import Tuple from cryptography.hazmat.backends import default_backend @@ -229,7 +229,7 @@ def _get_aes_key_rva(self, metadata_ins_offset: int) -> int: # Insert this RVA into the KEY_BASE pattern to find where the AES key # is initialized key_hit = search( - self._PATTERN_AES_KEY_BASE % int_to_bytes(metadata_method_token), + self._PATTERN_AES_KEY_BASE % escape(int_to_bytes(metadata_method_token)), self._payload.data, DOTALL, ) @@ -270,7 +270,7 @@ def _get_aes_salt(self, salt_rva: int) -> bytes: # stsfld uint8[] Client.Algorithm.Aes256::Salt # ret aes_salt_initialization = self._payload.data.find( - self._PATTERN_AES_SALT_INIT % salt_rva + self._PATTERN_AES_SALT_INIT % escape(salt_rva) ) if aes_salt_initialization == -1: raise ConfigParserException("Could not identify AES salt initialization") @@ -308,3 +308,4 @@ def _get_aes_salt(self, salt_rva: int) -> bytes: logger.debug(f"Found salt value: {salt.hex()}") return salt + From 59bb55d8a2b8fd911c64eba5e8a1759369cb2ceb Mon Sep 17 00:00:00 2001 From: Fernando Urbano Date: Mon, 30 Sep 2024 19:11:55 +0900 Subject: [PATCH 04/98] TOR Browser extension support (#2335) * tor browser extension support * add readme update --- .../modules/auxiliary/browsermonitor.py | 5 +++ .../windows/modules/packages/tor_browser.py | 27 ++++++++++++++ extra/browser_extension/README.md | 11 ++++++ extra/browser_extension/background.js | 36 ++++++++++++++++++- 4 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 analyzer/windows/modules/packages/tor_browser.py diff --git a/analyzer/windows/modules/auxiliary/browsermonitor.py b/analyzer/windows/modules/auxiliary/browsermonitor.py index e994505f274..e46e8fbe52c 100644 --- a/analyzer/windows/modules/auxiliary/browsermonitor.py +++ b/analyzer/windows/modules/auxiliary/browsermonitor.py @@ -35,6 +35,11 @@ def _find_browser_extension(self): while not self.browser_logfile and self.do_run: temp_dir_list = os.listdir(temp_dir) for directory in temp_dir_list: + # TOR Browser saves directly to %temp% + if directory.startswith("bext_") and directory.endswith(".json"): + log.debug(f"Found extension logs: {self.browser_logfile}") + self.browser_logfile = os.path.join(temp_dir, directory) + break tmp_directory_path = os.path.join(temp_dir, directory) if not os.path.isdir(tmp_directory_path): continue diff --git a/analyzer/windows/modules/packages/tor_browser.py b/analyzer/windows/modules/packages/tor_browser.py new file mode 100644 index 00000000000..23beaec50e8 --- /dev/null +++ b/analyzer/windows/modules/packages/tor_browser.py @@ -0,0 +1,27 @@ +# Copyright (C) 2024 fdiaz@virustotal.com +# This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org +# See the file 'docs/LICENSE' for copying permission. +import webbrowser +import time + +from lib.common.abstracts import Package + + +class TorBrowserExt(Package): + """TOR analysis package (with extension).""" + + PATHS = [ + ("LOCALAPPDATA", "Tor Browser", "Browser", "firefox.exe"), + ] + summary = "Opens the URL in firefox." + description = """Spawns TOR's firefox.exe and opens the supplied URL.""" + + def start(self, url): + webbrowser.register( + "firefox", None, webbrowser.BackgroundBrowser( + self.get_path("firefox.exe"))) + firefox = webbrowser.get("firefox") + time.sleep(15) # Rough estimate, change based on your setup times. + firefox.open(url) + time.sleep(15) # Prevent analysis from finishing too early. + return \ No newline at end of file diff --git a/extra/browser_extension/README.md b/extra/browser_extension/README.md index 697e43b9bb2..869b5013c25 100644 --- a/extra/browser_extension/README.md +++ b/extra/browser_extension/README.md @@ -26,3 +26,14 @@ permissions back. Then, the extension is permantently loaded. Tested on version The default path for the `chromium_ext` package is %LOCALAPPDATA%/Chromium/chrome.exe, change the path in .py if needed. + +==== TOR Browser ==== +Follow the same steps as FIREFOX. By default TOR browser always starts in a +Private Tab, allow the extension to run in Private Tabs by default. Because TOR +joins the TOR network, it won't see localhost and instead calls the browser +download API to save requests. + +Set the default downloads directory to %temp% for the auxiliary module to find +the .JSON file. After setting the saving path to %temp%, below untick "Always +ask you where to save files" so that the extension is able to call the +`browser.download` API. diff --git a/extra/browser_extension/background.js b/extra/browser_extension/background.js index e814b9692c3..64ff7f7ea92 100644 --- a/extra/browser_extension/background.js +++ b/extra/browser_extension/background.js @@ -1,6 +1,29 @@ +let isTORBrowser = false; let networkData = []; +let downloadTORPath = "bext_default.json"; + +function generateRandomFilename() { + const asciiLetters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + let filename = 'bext_'; + for (let i = 0; i < 10; i++) { + filename += asciiLetters.charAt(Math.floor(Math.random() * asciiLetters.length)); + } + filename += '.json'; + return filename; +} +function storeNetworkData() { + const blob = new Blob([JSON.stringify(networkData, null, 2)], {type: "application/json"}); + const url = URL.createObjectURL(blob); + + browser.downloads.download({ + url: url, + filename: downloadTORPath, + conflictAction: 'overwrite' + }); +} + function onRequestEvent(details) { if (details.url.includes("/browser_extension")) { return; @@ -28,7 +51,11 @@ function onResponseEvent(details) { requestEvent.type = details.type; requestEvent.ip = details.ip; requestEvent.originUrl = details.originUrl; - sendEvents(); + if (isTORBrowser) { + storeNetworkData(); + } else { + sendEvents() + } } } @@ -73,4 +100,11 @@ browser.downloads.onCreated.addListener(function(downloadItem) { browser.runtime.onStartup.addListener(function () { networkData = []; +}); + +browser.runtime.getBrowserInfo().then((bInfo) => { + if (bInfo.vendor === "Tor Project") { + isTORBrowser = true; + downloadTORPath = generateRandomFilename(); + } }); \ No newline at end of file From 66e5b08aff483b03239cf8c63c1eefb15ad0de78 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Mon, 30 Sep 2024 10:12:47 +0000 Subject: [PATCH 05/98] style: Automatic code formatting --- analyzer/windows/modules/packages/tor_browser.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/analyzer/windows/modules/packages/tor_browser.py b/analyzer/windows/modules/packages/tor_browser.py index 23beaec50e8..064611db5ff 100644 --- a/analyzer/windows/modules/packages/tor_browser.py +++ b/analyzer/windows/modules/packages/tor_browser.py @@ -1,8 +1,8 @@ # Copyright (C) 2024 fdiaz@virustotal.com # This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org # See the file 'docs/LICENSE' for copying permission. -import webbrowser import time +import webbrowser from lib.common.abstracts import Package @@ -17,11 +17,9 @@ class TorBrowserExt(Package): description = """Spawns TOR's firefox.exe and opens the supplied URL.""" def start(self, url): - webbrowser.register( - "firefox", None, webbrowser.BackgroundBrowser( - self.get_path("firefox.exe"))) + webbrowser.register("firefox", None, webbrowser.BackgroundBrowser(self.get_path("firefox.exe"))) firefox = webbrowser.get("firefox") time.sleep(15) # Rough estimate, change based on your setup times. firefox.open(url) time.sleep(15) # Prevent analysis from finishing too early. - return \ No newline at end of file + return From aeb6f3ec37a8536c8a720690f64744db742b091d Mon Sep 17 00:00:00 2001 From: David Santos <44490090+dsecuma@users.noreply.github.com> Date: Mon, 30 Sep 2024 16:04:04 +0200 Subject: [PATCH 06/98] Missing import (#2336) * dump memory from pids in brackground * skip download dumps and other files from analysis dir as dropfiles * style: Automatic code formatting * omogenise to windows dumps extension (dmp) * importing enabled modules --------- Co-authored-by: GitHub Actions --- analyzer/windows/analyzer.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/analyzer/windows/analyzer.py b/analyzer/windows/analyzer.py index 8444dd9aaeb..8a4d2fc9505 100644 --- a/analyzer/windows/analyzer.py +++ b/analyzer/windows/analyzer.py @@ -503,8 +503,9 @@ def run(self): mod_name = name.split(".")[-1] if mod_name in windows_modules: mod_name += "_windows" - # if hasattr(self.config, mod_name) and getattr(self.config, mod_name, False): - # log.debug('Imported auxiliary module "%s"', name) + if hasattr(self.config, mod_name) and getattr(self.config, mod_name, False): + __import__(name, globals(), locals(), ["dummy"]) + log.debug('Imported auxiliary module "%s"', name) except ImportError as e: log.warning('Unable to import the auxiliary module "%s": %s', name, e) From 839dc8b32181ccca4815b67cdadbff2d09c44d30 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Mon, 30 Sep 2024 14:05:09 +0000 Subject: [PATCH 07/98] style: Automatic code formatting --- analyzer/windows/analyzer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/analyzer/windows/analyzer.py b/analyzer/windows/analyzer.py index 8a4d2fc9505..7c5694e84e5 100644 --- a/analyzer/windows/analyzer.py +++ b/analyzer/windows/analyzer.py @@ -504,8 +504,8 @@ def run(self): if mod_name in windows_modules: mod_name += "_windows" if hasattr(self.config, mod_name) and getattr(self.config, mod_name, False): - __import__(name, globals(), locals(), ["dummy"]) - log.debug('Imported auxiliary module "%s"', name) + __import__(name, globals(), locals(), ["dummy"]) + log.debug('Imported auxiliary module "%s"', name) except ImportError as e: log.warning('Unable to import the auxiliary module "%s": %s', name, e) From b24e09c29b4e861f3bbdb7c082528376cdf422b0 Mon Sep 17 00:00:00 2001 From: Kevin O'Reilly Date: Tue, 1 Oct 2024 10:14:15 +0100 Subject: [PATCH 08/98] Monitor update: Improve fix for size bug with unpacking embedded PEs --- analyzer/windows/dll/capemon.dll | Bin 2528256 -> 2528256 bytes analyzer/windows/dll/capemon_x64.dll | Bin 3502592 -> 3502592 bytes changelog.md | 4 +++- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/analyzer/windows/dll/capemon.dll b/analyzer/windows/dll/capemon.dll index 2f6ee42ce1731a4fa2856c2a747d1a73275288a3..60f2e425e905abaa39b3ca060c346a537f4aef12 100755 GIT binary patch delta 2636 zcmYjS3se(V8lFocAc8k0)9zWzdtORh{jk1FVRsCAz|GML$?dVv@bzfgB-8%N8bnnND=7Z znqZ>ObV^LV&&maU31;hkX3{dEj1c6_JyE3R8&4O1WIzzyDV>3^?3RPGgJGY4E~gUx z<`4R%?$-#w@j8DD&zwnxhW!@J*2}w22}0wUW)vTO#rNfuAotCx1LA1-1L}dp4Eg_0++w2+=})@NHK> z^BbPQPCq_uOGMrHx=oIn@FUv<^cj|C#iK5)%VJS1F3;Kp|FG=sNR1C=Q|K`6$&Nwu z@j!MmdKWA0DQejzpSx>(#&c-2-GMT3o9F#Gm4u4>6J!8Yb|%^%^a-u`7`l7|uCQys z!y&sGUB}(_L{zsqCmBt{DLFfl0e9x8{Q{2RmpM#a(WF7zbsgZd=Av^5f2suS*?1-|REDc_KR}zXB#)`eN%O68n;S$9&Sbtk#aA5)w|V*w7;%l@<8CA1 z;|j71qSizKBHZSDpS78vE~qBPE-7bd<9xe$FJ z+&$6k!9+186p`=^KAATOHRCsVF(@BLSj!XrB=_DTr$o+d#QMuPlWTcc(&--+{Ac=N6uanJgFsTH^h9mABx`*`J`#arf+_ z=nbx)Lxul%5b}5hH`GWj@Pg0LojG>I;pD>6$bz#AJ?IO3ztDtSIC8Ej_Em%!Kn5!P z4lY@@2^60+E01gLf|UxqY;FpAfj^t8LN{>RTt?AIi`IeXgmR})o-dSZg>qRASAP+V zD{**H5-PyDqBZCNZZ3*K=kTQ>2ik!Xi;LjMR2A>^BVORRl7yrz9V9Rk{G15fgm&Vtm?*FUo9qPwv7!xD`7q z@{rEmRpITbK;#%C^Zv3ICFY<~Z_Eo+G6VT}-?#WJ84|WF>{o$bG)hYF^-JJLzF+%v zvY+?qWXYQa=&HAWzhurylR6h((M5#(fjsNX=?y#^*&l5J?I->DXmAS z(wn$idJ&;7YWpgrfFa(#3jdt(sJhnNgdm*P zl!UWYDGm`Z=UuR0d3R0NI=pQyx7gcKz;XQOw^#oP@tR1a8ue+jqqmTSNXa${2kEKc4KxfeodM?e;%jwnh2XsAskZz^FqVLc@&=Mw$ zNnuRPBqo!|W9BhVW(`xz>||P*Hs&7loRJxF4f74ZH>@&L8a5dk4SNiS4JQoO4gH32 zHmZu9z)ol9u9zc1kyt~mQPwzX zidAc!YAv;{u&%RivvynmX@&ir2T%2MDEl~a6gip9BumIm) zM7>D;k-9;BMSWBKo%$EGL?hEgYZ5e+W}?QXS*lsC`J-mH=8)#LrduBsca^j&(3B`*(K~Mc0Ie3JR delta 2636 zcmYjS2~ZSQ8tw-pmmr56BBLA*3PwrK^vv`zmlp{N=x}5PluJd^L90Za@!AknPSdbK zUkqv>x{28+SzK6>8lq8gArV#~Y7#XXBiUftyF?2O0pptV{yn6&cB;Oq_x}Fg|Gxit z@9jQu1nma2G03y^_9JXS>7GCRG#d+Osc+LIL@YQPM=<+iqwo`S6E$^Q^{9^Uw+WBz zRbzpbwFE)nqmf~D{{3iDjNU~M6+J#wS7E^_;a+~Xko@GtLx=q&LImNoR&_bjgfdYW z_jHcbCl8e+Ts%y@I`geN3UHx(+ z)n&M})o?L+C=KQplLw2dVUzs9Ko?qXNFH){!T+Gsul@y3L+>`v`rKy~7Zml?__d|e z%CGN}T{+74JOy1b+qZY7uOx`|`@AkHG;&ZN{jY@t0m(~}!Uzb-%IBN|9Y>Z;==efB z_NydSbvb?P{0aClY&;_eIBem4&I4_$o2DosN(d>eZ7`A)ZV0_%^D{|;>cOgOF?QYx z#9^;YUM2foJmHtRT{Y(L76!!kFuRNjl$K8HmOdmFpOK`-3vDPm=(7CFC_%zis;`6) zJ@ALiFj|f+sinw-+ft_oEgFGso}gEGp1c6AF}{@=6*>-usOk!=+yF9dyhHv_jD6Eq zpirEfWGCC3jpFKdn2O{8zVvAjCnOpRQ64 zzc8UKKnuMgwqAy^UJ)iHgSa_877gI@>0#&){yP16REsAqk4Bw1emRE%aMALkDB!?~ zw^1x^T0x;^d}T!x%D_Lah)1h%h;_DF@ejAR0nsoDgR@^jBUG4*-c2B(+1`NwppV+8 zdqH&qtKNXASczY;YQRI2RgKQ$0c$KO!z0#sMC0&`W|W9O%20cZci{UO%*^yf6SC{O zz^Qx=#1A`Qa2v9INj!#4nM%)~@4_1|WCe!e(#*YR7yc=eDPOqIy{f|WrYyn{FBZ*q zH;1yql+pwi=TvdZmk0zo{jAb;DD{XP5f!FvH`^p?+-zq6f7~yY6h{}x&J;qx(E0?D zx+ac7w9sh27Z=QfV2I%W{-#XppP)epUB@k1i_kIrAS((j!M@qEP!XP=t%@;BFbWIg ztAO9w12y&ee^cY;1Czo!s^8aO4bQjnyFUY$R+vvLf<6#Kx_>XtKCHDbof0@f7Sf+l{o-9L*lTAdo|3yf z2#QmC2EyS#Iu=cq5cLO@kZ{o-t8-M!`>nrIc9hjug~F+@{*Q1OZ_bHAZMZ%s2EBn# zJZbv;UttbbFtx7~m*s@AM@8V0VjA$M9 z$urInBjgQ2p-L~om0MwiiZ8Nf@ol}Z(jTwRn~m<_+B_BN!mW9XvWAw~KHXBOLn_Ud zO0`mHXa?WV2jqc_|OBT)xFoo_>RIJh7mj?AWlW{;6kJf$!u&a8s~ z!oklcKHnseLZ-j?Y$`z%7Iex@;=cVmiV7J8D(*PEcFSax(c!&<#n_>P9fCVQMB!`N8IT_x$T^xe8LYPOc~{_y8N=_!n<+< z?x2&{u`>%LSM=_5_3lLET%>aS@*axKKwDfD8%&#v&YMmf?9%plf-p%6olCD zGMq-C=J8?=*W<;Wzph1hTq7TNt~`y_xKh_BmUy5Uu7+a8+ulg+nzvEW>5Y0__qHlp z-1cpX288Ndu{#uf2>rcgc&7p|$u+#wD^YmJM7Lcy%Z|fiE=g{+L9c`c&&`aq8dOf|7-a+rBYv}{@G5R#!OMgud z(U0k=ObnxE(wIypk6Fu>B`v$_OG$tC&#(ZP7vCjCG zvEAr0J~b{htu$>l)tTNmeQKI(&M?=S8_dn-Kbt=>cbPvk_nWVo@0dr;znZ67qAiJ* zB#Yj%#A35-u~b<0TUsm+E#nrVsGJ~Dpy!iFn#>~e$W7!CvXA_Nd`OOxPswQYZ1p1b zCbd)Dq&}|xR{g#D-)djYREUqZ>MnJU`VWP)AzDhCt*z7U*ZxJ@SFZi1_MvvNE?5_#o1u%> zQ94$)T6a=6pu4Gistbiu$9wrp-`{!*nNo8PXrZXqXMm0mj8# zWk#6E>@4bZ+ovY#AjS*y8=)^E_aZ&-eGw>m$#zvoo`^v$M0av-{j<^8G8)Wc=F_ zCsnSt_iaBz(SOejRRT-9lyx^;v>FW6EgH1_{9aOR*Naj0=g*gFmD;j5+|VBI68q+# zlqN~?{3Mqksb1D_m+8Y@B>dy2EB=+hKV$B27q{L{x9=|a8wx7YkCLb+?I))sVtct? zHW=pG9Hs%NvSl5KDp>KYkKy!x|3mf1OqpF&g>nIx(^0l%Jqkwo#M)4Uny?dPhiTwN zja6_#d&Z}&1(iK%b6BZTx%*v2fh6suwI#&($^+Mh7!DV=V{;h)x7;f?!6;-G$v`PW zc!ha3G#Co5pue^pr#U;1UzBs|Crf3Z>bbr@)8rIT9oQ7dP%2fo3}{zos@~ntRtyiKBzRVBZel`raUKa zAK~BdDg=Lc6N1MA6AXdd{jic?O<4OR{n>YtWH4kD_O#h2SO?gY3D#hn za)*Y29^%Z#BOb5;wwkwX%3+(rh#DK4(%u>c{tLk0=6XrpFo|`8Y8IRcG%S6rb8q@U zr()j?tHEiRNv?ikZ|M79_rCQ zg2T3PEU4)ekTL9b;~`pFNrXqu72`l|#9`V7 zbQqS}kX!>qaI1U2pdtITm1q6&S+R%cvp`Y9yYE$2%;OB6v{7ZM8Pxfx1p(%1ps4KG@D*$63Mx}kne3<+ zoT404+fzZH2rt(MAmx(k2MVPuUJg@@$|6XrNgq`f;Vy4(PsIWrk;y?HjC% z%fjl|*En(w;boz7%Mg>9I#lYx?yHObwO9)fXK>C1(2YPVOJpEf2@V76s9tU&9-xUUILsREbig;|V^)i>s`>bnGh93!c zS}Gs#H^lEQfx%C9Bv|8k0xDOXmXiS66Rh==SJ0+A``}mi1T<^T@j(N7*jAFkhXz&` zG!GeslI@P%FlSbC{Hleb!;{ znrJD?oNJ7vN7Y4R$%SeLiFoNUeHtVpD@+BqJuIKi0T&CEs$*zpkoejy>kL?zr5?ee zx?8{%yl*2V7-Qf*#R)vB+Njjr_mvzdd2zC(5mud#0lj>BGgqG zi)8|B4H1DR*X=xwE~YnvGrC5%L$KyOrtlgfrI~Y&KMe6O8jHMaH6*awuc_-kV{y}U zzuZ;#%RLS|Ef+r^kNF3ABIVT(X_nuwu|v?5?+tDl-0e83Ra1CL5!Ae^y6SXSU&v;XT( z%W7&GhOi)=#)b+1Ci{;B8Pwqu{0#}_U@TC7YA!6ANoNg$3wz0(hB-7T{4f*VD}@2%)X176`bk~K;UcH0Qws;;GlQKEs{E`A?O7o$XXw^{s-fr%C& zl7o6ii^^_U41x}##V!Q4aScUHX*UgNC_<&v^hHC&m7h^=LlM}$8{Dut_q^JzI}H9f z489*E<&}H_d;1m)-3Dl4#EHa+ym;lZO*!MVq^9wGkqT;qNQ8(49!Sa$g7bE5v7^`pIyn;NGy;R)2&9L zu4EziSjFojP+w!N{%yK28lZPFfUe6+KO*5 zA%Kky5eo^YyO5&dL^JQX`@#*SM)<_h9OtQKCMO-Y_JQUd4&E(hyn|FFY!K0#LyXu)&BVDVMqZ5p*hE)Ty;=HLrHhY&;jL zA;?5A>s4w-8Qq+xg065pcz(w`6DXvqu$B|Rfr+u_S;k;9b#E$s-0q*i`vIENR8;D< zvZKN9p{FnN&{IcqC))UXbV;qxGP7`|*LE74v)5CMoAF4t_YAk$hefeNdD=;nRhObJ zw~_*uJUL~qUP*s96#>#y@^2=*{DZjO1@*jXLhSUx=cPYU*V9MMM39>=qwJ^5W}=Z_ z>Tc*2ySovAP->BO9i~DSzaL#|CK?Bbuh@lmwFXD<7RqK$xPwK6qcxsha5wc5uy`M( zv;Zzx(<)^7!y+sH21l)nlg>kjK;ZS*WZ(dq=z!{^O$o(z}NxfKyeYv*Vbe*ZSeUzq62e-Uki_t%NiXlHX#B@^?@W>2=to#H#jcf!6pkmE6D zg7Q~ZthdI`E5XqM!@=ggo4M5kw*sE1@dr{m!yao%-kOg(dv zUC1+SMq_5HXZGq#Jc1e<`)c-p;5XQyR%C{Qz>w7dZx7?YFx3aC8_o0A=W##S7PXE} zjpCK^ITtf}Cp+dG0e+HlG8y~)xRjU+Bct~uvq*dUPJ;vilOX~8r_?XzP`X>ccuai6 z|1IcV3mD}!l5D~!vx%+Gq5Kk2EHPW`3oNeCOSIE+eL3bkyM_R6*#|9i{YTiYYf@`M zwdX2lDkgPu{C>1+C`s?>)4FGLJwpAiHR^Nk%K6AwedERC`(C=uEDf+Fjc3sB?Hn+cr#N}J66 zdfA%AHim)<2{R_liv78DIO0R^_}yH@N(}m&TRB8jcfQ5u1`gMB8fCQwLSDPE0IUnE z0%sRs;QKM{Ybh#cX2R%UMMILb7yCquvuOe9g=Pz${rAVogm^eoa#TE|`Z6Z&qv^5DnNsDw!6uE>51-%M@*J-fe-@ z-=5{!cOIR1%*D0Xui1^IK$jJJDh1T$>>cPfnmNRjWAAXdahEqBX~lDOCs(Wl%L0Ei zs!eNc^Q(5v{V=g>*r3%PAVPv-bH{dKKWOwFC``J;3C6>6eA;P|R**4S1ZA%Mf~`a4 zhEla9j=jQoZpnjNnvVrHE7pw#%rIreO1h+}9ONspkI)f4n->$S;@zCp1L*&RhQqXN z*(S8WT_~*>bD6;PRpH6MvaNH`TZ22TPZquv=Ot?j=!=0*#*7-49AlbKKP8J+Z4Ufd z8=7%LMUrwt4LPq{=bs>TT52xVW_WQ1AlrHuV4Jc)3sRgGKU61RbEzz|ZqX`EsUeh} zBI?&He-z!@*ou*jzis9|43l9QGGp1(!r9pbyk=DySJIUfD9OMCU37v4MFjR?yi=); z8f~XiMEB>ZqESAjzC~IjE7sad>sqW9U7b^_@6j_6wNO?|p3}R-QH|oiVh*-HkzZ(k z34ggKGc>_zd}~okj0Y?$b_~sGjnHN?ZEP)qYD8&{s3rGgf)!h=(Ji&sjzM23IgicR z3pB+cnted;TO)yakF0HkO?pP3wn4VxIJu_^&r;k-5{JCs>gBn`*(e}oaVNYCN(l%@^7s+xw3rr9ueQP?^YIt#XUCWoOKG$RE<3=bu%x!U6yQ}o z(t_K6-U7m;hpN+RXp2x)=<@RzfHJ(*`CcyUsof(^K#lV?lT)8AlRz{QTvdqFR~y|3F$%!*;?~>Q5cpiIAX;o6(Bh=&_C$lgYq>1SL_3 za3a?=8O_?`-JODs(o4KgKTY#Gi0YXWHRyGANgSZxK7_e_uo;F0 z?wdEd#=`(i1^|7wuR&Mp9bq})xlgIPF|#i? zIzO=~e%07j;iXYEca4t=_+V(7J?6<^+JPQ%QjU|P7^0ouuvpy8dcwLU;!b`te!wp;-w1+2t| zj#O#47H~FSubE(NR27|@jRME_sM7ABz;J z2KD(^RP}hjI^2-%g)TdmLnPn?0OtZN`&cx?PWtZ0BEqHQaMGg(M%Kdv~jc~QC`rv1x~kw8F| z2K2$X)gfH6H5KbHh4cFm1l|tQ>fdyD941cY{pwlL}oRCa1$LGA3#X{#1ALvCN`yLt}K3&pjqHqAfaAPWQGcTF+mgVPCdv zk60}0$GO^JtH^QSZ&_nY7_`km7wX+rG&a4P!E*^5-v-t)(A>~cK532i1cJiR@}Amd z4PxCBHoJ^fkN=@%(*fXVkTfi#?rfWw>+2Ypl~*yny3HP3SXoPpJUIvfk{Y32JEt%& zq=0Usjo+6GKICA}m*&bJofaPmkrgW%(adflRccB%x?$xhNAJ1`AD^;pVCblcXW@BA zi?;>s5FaN*NB%+K-Gx`JeeCluBEV&XK#L_}wAwS72%jqhEo~fLy!0cMD9Y$AYDnE^ zWp@}iPFlK)>e6@gJ3oFV-yV4QQqvxyfvFj5?>0_#!C?hW>mf2EZ+h25BzpSpXM?z= zRzRgT9;_AP6-w(V8k9MctxY1f&hoUhr?5)PDX*vSFV%7)Pj&CC*zf2;PfQ#{E%Ip*YudW!K|6m71Dl4FjKtezFSlDhU1K4sRh zdha#h^=utY?IqesH|Sz7@uFfv9xD1Y_l2`D=k&ooD%yCEuJ;y|r9Skgx2P2K3i-Nz zcFFv`@fqG`#Jkv(Rx;;%G|#2jUtvt0mP*v5kLV$FrxksWU!G1^`-sMsu7kHyo?VOT z4?P#AX1$g&0&PmuK=inf>h?t_-mg(8R1#J(cG;+-+v@wzspnKp0P3I9Q9pNL^T z_gT(45k(tpWJj~!xZvy^mPBEqD1RIZ=cTj%^Fo_D6Cxoid}(kq$+;`o>^_`k<| z>wu;CHR&Mz-A{OxnqCYDqk#S*(7jeBkBm7d9fu-lqdT?fFFd?junaHi{3AoWauKz6 zX<~nj-C+8vzo=0@5SlLNfrTmSt&28wdeH6uBCLEWn&9nIWmI97I4n=8(g5)wwEslS z2)L_dc#uXz1BI3J+=I8aQ`w1Twc7!Gsm?$VBi*G>2a0ADy3Y78HJ)ifw|{3kJWw2H z`Eb16(q^7*%F^@v$hl$8iQvvC{v#c%n;Yqs`e}!tHl>}6wz~nU<{?>TQ+!dIp#rlP zogRcJB9YWVB06w2_r87@_r4I(0I!EO236HT`>2ku+1lxb@**p?+B~dKHs!Ta$Z?x5 zN=3`m59mCsrTjP^C5xi4Bp1^?bV;IJ(req4&vkh(W;{a!uepJ*YvJ&;@;rA>x-?kK zD-|`iXz*6hXG26lnL8*KdEv|S#Sk&rX9mygcA>>t9~=ix8>5+plPZ0R4y~q!pNg*1 zBBD=4-BQP97cHj;>C&g7XV7aN1#3-hlo2|Q!FD~4x9jm;ab%S|8jZuP8xK?G&xEgw zI7FjA6Fo~E9aRL!J%GNreP@tv>%6?cNUv4ZXJ1WC%| zEo?hDBcb`j#Hf<<(;3}VW*U_rE~-c>MGhDJ+<%`5iIkJ(oC}&v1+;#+sO!G17Z$reoqrVRb3JpH`0)yJ6tn(nYxc=HWbOoJc%@E+9Ym zBSiUV9pBj~F`U+=gYqf8PZteCt-~}EKpKEg^xS^HeA$_RO(=+|!_G+3t!wrr==nRj`cem(^$G2S=Nr>3JtE#&HljTUXH{>q5QD{JG* z&M=Y7yY#ZV)>Iezd9;YB_OdU%I0tF+nCiRzEXnfNy}X1u87?aB4q{5AEJ#^HN$C)&{d@yHEk z((UmgEjVQgRASCq1q;HV$w1A_N8A9m-FOPCHxqG0Hk7(g5Z-;4Gtawz+$JV+FrQ2h z`ijTb50o6CIV{_N;-R(Xlcgk6PXnofFgo+r{%8!MRW8^X6g+a!7_CcBu>i?RN3;4yHVi(knQTp zL`JpUBd0Up7)z-WMdfNS8#rgMfve2f!{A3bh>z0(N2jGMvrzn})1rwYz^f0C%-JCt z4&q{4*5N?qZ+op|Ix|splwOl{l8CZ|bFTfZ4;GtIPD@08rnhXM;gc}2lW4&t5mzQ{ z3ox>PVULZcyOTuIq}ScidPa)+`A`XtARmhWLM`4uNqacVDLy?YC=Vh)Tm2XM&YN>M z`KXvmgEK{QNuh0-2pVcq`N?>kq7nSSncig4qI$$2Y$AT-!K{T%gu~WTm8NQA?1Ksh z^VV`~p20p0+p;m?Y9h|M;Qn~xZ_N?`k)faQ9V4A0Z!GulDku;EXcQ1YZFm5Z zU{47|bc5a03^Hbmo?iU{!7NDaQSi7T3~j8J9^B8RiP^%l{P7R9`%w$?{EOCPi|XyR z?B$Mil9lU_orBeLKrC#6m+C_y%5V+YxDKIPksLrql-ovDtM4zS1oA*27m2fp0&;|} zxl})l@iC4zIAdIol5#|fwfZ3NJXnDRIK}DmF>F`Ebg4^C(mK|R_T-3w2ERuA@;PjMvn!wD7XW2mgzF@IH+k6utiG`x+*m60A|T=j^)K zX{icf{->`v)8s2VC#b}9QM2N$K_6nhp2!G7;L?4m*>r49JJ5{jqOTN3kEe@8m7>dm zk;7PO7^{TuJ#m5u1nF?&mQY$XLsTjy0Y@vR(+Mu$axW^MrsrJV&1E=ti-@U5A-zsQRJAjdZpX0J z98nGHn1?#w%&B8w{VPe`W-RN;w2OYVi`3vdU9_O2=SXhW^cr1BQCfR}HbsdGR7-+h zJC=!~ZZqM{KBgTrMNQK!uvhu|mln1@nu#4@9GMhR+3PmfgrLT0xzw3waYhTM&(M>a zE4cK!fxb|%0M(@%ifB0`7r3}ar(9KQnK)am-_O#nIwA)e4RUm{DqrOZRF#>U&PV%J}f=FJinOnEHbFJ-hLT|irB;R?+pdOAy6 zhQl1lGjwJIBM_8UoUMqV-VTg(}Duu9wubSq_cx zNso5zTJw%$g4J2N1Lj8B0=JM8$unr@98oJ^9haLWAkhhSc;^FT7(ySN+cJ{oii#CH zL67>tksn-H2MV4mT8A#`RWw0!dLqf8yii^{EmJ$d++LZpb9u(%?&3;~mH&GBYA$k( zU(1+g5n7BC0(NRP=nA?575A`Qm67fV(IZpSuW9ucxLbX>z7gt?V@LjTnLdNNOV zOa3H(E~cM-H) z0>%+n&?#cR*nnG#cjt=*?z>>RoMxWu!PodLNtC@nER;r&&qCqTVC|;bhGRMG$)v2< zmL(9*X_3~X&IskxJ0#%t>Dk(bL@ZkFNqw3&YOZv3Pff7D?1jQFa?=^) zU=WJ08_Wj;=A8MO;hRc>HK!#)6ypqFKyPLFY+gx_Q|-o4bY~&bO>L;uBHZJXK5A7<0&LsR*yKdM#Mm@)6}Z@r4PWk>iA^-vaieu@nTb8vGKr*m(hF@y;~|m>wXQL6vYlgo6aW!KK~T%>sfpTU9#_xU*s_QRihMK&}dg;PN|7Ste4;p2E(;mKANtD1|6v z6Wv*c6T=J&UXI=4EgG;Kt5*=MSuTPqdJe`!oC!vd>2ME?MPItN9Lv)R^7vBJ%xv%$ z@j-$v5&Ad*x>NJ(XoBTw0o@0|dZ9`etUsT;;tK%)oR%6kdJLJlr@3j@pOztPp|iwgIMYgp36@dAi$oSht`S z`Re9uc*aYp*7~8{iaw_{%iwnLT@a3oo@&E*PCX#OA!Ws$Ll4oT$ULgGQZx+yG!cVr zH%ce`5fMO%L5=+4DK*sZrFNsLDFnfGfe@tQSpxgPN~;MumVgozzE%PS~4-B>}%RM zF@jmK{Q);*d}4D|O#NuZSE5FT(%=JkU5^Ru#%lcFV?AzkSAR6R8sAV9H44xz2K8hR zj69BKQsh(|p%s}NJY$JknB)OeX*KRpMpD{p(cV85$F{JVj~o6!w6TFstQOCD&c7H6 zA>gn~Q}Cw#UJfIr7&90OAI>0Y2|!4&VpC($;r^{pGSMjr7ucns4iaTf%iuU|Q0t)v zW5NY384*g}--sTumoG4Z=_np*l-|T{2HA~!7?k)0vpCm8W3l)IvpB>Bjm2Er`3*AS zW9j}k;)s+?->t!3+n=7T5$mKSwDeol&8L&!iYDg4eW0S&2U0}TL`_i3&=_Y75I;N6mxJITsZ zUIF*fs6qaWkI=D_$@haB|V)p%>#Wd%%#RV>%Lk)VnP6WD?>_z_T#k7jgdx61@ z$EbDWgln_Xc$;$9i$p1v{$4M9f@>XSMH|bW!o&5TE#}8jMtlr5f)9w6Fl{xB)-s!# zY`_kW7S_!Fl3AjC)!t=WhfHUpCex1!8B zep(RF%4W`ucSDysQ{hL?H;TqCre0KMlZXx|1;WC^9JHQO7a`rjfmO1jL<7BRRBB<4}rirB#|5;gRm!Z>~-8){Yp}y?=TG^OP;dzcQ*a9_&Fx%vM<% zCH1!|_?|RbiS(e%?NG!F`e8c`&Mwf+?O41c>D6`|-G)-g4zZxeoI@-M&)|u8i*Tw> zw1F`WWw_lq3=j3KofVK1t|_4P9#+5@E@%p9&KMyFS!<@IOtdSp=8&@1&b>xL4KTKfs?SEINs_>fA54{N9G29FYZa@l>=z^21kO;;m;f>(X;P`m744l=Gx6s z>}Sq2@)L>)(jG-x^5Ft&NimwWSATb!xC=&cpH}S>-Ca!4B<&Vk1A2FY1v*lOsUJV| z;Q%z-f{YS8pQbQNGF{j$Jn_k5!EUiYez1?n&v>13_K3dnc)c`)p6`L5h^4^2qOx3C z2fm}Ey`qJ@Z?8tMkrwZTV>wHA_KGHQm<|kJU?4T$Ck9CGY4bkeY5OvS^>*G?6PHJ) z%dBeGLxl@jI(&~6%yrt*fjgiKIj&*ji1}2%#GL!_=G@B}uDDh1v~^J zwu3{T6Sk@*`XJw~-r^E@E;Iz{?HC#c5 zPGb&yMK4c_C0PAupMeQH&0TXwymRp%RQW^HlLsS#R_;EiiGKWKtLZ;2_rQ74UxM!o zx`@0)ZR&RsY1*Z9>>{G$-nq_;qPJ8&VzuT3{P56~(=d1BWszM%%E^6oU33;eY;Hxo{Bya9LM`-B0?HZb)Snz(zM)w7hPf(e~)7dHgYv*?*uS@HzOt6`yw=U826w?3&ZV{ zEX%{nPwt1F@;8O?yAhvYtj^I{StuX@R^_(ms7pc@%y z+*f{bc?sasmE`-I55SUc3X!8+JWaVRLgYrS(s0TS zl_T)2!LCrbn&g>#I}|KkN*$pRVe$&;dG6O?@&i|C3eBo3*O$J`JzQ5FDoH=(M%0sC zU2spRL4COmiqq@MA4^hb?!5-Go5;L87AM2zoKft@@HIES_UIF1`F(FJrO@bPFG_=-?N{X!HK3JY`L$*6y2PgyA}Z%QfyOSZ6jjCSUZ;dUD8;Hn?M!!>YK9c=vo9;AWGFxYNPM8QUV3487qw%&8*|1?+Y|?HR4rInSE&b?Dyj;ce7skkMHbx6clvd%q09U{l z9bQf4>-gB`c~d#frNYbHR?TF%yLGfZL5`CK((ehd^M+J4QBHL!ct*8*%avTKtNFAj z5uT?xc{Z0j@U7YAFtH`M^P9`FC22iXv0Vk`u?qc^B~;@^60SEZudYoc$oe%zH|cI>`Q*yvsVs-kF}bfaN@tpd410 zH*-4U>OL;`3Ktlh7Uvv4{cB%y4t5GmcZIKNjRBH6k~^ab_G9lN!H&<>gih6jIt*x$ zQ1S<%HUX&ZVYN=K)bP#Oa#Id+u|J|l9cABY%ejqkv;ojS5I8L(HALR2TGF^Nd=o|! zI?CSCIa<^ao*L=pPIAA@Pa!T2&c@h#c-gXEJJZWLErVvW&9=~NR^6$Id>qP-=~a`} zq>19R)B+txd7IEjb<5@Aet7^%Q@By9PuKfp0JNxIiDQbDUDy--vS{ZWJdbaoRg7M5 z2zrs;c9H|CHRL{h8n5+f4UnCdEgDWn9rS4-06^_dP0}zXTc}$a>>VLSn%s+hb(-A3 z1u=MV7rC+bDBM0NXwCjni4W(G{>=JSqS?8bUF15FG>f)&m3vC9a?5vter3D|*RQ=&v4fj8r2xqNkiFxs=#T<9f+e`PykOc@6@Tu-{G+gt7|ZKVyp zF@IHh+*__#ciIPyd-nNdo6!=kgR>=wm3E!)km%!b!UnnHZ;w8YTg4eSsJ?z zzORW%l!ZDj=H$hhzkeKWPJCKCJSC^*-s&UYDIuli{xCpJDuv}yjFgit1#fF=Q9_`; z>}u(hNE$Fw-YiukuXMRq=;jgHnB`1oyHrdnLRcHZiUIg$fgyZrPCH`9uNL5XZ93-X z2AY>Hdj+=wVFL2s1GH*WHVFB67^G;$yzsC_iu(<8AzhB@eIo&U?Z(sk;}#xv%Q^hb zH=e*>j)9Wx#x)E!F2moPi({IxTWpNDsgY}X1Ejo>gEvk=RZ&>vFs?*FYebtSgJ^Ju z+^yukp}J>zM;9{W8c068%aHp>8*yOorA8zzhnaFDJke<0la&$RV)3N)zFaqjM7`BC3ZpC355{mDcoRl~0n*xp_F=6O(ZQ zfb$$Dejvu?tadOrAxCzVyp941*@m3Fc=LjM&fOnHi%!dD)MFa@l|?hB$up%_WSK6H zmnP7>>2eJh&xN#qhTIh~tj`SCFapIHa#NQ{18K4yzIp*|vdi7b*N&;W`) zh8*freZEe3j7rZ$?JkO)DL0T7=VtIjnoAoM(0`7zNx3qb{9A$b060qr&eDOiVEU8E z;Xr7UMcW*hJ5#B`Y`I3|td_OeyP^w;C+(&Tlx$h=<1m=-XLCN!^nkk0mK%fb^4U#aZ>e2k&EXI;iv*Q&1h7S$LgEMRh;xb-4YtVlKw2 zKmM^Ha~9C-~2d8e)I8ILoxGZUuiaV z;?hVOg-2%EOkJ?K7ELg2oK3S}rylyn7F7@br+O_{YZpiymMTTnAN^Ckg{w#F)S{?5 z;-6~%(xxCyuYP2=QiTOrn=erK0*w0>>cEdVG>#vi(F%T~&=G!wQo#av#jQ_b=VcuVj3ahLoT<8hQ4Ek@_Rre6HWqG|l-P3!p)Pv`j& zNPjGbVq9>IqhJKnx9;iP`h~9b*smTtaf8; z(UuA~YZ}t|ccG?I&1JH0DK{>2I^a`ET_#s5b@oP48Nb!VbR6Z< z(~8Sr_&kf{6-Cy%htM5G2Zbhn0A*Wtm}%h5=vGDlC(Bu{w};j zzUMy`wZDZNAg_C&xV)I@vUIvUrptY*(ec(9bX$w@CetmZn^#;Oz;qEh-Fc?#uha2Y zBA^>yjF(Eaz64#{;&K$z{eo;F~{8zvoL>HIynC_*MLokKU zkkug2WyPjP!ywGrvsqeP-noty6f=!46NwRg`>;-PL>P#;kQBB!Ci2X|w(&9p?Z#Wz zYVzJ#FY>jeS(p&gxo91LI4xr>RHK)Pqro46!G8jhq?)um>_rhQI&_E+d zbnu}`P1A(JPZEJ;S9-oej`Mt($t``jw)gHm#Kx!YWLqiM!%8!8rM#H;7^~zc=?S%2 zC41nmTfbHE_iZM3!D@m#6tBY|AU=!453)EdG0iwIF$Mn>hLszcVeD8gscv7t*KV&_ zKAD8J@Eb(@FejWuN?ZNu9joaSe&J~FS91F(?}Slri_8mi+`C2Xz28p)Z%Mo zT;9^>U&}KsbK`i#iayLW^Uo>a2$Jf21I>L$wr}L%iaRF2KJs6`cNX-)bx7?DB!sfR zkag5^e56VNj#3+zv^CxxvAN<-?jR<7jPpHU9| z36$;{3MOf z+{Ex147ciVD;;EbMTU1`_)ET}=&;nJ7vITM%6l=qD#H)x@Y+;;9pHWpfBHM%iVlyU z&I}J^_+Ey0(%}tg_B!y_)G?Fc)pdAdI>7KS#{Zb%fAEb&hb57o0gg?O`+C?ya|&9I z?ROPwvtF+5?c{-Xw2o3|JGDWH!*4oZRPlkx?Devz^nli^mp{T<_If?`>NRNn1}wQz zbYg=X*q|y%6YR$Jb!y`gyD_3R?pnV1m`xb;#muMUw-gm|T_p2wsZH&y|2N4Zp zY10;Yqxoa5zWMmQ9ugTG>u5%@GEyFH z&&BU5>fJbic>?_WT+_9G(F__4uq|scM_ID^k-D!uHKo(XX2&SZP+ zr50MK?=bZ~#C!Ym*g>kfKHmB-n7}ah2G_>^ZaMy(D);K z_@$V>{uSPwzlyi~41REWMte)ILVQs+2NhVGjP|Bph1C>e_P>fAig7HdJ7xdOk-stZ zasJ@S<~*1f)kx0x3!XEh1F{ue9u(DOLnCPT-}RBGZ=(MH*IQ6uwE*?bJTNsd)4cQ& z$@Zpkd`jBZQMA0syE1qdna0wr?=e3v(Yo(tpUl8eZJj!ZI(3MOfstkIx9Khex-j4` zTxpBn1t_cIHNZSl-jB7B>d0U4q8WBi7;by)cQwEcZj(RgxWz2In8gmTNXB(1yK!qx zt+|I>_4kAKPM?A=PzU6aJa~@)DVU)FFsR*fWk0XdfOCWMA8~``?16j~>#$U$dAV|x z%!BvB4C!KuZJ0sZ(HNr(uqfD#ow3Yg97k5iI0{XCEo0!YoGIcKqH)V;iZAn3V=uNC zoUl3hmee`*kDhuN_edP3wJcUuh{db$TMhF(zfSIpXnTVR_WQwz*Wqwd_6%IZ`<3buU-zmSLyZ+#ThB`1{7z4`uo9SnChncz+ zG41~k(`n8AVLFLCcFRpe-mzBi{0bi9H7%JcFw?UP7zDrvNkeJMZZPfJLznblOz$`S zhv`k)1*SdsFwBpf7AeCsvUfHY6H#!dAj3`fs_hLi+J3Zek`^4Q#=bnHU54-g;#}n+beq*o& z;DW8%X3X>>14=MpB>?fepi8#FC)8@6>@)Zd*IxV?Tn6SpyACFf4wEDBk#FK;r)7IR zSYRie%TvZ%2fTvj`W~+=1ZIs*(~Z#|O}ldMrU6I0LlkjBt&!zoDDWu8r}O({ugrJM zs0}kJMEI;2yWVEsU|Alg-IuI{pO^&za}XC=lk~Sz_`F?vOLv8bvgPM-eji?=`JE!K zG8sMkuhT)6&sg*B|I6vr)V)?55X_iOs%nnIW=@2A)x*PdEIsEjo3}HX!_dJCxISAyC+*C8q7q>wM<~}$9|E_ZwvSp zc0j2Im%ic>F2A2sgL5>yDyLh-RIbe7${J|gs`CNS5{7@uBH3eqtAcNg?XmbBEBrXt zYwnHW;2@fRaqZ1-UMMcJUT4=v&i!&H97}gPfIQz@T5>?1?D1weY!_)ChTv@W-VxcW>^VOm$kDOeE8sbidL5A~5c)Kv#mVJi z_yiDH+c3`BPJ#i)40|;KSDL~{lyM%!NB8ddNW8GnJvz1oNdHkK=h&9S6l?PVojEG| zNS}~;RIXZaN-35iRC5kRQB-pZI41kliWtIcZmSaN$@}{HRSn9Ii;9iWD1JjBUfW_p z31xawzhiQZvQfU8XTZM_le{?2DhS%>AMtfx}OX~i@K#L7XWu6Yy&qmW`xKWZrG4wr_X4DmsW zP-+93lrOIiYB%VAS@!Y*%MxH&FqfUOHg>UOJ1&P-tO#Uv{?EGaf1ue_Jk2;Re}f-~ z2su(y%nH#>ZTXHz%Ac z6e!m~IUYS!j6Ka54b0WXNy;%?FR4RcpOIrtLl=hODt#V)2*P0uq9&)ifNy z%)`&j8EDmIIhh`vl_Pp&l;gQ)I@<@@t#cCE6)?5Mi2Cp`#cK=fqI-fp@)=&>t4l&s z4)Xkxu+x{7_%U|lpJicJQ)Ymz-S`CWg|%&cER|1k*Wtn~*J#o?Ijk9*bOtA{M{_e% zG4hHf8`wD)&DmGj1TC}Cf_Zu_-qG$CC&DnT-h*k9QpRdik^EsFIH{ zgoRC=7MxyPlq-cELs3Ut#;m?Q&GChC3!usN$nW^!s8t0W@;gkN@pn5#};%(?$FxHKOny=7i3 zKWw8S`+zRuqP~9u?xR&T@r!bAyg1m7k~!v%91GjPqbW-9_--CuUP*skky{}59eY*w z^nEuA#;Y7p;M|Z+S^Nr8LySOJ_Zk{{RSqc46GT7od_-Sdm4B`tEx{ym+&E&1HYOi} zN#r0o1f81N4B=V!N9kKj|3TO6(n>?IPx4*cD?xG|c;tzroCI z#7+I{a+Ayn|4XiP0lAw_-d`v8(#Rhk)X8%+@<%10{)tXYqyMGf%k;;NYRw1f^w*&e z#kftQPfxNNw=iwI(_$#&7yVz^bD4OiPF(1w$-az>$m=ZP51_<5yN=SZkhurVRl~+ z)E%BxF@DFdy2JB;gX{br4lL#}9NuZWsTZ&{x0e8@N4#k@bPpH`8;KuCPtVAn^ynwKOwxHs<1}{1O3EJENM_j z;1SF|oTg!WdRBF<Dmn(k>bZ- zZ(#O^KumpFZ>F%DnEf-U)lIp9@F|I7SbJak?4s=DxgNHvBTeaq)@L2k0?&=K>!w^! z$f(3OIP~%+Qd$v=X*VWdo^XD7fNrK)vD2vTEqO@bBo==6Ud<57zJ&smeEgoKIr|VI z$Yh5lg7)8%)2fs*Fg5!Acn&v|kDp7{zJu-#>U2Js{Dz`#%W3jTCx%2ZenX3I%i(_M z&=B`uyYLa8HBrWlS`WKKz+OQ2Z_DeX?`h5*xxQZ}RG}f_s=I*^aYcKRj+jjM?#LT) z7&PZD5a+nTH0K@=&D?8ldSeksS98u+I>%7DcTZjkpE~tt`Ksu< z0Jkkl8mQbIIg02PIU!`=8_XcA6CY#HqAerA$UGh47(8Yr)SwGU3$bgQM$EI$^0z4blLULv zjOP44a#yQ^KUUm!+gWS)Nif|rr#I9N=Eg$7x{pwA7kEKircP}T*7B`B%`>F%54Yim zM}VeI+zRh7=A{vAEMvQ|uRoj6Sg|yD0SQbgP^K;Brx8Ai@iWwEUgG-5G6^wP%n4`g zrZ7~)A+-CG$*yuN)C>cPTUNixF`hTUJwY*co1j&4NQ57KH5SLIVU#D1sBJzNWZ52Fh| z%U0azFlX0?m3RlY@xSxZ!yjfts3%~>sRncO5Nkq4NmRe1-33U>C(-o+ z*-u`nHHEJh-WACH9lC7(Z<^}x&)V4k4wEU2f#xpp5Wk1HXzI>zd`MBA{M8Esx9=qn zZRFpq0ej>zl(4J@(Pt0kX7~tj+e1Wnd;j3BEwE08c$}YVR#|g(IK_G>*A1~V|9YD^ z5Yc`vU;>}Z^nJts9}CcTX)xp!7wG~@F2v$En}!ymE9Yo-pIu={VJUkl~XmLn0p*draN�o7ovTss7ahMaY8X(# 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%0A`z&T{a_N^L=I0OL88U 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

$`r3CfI!wz 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ν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 delta 601616 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�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 W=h~MNeadGZHG9MLm!7-4=l=l+8O2Ee diff --git a/changelog.md b/changelog.md index 5ff3aaafb04..49ba26a462f 100644 --- a/changelog.md +++ b/changelog.md @@ -1,7 +1,9 @@ +### [01.10.2024] +* Monitor update: Improve fix for size bug with unpacking embedded PEs + ### [26.09.2024] Browser monitoring * [Browser extension details](https://github.com/kevoreilly/CAPEv2/tree/master/extra/browser_extension/README.md). For code details see [PR](https://github.com/kevoreilly/CAPEv2/pull/2330) - ### [23.09.2024] * Monitor update: Fix size bug with unpacking embedded PEs * .NET loader 'SlowLoader' detonation shim for slower cpus (race condition) From 141b65328f48dc474e985372a8dc241db8d115ef Mon Sep 17 00:00:00 2001 From: Kevin O'Reilly Date: Fri, 4 Oct 2024 19:27:29 +0100 Subject: [PATCH 09/98] Monitor update: Add GetClassObject hook to handle UAC bypass technique using CMSTPLUA COM object --- analyzer/windows/dll/capemon.dll | Bin 2528256 -> 2529280 bytes analyzer/windows/dll/capemon_x64.dll | Bin 3502592 -> 3503616 bytes changelog.md | 3 +++ 3 files changed, 3 insertions(+) diff --git a/analyzer/windows/dll/capemon.dll b/analyzer/windows/dll/capemon.dll index 60f2e425e905abaa39b3ca060c346a537f4aef12..5a47c15e36df22fe4e126350344656dcceb66cfe 100755 GIT binary patch delta 542869 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 AU#m!v6Q{=+>0#{z@a0=RVdDkj@7knO9DPSl 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∈^uf z(rB3(sbYrM63PS-IasGd#am&TJ|sR4!dxOgFTM9tT34DKCJr5q?!(YipYOz$Sl$l9{Ze zDJ_)t3ajW!R}f+dY;uA!O(|BEC@YlJ%0{J3c^}s5kIGpkL9L}W0%3MgDV2u;a*H}r z9j87F!knWnP#0I3t$WqO@RXc{3fdHenXR?eI%q_@9)`$=+U_vek2eb%RO>C*yKa{ERf-gutPTLTlJ6iJs`wNaLFVi-3Y>J6=AaWGV+WYjk~}lry6sN zrN%3ckK{{m$#WK$tnhngfJ=HwZ3yv}q%~=8nT}Ig*0)pI0eMG5Ty79i19=5a}eVX z@RwW^{}3C3OLmkLcue|B!=yVQvLBYF!fO%%ms}@pg;Vd4bQ})7OJT_)`{ia}lZ@P1 zzCj)&kC4aOKD{TwCYQ-?Kw@}g2h ztp{Rk3sUR?VjQfF0x>?QJ_?)YDd@(f5ZOD`edXXJ{`0fO99c1

3Oy@Jga4QFS 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⪼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

H9i%X0CQTGXJcaL@JLJ~IM!;QvQ{Sz z6W}N`O@^^1Iwp2FmZzYyCMS#uw70-Tm;T!M@Pl4|)bS?5ktG(WEWNSy2Ocy9nhPjc zq5_E=cgRBFj!?ulq`p96-Hb!SV1|W>6vqeym2C*egtmPFQs`_SWVTM2*pO{uBA>## z8C?(mL<=bBdf*5xprGPE)Viuro7hy!7wibiYKg9Mad!1Hv|+&tTUa;Of681bZm-%dVEkIh0fN^ zY@I-ne1Qdux?gFj1YJGp+E`0VCFr{Mmq<{gRMo%ej@C@nP@VC+LPLI32EhNIo-#Cm zx$qU+X!!e}NHiSbc4=f;3F^s0gL=gWjzZIg@}I|E^s1($R}Q%qr0p95qT z5nhSdFTasMXIsc@o#3);m<5*=6z09?+FD1eE9iRRD6OubE259yxuE_RAJ5(pT4`~F zDv?+>Z~DE^F=Iew8%{+f0_MWE+J;TL0gc=LN15YXA9yA3i*sRNhy@t`|0F7He$3?g!nSU{iaZ1)CHK^RgJX=TCH11ZkxOUC$nif=$Y{ z`lr*}%J2f_!ne-G%hGcr@sjBnrJ$Z%ynv(7G&$Bc5-&NN zyO9+hsDB(U;G#>vlcno;Il@J9q;ybE2rqch6sYi$$P#tDta9``s4TG|ctK*_tbcgm zR0}T#x5}dM0y2xJ4=+fdvz^Fno$w+CT6o!LxILH9^{LD4nMT)#ac<8rx+>(7XJ}}v z{>tTEVXnD2N_9)T!b+`UZh*>)pNhH#%ti7>8!Nx`(Xb*bh0(^`>#`=4MJJ&$QF|>T z8#T#uS+ZW2(MiiM6j4=M}%tsyfHky@A1k)>F$h#_}J7sQ~li26{01Y%>h9UyOJz+FzTsP1RM zVhBa_XHDInYw0@N#O=9~uJ_#XuD9Ih9%mb!W3y#qkQQPjC^!Tht5#51<5K|#Fc-d3 z+uCb-YjEIGO*T7LXrQuICjlL*sRfQg)8va@&_svFG)GN9Wlc^PBbapsF1qx~d&SCE z1JSd{1r=5`Y=9T3bt!(9VnHF^5pAHdvD1f=}?XaQnNslNfIJUMohg#bw0Sd`nQ-Gt;G#Nu@{Pca!-NoG3p!j6e z3Sgqk_~5KqIjq78_<12$H#Xq$pw4&JSy2H`Bd-ntZw}rzFyJwIt9j^XcSx}UKE*Mk zKs|22BSDVN_DN>z6!4`PR=`iAnEkDV+q0am1iFfvyFK40xaF0!<5S%9(5j0j?%uxE zD!41j_0bLh^^^rSmhWVADRj0=n5|Rnujy{Z{z8h`4s<=$ z#_h?V>xm?{rv+W1&^O=Q4XJlhUlOmaF{bca+m_tQw9Mr7rrAl1bTFW zTXVFNxMCbJXi9ML-Y$6J18vlt>69(BOV} z9C4=@IjK?PhhiSu7k<~8`LRAYF)~uEX4xHCdY;ms4OD9VzA#xAb~id zb&7xL0Og&)5#P-MM*>Cj)9u}!L3C|Pc6<8K^;kREZH@cf~XG00NL%dShEdcu<#^$`W-DtaZ$AP+4GuK!DV`l$YDV zE(-+3QAXiSFsLk|J`f;*i1FHSaTT+50>OgL76{gMa(m9BYj=vS2P+4L_npH@wo7J0zSfJU*MNm|G6l4}rA8L?5XZulW=H1eUw`WW@c|Wy;Vrl6_M~dlm71LFYWecdMET+Mn7UbD6{qGi$ zFkBHrBbrCk>fiG6`;q3Fi7wQC&QKsJb~FK0HsMqh z{9rD8Lu`=bogN92wT__)Dr)Vh@0S&D^?e8>JXs4SvB zY#@Oca*-Vz-I=WuHnI{eZ0zgp_S{C-X>_gV<@UJfn%mPY`@L@TO{ss{>x>a{(rxK6VTOf`WsV|1We?Ve4I~(^vwe`+I$>i&f`yIzbKIV0bUob1?Mb2QfwSG7 zV^sQw*BkP~&F+q__lBy)5wSDn<(ml+{S+dq9kC25>w78?0p{ZWX}cDT!+M1FUkZ7V*YU>Lq%}1%-$jk?r{W2GSKuIfxrHz%Dq?MKV)6yTlGE7S> zGR;y;^HJ7s4Kge%G;;svoVoYzuzT?j2=y6v`Q9_B(){oR0g?)Ha zJ?yJ)^0U1J>3T@(dimM9Kw50`viP{W>gKTCnCtAOqS6=C*PV!lq}X}O^w2Gu|B(u#nQPlh`L;# zO(cZLL``D^3dm|RNv#oA7W(O2Sp;Ez1Ej67eztf>@AvVub%5l3B4SU?+ezzh7AGRi zX?($UAkM9VI04Wj_*N96REowJIZ(OcnCl@<>wmCjlcn2pQHIlBM9HfL7&!!SP@^Jw zvbYL8k%@D_uznCFPwGt^oJ*k=*?I_BSJ&W^s`NE@A8o{}D^W0`Y+%*jSUj00i-5bn z&5tM+uXb}Ol$Nc;krkaN2MkRhN;Oy$Pf%cptoFxC=)4h8D$P1kA|R}{-2!JIAeHv> zv)vA9eP4dlL3ntz=Gzh-dh?2%Fs6*=As+%YZWGjqF?1YJa=bC9fy$K@3q90$`l5*+ z4fpGqF6J`Rw76>k2GIRFRH#VyE?1iPh>O;a>VxBpU}V3#IEOGtC9;hLmDrH-_%P0= zrs+T_!eqU!agP~gi@{`3#62%OrO(!m)@3|EVOi-re_=87Fh5S?f%kI`h#G{sw8x4P zvf44E)+o%C%ONJ`kN15PXewBj07n-feG?By7a$#qgQE*^ymJo-^O~PaU3?>*TQJ*s zVIG9}0CnnQxLOR>R*Q`h=BQk8Ecb-@Uw>d-$|JyW=(>D6CPb+^8zBD0(Q4GFNS;h5 zPs9ko4^~=R-6xngS8K?6_xQjBR3aNYe}Olj?Wf&HD6en0V@6qR)&;))eZR=z!t)Z% z^V&>$P*_&g?t&iVeB#5_P_rlYbjJEZ7=N5J&l=T!TFuLY%iZw@AtKGgc&|?&#*;*hZ-H*kH<}QoXljfYN9BrR zttZAG{LMSYL!sS#y+X91VqDB}P@^Jwa^gICB4S+K;53||kJcvW^^SR*<)9YX`XsWh z&T@9Ws?Tx?wAQF=Z;u&e0~HlmJb9Kg!>}_!6f3%RvmBI`tvJbw-u?G6yv2qnwPj5_ zL4lF7+E`L+M3m&ebfT0Ff^!LwF5V935+MCP5Y8n)(uqQkskT2*^Tz7*XuhfdXmSVN zRRAQDp#6s@zCVRIX+~F{?6=8Y8zEHK!-2RBVaR1=7yj1=0XIu zB>&~4^%`{t2@$G*dh-BifJ$V;2Y*4sDh&pF=GRKSoxDyPc;b?s>gafOz3>W1W|)nmwqDxC1ka)lUk!#-}1X2>*F9cFAaes36KII zWe2v0POa6}s|!cn>6DDg!2kTR@Id9pJN zg3`A_5hbr0Aoj&TfEpFalbt_%2mewCB41Asy*dKmJ`rk>tq&mU@;V^K&^n@Iy{?SF zjH*GgPjuicmRBAbDh=ZSQLd!TAM9Z6K|<6V5L{ntzASK2iI5HNV|*cqd-WVPqJ{PjleS-GVpqhEo+psSu4Z zfkNeQ&d0->qW^jGCI)VW`9>?E@Cq2m%c>)zcgNFC&4^i@@-UA2n2DQl6 zH~xh6AoFIPA#V^R>viP~W>gId-XxMmnKxe@{%9xtag_)de@Ss|_<_Q* z_ji3?jUPu1D-KbzP@NvqeiKT_YX3NmYK{02a8~C>AVl-qBjNZ1q#YyR_yeSsc0SSq z`%N`3GJ3YwF{OLV#&;io%G&tx0X(#mgd@1ZqMbtcTYSHqAH(-$H z!#lkJlo&54G0xC)M9K5Upad#c9M)3(tlVSYcvE5;EJ=Ku3{mo`0Vtua(?O#md2;S3 zdLj=Jry!txJwcQ_sW(?}!xpv3)@PD+K^DGio?k2VH;eXY9aLSpff;23CNdy~3*PBZ z{q|g-R-D>Qmrz(%`tlL1Go1>NqiA;)qhMpjLb)>*WIBJotpZ*H#K^{R?820CglJ&Zh1T(4z z#UgwLS(GPL1%~BClq}YUH7G0>s~H*5Su+u~9t>XliZGd|X#_z5S?%USSX)M{Dfw1s z%}@yQpC`ik2}o5F;QR!n6EGf>@+qU?eS9_F*FM*bj!l?*@Bu#oTc!xMRQZhP_%I`) z0q}GTN{f_9II6fK9O+ac2Y0(34ZUWNu`}xSH{DxY_2Z+NF*Neju ziU|7v!vI5++-r=mN9Bqm+EcW>`@O?HnK}~h4JSm&s|E;rF>^wVisZ>{sqGY|UgusldK`}_!$)e1NEr#77qGYi)g9Hl8#VRYs zVtEKbb9JAc+DL7(ULzxL!Y#GcGE!?qh_#1wLQI1&zXsBa55l4X((_Z{umtq@rTq23 ztT$faN8|Tf)sqw5#L0M5%fjgD$9CarE)frSE6nbg>%FB@iXA8jLQe zQIR}Z|0#MR(?u~1SVYN_dea4Wqfm=%z1OF_`3b*Bb$MaZmQ{5n1!k1h7VpDCsmqIl z59rGalQs<1h65-pD;-Npbq++sW#2GDl&YyZ1*BWzC?Tu$Beg~x2tS~6pz2{bIRWW< zNbAz!5r(ss_b) zVIzz3cyY$CLqwD;)`lx6EEnsukFi)fSHfwA;xk?#OeU(6#j{h30F!h1%8C>5eH z1`bpXhfqDdX}!mrH_Hu2dql~r1{*j~qat~-csF_?^CreHju0hJ>OF8EZ%~VDJ%p^w zys;X#4x(heuDrpFszLGQ%T*s?dDSr`#Ho)do3wtRHatOLxfpSzROd+`%qD$%9z>}O z)oCK#;X?^o?T@?AS0kQOmgqc*m<&*?ERG}8x`hpL6kALY4|9EXuURMTSMpV*@0-Iu>+OEFFtzM@z)M-cGwKPLbRdSAvUH^ zqat}SeFra|=ohKJ4}6{0L)V)FKmk-Dn>fGS#CyJ?-%+&Hmjjql)|<5*D^cb^q~U4_ z(b{tWrDZGa$coN^3~<7iW{6&q11K<3R{QZbbl!*qM|bHQh=-8<_Hj6o0jYd0oXCK* zA3AxB0_rdSDhkODY2o(o1<_iv#8urDAHW~*|x#F1N;lP7iy*V)1uzx|c zp*SFRsZgULd2(V4dLqxB5)A_hQSzkT?7$HMwaC^dZQ&nu*GGu8YKL7}*AW6U%4#c$ zyxDQeu+b64Le*}BKxx^EldS0MI0e-AWe1{EZ`J2ao)H2CM#^eqNv#n(l6UItD18!+ zVL-Y#4~}6#`uzzwh5^Zo9f>s`%AWpf2rn!Eb_9!a7z+eDVqh23w-ks{DH>z`gvu31 zmWLfjHhZ(90v332sF7y^mMp_@8d379!PtTt70HvG8_^S)Ed{X0P;8?X)e?vTi^JuiO+w|+Hs^fs$E{+F$6QpdJ{qK7kl&-PpLLW z*CzH+Sk`rH9k!Jo`^yc(2T_C2m+o|+gse7~)EdS9^7r-Fp9eA97SdZ!!?_GdtDk~% z8BeLN4Xk;b*m;KAm%uo|#8HezBJhtJdX8wL1wJZQTCDX1{&nw|`10j?!&tQ*qXFWZ zj<=#hMY6Z@ZST>bglfU3??U+M;v2#nmB`jRk#%`A7zDwEeY4k(u^>#=>pC1@M%m(q zx8T5qORwJuZMdyX;G?jt>#nz|1%9~ddi9@?LG;Rjj}o%lKh~mJqreZ?pa*^+#O&Kn zIB)@J$1`x?0@BJnKmPvfS3LFF^K=M5y%M^7i#T#oAR>PUbPv8GBBG5J`KVlBTPX7R zscgU2jw-`RETZH@LoomqD#9)u!D;cPV1Q%N*)`B~QzvF8oHFd;5hYLR-NOR|P>F1P z$s1@L8Q_4Q;3MmHpr~(SAWGKj$^gtLTZ|-&@_Z=DnDGdc#oBNKg=H(-U$4fEaj+`) zEfb<-0p~;M$_{9c-o?4c6wkUFC1kZzNUae!=C0GZvEo@cdjVzMCLgfl85j>gkH1MRt&rBgK0MiE$XG;vCt}8Dvqimtz zH4}gJus$*i$}_=+6LCzF~u?9{rx+m!2(030dveg{amj`dw@F=#P0G zj#)eh$1ETnUjoN0Ank;H-Yfdo)ExaSz765#H(-$Xn|E3P!OunTe`VM!BHC!dkIEHx zoPz%aC&c~?Sl#*7B%%!(`>0S6W-0d1z3LPDYhl#(^#swYj(t=jTc1hRG4>zQ#)wsh z^?)c@uPYZYqioUiDnGYS-|=0isjUqaP*_&=^2%ydD1pnq)rKfJUVULK-LpmsS#1)j zHKIb=>pB&7ya2~6Ae~(X$1EWIuoRA2Eae0H_}$dL=EcGM!y$ahTM+(#@r|!S_`f8= ze-P|s_w1D?UFiWo15EkW6QTwIpX!A@e&5j?B2UzZLCYJP%m_!sIL3VaH{qGedA$6DlUQQQ{NTdQDi6w>NfVQ=(RK5!Tu4chsc*Z}>7 z&s+lW{l*){u68xbOa>x2k|Fn@au?3qH^u^RSFA+3B3ZL6`cdghP?`+SEK+6jFi<*A+<&vnESlWffZ|EZxqtLH(_rS z((X54ZxoW(?vShR(HQGvR1W7IJZ$iHdb6PlTG+S! z5N#+nh^JOjqat}S{~3PjOTS3<<=_)Fdso8&R3e)&Kf~`kq;tTkEmiBv0n8|?Ey(lc zz!t**MYQ%DKxx@Zce0{$pu})>hv*eKfC58gwO=np=Z!evdRFH^%sSX1eFt_(Asv4k zc1R)Ze2c$!KP-;FjkYlNu|D)EY4&ZIRB19shxiQb=dl!$v8jAKrzH(s%j4-@Woi z=?CgY=?Sq>`o3VqQ0S+8D+f{XyfFp>R1S}Bdl>P*Y^=;=Y1M3l<({ush>}+gFf9^q zD?^Qn5|~l8ID;(8 zlsE%E`PMI@WbjgL-d2XvvXy3JMW@6L!&@$hk_jV9AR|yfnPK+?$L0lCT}G5BS*TND zC`9wm@4*f#q^gaug9_;c^!Z*BrNo-=Bb?i+?xr3SyQxKj9^=3r--<$%O3@hfK;`i4 zwxp`fkf?}~C-vqHZYrS`+4=~wu5K!I zdPm>$$u{J*gA3aKfiMVn#c71H!gK0GO@d15vGzaf0%2DsmLgdcnZR@d7E zPm-a_@vSICsT7UD6I2dQZF_jKcb+#-_89U6QSz$6c!C-g$&=g26PYK8hW!YlB+*UjymIt?-^2NY8J9_td};QOd_y;EY4f zPiO3Zk0-tj&#r#OC%p}9*{M#t43{B88*>?g$`!{d4_o>^?#-5ohHOEUDzpLEB39q1 zQIR}ZKbOzQ(HBHfT8z}26F>=6BAe(n*P9Y6dn z5fzlE&72FRWh-OJiq463uom*|g%Q0XB~UsW@2!D!J*0Iz z;Jr1F7H_Y16VFuh##GP$sJpZW#4hbef*H#VcWDu&5;Vp*g31-g22bgErZ+S87*3ZF zC9fKQ8DhSL8WqWt7UYRMj`V>Aqi+i%N}kl4GdSNuEwc3`86MK`5Pv`IA-;00HR?KU zU`E+MWQK{Kd`DkxMQU+co6!Mu{!H{laDboB)@S{RR~_>>b;6LBjG4)pJar28 zDfZpiZ6i$Ot}6#HqinHY2H&sfgI}dat=dokg=JOUXH=tr-LTU_^vV=K30dvekD^*5 z3b^Lz6o`S?{d5oP(n31E8+K_S?fghR;ZXBxqQzQun|7brrrjqP5Dde&Z!d>vqcH%L zD~$#Q-r1phiXVXDRCRvv$ zu>#`Gw{;LD>vd%WW>gJ|)r5&G%2TK1hEpd*$zpBDg2HmKUY=HsEJNYkg~6+l5hfEg zttL=FR+~g>jmVNVTPMqo64=0nbapRn;6nQ06WG9oq@Dq-d6R1X8g&o%W3h)@D(GS| zqzj_tdt*$RP`Tnb?xD;7(!J?2%`iw2C9fK6(u5in$&>Nqi5M^hU7}#F;2W@rk|$S1 z7t|tKKm8EagG`qk7-M{`BTClmN*Bzi8uX`U&SpHs7vHOoAn{tMYC{SXmYr`#&g+w? z3d4yAqU3pXPDl?xp@gh7VnFkH9^>ns=ARzoKr&?i8D`hXf@epuv18foP*q0+lO{Do?5RKHyD> zFAEQ~TD?2cwY@m2N7EdNeB1rfa4^b>$?QZd*v}|Q8S<%_C!H|E5QVrHb z4ip$7tMwzbM(hZmqO+swFl@_0x*pQHuVGsj(&Df9O$T8lsrjMV+g=Fa2aDjgUJ*b4 zF5Ia2R&b+&cxE;n9^{opAK0n!wT>uRuPawDqiRr$BsQ`rlVv$S1Yv#yq^;k;>%<|we-vIP z4he4S6az9EiI<3P;tMtcTTTeJq#1T4h?47#!4_1mIAT0(X?>43Thdh7$Nl=SyJ%p^QBT28X^^v4li`BZa12f77R;6O` zWOAG_EFPj*yxNTytoj!54LoEskmGwnj#Y-WgDAP)800|ZO7nOR zIi4QF_iom=N&*^iz@XPPp+ZG6cX_lo14?PU;Gc*1U86o?h{)ANKLkH2kqs{(!}3s3 z?9(;T3LRmxUS~F7zatejm@LX{7-YCYN0ba+s?7==rDZGcjKT`l*-&NJvmr_*YGMNl zDDg?2uoy#Xjo6^vtFvL_NI^UWF2)ydAB}lvt#;f!BlR2$S`?QUWu|7PH8rObHjwZM_u2uRI4d}@$)}6L{We6&^~T@?Du);8dpPmna4dGR^dx$?8YR_F zDzg5&?!Sh$wkpof6Vr43v=7#*$hiN+gfcDN*Wzmxx2U z_&<1wIHccyf|rQ@#0R#!;@OPpIqHkUU+24?0!EYzMl3ZP-w-9w8-o$3Tyf0xFyhFa z-i%mk*u@}9UNrzC#DgHHQIR|uPM##v8x6R5y*{H~qs2%f5-RfA%a>Oc~fSLRJQtkiuiB1#r( zGs{9@xmXXA5q(GrryBK{xFSp@YT^wF$ZEq#tr2aahw8K`{}tXC4yg^K73biM;gIJ4 z0<;Oxh$DWwXx-N}o`xO%r2593mEw&#zYF4&7!n6jDn(-u2bC+1H6G#=-R@1C2*ZFu zl)P#H;)uu4QKKSx((`t1E74~l3pJwFn;yUpR3e+$I1mdfvtuX>a@Av%Miqpqv~{Hi zW|S=^l0}&vQMBmtUW6b@25U8{ptNk|*Z?e-PLDmb%i(PTQ8G~zJ5WGbBdyDGNv#n* zmM81>O)^&}4%qSb!a2pzs<9`OY;9HxBVr|xLmlmaED|e9bD7S2HA_ z64}O*I1dBFbS=QA6QUsjVJdE2DS;Vfi;-kerbMve3K>x{SgRocrDZGIZ^d%yl&FB6 z7GFvrN+xO=5>P-X9qb8?DWukj5_1RWlvr^I&SOB@cM;BGK-ygi=P@eP8y7W?2`gu5 z=P{Ow^B9)}DfSrpjwt!w7^4CzhbIg@<@UeDn-t{`NWL|SD0$TYqk>ppphiXVWPU&N zBvE>?U_ThQeLX>xJgGNZ@U|Xmk*%A_x|l)nPMh^jfK^)OT32>pM%h3?Uo4)?j!47e zA&SMT-GG78vX$;+MQ2BrVYiDY)nHBRK!H1CwO`+i&Kt4Am7udD2EzK&f8eMFq~ld^ zR0GmZ=>MgcZ?38N+}`Es>gH{M*u1qc8~zBxAVZEIN+oCvj-Yad1%5$qoelmI-a1?2 zGnvMT5~Acp15ko)^PxgT*rf-sPxKLtkls4G!!TwLB~R*2319>&k*!Z6>&OWGHz}4I zj+cm%^}137Gs+e#dV5nO8AxPsdIDjxSeqp`3d>fUWJRaQ7N1cO+ZIu>fD|$OO$wBd z)y9%qBZ?&7s#B!Y%xvk9E}EEa9;Dyhu!{>xTX544r4DE^{b6<6c9Gb&^%Go(hr5=( z{UM^{YGZH#l`AYpaADO&zt)`pYz=-$%-ro73mb|6s8A8chycTTaoc_R%6X~Q>Q@ux zs6;k#(1tN5ubhwi%;RaAgmAs095c!mCz3^ZAjmT8UJw;QUYk4GC@ow0`$jC69_0m4 zv%aB&s2=5>-=6U7$D)7|Gnks6TI6+7YZT>MZq}oG9K`D-E3@T63WSv1gxStn81H@1 zuh$ip&LjTI-QX^ga!3jIC$2W`+CF^w^05GF$@jwjx9^F5lLnd0O zYSYaZdwKtGOf>?88up!tlIPWDLejZyl#pEvBeg~Zi0-Wupge%to`KW`(h7fOYYAyS zWBm5-;Q^hylxrS!=#`nP0H_V3AcD z8XGF=QK2GiQPlUmK}5ah4dc<&CHriPBYf3Sk4j|g8?Q&}@_;Z%UB!Am&w+5gq8>BK z78A*$JRrCXTik&#S*#5oP*}EdEV>#WW*Dvv5G4!M`5*>_d+~V=l#tctl3F7^EWc6b z!#s%OwvgUx#%wW=R$s$xEg)5!_H=7sQZqGnP88d!{}$V-!GalI8FojAQXv|H8K_)g zGsM_nx3bobqlS%zC^^wkEJ1~euuCji*-fxSS{#f9BKh{th>|B)Gd7?S*?K3kUTtyk zmEjnPC|R%T*nk;jiyOLPd1aQ2rY_y5S3sC7)`lf0EL*vYtmxAwo8hzxQL<3u;s7ON zwSPpR^F}NQh|yUR2vPlZ5VPF^X-5lY>kVmTb8nV(m{v1OdfumQzRnk$uc3k_Ghk@+ zjSEDn6pcX>RIadvf+nZ@fhIP?4hKMl3Ke0OXwssKpo#d+qF&eOcLJ7b#lIR_ zpc2{IlFn#N9z4?2!Nc>ImmSxa2vfQ1N(;;=Ta4@suexdP*KxR5k|k=}bhQb76qa>u z?}Xk{@blBtt)c3GU!wVHG$`PhfC93fDWu0J+UG{=(Y~T3v)u}5-?hv(6w>YxX6p$_ z9}`MT`K!TxU9a#!_{w{&Un9!ST-m~9lKouQ16+IPj@_-&D*z5(Yk@dliBf*XqAh=wS+-WX#6Dp%MB;>HU> zK#f6$)rTng&`?7GDpZ77qQ<#)KGeuC3{FJJldGWyDv__Xf$wH0PKnYoG5~($!Mp`GG8avuD z+r5y^wqdqukbVefw&CGGjYs@?UE%D+{E_P0Zf1+O-ETOW(IxuxR*LZGDVS2xBKYn>0C>v78CyTCow1ilfoCprZZG19@WtoHkg8OI!W6}NfPT;WOU3$dC)>!NWiVkx0VNc0<-)>FHoI$PsM?1( zlL9AMm!Fv9BK)-3M}6rtntBwF)wc|Vm+y~h63Vk$vtUOW zte?Egu~1m@DhHwl<%rbFfdWdDryNUK8kS>)(C%Fhgbm7Jouicl1!VQTTdL)l7|vRy zZdt?bqUgbd4pd6m|Kmnx>m4latvxtGygdX9sUh#+;IP9r-6wvhC(1yjQ z?D52m?&A!h+sj8p4Se*}H3}%n!p9wLz{fR0kC%^#8u;j`R20zkv~A079lHr1+<>4C z#ei0XQZMHaeLBFM83?~i|E1C|x0B7C832*2q@h1KuRw#@3sFd!<_U%a!6yFU_$FOP zt-=MnW}v{(0HXh|0TfcQL=9Zmj`g&}ALFU*Sf{a@rd)FO{?fVMb=T}mZY;%8VZ^Iy z5PjM#N^y)zk*dsHfD|3~8Wf|?+nsEqh@L2@EER?hwPQC~W_-*2BfyYVGxYK-VQ9Ib zAw+9s2nCgO!ccYu>wR}0d_F*{s_8sF!KkR`SpIyOzsSRM+Y|968#v+a$l6|40m63Iik%_QuLnTS+}W950h0>X@kx-8zJiO7KFTL_WP|QpCA_NM zgxe5(+TzX(hBEI{Ob0vJQkAN7Y(k2}002f%C7_@Z41X#Y_%9t<`&O@Bs|^~?UCv=u z6UO)ce5~sk9vR6JEXol+Arkz2l<$vZZMz9S%XfJD88cDx^FuzqBTKq7!_ZAcYvm>i zDpA7CS30rwt$z(RaP!+>-YJsBTU^I^P-iyX^5FpP=*-%v6&k~Diw|8X`$vHw}^+?`|=+ov=#@gmRr)fhmOxY-xS|zZX#agHpyuv>buWoKKTGJ`Nk|1a z(`0XoC}9&nvhRAt7Gk1&V86*HO)isdRc9$wXWZWz{;s*um6g3Pe!^HMA0EwG4k;#+ zF1QTsGSJz)0-Va-ml5d*TA*hXQMCK#n#nm{S%Xk{!X;h zpRVV6QmdO|@nY+;wjBJwtfpw*t5(OMdHZ>3Xr*H4jS zCn)EiFq0`O;W$))2{{!A%!Dd7m395ZkHD;i@9N&3j>+-l%q@V$V%C;ZC=-;M z0?qSD7XD$*&tD5yTpPz(F(mqY*~!+N;zPxs;k#qlP1p4UTt&(!Q00JdB7obz+NNLm zasrR&!8(md_6V;b;lOR9J|Ym{-ATk+tJt9qF-4X&EKVu${Q=ECR`==vDq{`+p#*1Q@mGXx= z+0L$jx=i<@DBWg-@2aBp{MDW;(%hUE_hiGble|52pO)PUGY{F@t@rWR8(BB=fTD3X zvb|0mbm`-5m$ z33UF>3TV^~a8Yt#**&@gUOhv0!k)d+Ha6>ee%lxp&VRd!^>A1rDnZAl>N;Bc=;)`q z53&Uz)$Em}>GmS1zn?9u4%A8hz$!;x?qv7|?TGP4 z?I>#G1&`LdonfOPPh6NC{+$;luKzg(tU?ERlej3l(eBMrd0`q_2rO{>VK&JnPZ2OI zsLE~>+OGFlyH@LwL-WjP26tvSg$u~?p?zRPM!m%8q3|UV3R^aA8!q;Rvh%8I$z&RO zMp5#Cq9UBlG4~yL^g*sVtqYs@q2t{TEP#z1w__gk7N{9jmRa(Gh1y$FfFaZ=@W5CW z(T4^mcTi3)NEKps7_Y3(fHF((eNL+0?w{V$yb_p~nUUWo*coPmmgeT0TDRqMV%d$3 zD!Ae{ITKVhx$lA+C)FQ}cKw`9%Wlq22wxs;GiUm{oWH>s`IQ&}onN?)pV!C0USG<6 zR@u(p`|_I8I63#=MfYmd?T*F2-LdE)?3i>Gvw;f^097|XT8&g+-HH ztI^Fe=pm_q`=Ed!P{1!;_ks)A3CW<-l+jWv{WY*flyv~+S$nK|sY0PhroDcNC`I2$ z9=<`fr%-*hOBe?iGeYHzX}UPZo5)BFPAafn1cu=)z72wJ*jCX0^NTmL5!mky?aM}* z$MaYFvKf{~zThGK*r;14!Y)(U{aF_WW_EBk$=)5{d;%s=nE}q`bm0ys)IWXepLOwp z%ubq!v-#vN_{x4TQcnJ&=+k~I)a+RK`9TKqkk%YT90ok9roh7d93TT`C zu892?-C*JDXb7mRi%FS%wg&v$WO7ZZmhr*CQpP()#veceGq$6QcV+g@-fb0muNQfp zhn?2Ds$47hq+3}_$65f-{s5bUSr;GHj9e&{z3VneGV;x@u^c?y8Kq=oI$8LF$=5jdR2v*)<*Ly$1e(J4Z_3Nkj z*mxF!f%JGh>#TM-L84oT1mkD_^OxH#^*N`6nV=jFczyewphX8kwWsendnYK%x;P++ zw@qLX-X-_H`^qJMaA-YC{z?LCizVNhz@Cbs>JHYc`!bf3rp`e*78nYH_ETZS8NQ2OcUUgRJ*HV z8)=4l_Vfi9@T@Q7OKsMOoj^zDsXLejV zEP>C~V~eP!6%+6he*GFJ6ehbXiC5mv#-h-eK`f>BlK&bBJ<$<%8QPD7xm14c9>@qw zMZ40*WPzW~RucJ%LF^`TA0CnfyO#fS-~*DN_f6y}NibQQ!JkZmt{$`>NMd$#1n)GM zg|%iK$Vh(f4$vhjD!zk-@=1ePD{~f~JD8~Y*gz>?-`ZxF8-S;bo(95-s7!}MnccGRXx}wd$56n=Qo(w z@UlDDC^VCJCm3JHm)yz1u75!Ucz*5%$dV2LuUYiS&f{?T;i=IbyrvP_uzJOOp zQ}#3Xbs~MOz^{EMy9>WY!kwuUCHX~gcNz#lYnYWR_@V^!8;7ymu--$4vm5x&!&v)k zFo#-l4eY8)q~d3mops^;?`ARApu?)92Sk6pz&_QpVMTaJ#PIfZ7EoObE6^hr6aUZY zV3WR$p*~qPlD5uAD2uSzwED3t%dud^S}`|?V!G@suHOOpK2kXa|H5=OVT6*gSkDFf zEWP)MtmSaso?9HWbk_*wg2+8~1Zy{d^qRizWGm|ecT5yi=A%Yvu!0aN^ioqafI5Qq7>^I+DGJ=Vz(K4B#58ZZr%rn-L1=8HzM8yw=VV%X{& z4Dpz~w@KXZv%VFX>`DfR=I2)7O@3!CZp$lKfG7p{&no!GJtI&l1rOXaVD|_)xrQBuup8E_DtnK;_vdhb)0NH>M~OafRidSHGh{mczZ$l?ibugi z0JQlCWhuLtE;NCEn-Wr@8WmiOwkI4 zoI|71dY8JgPlzZ`cQu1@OF`GxN|bdThH2c<++&cp3jZF9d7I0bhwukRL(dh>7msGc z;$sd|`G5@IlYgFhl??&wsD%SyC5_HFV@=SptfuYK!}k0^QOU{{SR~qA4=&)X$FNAt zp1u5*G3*wL^&-z0!(tqPmv99!w|VxwsNnES<{T8&2UaGvVEG=*s~muT-G}W; z`0MbQ5!FX=A&?Q(Pq_eJlq&cK+%YRwsBa}0E8XPE`5FhIL@k>VMKB0O>q2JNgs*wW z6xPN(li!jeIQ@7Ed)U%%BmXIdB_X$9ORXhOOl2RKH}K1;ED=8Xr?CY1cruMSh<(#x zNV@hOcG~-e&AlVsP&r;>U*JgjLf(8x5I|8JM)68EuTG>4KhE^w~S>y zuAA}#%2?x)Dl@xh%{QC!=a@742JN)=w!7|xOF=tZI4eiE`t!hX>@IU#o;Hr%5c4Yy zPS&ZI>BfSo+4C)s&5|)7s0gzigsVYCEv90=kKg0#$FU#df}Kz=;qZ^^KhQxa^k)G4 z={y3Hr4OM>zc+5vwld-(qQSVu=Gem?;JxW?!TP#;MT)FEBxjR<{(nU2Fh zBo%?s8H98*O%W4c(py4g^Zc%!2{t&EJrlUbm=@A->kSIO+fKW0* zo@zrVmW)Lzkw?+Stzg5)fP?Zj_qA{dmR(*J{)bR?3ts^QPk<>*#Nxp2xvIWV9b;4OSEYQd|jo)>euO z)Y4{Lt0W)CoX0dIvz3>3 z>(!h`N$!13F5_BoTBt#p@gge)B^u3utV-Ys@FN`lAwMP|6on8)8%hl)1K~

PX_f^UvtLwL$E3T_y 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

23GQcQlb2K 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


9(Wr_7NrD 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Ð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

nCJ6ts%A_V|L&QL`T+>FES4L?a`q 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�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%0ANn>aKwFO5~Uiy|&s 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�z_$hl>nLYH``q4UQg_QM1 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

+%w|uNpnRF1KO2 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

dXq6Oe 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

QJHbR-qLgUMSKG;g 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


wv+8+Z@s=;R5YU{hqQ39 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 t)*OB+^;Gof Date: Fri, 4 Oct 2024 19:28:39 +0100 Subject: [PATCH 10/98] PrivateLoader direct syscall capture --- analyzer/windows/data/yara/PrivateLoader.yar | 12 ++++++++++++ changelog.md | 1 + 2 files changed, 13 insertions(+) create mode 100644 analyzer/windows/data/yara/PrivateLoader.yar diff --git a/analyzer/windows/data/yara/PrivateLoader.yar b/analyzer/windows/data/yara/PrivateLoader.yar new file mode 100644 index 00000000000..18ad22fc210 --- /dev/null +++ b/analyzer/windows/data/yara/PrivateLoader.yar @@ -0,0 +1,12 @@ +rule PrivateLoader +{ + meta: + author = "kevoreilly" + description = "PrivateLoader indirect syscall capture" + cape_options = "clear,sysbp=$syscall*-2" + packed = "075d0dafd7b794fbabaf53d38895cfd7cffed4a3fe093b0fc7853f3b3ce642a4" + strings: + $syscall = {48 31 C0 4C 8B 19 8B 41 10 48 8B 49 08 49 89 CA 41 FF E3} + condition: + any of them +} diff --git a/changelog.md b/changelog.md index b9707d41aaf..eadbd064d4e 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,6 @@ ### [04.10.2024] * Monitor update: Add GetClassObject hook to handle UAC bypass technique using CMSTPLUA COM object +* PrivateLoader direct syscall capture ### [01.10.2024] * Monitor update: Improve fix for size bug with unpacking embedded PEs From a2962b117746e6a745c4eebabfc9244010cb73dc Mon Sep 17 00:00:00 2001 From: IridiumXOR Date: Tue, 8 Oct 2024 13:31:07 +0200 Subject: [PATCH 11/98] Change Creator ID and OEM Table ID in ACPI Tables (#2341) Patch to hide QEMU from ACPI table IDs --- installer/kvm-qemu.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/installer/kvm-qemu.sh b/installer/kvm-qemu.sh index 8323e26dab8..d25ac23d046 100644 --- a/installer/kvm-qemu.sh +++ b/installer/kvm-qemu.sh @@ -799,6 +799,7 @@ function replace_qemu_clues_public() { _sed_aux 's/"bochs"/"'"$BOCHS_BLOCK_REPLACER"'"/g' qemu*/block/bochs.c 'BOCHS was not replaced in block/bochs.c' _sed_aux 's/"BOCHS "/"ALASKA"/g' qemu*/include/hw/acpi/aml-build.h 'BOCHS was not replaced in block/bochs.c' _sed_aux 's/Bochs Pseudo/Intel RealTime/g' qemu*/roms/ipxe/src/drivers/net/pnic.c 'Bochs Pseudo was not replaced in roms/ipxe/src/drivers/net/pnic.c' + _sed_aux 's/BXPC/'"$BXPC_REPLACER"'/g' qemu*/include/hw/acpi/aml-build.h 'BXPC was not replaced in include/hw/acpi/aml-build.h' } function replace_seabios_clues_public() { From 852335c7c2d132631b2552255014677502ff88c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 08:16:44 +0200 Subject: [PATCH 12/98] Bump django from 4.2.15 to 4.2.16 (#2342) Bumps [django](https://github.com/django/django) from 4.2.15 to 4.2.16. - [Commits](https://github.com/django/django/compare/4.2.15...4.2.16) --- updated-dependencies: - dependency-name: django dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 31 +++++++++++++++++++++++++++---- pyproject.toml | 2 +- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index d817b4c22af..cec3d267ee9 100644 --- a/poetry.lock +++ b/poetry.lock @@ -839,13 +839,13 @@ files = [ [[package]] name = "django" -version = "4.2.15" +version = "4.2.16" description = "A high-level Python web framework that encourages rapid development and clean, pragmatic design." optional = false python-versions = ">=3.8" files = [ - {file = "Django-4.2.15-py3-none-any.whl", hash = "sha256:61ee4a130efb8c451ef3467c67ca99fdce400fedd768634efc86a68c18d80d30"}, - {file = "Django-4.2.15.tar.gz", hash = "sha256:c77f926b81129493961e19c0e02188f8d07c112a1162df69bfab178ae447f94a"}, + {file = "Django-4.2.16-py3-none-any.whl", hash = "sha256:1ddc333a16fc139fd253035a1606bb24261951bbc3a6ca256717fa06cc41a898"}, + {file = "Django-4.2.16.tar.gz", hash = "sha256:6f1616c2786c408ce86ab7e10f792b8f15742f7b7b7460243929cb371e7f1dad"}, ] [package.dependencies] @@ -2628,6 +2628,8 @@ files = [ {file = "pydeep2-0.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2283893e25826b547dd1e5c71a010e86ddfd7270e2f2b8c90973c1d7984c7eb7"}, {file = "pydeep2-0.5.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f248e3161deb53d46a9368a7c164e36d83004faf2f11625d47a5cf23a6bdd2cb"}, {file = "pydeep2-0.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a13fca9be89a9fa8d92a4f49d7b9191eef94555f8ddf030fb2be4c8c15ad618c"}, + {file = "pydeep2-0.5.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1cb4757db97ac15ddf034c21cd6bab984f841586b6d53984e63c9a7803b2cd4"}, + {file = "pydeep2-0.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7809a1d6640bdbee68f075d53229d05229e11b4711f232728dd540f68e6483a4"}, {file = "pydeep2-0.5.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fedc1c9660cb5d0b73ad0b5f1dbffe16990e6721cbfc6454571a4b9882d0ea4"}, {file = "pydeep2-0.5.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ca68f7d63e2ef510d410d20b223e8e97df41707fb50c4c526b6dd1d8698d9e6"}, {file = "pydeep2-0.5.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:199d05d8b4b7544509a2ba4802ead4b41dfe7859e0ecea9d9be9e41939f11660"}, @@ -3672,30 +3674,51 @@ description = "Database Abstraction Library" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ + {file = "SQLAlchemy-1.4.50-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:54138aa80d2dedd364f4e8220eef284c364d3270aaef621570aa2bd99902e2e8"}, {file = "SQLAlchemy-1.4.50-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d00665725063692c42badfd521d0c4392e83c6c826795d38eb88fb108e5660e5"}, {file = "SQLAlchemy-1.4.50-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85292ff52ddf85a39367057c3d7968a12ee1fb84565331a36a8fead346f08796"}, {file = "SQLAlchemy-1.4.50-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d0fed0f791d78e7767c2db28d34068649dfeea027b83ed18c45a423f741425cb"}, {file = "SQLAlchemy-1.4.50-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db4db3c08ffbb18582f856545f058a7a5e4ab6f17f75795ca90b3c38ee0a8ba4"}, + {file = "SQLAlchemy-1.4.50-cp310-cp310-win32.whl", hash = "sha256:6c78e3fb4a58e900ec433b6b5f4efe1a0bf81bbb366ae7761c6e0051dd310ee3"}, + {file = "SQLAlchemy-1.4.50-cp310-cp310-win_amd64.whl", hash = "sha256:d55f7a33e8631e15af1b9e67c9387c894fedf6deb1a19f94be8731263c51d515"}, + {file = "SQLAlchemy-1.4.50-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:324b1fdd50e960a93a231abb11d7e0f227989a371e3b9bd4f1259920f15d0304"}, {file = "SQLAlchemy-1.4.50-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14b0cacdc8a4759a1e1bd47dc3ee3f5db997129eb091330beda1da5a0e9e5bd7"}, {file = "SQLAlchemy-1.4.50-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1fb9cb60e0f33040e4f4681e6658a7eb03b5cb4643284172f91410d8c493dace"}, + {file = "SQLAlchemy-1.4.50-cp311-cp311-win32.whl", hash = "sha256:8bdab03ff34fc91bfab005e96f672ae207d87e0ac7ee716d74e87e7046079d8b"}, + {file = "SQLAlchemy-1.4.50-cp311-cp311-win_amd64.whl", hash = "sha256:52e01d60b06f03b0a5fc303c8aada405729cbc91a56a64cead8cb7c0b9b13c1a"}, + {file = "SQLAlchemy-1.4.50-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:77fde9bf74f4659864c8e26ac08add8b084e479b9a18388e7db377afc391f926"}, {file = "SQLAlchemy-1.4.50-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4cb501d585aa74a0f86d0ea6263b9c5e1d1463f8f9071392477fd401bd3c7cc"}, {file = "SQLAlchemy-1.4.50-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a7a66297e46f85a04d68981917c75723e377d2e0599d15fbe7a56abed5e2d75"}, + {file = "SQLAlchemy-1.4.50-cp312-cp312-win32.whl", hash = "sha256:e86c920b7d362cfa078c8b40e7765cbc34efb44c1007d7557920be9ddf138ec7"}, + {file = "SQLAlchemy-1.4.50-cp312-cp312-win_amd64.whl", hash = "sha256:6b3df20fbbcbcd1c1d43f49ccf3eefb370499088ca251ded632b8cbaee1d497d"}, + {file = "SQLAlchemy-1.4.50-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:fb9adc4c6752d62c6078c107d23327aa3023ef737938d0135ece8ffb67d07030"}, {file = "SQLAlchemy-1.4.50-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1db0221cb26d66294f4ca18c533e427211673ab86c1fbaca8d6d9ff78654293"}, {file = "SQLAlchemy-1.4.50-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b7dbe6369677a2bea68fe9812c6e4bbca06ebfa4b5cde257b2b0bf208709131"}, {file = "SQLAlchemy-1.4.50-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a9bddb60566dc45c57fd0a5e14dd2d9e5f106d2241e0a2dc0c1da144f9444516"}, {file = "SQLAlchemy-1.4.50-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82dd4131d88395df7c318eeeef367ec768c2a6fe5bd69423f7720c4edb79473c"}, + {file = "SQLAlchemy-1.4.50-cp36-cp36m-win32.whl", hash = "sha256:1b9c4359d3198f341480e57494471201e736de459452caaacf6faa1aca852bd8"}, + {file = "SQLAlchemy-1.4.50-cp36-cp36m-win_amd64.whl", hash = "sha256:35e4520f7c33c77f2636a1e860e4f8cafaac84b0b44abe5de4c6c8890b6aaa6d"}, + {file = "SQLAlchemy-1.4.50-cp37-cp37m-macosx_11_0_x86_64.whl", hash = "sha256:f5b1fb2943d13aba17795a770d22a2ec2214fc65cff46c487790192dda3a3ee7"}, {file = "SQLAlchemy-1.4.50-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:273505fcad22e58cc67329cefab2e436006fc68e3c5423056ee0513e6523268a"}, {file = "SQLAlchemy-1.4.50-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3257a6e09626d32b28a0c5b4f1a97bced585e319cfa90b417f9ab0f6145c33c"}, {file = "SQLAlchemy-1.4.50-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d69738d582e3a24125f0c246ed8d712b03bd21e148268421e4a4d09c34f521a5"}, {file = "SQLAlchemy-1.4.50-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34e1c5d9cd3e6bf3d1ce56971c62a40c06bfc02861728f368dcfec8aeedb2814"}, + {file = "SQLAlchemy-1.4.50-cp37-cp37m-win32.whl", hash = "sha256:7b4396452273aedda447e5aebe68077aa7516abf3b3f48408793e771d696f397"}, + {file = "SQLAlchemy-1.4.50-cp37-cp37m-win_amd64.whl", hash = "sha256:752f9df3dddbacb5f42d8405b2d5885675a93501eb5f86b88f2e47a839cf6337"}, + {file = "SQLAlchemy-1.4.50-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:35c7ed095a4b17dbc8813a2bfb38b5998318439da8e6db10a804df855e3a9e3a"}, {file = "SQLAlchemy-1.4.50-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1fcee5a2c859eecb4ed179edac5ffbc7c84ab09a5420219078ccc6edda45436"}, {file = "SQLAlchemy-1.4.50-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fbaf6643a604aa17e7a7afd74f665f9db882df5c297bdd86c38368f2c471f37d"}, {file = "SQLAlchemy-1.4.50-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2e70e0673d7d12fa6cd363453a0d22dac0d9978500aa6b46aa96e22690a55eab"}, {file = "SQLAlchemy-1.4.50-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b881ac07d15fb3e4f68c5a67aa5cdaf9eb8f09eb5545aaf4b0a5f5f4659be18"}, + {file = "SQLAlchemy-1.4.50-cp38-cp38-win32.whl", hash = "sha256:8a219688297ee5e887a93ce4679c87a60da4a5ce62b7cb4ee03d47e9e767f558"}, + {file = "SQLAlchemy-1.4.50-cp38-cp38-win_amd64.whl", hash = "sha256:a648770db002452703b729bdcf7d194e904aa4092b9a4d6ab185b48d13252f63"}, + {file = "SQLAlchemy-1.4.50-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:4be4da121d297ce81e1ba745a0a0521c6cf8704634d7b520e350dce5964c71ac"}, {file = "SQLAlchemy-1.4.50-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f6997da81114daef9203d30aabfa6b218a577fc2bd797c795c9c88c9eb78d49"}, {file = "SQLAlchemy-1.4.50-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bdb77e1789e7596b77fd48d99ec1d2108c3349abd20227eea0d48d3f8cf398d9"}, {file = "SQLAlchemy-1.4.50-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:128a948bd40780667114b0297e2cc6d657b71effa942e0a368d8cc24293febb3"}, {file = "SQLAlchemy-1.4.50-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2d526aeea1bd6a442abc7c9b4b00386fd70253b80d54a0930c0a216230a35be"}, + {file = "SQLAlchemy-1.4.50-cp39-cp39-win32.whl", hash = "sha256:a7c9b9dca64036008962dd6b0d9fdab2dfdbf96c82f74dbd5d86006d8d24a30f"}, + {file = "SQLAlchemy-1.4.50-cp39-cp39-win_amd64.whl", hash = "sha256:df200762efbd672f7621b253721644642ff04a6ff957236e0e2fe56d9ca34d2c"}, {file = "SQLAlchemy-1.4.50.tar.gz", hash = "sha256:3b97ddf509fc21e10b09403b5219b06c5b558b27fc2453150274fa4e70707dbf"}, ] @@ -4518,4 +4541,4 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] [metadata] lock-version = "2.0" python-versions = ">=3.10, <4.0" -content-hash = "74bde9cd19ea301395e0dbfdcc24884dc7e34f5735beaa685fb0be0c6d9f0860" +content-hash = "60bf927752538b220c3156c89605a163fd272ecca872edc4926885ab68a1477d" diff --git a/pyproject.toml b/pyproject.toml index 9f43c919121..8d6e5a5d6eb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,7 +34,7 @@ pyzipper = "0.3.5" flare-capa = "7.3.0" Cython = "0.29.24" # pyre2 = "0.3.6" # Dead for python3.11 -Django = "4.2.15" +Django = "4.2.16" SQLAlchemy = "1.4.50" SQLAlchemy-Utils = "0.41.1" Jinja2 = "^3.1.4" From a8c6c6881c15cb454fe986555836a40a7f311703 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 9 Oct 2024 06:17:18 +0000 Subject: [PATCH 13/98] ci: Update requirements.txt --- requirements.txt | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index fc3b1acafa9..8cc40264dac 100644 --- a/requirements.txt +++ b/requirements.txt @@ -356,9 +356,9 @@ django-recaptcha==3.0.0 ; python_version >= "3.10" and python_version < "4.0" \ --hash=sha256:253197051288923cae675d7eff91b619e3775311292a5dbaf27a8a55ffebc670 django-settings-export==1.2.1 ; python_version >= "3.10" and python_version < "4.0" \ --hash=sha256:fceeae49fc597f654c1217415d8e049fc81c930b7154f5d8f28c432db738ff79 -django==4.2.15 ; python_version >= "3.10" and python_version < "4.0" \ - --hash=sha256:61ee4a130efb8c451ef3467c67ca99fdce400fedd768634efc86a68c18d80d30 \ - --hash=sha256:c77f926b81129493961e19c0e02188f8d07c112a1162df69bfab178ae447f94a +django==4.2.16 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:1ddc333a16fc139fd253035a1606bb24261951bbc3a6ca256717fa06cc41a898 \ + --hash=sha256:6f1616c2786c408ce86ab7e10f792b8f15742f7b7b7460243929cb371e7f1dad djangorestframework==3.15.2 ; python_version >= "3.10" and python_version < "4.0" \ --hash=sha256:2b8871b062ba1aefc2de01f773875441a961fefbf79f5eed1e32b2f096944b20 \ --hash=sha256:36fe88cd2d6c6bec23dca9804bab2ba5517a8bb9d8f47ebc68981b56840107ad @@ -1187,11 +1187,13 @@ pydeep2==0.5.1 ; python_version >= "3.10" and python_version < "4.0" \ --hash=sha256:2283893e25826b547dd1e5c71a010e86ddfd7270e2f2b8c90973c1d7984c7eb7 \ --hash=sha256:44ce447e3253a69d3393f3cc53e3a87a48fe3ff9861793736a7bc218a1b95d77 \ --hash=sha256:4bf00de2fe1918e4d698fe8195a5c0a3a0c3050a2e3e15583748cfd20b427153 \ + --hash=sha256:7809a1d6640bdbee68f075d53229d05229e11b4711f232728dd540f68e6483a4 \ --hash=sha256:7ca68f7d63e2ef510d410d20b223e8e97df41707fb50c4c526b6dd1d8698d9e6 \ --hash=sha256:a13fca9be89a9fa8d92a4f49d7b9191eef94555f8ddf030fb2be4c8c15ad618c \ --hash=sha256:add24d7aa0386b285fd3e99632719714efabeb13d7b03a015b7c64d1f588f815 \ --hash=sha256:c2063cbb053e5ce684cc45fff3e72c063b26aa85e41e6435cab0c658ad9e3e1e \ --hash=sha256:c65dc910d782fa2bc97e1b28a78d77c4bada037d14b63e3e75a1fa5918d642c5 \ + --hash=sha256:d1cb4757db97ac15ddf034c21cd6bab984f841586b6d53984e63c9a7803b2cd4 \ --hash=sha256:e14b310b820d895a7354be7fd025de874892df249cbfb3ad8a524459e1511fd8 \ --hash=sha256:ef00ca5681a2c4ad5dc744db5f8ae5406d3f13121b38d84cc58dfb8fce4c3dc2 \ --hash=sha256:f248e3161deb53d46a9368a7c164e36d83004faf2f11625d47a5cf23a6bdd2cb @@ -1654,27 +1656,48 @@ sqlalchemy==1.4.50 ; python_version >= "3.10" and python_version < "4.0" \ --hash=sha256:0b7dbe6369677a2bea68fe9812c6e4bbca06ebfa4b5cde257b2b0bf208709131 \ --hash=sha256:128a948bd40780667114b0297e2cc6d657b71effa942e0a368d8cc24293febb3 \ --hash=sha256:14b0cacdc8a4759a1e1bd47dc3ee3f5db997129eb091330beda1da5a0e9e5bd7 \ + --hash=sha256:1b9c4359d3198f341480e57494471201e736de459452caaacf6faa1aca852bd8 \ --hash=sha256:1fb9cb60e0f33040e4f4681e6658a7eb03b5cb4643284172f91410d8c493dace \ --hash=sha256:273505fcad22e58cc67329cefab2e436006fc68e3c5423056ee0513e6523268a \ --hash=sha256:2e70e0673d7d12fa6cd363453a0d22dac0d9978500aa6b46aa96e22690a55eab \ + --hash=sha256:324b1fdd50e960a93a231abb11d7e0f227989a371e3b9bd4f1259920f15d0304 \ --hash=sha256:34e1c5d9cd3e6bf3d1ce56971c62a40c06bfc02861728f368dcfec8aeedb2814 \ + --hash=sha256:35c7ed095a4b17dbc8813a2bfb38b5998318439da8e6db10a804df855e3a9e3a \ + --hash=sha256:35e4520f7c33c77f2636a1e860e4f8cafaac84b0b44abe5de4c6c8890b6aaa6d \ --hash=sha256:3b97ddf509fc21e10b09403b5219b06c5b558b27fc2453150274fa4e70707dbf \ --hash=sha256:3f6997da81114daef9203d30aabfa6b218a577fc2bd797c795c9c88c9eb78d49 \ + --hash=sha256:4be4da121d297ce81e1ba745a0a0521c6cf8704634d7b520e350dce5964c71ac \ + --hash=sha256:52e01d60b06f03b0a5fc303c8aada405729cbc91a56a64cead8cb7c0b9b13c1a \ + --hash=sha256:54138aa80d2dedd364f4e8220eef284c364d3270aaef621570aa2bd99902e2e8 \ + --hash=sha256:6b3df20fbbcbcd1c1d43f49ccf3eefb370499088ca251ded632b8cbaee1d497d \ + --hash=sha256:6c78e3fb4a58e900ec433b6b5f4efe1a0bf81bbb366ae7761c6e0051dd310ee3 \ + --hash=sha256:752f9df3dddbacb5f42d8405b2d5885675a93501eb5f86b88f2e47a839cf6337 \ + --hash=sha256:77fde9bf74f4659864c8e26ac08add8b084e479b9a18388e7db377afc391f926 \ + --hash=sha256:7b4396452273aedda447e5aebe68077aa7516abf3b3f48408793e771d696f397 \ --hash=sha256:82dd4131d88395df7c318eeeef367ec768c2a6fe5bd69423f7720c4edb79473c \ --hash=sha256:85292ff52ddf85a39367057c3d7968a12ee1fb84565331a36a8fead346f08796 \ + --hash=sha256:8a219688297ee5e887a93ce4679c87a60da4a5ce62b7cb4ee03d47e9e767f558 \ --hash=sha256:8a7a66297e46f85a04d68981917c75723e377d2e0599d15fbe7a56abed5e2d75 \ --hash=sha256:8b881ac07d15fb3e4f68c5a67aa5cdaf9eb8f09eb5545aaf4b0a5f5f4659be18 \ + --hash=sha256:8bdab03ff34fc91bfab005e96f672ae207d87e0ac7ee716d74e87e7046079d8b \ --hash=sha256:a3257a6e09626d32b28a0c5b4f1a97bced585e319cfa90b417f9ab0f6145c33c \ + --hash=sha256:a648770db002452703b729bdcf7d194e904aa4092b9a4d6ab185b48d13252f63 \ + --hash=sha256:a7c9b9dca64036008962dd6b0d9fdab2dfdbf96c82f74dbd5d86006d8d24a30f \ --hash=sha256:a9bddb60566dc45c57fd0a5e14dd2d9e5f106d2241e0a2dc0c1da144f9444516 \ --hash=sha256:bdb77e1789e7596b77fd48d99ec1d2108c3349abd20227eea0d48d3f8cf398d9 \ --hash=sha256:c1db0221cb26d66294f4ca18c533e427211673ab86c1fbaca8d6d9ff78654293 \ --hash=sha256:c4cb501d585aa74a0f86d0ea6263b9c5e1d1463f8f9071392477fd401bd3c7cc \ --hash=sha256:d00665725063692c42badfd521d0c4392e83c6c826795d38eb88fb108e5660e5 \ --hash=sha256:d0fed0f791d78e7767c2db28d34068649dfeea027b83ed18c45a423f741425cb \ + --hash=sha256:d55f7a33e8631e15af1b9e67c9387c894fedf6deb1a19f94be8731263c51d515 \ --hash=sha256:d69738d582e3a24125f0c246ed8d712b03bd21e148268421e4a4d09c34f521a5 \ --hash=sha256:db4db3c08ffbb18582f856545f058a7a5e4ab6f17f75795ca90b3c38ee0a8ba4 \ + --hash=sha256:df200762efbd672f7621b253721644642ff04a6ff957236e0e2fe56d9ca34d2c \ + --hash=sha256:e86c920b7d362cfa078c8b40e7765cbc34efb44c1007d7557920be9ddf138ec7 \ --hash=sha256:f1fcee5a2c859eecb4ed179edac5ffbc7c84ab09a5420219078ccc6edda45436 \ --hash=sha256:f2d526aeea1bd6a442abc7c9b4b00386fd70253b80d54a0930c0a216230a35be \ + --hash=sha256:f5b1fb2943d13aba17795a770d22a2ec2214fc65cff46c487790192dda3a3ee7 \ + --hash=sha256:fb9adc4c6752d62c6078c107d23327aa3023ef737938d0135ece8ffb67d07030 \ --hash=sha256:fbaf6643a604aa17e7a7afd74f665f9db882df5c297bdd86c38368f2c471f37d sqlparse==0.5.1 ; python_version >= "3.10" and python_version < "4.0" \ --hash=sha256:773dcbf9a5ab44a090f3441e2180efe2560220203dc2f8c0b0fa141e18b505e4 \ From 2283cfb4f16524d9cf23da591d79e6b72c27ac05 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 9 Oct 2024 11:44:25 +0000 Subject: [PATCH 14/98] style: Automatic code formatting --- lib/parsers_aux/ratking/__init__.py | 77 +++++-------------- lib/parsers_aux/ratking/utils/config_item.py | 4 +- lib/parsers_aux/ratking/utils/data_utils.py | 4 +- .../utils/decryptors/config_decryptor.py | 4 +- .../decryptors/config_decryptor_aes_cbc.py | 41 +++------- .../decryptors/config_decryptor_aes_ecb.py | 8 +- .../config_decryptor_decrypt_xor.py | 13 +--- .../decryptors/config_decryptor_plaintext.py | 8 +- .../config_decryptor_random_hardcoded.py | 24 ++---- .../ratking/utils/dotnetpe_payload.py | 20 ++--- 10 files changed, 51 insertions(+), 152 deletions(-) diff --git a/lib/parsers_aux/ratking/__init__.py b/lib/parsers_aux/ratking/__init__.py index 6b724e46bbf..a73ff2deaa7 100644 --- a/lib/parsers_aux/ratking/__init__.py +++ b/lib/parsers_aux/ratking/__init__.py @@ -34,17 +34,14 @@ from re import DOTALL, compile, search from typing import Any, Tuple -# from yara import Rules - from .config_parser_exception import ConfigParserException from .utils import config_item -from .utils.decryptors import ( - SUPPORTED_DECRYPTORS, - ConfigDecryptor, - IncompatibleDecryptorException, -) +from .utils.decryptors import SUPPORTED_DECRYPTORS, ConfigDecryptor, IncompatibleDecryptorException from .utils.dotnetpe_payload import DotNetPEPayload +# from yara import Rules + + logger = getLogger(__name__) @@ -54,9 +51,7 @@ class RATConfigParser: _MIN_CONFIG_LEN_CEILING = 9 # Pattern to find the VerifyHash() method - _PATTERN_VERIFY_HASH = compile( - rb"\x7e.{3}\x04(?:\x6f.{3}\x0a){2}\x74.{3}\x01", DOTALL - ) + _PATTERN_VERIFY_HASH = compile(rb"\x7e.{3}\x04(?:\x6f.{3}\x0a){2}\x74.{3}\x01", DOTALL) # def __init__(self, file_path: str, yara_rule: Rules = None) -> None: def __init__(self, file_data: bytes = None) -> None: @@ -77,14 +72,10 @@ def __init__(self, file_data: bytes = None) -> None: self._decryptor: ConfigDecryptor = None self.report["config"] = self._get_config() self.report["key"] = ( - self._decryptor.key.hex() - if self._decryptor is not None and self._decryptor.key is not None - else "None" + self._decryptor.key.hex() if self._decryptor is not None and self._decryptor.key is not None else "None" ) self.report["salt"] = ( - self._decryptor.salt.hex() - if self._decryptor is not None and self._decryptor.salt is not None - else "None" + self._decryptor.salt.hex() if self._decryptor is not None and self._decryptor.salt is not None else "None" ) except Exception as e: # self.report["config"] = f"Exception encountered for {file_path}: {e}" @@ -92,18 +83,13 @@ def __init__(self, file_data: bytes = None) -> None: # Decrypts/decodes values from an encrypted config and returns the # decrypted/decoded config - def _decrypt_and_decode_config( - self, encrypted_config: bytes, min_config_len: int - ) -> dict[str, Any]: + def _decrypt_and_decode_config(self, encrypted_config: bytes, min_config_len: int) -> dict[str, Any]: decoded_config = {} for item_class in config_item.SUPPORTED_CONFIG_ITEMS: item = item_class() # Translate config Field RVAs to Field names - item_data = { - self._dnpp.field_name_from_rva(k): v - for k, v in item.parse_from(encrypted_config).items() - } + item_data = {self._dnpp.field_name_from_rva(k): v for k, v in item.parse_from(encrypted_config).items()} if len(item_data) > 0: if type(item) is config_item.EncryptedStringConfigItem: @@ -122,22 +108,16 @@ def _decrypt_and_decode_config( try: self._decryptor = decryptor(self._dnpp) except IncompatibleDecryptorException as ide: - logger.debug( - f"Decryptor incompatible {decryptor} : {ide}" - ) + logger.debug(f"Decryptor incompatible {decryptor} : {ide}") self._incompatible_decryptors.append(decryptor) continue try: # Try to decrypt the encrypted strings # Continue to next compatible decryptor on failure - item_data = self._decryptor.decrypt_encrypted_strings( - item_data - ) + item_data = self._decryptor.decrypt_encrypted_strings(item_data) break except Exception as e: - logger.debug( - f"Decryption failed with decryptor {decryptor} : {e}" - ) + logger.debug(f"Decryption failed with decryptor {decryptor} : {e}") self._decryptor = None if self._decryptor is None: @@ -146,16 +126,12 @@ def _decrypt_and_decode_config( elif type(item) is config_item.ByteArrayConfigItem: for k in item_data: arr_size, arr_rva = item_data[k] - item_data[k] = self._dnpp.byte_array_from_size_and_rva( - arr_size, arr_rva - ).hex() + item_data[k] = self._dnpp.byte_array_from_size_and_rva(arr_size, arr_rva).hex() decoded_config.update(item_data) if len(decoded_config) < min_config_len: - raise ConfigParserException( - f"Minimum threshold of config items not met: {len(decoded_config)}/{min_config_len}" - ) + raise ConfigParserException(f"Minimum threshold of config items not met: {len(decoded_config)}/{min_config_len}") return decoded_config # Searches for the RAT configuration section, using the VerifyHash() marker @@ -185,10 +161,7 @@ def _get_config_cctor_brute_force(self) -> Tuple[int, dict[str, Any]]: raise ConfigParserException("No .cctor method could be found") # For each .cctor method, map its RVA and body (in raw bytes) - candidate_cctor_data = { - method.rva: self._dnpp.method_body_from_method(method) - for method in candidates - } + candidate_cctor_data = {method.rva: self._dnpp.method_body_from_method(method) for method in candidates} config_start, decrypted_config = None, None # Start at our ceiling value for number of config items @@ -196,9 +169,7 @@ def _get_config_cctor_brute_force(self) -> Tuple[int, dict[str, Any]]: while decrypted_config is None and min_config_len >= self._MIN_CONFIG_LEN_FLOOR: for method_rva, method_body in candidate_cctor_data.items(): - logger.debug( - f"Attempting brute force at .cctor method at {hex(method_rva)}" - ) + logger.debug(f"Attempting brute force at .cctor method at {hex(method_rva)}") try: config_start, decrypted_config = ( method_rva, @@ -206,17 +177,13 @@ def _get_config_cctor_brute_force(self) -> Tuple[int, dict[str, Any]]: ) break except Exception as e: - logger.debug( - f"Brute force failed for method at {hex(method_rva)}: {e}" - ) + logger.debug(f"Brute force failed for method at {hex(method_rva)}: {e}") continue # Reduce the minimum config length until we reach our floor min_config_len -= 1 if decrypted_config is None: - raise ConfigParserException( - "No valid configuration could be parsed from any .cctor methods" - ) + raise ConfigParserException("No valid configuration could be parsed from any .cctor methods") return config_start, decrypted_config # Attempts to retrieve the config via looking for a config section preceded @@ -230,16 +197,12 @@ def _get_config_verify_hash_method(self) -> Tuple[int, dict[str, Any]]: # Reverse the hit to find the VerifyHash() method, then grab the # subsequent function - config_method = self._dnpp.method_from_instruction_offset( - verify_hash_hit.start(), 1 - ) + config_method = self._dnpp.method_from_instruction_offset(verify_hash_hit.start(), 1) encrypted_config = self._dnpp.method_body_from_method(config_method) min_config_len = self._MIN_CONFIG_LEN_CEILING while True: try: - decrypted_config = self._decrypt_and_decode_config( - encrypted_config, min_config_len - ) + decrypted_config = self._decrypt_and_decode_config(encrypted_config, min_config_len) return config_method.rva, decrypted_config except Exception as e: # Reduce the minimum config length until we reach our floor diff --git a/lib/parsers_aux/ratking/utils/config_item.py b/lib/parsers_aux/ratking/utils/config_item.py index cba36ed272c..e466c018b5e 100644 --- a/lib/parsers_aux/ratking/utils/config_item.py +++ b/lib/parsers_aux/ratking/utils/config_item.py @@ -68,9 +68,7 @@ def parse_from(self, data: bytes) -> dict[int, Any]: fields[field_rva] = field_value found_items += 1 else: - logger.debug( - f"Overlapping Field RVAs detected in config at {hex(field_rva)}" - ) + logger.debug(f"Overlapping Field RVAs detected in config at {hex(field_rva)}") logger.debug(f"Parsed {found_items} {self._label} values") return fields diff --git a/lib/parsers_aux/ratking/utils/data_utils.py b/lib/parsers_aux/ratking/utils/data_utils.py index 34d96ce3964..1f0ec88cd02 100644 --- a/lib/parsers_aux/ratking/utils/data_utils.py +++ b/lib/parsers_aux/ratking/utils/data_utils.py @@ -50,9 +50,7 @@ def decode_bytes(byte_str: bytes | str) -> str: else: result = byte_str.decode("utf-8") except Exception: - raise ConfigParserException( - f"Error decoding bytes object to Unicode: {byte_str}" - ) + raise ConfigParserException(f"Error decoding bytes object to Unicode: {byte_str}") return result diff --git a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor.py b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor.py index 16084742d56..8b4827d38b3 100644 --- a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor.py +++ b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor.py @@ -49,7 +49,5 @@ def __init__(self, payload: DotNetPEPayload) -> None: # Abstract method to take in a map representing a configuration of config # Field names and values and return a decoded/decrypted configuration @abstractmethod - def decrypt_encrypted_strings( - self, encrypted_strings: dict[str, str] - ) -> dict[str, list[str] | str]: + def decrypt_encrypted_strings(self, encrypted_strings: dict[str, str]) -> dict[str, list[str] | str]: pass diff --git a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_cbc.py b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_cbc.py index 13bd9b4a359..886a804eb68 100644 --- a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_cbc.py +++ b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_cbc.py @@ -56,9 +56,7 @@ class ConfigDecryptorAESCBC(ConfigDecryptor): _MIN_CIPHERTEXT_LEN = 48 # Patterns for identifying AES metadata - _PATTERN_AES_KEY_AND_BLOCK_SIZE = compile( - b"[\x06-\x09]\x20(.{4})\x6f.{4}[\x06-\x09]\x20(.{4})", DOTALL - ) + _PATTERN_AES_KEY_AND_BLOCK_SIZE = compile(b"[\x06-\x09]\x20(.{4})\x6f.{4}[\x06-\x09]\x20(.{4})", DOTALL) # Do not compile in-line replacement patterns _PATTERN_AES_KEY_BASE = b"(.{3}\x04).%b" _PATTERN_AES_SALT_INIT = b"\x80%b\x2a" @@ -79,9 +77,7 @@ def __init__(self, payload: DotNetPEPayload) -> None: # Given an initialization vector and ciphertext, creates a Cipher # object with the AES key and specified IV and decrypts the ciphertext def _decrypt(self, iv: bytes, ciphertext: bytes) -> bytes: - logger.debug( - f"Decrypting {ciphertext} with key {self.key.hex()} and IV {iv.hex()}..." - ) + logger.debug(f"Decrypting {ciphertext} with key {self.key.hex()} and IV {iv.hex()}...") aes_cipher = Cipher(AES(self.key), CBC(iv), backend=default_backend()) decryptor = aes_cipher.decryptor() # Use a PKCS7 unpadder to remove padding from decrypted value @@ -113,9 +109,7 @@ def _derive_aes_passphrase_candidates(self, key_val: str) -> list[bytes]: return passphrase_candidates # Decrypts encrypted config values with the provided cipher data - def decrypt_encrypted_strings( - self, encrypted_strings: dict[str, str] - ) -> dict[str, str]: + def decrypt_encrypted_strings(self, encrypted_strings: dict[str, str]) -> dict[str, str]: logger.debug("Decrypting encrypted strings...") if self._key_candidates is None: self._key_candidates = self._get_aes_key_candidates(encrypted_strings) @@ -157,9 +151,7 @@ def decrypt_encrypted_strings( last_exc = e if result is None: - logger.debug( - f"Decryption failed for item {v}: {last_exc}; Leaving as original value..." - ) + logger.debug(f"Decryption failed for item {v}: {last_exc}; Leaving as original value...") result = v logger.debug(f"Key: {k}, Value: {result}") @@ -174,9 +166,7 @@ def _get_aes_key_candidates(self, encrypted_strings: dict[str, str]) -> list[byt keys = [] # Use the key Field name to index into our existing config - key_raw_value = encrypted_strings[ - self._payload.field_name_from_rva(self._key_rva) - ] + key_raw_value = encrypted_strings[self._payload.field_name_from_rva(self._key_rva)] passphrase_candidates = self._derive_aes_passphrase_candidates(key_raw_value) for candidate in passphrase_candidates: @@ -196,9 +186,7 @@ def _get_aes_key_candidates(self, encrypted_strings: dict[str, str]) -> list[byt continue if len(keys) == 0: - raise ConfigParserException( - f"Could not derive key from passphrase candidates: {passphrase_candidates}" - ) + raise ConfigParserException(f"Could not derive key from passphrase candidates: {passphrase_candidates}") return keys # Extracts the AES key and block size from the payload @@ -222,9 +210,7 @@ def _get_aes_key_rva(self, metadata_ins_offset: int) -> int: logger.debug("Extracting AES key RVA...") # Get the RVA of the method that sets up AES256 metadata - metadata_method_token = self._payload.method_from_instruction_offset( - metadata_ins_offset, by_token=True - ).token + metadata_method_token = self._payload.method_from_instruction_offset(metadata_ins_offset, by_token=True).token # Insert this RVA into the KEY_BASE pattern to find where the AES key # is initialized @@ -269,9 +255,7 @@ def _get_aes_salt(self, salt_rva: int) -> bytes: # # stsfld uint8[] Client.Algorithm.Aes256::Salt # ret - aes_salt_initialization = self._payload.data.find( - self._PATTERN_AES_SALT_INIT % escape(salt_rva) - ) + aes_salt_initialization = self._payload.data.find(self._PATTERN_AES_SALT_INIT % escape(salt_rva)) if aes_salt_initialization == -1: raise ConfigParserException("Could not identify AES salt initialization") @@ -283,9 +267,7 @@ def _get_aes_salt(self, salt_rva: int) -> bytes: salt_op = bytes([self._payload.data[salt_op_offset]]) # Get the salt RVA from the 4 bytes following the initialization op - salt_strings_rva_packed = self._payload.data[ - salt_op_offset + 1 : salt_op_offset + 5 - ] + salt_strings_rva_packed = self._payload.data[salt_op_offset + 1 : salt_op_offset + 5] salt_strings_rva = bytes_to_int(salt_strings_rva_packed) # If the op is a ldstr op, just get the bytes value of the string being @@ -300,12 +282,9 @@ def _get_aes_salt(self, salt_rva: int) -> bytes: # byte array value from the FieldRVA table elif salt_op == OPCODE_LDTOKEN: salt_size = self._payload.data[salt_op_offset - 7] - salt = self._payload.byte_array_from_size_and_rva( - salt_size, salt_strings_rva - ) + salt = self._payload.byte_array_from_size_and_rva(salt_size, salt_strings_rva) else: raise ConfigParserException(f"Unknown salt opcode found: {salt_op.hex()}") logger.debug(f"Found salt value: {salt.hex()}") return salt - diff --git a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_ecb.py b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_ecb.py index 75e54f3f4c6..668c18de4e6 100644 --- a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_ecb.py +++ b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_ecb.py @@ -74,17 +74,13 @@ def _decrypt(self, ciphertext: bytes) -> bytes: padded_text = decryptor.update(ciphertext) + decryptor.finalize() unpadded_text = unpadder.update(padded_text) + unpadder.finalize() except Exception as e: - raise ConfigParserException( - f"Error decrypting ciphertext {ciphertext} with key {self.key.hex()}: {e}" - ) + raise ConfigParserException(f"Error decrypting ciphertext {ciphertext} with key {self.key.hex()}: {e}") logger.debug(f"Decryption result: {unpadded_text}") return unpadded_text # Decrypts encrypted config values with the provided cipher data - def decrypt_encrypted_strings( - self, encrypted_strings: dict[str, str] - ) -> dict[str, str]: + def decrypt_encrypted_strings(self, encrypted_strings: dict[str, str]) -> dict[str, str]: logger.debug("Decrypting encrypted strings...") if self.key is None: diff --git a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_decrypt_xor.py b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_decrypt_xor.py index 74311e5e7a2..7ea52618ceb 100644 --- a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_decrypt_xor.py +++ b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_decrypt_xor.py @@ -83,9 +83,7 @@ def _decode_encoded_strings(self) -> list[str]: # Parses the config, adds decoded XOR strings, and returns the decoded # config - def decrypt_encrypted_strings( - self, encrypted_strings: dict[str, str] - ) -> dict[str, list[str] | str]: + def decrypt_encrypted_strings(self, encrypted_strings: dict[str, str]) -> dict[str, list[str] | str]: config = {} # Pass off plaintext config to a ConfigDecryptorPlaintext ptcd = ConfigDecryptorPlaintext(self._payload) @@ -105,18 +103,13 @@ def _get_xor_metadata(self): self._xor_strings = list( filter( None, - [ - self._payload.user_string_from_rva(bytes_to_int(rva)) - for rva in xor_string_rvas - ], + [self._payload.user_string_from_rva(bytes_to_int(rva)) for rva in xor_string_rvas], ) ) logger.debug(f"{len(self._xor_strings)} XOR strings found") # Get the static constructor containing the XOR key - xor_key_cctor = self._payload.method_from_instruction_offset( - dxor_block.start(), step=1, by_token=True - ) + xor_key_cctor = self._payload.method_from_instruction_offset(dxor_block.start(), step=1, by_token=True) xor_key_cctor_body = self._payload.method_body_from_method(xor_key_cctor) # Derive the XOR key RVA and value diff --git a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_plaintext.py b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_plaintext.py index ebd87c49ee8..b24d2b387fd 100644 --- a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_plaintext.py +++ b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_plaintext.py @@ -116,13 +116,9 @@ def __init__(self, payload: DotNetPEPayload) -> None: # Calculates whether the config meets the minimum threshold for known Field # Names and returns it if it does - def decrypt_encrypted_strings( - self, encrypted_strings: dict[str, str] - ) -> dict[str, str]: + def decrypt_encrypted_strings(self, encrypted_strings: dict[str, str]) -> dict[str, str]: field_names = set(encrypted_strings.keys()) num_overlapping_field_names = len(KNOWN_CONFIG_FIELD_NAMES & field_names) if num_overlapping_field_names < self.MIN_THRESHOLD_MATCH: - raise ConfigParserException( - "Plaintext threshold of known config items not met" - ) + raise ConfigParserException("Plaintext threshold of known config items not met") return encrypted_strings diff --git a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_random_hardcoded.py b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_random_hardcoded.py index 747364b8a9d..e5d598f47b7 100644 --- a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_random_hardcoded.py +++ b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_random_hardcoded.py @@ -47,9 +47,7 @@ class ConfigDecryptorRandomHardcoded(ConfigDecryptor): _KEY_HARDCODED_HOSTS = "hardcoded_hosts" # Pattern to find the Method that retrieves a random domain - _PATTERN_RANDOM_DOMAIN = compile( - rb"(?:\x73.{3}\x0a){2}\x25.+?\x0a\x06(?:\x6f.{3}\x0a){2}\x0b", flags=DOTALL - ) + _PATTERN_RANDOM_DOMAIN = compile(rb"(?:\x73.{3}\x0a){2}\x25.+?\x0a\x06(?:\x6f.{3}\x0a){2}\x0b", flags=DOTALL) def __init__(self, payload: DotNetPEPayload) -> None: super().__init__(payload) @@ -59,9 +57,7 @@ def __init__(self, payload: DotNetPEPayload) -> None: raise IncompatibleDecryptorException(e) # Returns a combined config containing config fields + hardcoded hosts - def decrypt_encrypted_strings( - self, encrypted_strings: dict[str, str] - ) -> dict[str, list[str] | str]: + def decrypt_encrypted_strings(self, encrypted_strings: dict[str, str]) -> dict[str, list[str] | str]: config = {} # Pass off plaintext config to a ConfigDecryptorPlaintext ptcd = ConfigDecryptorPlaintext(self._payload) @@ -71,9 +67,7 @@ def decrypt_encrypted_strings( # Retrieves and returns a list of hardcoded hosts def _get_hardcoded_hosts(self) -> list[str]: - random_domain_method_body = self._payload.method_body_from_method( - self._random_domain_method - ) + random_domain_method_body = self._payload.method_body_from_method(self._random_domain_method) hardcoded_host_rvas = findall(PATTERN_LDSTR_OP, random_domain_method_body) hardcoded_hosts = [] @@ -94,15 +88,9 @@ def _get_random_domain_method(self) -> DotNetPEMethod: logger.debug("Searching for random domain method") random_domain_marker = search(self._PATTERN_RANDOM_DOMAIN, self._payload.data) if random_domain_marker is None: - raise ConfigParserException( - "Could not identify random domain generator method" - ) + raise ConfigParserException("Could not identify random domain generator method") - random_domain_method = self._payload.method_from_instruction_offset( - random_domain_marker.start() - ) + random_domain_method = self._payload.method_from_instruction_offset(random_domain_marker.start()) - logger.debug( - f"Random domain generator found at offset {hex(random_domain_method.offset)}" - ) + logger.debug(f"Random domain generator found at offset {hex(random_domain_method.offset)}") return random_domain_method diff --git a/lib/parsers_aux/ratking/utils/dotnetpe_payload.py b/lib/parsers_aux/ratking/utils/dotnetpe_payload.py index d704b3397d2..d2d9d3f60f3 100644 --- a/lib/parsers_aux/ratking/utils/dotnetpe_payload.py +++ b/lib/parsers_aux/ratking/utils/dotnetpe_payload.py @@ -88,9 +88,7 @@ def byte_array_from_size_and_rva(self, arr_size: int, arr_rva: int) -> bytes: # Given an offset, and either a terminating offset or delimiter, extracts # the byte string - def byte_string_from_offset( - self, offset_start: int, offstart_end: int = -1, delimiter: bytes = b"\0" - ) -> bytes: + def byte_string_from_offset(self, offset_start: int, offstart_end: int = -1, delimiter: bytes = b"\0") -> bytes: if offstart_end != -1: try: return self.data[offset_start:offstart_end] @@ -108,9 +106,7 @@ def byte_string_from_offset( # Given an RVA, derives the corresponding Field name def field_name_from_rva(self, rva: int) -> str: try: - return self.dotnetpe.net.mdtables.Field.rows[ - (rva ^ MDT_FIELD_DEF) - 1 - ].Name.value + return self.dotnetpe.net.mdtables.Field.rows[(rva ^ MDT_FIELD_DEF) - 1].Name.value except Exception: raise ConfigParserException(f"Could not find Field for RVA {rva}") @@ -138,9 +134,7 @@ def _generate_method_list( if flags & 3 == 2: # Tiny format method_size = flags >> 2 elif flags & 3 == 3: # Fat format (add 12-byte header) - method_size = 12 + bytes_to_int( - self.data[method_offset + 4 : method_offset + 8] - ) + method_size = 12 + bytes_to_int(self.data[method_offset + 4 : method_offset + 8]) method_objs.append( DotNetPEMethod( @@ -186,9 +180,7 @@ def methods_from_name(self, name: str) -> list[DotNetPEMethod]: # parent Method, optionally returning an adjacent Method using step to # signify the direction of adjacency, and using by_token to determine # whether to calculate adjacency by token or offset - def method_from_instruction_offset( - self, ins_offset: int, step: int = 0, by_token: bool = False - ) -> DotNetPEMethod: + def method_from_instruction_offset(self, ins_offset: int, step: int = 0, by_token: bool = False) -> DotNetPEMethod: for idx, method in enumerate(self._methods_by_offset): if method.offset <= ins_offset < method.offset + method.size: return ( @@ -196,9 +188,7 @@ def method_from_instruction_offset( if by_token else self._methods_by_offset[idx + step] ) - raise ConfigParserException( - f"Could not find method from instruction offset {hex(ins_offset)}" - ) + raise ConfigParserException(f"Could not find method from instruction offset {hex(ins_offset)}") # Given an RVA, returns a data/file offset def offset_from_rva(self, rva: int) -> int: From b0f2da4fd06a1eb130d0baf9d8e2cdd5bb31362a Mon Sep 17 00:00:00 2001 From: Kevin O'Reilly Date: Wed, 9 Oct 2024 13:43:11 +0100 Subject: [PATCH 15/98] Rat King families: fix naming --- data/yara/CAPE/{AsyncRat.yar => AsyncRAT.yar} | 10 +++++----- .../parsers/CAPE/{AsyncRat.py => AsyncRAT.py} | 0 .../parsers/CAPE/{Quasarrat.py => QuasarRAT.py} | 0 .../parsers/CAPE/{VenomRat.py => VenomRAT.py} | 0 .../processing/parsers/CAPE/{Xenorat.py => XenoRAT.py} | 0 5 files changed, 5 insertions(+), 5 deletions(-) rename data/yara/CAPE/{AsyncRat.yar => AsyncRAT.yar} (90%) rename modules/processing/parsers/CAPE/{AsyncRat.py => AsyncRAT.py} (100%) rename modules/processing/parsers/CAPE/{Quasarrat.py => QuasarRAT.py} (100%) rename modules/processing/parsers/CAPE/{VenomRat.py => VenomRAT.py} (100%) rename modules/processing/parsers/CAPE/{Xenorat.py => XenoRAT.py} (100%) diff --git a/data/yara/CAPE/AsyncRat.yar b/data/yara/CAPE/AsyncRAT.yar similarity index 90% rename from data/yara/CAPE/AsyncRat.yar rename to data/yara/CAPE/AsyncRAT.yar index 936299acdfb..84a02f65c2e 100644 --- a/data/yara/CAPE/AsyncRat.yar +++ b/data/yara/CAPE/AsyncRAT.yar @@ -1,9 +1,9 @@ -rule AsyncRat +rule AsyncRAT { meta: author = "kevoreilly, JPCERT/CC Incident Response Group" - description = "AsyncRat Payload" - cape_type = "AsyncRat Payload" + description = "AsyncRAT Payload" + cape_type = "AsyncRAT Payload" strings: $salt = {BF EB 1E 56 FB CD 97 3B B2 19 02 24 30 A5 78 43 00 3D 56 44 D2 1E 62 B9 D4 F1 80 E7 E6 C3 39 41} $b1 = {00 00 00 0D 53 00 48 00 41 00 32 00 35 00 36 00 00} @@ -16,10 +16,10 @@ rule AsyncRat uint16(0) == 0x5A4D and not $kitty and ($salt and (2 of ($str*) or 1 of ($b*))) or (all of ($b*) and 2 of ($str*)) } -rule asyncrat_kingrat { +rule AsyncRAT_kingrat { meta: author = "jeFF0Falltrades" - cape_type = "AsyncRat Payload" + cape_type = "AsyncRAT Payload" strings: $str_async = "AsyncClient" wide ascii nocase diff --git a/modules/processing/parsers/CAPE/AsyncRat.py b/modules/processing/parsers/CAPE/AsyncRAT.py similarity index 100% rename from modules/processing/parsers/CAPE/AsyncRat.py rename to modules/processing/parsers/CAPE/AsyncRAT.py diff --git a/modules/processing/parsers/CAPE/Quasarrat.py b/modules/processing/parsers/CAPE/QuasarRAT.py similarity index 100% rename from modules/processing/parsers/CAPE/Quasarrat.py rename to modules/processing/parsers/CAPE/QuasarRAT.py diff --git a/modules/processing/parsers/CAPE/VenomRat.py b/modules/processing/parsers/CAPE/VenomRAT.py similarity index 100% rename from modules/processing/parsers/CAPE/VenomRat.py rename to modules/processing/parsers/CAPE/VenomRAT.py diff --git a/modules/processing/parsers/CAPE/Xenorat.py b/modules/processing/parsers/CAPE/XenoRAT.py similarity index 100% rename from modules/processing/parsers/CAPE/Xenorat.py rename to modules/processing/parsers/CAPE/XenoRAT.py From c083d182a8fc85d4fc8ff83b7e2fd88add4f2a4a Mon Sep 17 00:00:00 2001 From: Kevin O'Reilly Date: Wed, 9 Oct 2024 15:54:09 +0100 Subject: [PATCH 16/98] Move RAT King family yara sigs from community to main repo --- data/yara/CAPE/DCRat.yar | 87 ++++++++++++++++++++++++++++++++++++ data/yara/CAPE/QuasarRAT.yar | 43 ++++++++++++++++++ data/yara/CAPE/XWorm.yar | 46 +++++++++++++++++++ data/yara/CAPE/XenoRAT.yar | 14 ++++++ 4 files changed, 190 insertions(+) create mode 100644 data/yara/CAPE/DCRat.yar create mode 100644 data/yara/CAPE/QuasarRAT.yar create mode 100644 data/yara/CAPE/XWorm.yar create mode 100644 data/yara/CAPE/XenoRAT.yar diff --git a/data/yara/CAPE/DCRat.yar b/data/yara/CAPE/DCRat.yar new file mode 100644 index 00000000000..4ca7696dfd0 --- /dev/null +++ b/data/yara/CAPE/DCRat.yar @@ -0,0 +1,87 @@ +rule DCRat { + meta: + author = "ditekSHen" + description = "DCRat payload" + cape_type = "DCRat Payload" + strings: + // DCRat + $dc1 = "DCRatBuild" ascii + $dc2 = "DCStlr" ascii + $x1 = "px\">
DCRat Keylogger" wide + $x2 = "DCRat-Log#" wide + $x3 = "DCRat.Code" wide + $string1 = "CaptureBrowsers" fullword ascii + $string2 = "DecryptBrowsers" fullword ascii + $string3 = "Browsers.IE10" ascii + $string4 = "Browsers.Chromium" ascii + $string5 = "WshShell" ascii + $string6 = "SysMngmts" fullword ascii + $string7 = "LoggerData" fullword ascii + // DCRat Plugins/Libraries + $plugin = "DCRatPlugin" fullword ascii + // AntiVM + $av1 = "AntiVM" ascii wide + $av2 = "vmware" fullword wide + $av3 = "VirtualBox" fullword wide + $av4 = "microsoft corporation" fullword wide + $av5 = "VIRTUAL" fullword wide + $av6 = "DetectVirtualMachine" fullword ascii + $av7 = "Select * from Win32_ComputerSystem" fullword wide + // Plugin_AutoStealer, Plugin_AutoKeylogger + $pl1 = "dcratAPI" fullword ascii + $pl2 = "dsockapi" fullword ascii + $pl3 = "file_get_contents" fullword ascii + $pl4 = "classthis" fullword ascii + $pl5 = "typemdt" fullword ascii + $pl6 = "Plugin_AutoStealer" ascii wide + $pl7 = "Plugin_AutoKeylogger" ascii wide + // variant + $v1 = "Plugin couldn't process this action!" wide + $v2 = "Unknown command!" wide + $v3 = "PLUGINCONFIGS" wide + $v4 = "Saving log..." wide + $v5 = "~Work.log" wide + $v6 = "MicrophoneNum" fullword wide + $v7 = "WebcamNum" fullword wide + $v8 = "%SystemDrive% - Slow" wide + $v9 = "%UsersFolder% - Fast" wide + $v10 = "%AppData% - Very Fast" wide + $v11 = /\[(Up|Down|Enter|ESC|CTRL|Shift|Win|Tab|CAPSLOCK: (ON|OFF))\]<\/span>/ wide + $px1 = "[Browsers] Scanned elements: " wide + $px2 = "[Browsers] Grabbing cookies" wide + $px3 = "[Browsers] Grabbing passwords" wide + $px4 = "[Browsers] Grabbing forms" wide + $px5 = "[Browsers] Grabbing CC" wide + $px6 = "[Browsers] Grabbing history" wide + $px7 = "[StealerPlugin] Invoke: " wide + $px8 = "[Other] Grabbing steam" wide + $px9 = "[Other] Grabbing telegram" wide + $px10 = "[Other] Grabbing discord tokens" wide + $px11 = "[Other] Grabbing filezilla" wide + $px12 = "[Other] Screenshots:" wide + $px13 = "[Other] Clipboard" wide + $px14 = "[Other] Saving system information" wide + condition: + uint16(0) == 0x5a4d and (all of ($dc*) or all of ($string*) or 2 of ($x*) or 6 of ($v*) or 5 of ($px*)) or ($plugin and (4 of ($av*) or 5 of ($pl*))) +} + +rule dcrat_kingrat { + meta: + author = "jeFF0Falltrades" + cape_type = "DCRat Payload" + strings: + $venom_1 = "VenomRAT" wide ascii nocase + $venom_2 = "HVNC_REPLY_MESSAGE" wide ascii + $str_aes_exc = "masterKey can not be null or empty" wide ascii + $str_b64_amsi = "YW1zaS5kbGw=" wide ascii + $str_b64_virtual_protect = "VmlydHVhbFByb3RlY3Q=" wide ascii + $str_dcrat = "dcrat" wide ascii nocase + $str_plugin = "save_Plugin" wide ascii + $str_qwqdan = "qwqdan" wide ascii + $byte_aes_key_base = { 7E [3] 04 73 [3] 06 80 } + $patt_config = { 72 [3] 70 80 [3] 04 } + $patt_verify_hash = { 7e [3] 04 6f [3] 0a 6f [3] 0a 74 [3] 01 } + + condition: + (not any of ($venom*)) and 5 of them and #patt_config >= 10 +} diff --git a/data/yara/CAPE/QuasarRAT.yar b/data/yara/CAPE/QuasarRAT.yar new file mode 100644 index 00000000000..8877430d23c --- /dev/null +++ b/data/yara/CAPE/QuasarRAT.yar @@ -0,0 +1,43 @@ +rule QuasarRAT { + meta: + author = "ditekshen" + description = "QuasarRAT payload" + cape_type = "QuasarRAT Payload" + strings: + $s1 = "GetKeyloggerLogsResponse" fullword ascii + $s2 = "GetKeyloggerLogs" fullword ascii + $s3 = "/>Log created on" wide + $s4 = "User: {0}{3}Pass: {1}{3}Host: {2}" wide + $s5 = "Domain: {1}{0}Cookie Name: {2}{0}Value: {3}{0}Path: {4}{0}Expired: {5}{0}HttpOnly: {6}{0}Secure: {7}" wide + $s6 = "grabber_" wide + $s7 = "" ascii + $s8 = "k__BackingField" fullword ascii + $s9 = "" ascii + $s10 = "add_OnHotKeysDown" ascii + $mutex = "QSR_MUTEX_" ascii wide + $ua1 = "Mozilla/5.0 (Windows NT 6.3; rv:48.0) Gecko/20100101 Firefox/48.0" fullword wide + $us2 = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A" fullword wide + condition: + uint16(0) == 0x5a4d and ($mutex or (all of ($ua*) and 2 of them) or 6 of ($s*)) +} + +rule quasarrat_kingrat { + meta: + author = "jeFF0Falltrades" + cape_type = "QuasarRAT Payload" + strings: + $str_quasar = "Quasar." wide ascii + $str_hidden = "set_Hidden" wide ascii + $str_shell = "DoShellExecuteResponse" wide ascii + $str_close = "echo DONT CLOSE THIS WINDOW!" wide ascii + $str_pause = "ping -n 10 localhost > nul" wide ascii + $str_aes_exc = "masterKey can not be null or empty" wide ascii + $byte_aes_key_base = { 7E [3] 04 73 [3] 06 25 } + $byte_aes_salt_base = { BF EB 1E 56 FB CD 97 3B B2 19 } + $byte_special_folder = { 7e 73 [4] 28 [4] 80 } + $patt_config = { 72 [3] 70 80 [3] 04 } + $patt_verify_hash = { 7e [3] 04 6f [3] 0a 6f [3] 0a 74 [3] 01 } + + condition: + 6 of them and #patt_config >= 10 +} diff --git a/data/yara/CAPE/XWorm.yar b/data/yara/CAPE/XWorm.yar new file mode 100644 index 00000000000..76e401a3e47 --- /dev/null +++ b/data/yara/CAPE/XWorm.yar @@ -0,0 +1,46 @@ +rule XWorm { + meta: + author = "ditekSHen" + description = "Detects XWorm" + cape_type = "XWorm Payload" + strings: + $x1 = "XWorm " wide nocase + $x2 = /XWorm\s(V|v)\d+\.\d+/ fullword wide + $s1 = "RunBotKiller" fullword wide + $s2 = "XKlog.txt" fullword wide + $s3 = /(shell|reg)fuc/ fullword wide + $s4 = "closeshell" fullword ascii + $s5 = { 62 00 79 00 70 00 73 00 73 00 00 ?? 63 00 61 00 6c 00 6c 00 75 00 61 00 63 00 00 ?? 73 00 63 00 } + $s6 = { 44 00 44 00 6f 00 73 00 54 00 00 ?? 43 00 69 00 6c 00 70 00 70 00 65 00 72 00 00 ?? 50 00 45 00 } + $s7 = { 69 00 6e 00 6a 00 52 00 75 00 6e 00 00 ?? 73 00 74 00 61 00 72 00 74 00 75 00 73 00 62 } + $s8 = { 48 6f 73 74 00 50 6f 72 74 00 75 70 6c 6f 61 64 65 72 00 6e 61 6d 65 65 65 00 4b 45 59 00 53 50 4c 00 4d 75 74 65 78 78 00 } + $v2_1 = "PING!" fullword wide + $v2_2 = "Urlhide" fullword wide + $v2_3 = /PC(Restart|Shutdown)/ fullword wide + $v2_4 = /(Start|Stop)(DDos|Report)/ fullword wide + $v2_5 = /Offline(Get|Keylogger)/ wide + $v2_6 = "injRun" fullword wide + $v2_7 = "Xchat" fullword wide + $v2_8 = "UACFunc" fullword ascii wide + condition: + uint16(0) == 0x5a4d and ((1 of ($x*) and (3 of ($s*) or 3 of ($v2*))) or 6 of them) +} + +rule xworm_kingrat { + meta: + author = "jeFF0Falltrades" + cape_type = "XWorm payload" + strings: + $str_xworm = "xworm" wide ascii nocase + $str_xwormmm = "Xwormmm" wide ascii + $str_xclient = "XClient" wide ascii + $str_default_log = "\\Log.tmp" wide ascii + $str_create_proc = "/create /f /RL HIGHEST /sc minute /mo 1 /t" wide ascii + $str_ddos_start = "StartDDos" wide ascii + $str_ddos_stop = "StopDDos" wide ascii + $str_timeout = "timeout 3 > NUL" wide ascii + $byte_md5_hash = { 7e [3] 04 28 [3] 06 6f } + $patt_config = { 72 [3] 70 80 [3] 04 } + condition: + 5 of them and #patt_config >= 7 + } diff --git a/data/yara/CAPE/XenoRAT.yar b/data/yara/CAPE/XenoRAT.yar new file mode 100644 index 00000000000..4208eb54c91 --- /dev/null +++ b/data/yara/CAPE/XenoRAT.yar @@ -0,0 +1,14 @@ +rule XenoRAT { + meta: + author = "jeFF0Falltrades" + cape_type = "XenoRAT payload" + strings: + $str_xeno_rat_1 = "xeno rat" wide ascii nocase + $str_xeno_rat_2 = "xeno_rat" wide ascii nocase + $str_xeno_update_mgr = "XenoUpdateManager" wide ascii + $str_nothingset = "nothingset" wide ascii + $byte_enc_dec_pre = { 1f 10 8d [4] (0a | 0b) } + $patt_config = { 72 [3] 70 80 [3] 04 } + condition: + 4 of them and #patt_config >= 5 + } From da5694aff488bb80e8713a63a7cb7cd42264fbe0 Mon Sep 17 00:00:00 2001 From: xiangchen96 Date: Fri, 11 Oct 2024 11:04:22 +0200 Subject: [PATCH 17/98] Only upload_to_host once in browsermonitor (#2346) --- analyzer/windows/modules/auxiliary/browsermonitor.py | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/analyzer/windows/modules/auxiliary/browsermonitor.py b/analyzer/windows/modules/auxiliary/browsermonitor.py index e46e8fbe52c..6989f190b20 100644 --- a/analyzer/windows/modules/auxiliary/browsermonitor.py +++ b/analyzer/windows/modules/auxiliary/browsermonitor.py @@ -27,8 +27,6 @@ def __init__(self, options=None, config=None): self.startupinfo = subprocess.STARTUPINFO() self.startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW self.browser_logfile = "" - self.last_modification = 0.0 - self._is_first_save = True def _find_browser_extension(self): temp_dir = tempfile.gettempdir() @@ -54,22 +52,12 @@ def _find_browser_extension(self): time.sleep(1) def _collect_browser_logs(self): - if not self._is_first_save and self.last_modification != os.path.getmtime(self.browser_logfile): - return - self.last_modification = os.path.getmtime(self.browser_logfile) upload_to_host(self.browser_logfile, "browser/requests.log") - self._is_first_save = False def run(self): self.do_run = True if self.enabled: self._find_browser_extension() - self.last_modification = os.path.getmtime(self.browser_logfile) - while self.do_run: - self._collect_browser_logs() - time.sleep(1) - return True - return False def stop(self): if self.enabled: From b9a4f95dbd703558e4c3111f48271d662dd08a54 Mon Sep 17 00:00:00 2001 From: Josh Feather <142008135+josh-feather@users.noreply.github.com> Date: Fri, 11 Oct 2024 10:05:00 +0100 Subject: [PATCH 18/98] Adds private auxiliary module configuration option (#2345) This adds a new `configure_from_data` method to analyzer.windows.lib.common.abstracts.Auxiliary. This optional method provides the ability to run private auxiliary-specific configuration code from `data.packages.`. If an auxiliary module doesn't provide a `configure_from_data` method, it's logged but ignored. --- analyzer/windows/analyzer.py | 16 ++++++++ analyzer/windows/lib/common/abstracts.py | 26 ++++++++++++ docs/book/src/customization/auxiliary.rst | 49 +++++++++++++++++++++++ 3 files changed, 91 insertions(+) diff --git a/analyzer/windows/analyzer.py b/analyzer/windows/analyzer.py index 7c5694e84e5..c4543a2d419 100644 --- a/analyzer/windows/analyzer.py +++ b/analyzer/windows/analyzer.py @@ -509,6 +509,21 @@ def run(self): except ImportError as e: log.warning('Unable to import the auxiliary module "%s": %s', name, e) + def configure_aux_from_data(instance): + # Do auxiliary module configuration stored in 'data/auxiliary/' + _class = type(instance) + try: + log.debug("attempting to configure '%s' from data", _class.__name__) + instance.configure_from_data() + except ModuleNotFoundError: + # let it go, not every module is configurable from data + log.debug("module %s does not support data configuration, ignoring", _class.__name__) + except ImportError as iexc: + # let it go but emit a warning; assume a dependency is missing + log.warning("configuration error for module %s: %s", _class.__name__, iexc) + except Exception as exc: + log.error("error configuring module %s: %s", _class.__name__, exc) + # Walk through the available auxiliary modules. aux_modules = [] @@ -517,6 +532,7 @@ def run(self): aux = module(self.options, self.config) log.debug('Initialized auxiliary module "%s"', module.__name__) aux_modules.append(aux) + configure_aux_from_data(aux) log.debug('Trying to start auxiliary module "%s"...', module.__module__) aux.start() except (NotImplementedError, AttributeError) as e: diff --git a/analyzer/windows/lib/common/abstracts.py b/analyzer/windows/lib/common/abstracts.py index 6cd05214b10..595ec6d2860 100644 --- a/analyzer/windows/lib/common/abstracts.py +++ b/analyzer/windows/lib/common/abstracts.py @@ -322,3 +322,29 @@ def add_pid(self, pid): def del_pid(self, pid): pass + + def configure_from_data(self): + """Do private auxiliary module-specific configuration. + + Auxiliary modules can implement this method to perform pre-analysis + configuration based on runtime data contained in "data/auxiliary/". + + This method raises: + - ImportError when any exception occurs during import + - AttributeError if the module configure function is invalid + - ModuleNotFoundError if the module does not support configuration from data + """ + package_module_name = self.__class__.__module__.split(".")[-1] + module_name = f"data.auxiliary.{package_module_name}" + try: + mod = importlib.import_module(module_name) + except ModuleNotFoundError as exc: + raise exc + except Exception as exc: + raise ImportError(f"error importing {module_name}: {exc}") from exc + + spec = inspect.getfullargspec(mod.configure) + if len(spec.args) != 1: + err_msg = f"{module_name}.configure: expected 1 arguments, got {len(spec.args)}" + raise AttributeError(err_msg) + mod.configure(self) diff --git a/docs/book/src/customization/auxiliary.rst b/docs/book/src/customization/auxiliary.rst index e858f4c8ba8..48b98801f7a 100644 --- a/docs/book/src/customization/auxiliary.rst +++ b/docs/book/src/customization/auxiliary.rst @@ -27,3 +27,52 @@ very end of the analysis process, before launching the processing and reporting For example, an auxiliary module provided by default in CAPE is called *sniffer.py* and takes care of executing **tcpdump** in order to dump the generated network traffic. + +Auxiliary Module Configuration +============================== + +Auxiliary modules can be "configured" before being started. This allows data to be added +at runtime, whilst also allowing for the configuration to be stored separately from the +CAPE python code. + +Private Auxiliary Module Configuration +-------------------------------------- + +Private auxiliary module configuration is stored outside the auxiliary class, in a module +under the same name as the auxiliary module. This is useful when managing configuration +of auxiliary modules separately if desired, for privacy reasons or otherwise. + +Here is a configuration module example that installs some software prior to the auxiliary +module starting: + + .. code-block:: python + :linenos: + + # data/auxiliary/example.py + import subprocess + import logging + from pathlib import Path + + log = logging.getLogger(__name__) + BIN_PATH = Path.cwd() / "bin" + + + def configure(aux_instance): + # here "example" refers to modules.auxiliary.example.Example + if not aux_instance.enabled: + return + msi = aux_instance.options.get("example_msi") + if not msi: + return + msi_path = BIN_PATH / msi + if not msi_path.exists(): + log.warning("missing MSI %s", msi_path) + return + cmd = ["msiexec", "/i", msi_path, "/quiet"] + try: + log.info("Executing msi package...") + subprocess.check_output(cmd) + log.info("Installation succesful") + except subprocess.CalledProcessError as exc: + log.error("Installation failed: %s", exc) + return From d7ed557496908345ec4a2cedc25a91ff05b0d7b5 Mon Sep 17 00:00:00 2001 From: Josh Feather <142008135+josh-feather@users.noreply.github.com> Date: Fri, 11 Oct 2024 11:26:25 +0100 Subject: [PATCH 19/98] Disable analysis log truncation if buffer is configured to 0 (#2347) --- lib/cuckoo/common/utils.py | 12 ++++++++++++ modules/processing/debug.py | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/cuckoo/common/utils.py b/lib/cuckoo/common/utils.py index ab5be1d231a..4446d280843 100644 --- a/lib/cuckoo/common/utils.py +++ b/lib/cuckoo/common/utils.py @@ -342,6 +342,18 @@ def convert_to_printable_and_truncate(s: str, buf: int, cache=None): return convert_to_printable(f"{s[:buf]} " if len(s) > buf else s, cache=cache) +def truncate_str(s: str, max_length: int, marker=" "): + """Truncate a string if its length exceeds the configured `max_length`. + + If `max_length` is less than or equal to 0, the string is not modified. + If the string is truncated, `marker` is added to the end.""" + truncate_size = min(max_length, len(s)) + if truncate_size > 0 and truncate_size < len(s): + return f"{s[:truncate_size]}{marker}" + else: + return s + + def convert_filename_char(c): """Escapes filename characters. @param c: dirty char. diff --git a/modules/processing/debug.py b/modules/processing/debug.py index 61ce5c3a1cf..6d861dbf6fa 100644 --- a/modules/processing/debug.py +++ b/modules/processing/debug.py @@ -7,6 +7,7 @@ from lib.cuckoo.common.abstracts import Processing from lib.cuckoo.common.exceptions import CuckooProcessingError from lib.cuckoo.common.path_utils import path_exists +from lib.cuckoo.common.utils import truncate_str from lib.cuckoo.core.database import Database @@ -24,7 +25,7 @@ def run(self): try: buf_size = self.options.get("buffer", 8192) content = codecs.open(self.log_path, "rb", "utf-8").read() - debug["log"] = content[:buf_size] + " " if len(content) > buf_size else content + debug["log"] = truncate_str(content, buf_size) except ValueError as e: raise CuckooProcessingError(f"Error decoding {self.log_path}: {e}") from e except (IOError, OSError) as e: From ef469a9afcbf10de532cbadcb07f488c95fdfd5c Mon Sep 17 00:00:00 2001 From: Josh Feather <142008135+josh-feather@users.noreply.github.com> Date: Fri, 11 Oct 2024 11:26:39 +0100 Subject: [PATCH 20/98] Contextual window titles (#2343) * Make window titles more contextual * Add resubmit link to status page when a task is 'failed_analysis' * Remove unnecessary f-string --- data/html/base-report.html | 4 ++++ web/analysis/views.py | 26 +++++++++++++++++--------- web/apiv2/views.py | 2 +- web/compare/views.py | 7 ++++++- web/dashboard/views.py | 6 +++++- web/submission/views.py | 18 ++++++++++++++++-- web/templates/header.html | 4 ++++ web/templates/submission/status.html | 7 ++++++- 8 files changed, 59 insertions(+), 15 deletions(-) diff --git a/data/html/base-report.html b/data/html/base-report.html index b7dddd52bff..60fcb615486 100644 --- a/data/html/base-report.html +++ b/data/html/base-report.html @@ -22,7 +22,11 @@ +{% if title %} +{{ title|add:" · CAPE Sandbox" }} +{% else %} CAPE Sandbox +{% endif %} diff --git a/web/analysis/views.py b/web/analysis/views.py index 1e7b699dd41..58ddd693fd1 100644 --- a/web/analysis/views.py +++ b/web/analysis/views.py @@ -502,6 +502,7 @@ def index(request, page=1): request, "analysis/index.html", { + "title": "Recent Analysis", "files": analyses_files, "static": analyses_static, "urls": analyses_urls, @@ -534,7 +535,12 @@ def pending(request): } ) - return render(request, "analysis/pending.html", {"tasks": pending, "count": len(pending)}) + data = { + "tasks": pending, + "count": len(pending), + "title": "Pending Tasks" + } + return render(request, "analysis/pending.html", data) # @require_safe @@ -1701,6 +1707,7 @@ def report(request, task_id): request, "analysis/report.html", { + "title": "Analysis Report", "analysis": report, # ToDo test "file": report.get("target", {}).get("file", {}), @@ -2183,7 +2190,7 @@ def search(request, searched=""): return render( request, "analysis/search.html", - {"analyses": None, "term": searched, "error": "Search term too short, minimum 3 characters required"}, + {"title": "Search", "analyses": None, "term": searched, "error": "Search term too short, minimum 3 characters required"}, ) # name:foo or name: foo @@ -2210,7 +2217,7 @@ def search(request, searched=""): return render( request, "analysis/search.html", - {"analyses": None, "term": searched, "error": "Not all values are integers"}, + {"title": "Search", "analyses": None, "term": searched, "error": "Not all values are integers"}, ) # Escape forward slash characters @@ -2226,13 +2233,13 @@ def search(request, searched=""): return render( request, "analysis/search.html", - {"analyses": None, "term": searched, "error": "Invalid search term: %s" % term}, + {"title": "Search", "analyses": None, "term": searched, "error": "Invalid search term: %s" % term}, ) else: return render( request, "analysis/search.html", - {"analyses": None, "term": None, "error": "Unable to recognize the search syntax"}, + {"title": "Search", "analyses": None, "term": None, "error": "Unable to recognize the search syntax"}, ) analyses = [] @@ -2252,6 +2259,7 @@ def search(request, searched=""): request, "analysis/search.html", { + "title": "Search Results", "analyses": analyses, "config": enabledconf, "term": searched, @@ -2260,7 +2268,7 @@ def search(request, searched=""): "value_only": value_only, }, ) - return render(request, "analysis/search.html", {"analyses": None, "term": None, "error": None}) + return render(request, "analysis/search.html", {"title": "Search", "analyses": None, "term": None, "error": None}) @require_safe @@ -2461,10 +2469,10 @@ def statistics_data(request, days=7): # psycopg2.OperationalError print(e) return render( - request, "error.html", {"error": "Please restart your database. Probably it had an update or it just down"} + request, "error.html", {"title": "Statistics", "error": "Please restart your database. Probably it had an update or it just down"} ) - return render(request, "statistics.html", {"statistics": details, "days": days}) - return render(request, "error.html", {"error": "Provide days as number"}) + return render(request, "statistics.html", {"title": "Statistics", "statistics": details, "days": days}) + return render(request, "error.html", {"title": "Statistics", "error": "Provide days as number"}) on_demand_config_mapper = { diff --git a/web/apiv2/views.py b/web/apiv2/views.py index 087c9a7794f..ff1bf410c16 100644 --- a/web/apiv2/views.py +++ b/web/apiv2/views.py @@ -170,7 +170,7 @@ def index(request): parsed[key]["rps"] = "None" parsed[key]["rpm"] = "None" - return render(request, "apiv2/index.html", {"config": parsed}) + return render(request, "apiv2/index.html", {"title":"API", "config": parsed}) @csrf_exempt diff --git a/web/compare/views.py b/web/compare/views.py index 94ee2626946..abfb5d1ab98 100644 --- a/web/compare/views.py +++ b/web/compare/views.py @@ -84,7 +84,12 @@ def left(request, left_id): for item in results: records.append(item["_source"]) - return render(request, "compare/left.html", {"left": left, "records": records}) + data = { + "title": "Compare", + "left": left, + "records": records + } + return render(request, "compare/left.html", data) @require_safe diff --git a/web/dashboard/views.py b/web/dashboard/views.py index 76191a8fd7b..ecec4c540b2 100644 --- a/web/dashboard/views.py +++ b/web/dashboard/views.py @@ -91,4 +91,8 @@ def index(request): report["estimate_day"] = format_number_with_space(int(24 * hourly)) report["top_detections"] = top_detections() - return render(request, "dashboard/index.html", {"report": report}) + data = { + "title": "Dashboard", + "report": report + } + return render(request, "dashboard/index.html", data) diff --git a/web/submission/views.py b/web/submission/views.py index 44827af8a98..6aeb4cf4332 100644 --- a/web/submission/views.py +++ b/web/submission/views.py @@ -646,6 +646,7 @@ def index(request, task_id=None, resubmit_hash=None): tasks_count = 0 if tasks_count > 0: data = { + "title": "Submission", "tasks": details["task_ids"], "tasks_count": tasks_count, "errors": details["errors"], @@ -654,7 +655,12 @@ def index(request, task_id=None, resubmit_hash=None): } return render(request, "submission/complete.html", data) else: - return render(request, "error.html", {"error": "Error adding task(s) to CAPE's database.", "errors": details["errors"]}) + err_data = { + "error": "Error adding task(s) to CAPE's database.", + "errors": details["errors"], + "title": "Submission Failure" + } + return render(request, "error.html", err_data) else: enabledconf = {} enabledconf["vt"] = settings.VTDL_ENABLED @@ -753,6 +759,7 @@ def index(request, task_id=None, resubmit_hash=None): request, "submission/index.html", { + "title": "Submit", "packages": sorted(packages, key=lambda i: i["name"].lower()), "machines": machines, "vpns": vpns_data, @@ -785,7 +792,14 @@ def status(request, task_id): if status == "completed": status = "processing" - response = {"completed": completed, "status": status, "task_id": task_id, "session_data": ""} + response = { + "title": "Task Status", + "completed": completed, + "status": status, + "task_id": task_id, + "session_data": "", + "target": task.sample.sha256 if task.sample.sha256 else task.target, + } if settings.REMOTE_SESSION: machine = db.view_machine_by_label(task.machine) if machine: diff --git a/web/templates/header.html b/web/templates/header.html index 52f4ce26f13..033d8508aec 100644 --- a/web/templates/header.html +++ b/web/templates/header.html @@ -2,7 +2,11 @@ +{% if title %} +{{ title|add:" · CAPE Sandbox" }} +{% else %} CAPE Sandbox +{% endif %} diff --git a/web/templates/submission/status.html b/web/templates/submission/status.html index fbc2933a96e..cc5d42217d0 100644 --- a/web/templates/submission/status.html +++ b/web/templates/submission/status.html @@ -3,10 +3,15 @@ {% if completed %} +{% elif status == "failed_analysis" %} +
+

Status for task {{task_id}} - {{ target }}

+

The analysis failed with status '{{status}}'. Click here to resubmit.

+
{% else %}
-

Hang on...

+

Status for task {{task_id}} - {{ target }}

The analysis is not finished yet, it's still {{status}}. This page will refresh every 30 seconds.

{% if session_data %}

To view the Remote Session - click here.

From b8f54518f9d5089da1ce608588d1050f6a5bbad0 Mon Sep 17 00:00:00 2001 From: doomedraven Date: Fri, 11 Oct 2024 12:28:23 +0200 Subject: [PATCH 21/98] Update action.yml --- .github/actions/python-setup/action.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/python-setup/action.yml b/.github/actions/python-setup/action.yml index 83d8f6c35f7..4608efbbd9c 100644 --- a/.github/actions/python-setup/action.yml +++ b/.github/actions/python-setup/action.yml @@ -16,7 +16,7 @@ runs: - name: Install poetry shell: bash - run: pip install poetry + run: PIP_BREAK_SYSTEM_PACKAGES=1 pip install poetry - name: Set up Python ${{ inputs.python-version }} uses: actions/setup-python@v5 @@ -27,4 +27,4 @@ runs: - name: Install requirements shell: bash run: | - poetry install --no-interaction --no-root + PIP_BREAK_SYSTEM_PACKAGES=1 poetry install --no-interaction --no-root From 0127eceef8e522668fd283e06baebc362ff38551 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Fri, 11 Oct 2024 10:30:16 +0000 Subject: [PATCH 22/98] style: Automatic code formatting --- analyzer/windows/analyzer.py | 2 +- lib/cuckoo/common/utils.py | 18 +++++++++--------- web/analysis/views.py | 17 ++++++++++------- web/apiv2/views.py | 2 +- web/compare/views.py | 6 +----- web/dashboard/views.py | 5 +---- web/submission/views.py | 2 +- 7 files changed, 24 insertions(+), 28 deletions(-) diff --git a/analyzer/windows/analyzer.py b/analyzer/windows/analyzer.py index c4543a2d419..deb7a583b87 100644 --- a/analyzer/windows/analyzer.py +++ b/analyzer/windows/analyzer.py @@ -510,7 +510,7 @@ def run(self): log.warning('Unable to import the auxiliary module "%s": %s', name, e) def configure_aux_from_data(instance): - # Do auxiliary module configuration stored in 'data/auxiliary/' + # Do auxiliary module configuration stored in 'data/auxiliary/' _class = type(instance) try: log.debug("attempting to configure '%s' from data", _class.__name__) diff --git a/lib/cuckoo/common/utils.py b/lib/cuckoo/common/utils.py index 4446d280843..829aa5006a4 100644 --- a/lib/cuckoo/common/utils.py +++ b/lib/cuckoo/common/utils.py @@ -343,15 +343,15 @@ def convert_to_printable_and_truncate(s: str, buf: int, cache=None): def truncate_str(s: str, max_length: int, marker=" "): - """Truncate a string if its length exceeds the configured `max_length`. - - If `max_length` is less than or equal to 0, the string is not modified. - If the string is truncated, `marker` is added to the end.""" - truncate_size = min(max_length, len(s)) - if truncate_size > 0 and truncate_size < len(s): - return f"{s[:truncate_size]}{marker}" - else: - return s + """Truncate a string if its length exceeds the configured `max_length`. + + If `max_length` is less than or equal to 0, the string is not modified. + If the string is truncated, `marker` is added to the end.""" + truncate_size = min(max_length, len(s)) + if truncate_size > 0 and truncate_size < len(s): + return f"{s[:truncate_size]}{marker}" + else: + return s def convert_filename_char(c): diff --git a/web/analysis/views.py b/web/analysis/views.py index 58ddd693fd1..fd3c7158516 100644 --- a/web/analysis/views.py +++ b/web/analysis/views.py @@ -535,11 +535,7 @@ def pending(request): } ) - data = { - "tasks": pending, - "count": len(pending), - "title": "Pending Tasks" - } + data = {"tasks": pending, "count": len(pending), "title": "Pending Tasks"} return render(request, "analysis/pending.html", data) @@ -2190,7 +2186,12 @@ def search(request, searched=""): return render( request, "analysis/search.html", - {"title": "Search", "analyses": None, "term": searched, "error": "Search term too short, minimum 3 characters required"}, + { + "title": "Search", + "analyses": None, + "term": searched, + "error": "Search term too short, minimum 3 characters required", + }, ) # name:foo or name: foo @@ -2469,7 +2470,9 @@ def statistics_data(request, days=7): # psycopg2.OperationalError print(e) return render( - request, "error.html", {"title": "Statistics", "error": "Please restart your database. Probably it had an update or it just down"} + request, + "error.html", + {"title": "Statistics", "error": "Please restart your database. Probably it had an update or it just down"}, ) return render(request, "statistics.html", {"title": "Statistics", "statistics": details, "days": days}) return render(request, "error.html", {"title": "Statistics", "error": "Provide days as number"}) diff --git a/web/apiv2/views.py b/web/apiv2/views.py index ff1bf410c16..0fb0babfa49 100644 --- a/web/apiv2/views.py +++ b/web/apiv2/views.py @@ -170,7 +170,7 @@ def index(request): parsed[key]["rps"] = "None" parsed[key]["rpm"] = "None" - return render(request, "apiv2/index.html", {"title":"API", "config": parsed}) + return render(request, "apiv2/index.html", {"title": "API", "config": parsed}) @csrf_exempt diff --git a/web/compare/views.py b/web/compare/views.py index abfb5d1ab98..0ab3b65f048 100644 --- a/web/compare/views.py +++ b/web/compare/views.py @@ -84,11 +84,7 @@ def left(request, left_id): for item in results: records.append(item["_source"]) - data = { - "title": "Compare", - "left": left, - "records": records - } + data = {"title": "Compare", "left": left, "records": records} return render(request, "compare/left.html", data) diff --git a/web/dashboard/views.py b/web/dashboard/views.py index ecec4c540b2..c31e2d332df 100644 --- a/web/dashboard/views.py +++ b/web/dashboard/views.py @@ -91,8 +91,5 @@ def index(request): report["estimate_day"] = format_number_with_space(int(24 * hourly)) report["top_detections"] = top_detections() - data = { - "title": "Dashboard", - "report": report - } + data = {"title": "Dashboard", "report": report} return render(request, "dashboard/index.html", data) diff --git a/web/submission/views.py b/web/submission/views.py index 6aeb4cf4332..dcf6d42d411 100644 --- a/web/submission/views.py +++ b/web/submission/views.py @@ -658,7 +658,7 @@ def index(request, task_id=None, resubmit_hash=None): err_data = { "error": "Error adding task(s) to CAPE's database.", "errors": details["errors"], - "title": "Submission Failure" + "title": "Submission Failure", } return render(request, "error.html", err_data) else: From eb1570dcd2d7519d6f40f7e3c166bd4fe566cdb8 Mon Sep 17 00:00:00 2001 From: Kevin O'Reilly Date: Fri, 11 Oct 2024 16:33:10 +0100 Subject: [PATCH 23/98] Fixes #2339 --- analyzer/windows/data/yara/Formbook.yar | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/analyzer/windows/data/yara/Formbook.yar b/analyzer/windows/data/yara/Formbook.yar index 732310fc320..a1d3d50adf6 100644 --- a/analyzer/windows/data/yara/Formbook.yar +++ b/analyzer/windows/data/yara/Formbook.yar @@ -18,13 +18,14 @@ rule FormhookB meta: author = "kevoreilly" description = "Formbook Anti-hook Bypass" - cape_options = "clear,bp0=$decode,action0=scan,hc0=1,bp1=$remap_ntdll+6,action1=setdst:ntdll,count=0,force-sleepskip=1" + cape_options = "clear,bp0=$entry,action0=scan,hc0=1,bp1=$new_remap+6,action1=setdst:ntdll,count=0,force-sleepskip=1" packed = "08c5f44d57f5ccc285596b3d9921bf7fbbbf7f9a827bb3285a800e4c9faf6731" strings: - $decode = {55 8B EC 83 EC 24 53 56 57 [480-520] 8B E5 5D C3} - $remap_ntdll = {90 90 90 90 90 90 8B (86 [2] 00 00|46 ??|06) 5F 5E 5B 8B E5 5D C3} + $remap_ntdll = {33 96 [2] 00 00 8D 86 [2] 00 00 68 F0 00 00 00 50 89 [2-5] E8 [4-10] 6A 00 6A 0? 8D 4D ?? 51 6A} + $entry = {55 8B EC 83 EC ?4 53 56 57 [480-520] 8B E5 5D C3} + $new_remap = {90 90 90 90 90 90 8B (86 [2] 00 00|46 ??|06) 5F 5E 5B 8B E5 5D C3} condition: - any of them + 2 of them } rule FormconfA From d43245f28a73020d39b67bbe6349ccb0f2e2b8ff Mon Sep 17 00:00:00 2001 From: doomedraven Date: Sun, 13 Oct 2024 21:28:46 +0200 Subject: [PATCH 24/98] Update disguise.py --- analyzer/windows/modules/auxiliary/disguise.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/analyzer/windows/modules/auxiliary/disguise.py b/analyzer/windows/modules/auxiliary/disguise.py index 062dd22bd5c..aaa19e8f454 100644 --- a/analyzer/windows/modules/auxiliary/disguise.py +++ b/analyzer/windows/modules/auxiliary/disguise.py @@ -244,9 +244,9 @@ def randomizeUUID(self): SetValueEx(key, "MachineGuid", 0, REG_SZ, createdUUID) def add_persistent_route(self): - self.run_as_system(["C:\\Windows\\System32\ROUTE.exe", "-p", "add", "0.0.0.0", "mask", "0.0.0.0", PERSISTENT_ROUTE_GATEWAY]) + self.run_as_system(["C:\\Windows\\System32\\ROUTE.exe", "-p", "add", "0.0.0.0", "mask", "0.0.0.0", PERSISTENT_ROUTE_GATEWAY]) self.run_as_system( - ["C:\\Windows\\System32\ROUTE.exe", "-p", "change", "0.0.0.0", "mask", "0.0.0.0", PERSISTENT_ROUTE_GATEWAY] + ["C:\\Windows\\System32\\ROUTE.exe", "-p", "change", "0.0.0.0", "mask", "0.0.0.0", PERSISTENT_ROUTE_GATEWAY] ) def start(self): From 19bf9ec0e45068d0092e5765a008218e2baa4219 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Sun, 13 Oct 2024 19:29:40 +0000 Subject: [PATCH 25/98] style: Automatic code formatting --- analyzer/windows/modules/auxiliary/disguise.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/analyzer/windows/modules/auxiliary/disguise.py b/analyzer/windows/modules/auxiliary/disguise.py index aaa19e8f454..9f8745dbe4c 100644 --- a/analyzer/windows/modules/auxiliary/disguise.py +++ b/analyzer/windows/modules/auxiliary/disguise.py @@ -244,7 +244,9 @@ def randomizeUUID(self): SetValueEx(key, "MachineGuid", 0, REG_SZ, createdUUID) def add_persistent_route(self): - self.run_as_system(["C:\\Windows\\System32\\ROUTE.exe", "-p", "add", "0.0.0.0", "mask", "0.0.0.0", PERSISTENT_ROUTE_GATEWAY]) + self.run_as_system( + ["C:\\Windows\\System32\\ROUTE.exe", "-p", "add", "0.0.0.0", "mask", "0.0.0.0", PERSISTENT_ROUTE_GATEWAY] + ) self.run_as_system( ["C:\\Windows\\System32\\ROUTE.exe", "-p", "change", "0.0.0.0", "mask", "0.0.0.0", PERSISTENT_ROUTE_GATEWAY] ) From 6db9ea74400c04ce8704fb9feacaa1d6033d500f Mon Sep 17 00:00:00 2001 From: doomedraven Date: Mon, 14 Oct 2024 15:37:23 +0200 Subject: [PATCH 26/98] expose demux error msgs (#2349) --- conf/default/web.conf.default | 4 +- lib/cuckoo/common/demux.py | 77 ++++++++++++++----- .../common/integrations/file_extra_info.py | 3 + lib/cuckoo/common/web_utils.py | 2 +- lib/cuckoo/core/database.py | 19 ++++- modules/processing/CAPE.py | 2 +- tests/test_demux.py | 5 +- tests/test_objects.py | 4 +- utils/submit.py | 1 + web/apiv2/views.py | 27 ++++++- web/submission/views.py | 25 +++++- 11 files changed, 134 insertions(+), 35 deletions(-) diff --git a/conf/default/web.conf.default b/conf/default/web.conf.default index 476e9164ee1..5d9538a18e4 100644 --- a/conf/default/web.conf.default +++ b/conf/default/web.conf.default @@ -78,8 +78,10 @@ enabled = no #enable linux fields on webgui [linux] -#For advanced users only, can be buggy, linux analysis is work in progress for fun +# For advanced users only, can be buggy, linux analysis is work in progress for fun enabled = no +# independent of enabled or not. To not show linux options, but process statically those files +static_only = no [malscore] enabled = no diff --git a/lib/cuckoo/common/demux.py b/lib/cuckoo/common/demux.py index d1287553b8e..2960d19fe30 100644 --- a/lib/cuckoo/common/demux.py +++ b/lib/cuckoo/common/demux.py @@ -32,7 +32,7 @@ cuckoo_conf = Config() web_cfg = Config("web") tmp_path = cuckoo_conf.cuckoo.get("tmppath", "/tmp") -linux_enabled = web_cfg.linux.get("enabled", False) +linux_enabled = web_cfg.linux.get("enabled", False) or web_cfg.linux.get("static_only", False) demux_extensions_list = { b".accdr", @@ -162,7 +162,8 @@ def is_valid_package(package: str) -> bool: return any(ptype in package for ptype in VALID_PACKAGES) -def _sf_children(child: sfFile) -> bytes: +# ToDo fix return type +def _sf_children(child: sfFile): # -> bytes: path_to_extract = "" _, ext = os.path.splitext(child.filename) ext = ext.lower() @@ -184,15 +185,17 @@ def _sf_children(child: sfFile) -> bytes: _ = path_write_file(path_to_extract, child.contents) except Exception as e: log.error(e, exc_info=True) - return path_to_extract.encode() + return (path_to_extract.encode(), child.platform, child.get_type(), child.get_size()) -def demux_sflock(filename: bytes, options: str, check_shellcode: bool = True) -> List[bytes]: +# ToDo fix typing need to add str as error msg +def demux_sflock(filename: bytes, options: str, check_shellcode: bool = True): # -> List[bytes]: retlist = [] # do not extract from .bin (downloaded from us) if os.path.splitext(filename)[1] == b".bin": - return retlist + return retlist, "" + # ToDo need to introduce error msgs here try: password = options2passwd(options) or "infected" try: @@ -201,9 +204,13 @@ def demux_sflock(filename: bytes, options: str, check_shellcode: bool = True) -> unpacked = unpack(filename, check_shellcode=check_shellcode) if unpacked.package in whitelist_extensions: - return [filename] + file = File(filename) + magic_type = file.get_type() + platform = file.get_platform() + file_size = file.get_size() + return [filename, platform, magic_type, file_size], "" if unpacked.package in blacklist_extensions: - return [filename] + return [], "blacklisted package" for sf_child in unpacked.children: if sf_child.to_dict().get("children"): retlist.extend(_sf_children(ch) for ch in sf_child.children) @@ -214,7 +221,7 @@ def demux_sflock(filename: bytes, options: str, check_shellcode: bool = True) -> retlist.append(_sf_children(sf_child)) except Exception as e: log.error(e, exc_info=True) - return list(filter(None, retlist)) + return list(filter(None, retlist)), "" def demux_sample(filename: bytes, package: str, options: str, use_sflock: bool = True, platform: str = ""): # -> tuple[bytes, str]: @@ -227,21 +234,29 @@ def demux_sample(filename: bytes, package: str, options: str, use_sflock: bool = if isinstance(filename, str) and use_sflock: filename = filename.encode() + error_list = [] retlist = [] # if a package was specified, trim if allowed and required if package: - if package in ("msix",): retlist.append((filename, "windows")) else: if File(filename).get_size() <= web_cfg.general.max_sample_size or ( web_cfg.general.allow_ignore_size and "ignore_size_check" in options ): - retlist.append((filename, platform)) + retlist.append((filename, platform, "")) else: if web_cfg.general.enable_trim and trim_file(filename): retlist.append((trimmed_path(filename), platform)) - return retlist + else: + error_list.append( + { + os.path.basename( + filename + ): "File too bit, enable 'allow_ignore_size' in web.conf or use 'ignore_size_check' option" + } + ) + return retlist, error_list # handle quarantine files tmp_path = unquarantine(filename) @@ -259,9 +274,16 @@ def demux_sample(filename: bytes, package: str, options: str, use_sflock: bool = if use_sflock: if HAS_SFLOCK: retlist = demux_office(filename, password, platform) - return retlist + return retlist, error_list else: log.error("Detected password protected office file, but no sflock is installed: poetry install") + error_list.append( + { + os.path.basename( + filename + ): "Detected password protected office file, but no sflock is installed or correct password provided" + } + ) # don't try to extract from Java archives or executables if ( @@ -279,7 +301,14 @@ def demux_sample(filename: bytes, package: str, options: str, use_sflock: bool = else: if web_cfg.general.enable_trim and trim_file(filename): retlist.append((trimmed_path(filename), platform)) - return retlist + else: + error_list.append( + { + os.path.basename(filename), + "File too bit, enable 'allow_ignore_size' in web.conf or use 'ignore_size_check' option", + } + ) + return retlist, error_list new_retlist = [] @@ -288,26 +317,34 @@ def demux_sample(filename: bytes, package: str, options: str, use_sflock: bool = check_shellcode = False # all in one unarchiver - retlist = demux_sflock(filename, options, check_shellcode) if HAS_SFLOCK and use_sflock else [] + retlist, error_msg = demux_sflock(filename, options, check_shellcode) if HAS_SFLOCK and use_sflock else [] # if it isn't a ZIP or an email, or we aren't able to obtain anything interesting from either, then just submit the # original file if not retlist: + if error_msg: + error_list.append({os.path.basename(filename), error_msg}) new_retlist.append((filename, platform)) else: - for filename in retlist: + for filename, platform, magic_type, file_size in retlist: # verify not Windows binaries here: - file = File(filename) - magic_type = file.get_type() - platform = file.get_platform() if platform == "linux" and not linux_enabled and "Python" not in magic_type: + error_list.append({os.path.basename(filename): "Linux processing is disabled"}) continue - if file.get_size() > web_cfg.general.max_sample_size and not ( + if file_size > web_cfg.general.max_sample_size and not ( web_cfg.general.allow_ignore_size and "ignore_size_check" in options ): if web_cfg.general.enable_trim: # maybe identify here if trim_file(filename): filename = trimmed_path(filename) + else: + error_list.append( + { + os.path.basename(filename), + "File too bit, enable 'allow_ignore_size' in web.conf or use 'ignore_size_check' option", + } + ) new_retlist.append((filename, platform)) - return new_retlist[:10] + + return new_retlist[:10], error_list diff --git a/lib/cuckoo/common/integrations/file_extra_info.py b/lib/cuckoo/common/integrations/file_extra_info.py index 25555f87359..f582aac1bd0 100644 --- a/lib/cuckoo/common/integrations/file_extra_info.py +++ b/lib/cuckoo/common/integrations/file_extra_info.py @@ -820,6 +820,9 @@ def SevenZip_unpack(file: str, *, filetype: str, data_dictionary: dict, options: ): return + if all([pattern in file_data for pattern in (b"AndroidManifest.xml", b"classes.dex")]): + return + password = "" # Only for real 7zip, breaks others password = options.get("password", "infected") diff --git a/lib/cuckoo/common/web_utils.py b/lib/cuckoo/common/web_utils.py index 4b0de852f48..f47fa29f80a 100644 --- a/lib/cuckoo/common/web_utils.py +++ b/lib/cuckoo/common/web_utils.py @@ -766,7 +766,7 @@ def download_file(**kwargs): if not onesuccess: return "error", {"error": f"Provided hash not found on {kwargs['service']}"} - return "ok", kwargs["task_ids"] + return "ok", kwargs["task_ids"], extra_details.get("erros", []) def save_script_to_storage(task_ids, kwargs): diff --git a/lib/cuckoo/core/database.py b/lib/cuckoo/core/database.py index eb643b56d75..a549b1b870f 100644 --- a/lib/cuckoo/core/database.py +++ b/lib/cuckoo/core/database.py @@ -119,6 +119,7 @@ distconf = Config("distributed") web_conf = Config("web") LINUX_ENABLED = web_conf.linux.enabled +LINUX_STATIC = web_conf.linux.static_only DYNAMIC_ARCH_DETERMINATION = web_conf.general.dynamic_arch_determination if repconf.mongodb.enabled: @@ -1538,7 +1539,7 @@ def demux_sample_and_add_to_db( package, _ = self._identify_aux_func(file_path, package, check_shellcode=check_shellcode) # extract files from the (potential) archive - extracted_files = demux_sample(file_path, package, options, platform=platform) + extracted_files, demux_error_msgs = demux_sample(file_path, package, options, platform=platform) # check if len is 1 and the same file, if diff register file, and set parent if extracted_files and (file_path, platform) not in extracted_files: sample_parent_id = self.register_sample(File(file_path), source_url=source_url) @@ -1547,6 +1548,18 @@ def demux_sample_and_add_to_db( # create tasks for each file in the archive for file, platform in extracted_files: + # ToDo we lose package here and send APKs to windows + if platform in ("linux", "darwin") and LINUX_STATIC: + task_ids += self.add_static( + file_path=file_path, + priority=priority, + tlp=tlp, + user_id=user_id, + username=username, + options=options, + package=package, + ) + continue if static: # On huge loads this just become a bottleneck config = False @@ -1621,6 +1634,8 @@ def demux_sample_and_add_to_db( if config and isinstance(config, dict): details = {"config": config.get("cape_config", {})} + if demux_error_msgs: + details["errors"] = demux_error_msgs # this is aim to return custom data, think of this as kwargs return task_ids, details @@ -1694,7 +1709,7 @@ def add_static( user_id=0, username=False, ): - extracted_files = demux_sample(file_path, package, options) + extracted_files, demux_error_msgs = demux_sample(file_path, package, options) sample_parent_id = None # check if len is 1 and the same file, if diff register file, and set parent if not isinstance(file_path, bytes): diff --git a/modules/processing/CAPE.py b/modules/processing/CAPE.py index f257444236b..a9bc97cd57f 100644 --- a/modules/processing/CAPE.py +++ b/modules/processing/CAPE.py @@ -113,7 +113,7 @@ def _cape_type_string(self, type_strings, file_info, append_file): elif type_strings[0] == "MS-DOS": file_info["cape_type"] = "DOS MZ image: executable" else: - file_info["cape_type"] = file_info["cape_type"] or "PE image" + file_info["cape_type"] = file_info["cape_type"] or "unknown" return append_file def _metadata_processing(self, metadata, file_info, append_file): diff --git a/tests/test_demux.py b/tests/test_demux.py index 605974ee71e..e3f4aa3e946 100644 --- a/tests/test_demux.py +++ b/tests/test_demux.py @@ -85,8 +85,9 @@ def test_demux_sample_pe32(self, grab_sample): def test_demux_package(self): empty_file = tempfile.NamedTemporaryFile() - assert demux.demux_sample(filename=empty_file.name, package="Emotet", options="foo", use_sflock=False) == [ - (empty_file.name, "") + demuxed, _ = demux.demux_sample(filename=empty_file.name, package="Emotet", options="foo", use_sflock=False) + demuxed == [ + (empty_file.name, "", "") ] empty_file.close() diff --git a/tests/test_objects.py b/tests/test_objects.py index ed0966aab7e..45af7ea7b06 100644 --- a/tests/test_objects.py +++ b/tests/test_objects.py @@ -223,7 +223,9 @@ def test_get_type(self, test_files): [ ("temp_pe32", "PE32 executable (GUI) Intel 80386, for MS Windows", True), # emulated magic type ("temp_pe64", "PE32+ executable (GUI) x86-64, for MS Windows", True), # emulated magic type - ("temp_pe_aarch64", "MS-DOS executable PE32 executable Aarch64, for MS Windows", True), + # Broken we remove "MS-DOS executable" + # ("temp_pe_aarch64", "MS-DOS executable PE32 executable Aarch64, for MS Windows", True), + ("temp_pe_aarch64", "PE32 executable Aarch64, for MS Windows", True), ("temp_elf32", "ELF 32-bit LSB", False), ("temp_elf64", "ELF 64-bit LSB", False), ("temp_macho_arm64", "Mach-O 64-bit arm64 executable", False), diff --git a/utils/submit.py b/utils/submit.py index c66378f8ce3..8785b58f5c8 100644 --- a/utils/submit.py +++ b/utils/submit.py @@ -345,6 +345,7 @@ def main(): try: tmp_path = store_temp_file(open(file_path, "rb").read(), sanitize_filename(os.path.basename(file_path))) with db.session.begin(): + # ToDo expose extra_details["errors"] task_ids, extra_details = db.demux_sample_and_add_to_db( file_path=tmp_path, package=args.package, diff --git a/web/apiv2/views.py b/web/apiv2/views.py index 0fb0babfa49..293c968d090 100644 --- a/web/apiv2/views.py +++ b/web/apiv2/views.py @@ -187,7 +187,7 @@ def tasks_create_static(request): options = request.data.get("options", "") priority = force_int(request.data.get("priority")) - resp["error"] = False + resp["error"] = [] files = request.FILES.getlist("file") extra_details = {} task_ids = [] @@ -203,6 +203,8 @@ def tasks_create_static(request): user_id=request.user.id or 0, ) task_ids.extend(task_id) + if extra_details.get("erros"): + resp["errors"].extend(extra_details["errors"]) except CuckooDemuxError as e: resp = {"error": True, "error_value": e} return Response(resp) @@ -226,7 +228,6 @@ def tasks_create_static(request): resp["url"].append("{0}/submit/status/{1}".format(apiconf.api.get("url"), tid)) else: resp = {"error": True, "error_value": "Error adding task to database"} - return Response(resp) @@ -341,12 +342,22 @@ def tasks_create_file(request): if tmp_path: details["path"] = tmp_path details["content"] = content - status, task_ids_tmp = download_file(**details) + demux_error_msgs = [] + + result = download_file(**details) + if len(result) == 2: + status, task_ids_tmp = result + elif len(result) == 3: + status, task_ids_tmp, demux_error_msgs = result + if status == "error": details["errors"].append({os.path.basename(tmp_path).decode(): task_ids_tmp}) else: details["task_ids"] = task_ids_tmp + if demux_error_msgs: + details["errors"].extend(demux_error_msgs) + if details["task_ids"]: tasks_count = len(details["task_ids"]) else: @@ -565,12 +576,20 @@ def tasks_create_dlnexec(request): "user_id": request.user.id or 0, } - status, task_ids_tmp = download_file(**details) + result = download_file(**details) + if len(result) == 2: + status, task_ids_tmp = result + elif len(result) == 3: + status, task_ids_tmp, demux_error_msgs = result + if status == "error": details["errors"].append({os.path.basename(path).decode(): task_ids_tmp}) else: details["task_ids"] = task_ids_tmp + if demux_error_msgs: + details["errors"].extend(demux_error_msgs) + if details["task_ids"]: tasks_count = len(details["task_ids"]) else: diff --git a/web/submission/views.py b/web/submission/views.py index dcf6d42d411..0efc0db2ba0 100644 --- a/web/submission/views.py +++ b/web/submission/views.py @@ -508,7 +508,13 @@ def index(request, task_id=None, resubmit_hash=None): details["path"] = path details["content"] = content - status, task_ids_tmp = download_file(**details) + result = download_file(**details) + if len(result) == 2: + status, task_ids_tmp = result + elif len(result) == 3: + status, task_ids_tmp, demux_error_msg = result + if demux_error_msg: + details["errors"].extend(demux_error_msg) if status == "error": details["errors"].append({os.path.basename(filename): task_ids_tmp}) else: @@ -537,7 +543,13 @@ def index(request, task_id=None, resubmit_hash=None): details["path"] = path details["content"] = content - status, task_ids_tmp = download_file(**details) + result = download_file(**details) + if len(result) == 2: + status, task_ids_tmp = result + elif len(result) == 3: + status, task_ids_tmp, demux_error_msg = result + if demux_error_msg: + details["errors"].extend(demux_error_msg) if status == "error": details["errors"].append({os.path.basename(path): task_ids_tmp}) else: @@ -619,7 +631,14 @@ def index(request, task_id=None, resubmit_hash=None): details["content"] = content details["service"] = "DLnExec" details["source_url"] = samples - status, task_ids_tmp = download_file(**details) + result = download_file(**details) + if len(result) == 2: + status, task_ids_tmp = result + elif len(result) == 3: + status, task_ids_tmp, demux_error_msg = result + if demux_error_msg: + details["errors"].extend(demux_error_msg) + if status == "error": details["errors"].append({os.path.basename(path): task_ids_tmp}) else: From 9f660a18595c3ce0fddf69e3b285a8eb615e15a5 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Mon, 14 Oct 2024 13:38:22 +0000 Subject: [PATCH 27/98] style: Automatic code formatting --- tests/test_demux.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/test_demux.py b/tests/test_demux.py index e3f4aa3e946..e24a9664c41 100644 --- a/tests/test_demux.py +++ b/tests/test_demux.py @@ -86,9 +86,7 @@ def test_demux_package(self): empty_file = tempfile.NamedTemporaryFile() demuxed, _ = demux.demux_sample(filename=empty_file.name, package="Emotet", options="foo", use_sflock=False) - demuxed == [ - (empty_file.name, "", "") - ] + demuxed == [(empty_file.name, "", "")] empty_file.close() def test_options2passwd(self): From cf7e325b3961fffa9a0c946345d203bc10d2cfa5 Mon Sep 17 00:00:00 2001 From: doomedraven Date: Mon, 14 Oct 2024 16:24:50 +0200 Subject: [PATCH 28/98] demux --- lib/cuckoo/common/demux.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/cuckoo/common/demux.py b/lib/cuckoo/common/demux.py index 2960d19fe30..ddfb7954a1e 100644 --- a/lib/cuckoo/common/demux.py +++ b/lib/cuckoo/common/demux.py @@ -244,7 +244,7 @@ def demux_sample(filename: bytes, package: str, options: str, use_sflock: bool = if File(filename).get_size() <= web_cfg.general.max_sample_size or ( web_cfg.general.allow_ignore_size and "ignore_size_check" in options ): - retlist.append((filename, platform, "")) + retlist.append((filename, platform)) else: if web_cfg.general.enable_trim and trim_file(filename): retlist.append((trimmed_path(filename), platform)) From 432ca07268290ce8b7fcff43eba02c5d0da66b26 Mon Sep 17 00:00:00 2001 From: doomedraven Date: Tue, 15 Oct 2024 08:10:29 +0200 Subject: [PATCH 29/98] dashboard fix --- web/dashboard/views.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/web/dashboard/views.py b/web/dashboard/views.py index c31e2d332df..5a7a09787e1 100644 --- a/web/dashboard/views.py +++ b/web/dashboard/views.py @@ -76,6 +76,8 @@ def index(request): tasks = db.count_tasks(status=TASK_COMPLETED) tasks += db.count_tasks(status=TASK_REPORTED) + data = {"title": "Dashboard", "report": {}} + if tasks: # Get the time when the first task started and last one ended. started, completed = db.minmax_tasks() @@ -91,5 +93,5 @@ def index(request): report["estimate_day"] = format_number_with_space(int(24 * hourly)) report["top_detections"] = top_detections() - data = {"title": "Dashboard", "report": report} - return render(request, "dashboard/index.html", data) + data["report"] = report + return render(request, "dashboard/index.html", data) From 9ec12d3cd1c313b28433e5902ba22bf757cb8f35 Mon Sep 17 00:00:00 2001 From: Tommy Beadle Date: Tue, 15 Oct 2024 12:48:12 -0400 Subject: [PATCH 30/98] Fix test where the `file` utility changes its output based on the installed version. (#2352) Co-authored-by: Tommy Beadle --- tests/test_objects.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/tests/test_objects.py b/tests/test_objects.py index 45af7ea7b06..d6859890375 100644 --- a/tests/test_objects.py +++ b/tests/test_objects.py @@ -223,9 +223,14 @@ def test_get_type(self, test_files): [ ("temp_pe32", "PE32 executable (GUI) Intel 80386, for MS Windows", True), # emulated magic type ("temp_pe64", "PE32+ executable (GUI) x86-64, for MS Windows", True), # emulated magic type - # Broken we remove "MS-DOS executable" - # ("temp_pe_aarch64", "MS-DOS executable PE32 executable Aarch64, for MS Windows", True), - ("temp_pe_aarch64", "PE32 executable Aarch64, for MS Windows", True), + ( + "temp_pe_aarch64", + ( + "PE32 executable Aarch64, for MS Windows", + "MS-DOS executable PE32 executable Aarch64, for MS Windows", + ), + True, + ), ("temp_elf32", "ELF 32-bit LSB", False), ("temp_elf64", "ELF 64-bit LSB", False), ("temp_macho_arm64", "Mach-O 64-bit arm64 executable", False), @@ -234,7 +239,9 @@ def test_get_type(self, test_files): def test_get_type_pe(self, file_fixture, expected, is_pe, request): path = request.getfixturevalue(file_fixture) file = File(path) - assert file.get_type() == expected + if isinstance(expected, str): + expected = (expected,) + assert file.get_type() in expected assert bool(file.pe) == is_pe def test_get_yara(self, hello_file, yara_compiled): From 0b7eee8f6ccac5cdc2103eda999298a01d8a52b0 Mon Sep 17 00:00:00 2001 From: Tommy Beadle Date: Tue, 15 Oct 2024 13:23:24 -0400 Subject: [PATCH 31/98] Fix typo getting demux errors. (#2354) Co-authored-by: Tommy Beadle --- lib/cuckoo/common/web_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/cuckoo/common/web_utils.py b/lib/cuckoo/common/web_utils.py index f47fa29f80a..60b4eff6c70 100644 --- a/lib/cuckoo/common/web_utils.py +++ b/lib/cuckoo/common/web_utils.py @@ -766,7 +766,7 @@ def download_file(**kwargs): if not onesuccess: return "error", {"error": f"Provided hash not found on {kwargs['service']}"} - return "ok", kwargs["task_ids"], extra_details.get("erros", []) + return "ok", kwargs["task_ids"], extra_details.get("errors", []) def save_script_to_storage(task_ids, kwargs): From 6b66d4791272ca7d2272ca096327c2ad802fdf8b Mon Sep 17 00:00:00 2001 From: Tommy Beadle Date: Wed, 16 Oct 2024 01:58:27 -0400 Subject: [PATCH 32/98] Fix bug when download_file returns success. (#2356) --- lib/cuckoo/common/web_utils.py | 14 +++++++---- web/apiv2/views.py | 35 ++++++++------------------- web/submission/views.py | 44 ++++++++++++---------------------- 3 files changed, 34 insertions(+), 59 deletions(-) diff --git a/lib/cuckoo/common/web_utils.py b/lib/cuckoo/common/web_utils.py index 60b4eff6c70..eb10064548c 100644 --- a/lib/cuckoo/common/web_utils.py +++ b/lib/cuckoo/common/web_utils.py @@ -766,7 +766,7 @@ def download_file(**kwargs): if not onesuccess: return "error", {"error": f"Provided hash not found on {kwargs['service']}"} - return "ok", kwargs["task_ids"], extra_details.get("errors", []) + return "ok", {"task_ids": kwargs["task_ids"], "errors": extra_details.get("errors", [])} def save_script_to_storage(task_ids, kwargs): @@ -1324,15 +1324,19 @@ def thirdpart_aux(samples, prefix, opt_filename, details, settings): if content: details["content"] = content + errors = {} if not details.get("content", False): - status, task_ids_tmp = download_file(**details) + status, tasks_details = download_file(**details) else: details["service"] = "Local" - status, task_ids_tmp = download_file(**details) + status, tasks_details = download_file(**details) if status == "error": - details["errors"].append({h: task_ids_tmp}) + details["errors"].append({h: tasks_details}) else: - details["task_ids"] = task_ids_tmp + details["task_ids"] = tasks_details.get("task_ids", []) + errors = tasks_details.get("errors") + if errors: + details["errors"].extend(errors) return details diff --git a/web/apiv2/views.py b/web/apiv2/views.py index 293c968d090..b744aafdb0a 100644 --- a/web/apiv2/views.py +++ b/web/apiv2/views.py @@ -287,7 +287,6 @@ def tasks_create_file(request): "user_id": request.user.id or 0, } - task_ids_tmp = [] task_machines = [] vm_list = [vm.label for vm in db.list_machines()] @@ -342,21 +341,13 @@ def tasks_create_file(request): if tmp_path: details["path"] = tmp_path details["content"] = content - demux_error_msgs = [] - - result = download_file(**details) - if len(result) == 2: - status, task_ids_tmp = result - elif len(result) == 3: - status, task_ids_tmp, demux_error_msgs = result - + status, tasks_details = download_file(**details) if status == "error": - details["errors"].append({os.path.basename(tmp_path).decode(): task_ids_tmp}) + details["errors"].append({os.path.basename(tmp_path).decode(): tasks_details}) else: - details["task_ids"] = task_ids_tmp - - if demux_error_msgs: - details["errors"].extend(demux_error_msgs) + details["task_ids"] = tasks_details.get("task_ids") + if tasks_details.get("errors"): + details["errors"].extend(tasks_details["errors"]) if details["task_ids"]: tasks_count = len(details["task_ids"]) @@ -576,19 +567,13 @@ def tasks_create_dlnexec(request): "user_id": request.user.id or 0, } - result = download_file(**details) - if len(result) == 2: - status, task_ids_tmp = result - elif len(result) == 3: - status, task_ids_tmp, demux_error_msgs = result - + status, tasks_details = download_file(**details) if status == "error": - details["errors"].append({os.path.basename(path).decode(): task_ids_tmp}) + details["errors"].append({os.path.basename(path).decode(): tasks_details}) else: - details["task_ids"] = task_ids_tmp - - if demux_error_msgs: - details["errors"].extend(demux_error_msgs) + details["task_ids"] = tasks_details.get("task_ids") + if tasks_details.get("errors"): + details["errors"].extend(tasks_details["errors"]) if details["task_ids"]: tasks_count = len(details["task_ids"]) diff --git a/web/submission/views.py b/web/submission/views.py index 0efc0db2ba0..39c25136c3a 100644 --- a/web/submission/views.py +++ b/web/submission/views.py @@ -366,7 +366,6 @@ def index(request, task_id=None, resubmit_hash=None): opt_apikey = opts.get("apikey", False) status = "ok" - task_ids_tmp = [] existent_tasks = {} details = { "errors": [], @@ -508,17 +507,13 @@ def index(request, task_id=None, resubmit_hash=None): details["path"] = path details["content"] = content - result = download_file(**details) - if len(result) == 2: - status, task_ids_tmp = result - elif len(result) == 3: - status, task_ids_tmp, demux_error_msg = result - if demux_error_msg: - details["errors"].extend(demux_error_msg) + status, tasks_details = download_file(**details) if status == "error": - details["errors"].append({os.path.basename(filename): task_ids_tmp}) + details["errors"].append({os.path.basename(filename): tasks_details}) else: - details["task_ids"] = task_ids_tmp + details["task_ids"] = tasks_details.get("task_ids") + if tasks_details.get("errors"): + details["errors"].extend(tasks_details["errors"]) if web_conf.web_reporting.get("enabled", False) and web_conf.general.get("existent_tasks", False): records = perform_search("target_sha256", hash, search_limit=5) if records: @@ -543,23 +538,19 @@ def index(request, task_id=None, resubmit_hash=None): details["path"] = path details["content"] = content - result = download_file(**details) - if len(result) == 2: - status, task_ids_tmp = result - elif len(result) == 3: - status, task_ids_tmp, demux_error_msg = result - if demux_error_msg: - details["errors"].extend(demux_error_msg) + status, tasks_details = download_file(**details) if status == "error": - details["errors"].append({os.path.basename(path): task_ids_tmp}) + details["errors"].append({os.path.basename(path): tasks_details}) else: + details["task_ids"] = tasks_details.get("task_ids") + if tasks_details.get("errors"): + details["errors"].extend(tasks_details["errors"]) if web_conf.general.get("existent_tasks", False): records = perform_search("target_sha256", sha256, search_limit=5) if records: for record in records: if record.get("target").get("file", {}).get("sha256"): existent_tasks.setdefault(record["target"]["file"]["sha256"], []).append(record) - details["task_ids"] = task_ids_tmp elif task_category == "static": for content, path, sha256 in list_of_tasks: @@ -631,18 +622,13 @@ def index(request, task_id=None, resubmit_hash=None): details["content"] = content details["service"] = "DLnExec" details["source_url"] = samples - result = download_file(**details) - if len(result) == 2: - status, task_ids_tmp = result - elif len(result) == 3: - status, task_ids_tmp, demux_error_msg = result - if demux_error_msg: - details["errors"].extend(demux_error_msg) - + status, tasks_details = download_file(**details) if status == "error": - details["errors"].append({os.path.basename(path): task_ids_tmp}) + details["errors"].append({os.path.basename(path): tasks_details}) else: - details["task_ids"] = task_ids_tmp + details["task_ids"] = tasks_details.get("task_ids") + if tasks_details.get("errors"): + details["errors"].extend(tasks_details["errors"]) elif task_category == "vtdl": if not settings.VTDL_KEY: From 4c915fd35b0e936c42e2d315e5f2b16e188860e4 Mon Sep 17 00:00:00 2001 From: Tommy Beadle Date: Wed, 16 Oct 2024 08:30:16 -0400 Subject: [PATCH 33/98] Fix return types in demux_sflock/demux_sample. (#2351) Also fix handling of one case where sample size was smaller than the limit but was still being reported as an error saying the sample is too big. Co-authored-by: Tommy Beadle --- lib/cuckoo/common/demux.py | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/lib/cuckoo/common/demux.py b/lib/cuckoo/common/demux.py index ddfb7954a1e..fa42507f698 100644 --- a/lib/cuckoo/common/demux.py +++ b/lib/cuckoo/common/demux.py @@ -208,7 +208,7 @@ def demux_sflock(filename: bytes, options: str, check_shellcode: bool = True): magic_type = file.get_type() platform = file.get_platform() file_size = file.get_size() - return [filename, platform, magic_type, file_size], "" + return [[filename, platform, magic_type, file_size]], "" if unpacked.package in blacklist_extensions: return [], "blacklisted package" for sf_child in unpacked.children: @@ -253,7 +253,7 @@ def demux_sample(filename: bytes, package: str, options: str, use_sflock: bool = { os.path.basename( filename - ): "File too bit, enable 'allow_ignore_size' in web.conf or use 'ignore_size_check' option" + ): "File too big, enable 'allow_ignore_size' in web.conf or use 'ignore_size_check' option" } ) return retlist, error_list @@ -305,7 +305,7 @@ def demux_sample(filename: bytes, package: str, options: str, use_sflock: bool = error_list.append( { os.path.basename(filename), - "File too bit, enable 'allow_ignore_size' in web.conf or use 'ignore_size_check' option", + "File too big, enable 'allow_ignore_size' in web.conf or use 'ignore_size_check' option", } ) return retlist, error_list @@ -317,7 +317,7 @@ def demux_sample(filename: bytes, package: str, options: str, use_sflock: bool = check_shellcode = False # all in one unarchiver - retlist, error_msg = demux_sflock(filename, options, check_shellcode) if HAS_SFLOCK and use_sflock else [] + retlist, error_msg = demux_sflock(filename, options, check_shellcode) if HAS_SFLOCK and use_sflock else ([], "") # if it isn't a ZIP or an email, or we aren't able to obtain anything interesting from either, then just submit the # original file if not retlist: @@ -331,20 +331,19 @@ def demux_sample(filename: bytes, package: str, options: str, use_sflock: bool = error_list.append({os.path.basename(filename): "Linux processing is disabled"}) continue - if file_size > web_cfg.general.max_sample_size and not ( - web_cfg.general.allow_ignore_size and "ignore_size_check" in options - ): - if web_cfg.general.enable_trim: - # maybe identify here - if trim_file(filename): - filename = trimmed_path(filename) - else: - error_list.append( - { - os.path.basename(filename), - "File too bit, enable 'allow_ignore_size' in web.conf or use 'ignore_size_check' option", - } - ) + if file_size > web_cfg.general.max_sample_size: + if web_cfg.general.allow_ignore_size and "ignore_size_check" in options: + if web_cfg.general.enable_trim: + # maybe identify here + if trim_file(filename): + filename = trimmed_path(filename) + else: + error_list.append( + { + os.path.basename(filename), + "File too big, enable 'allow_ignore_size' in web.conf or use 'ignore_size_check' option", + } + ) new_retlist.append((filename, platform)) return new_retlist[:10], error_list From 45b0099934b58c259563323f6433d8f3c80a5ab0 Mon Sep 17 00:00:00 2001 From: Kevin O'Reilly Date: Wed, 16 Oct 2024 16:23:32 +0100 Subject: [PATCH 34/98] Remove obsolete 'Unpacker' packages --- .../modules/packages/Shellcode-Unpacker.py | 48 ----- analyzer/windows/modules/packages/Unpacker.py | 42 ---- .../windows/modules/packages/Unpacker_dll.py | 64 ------ .../windows/modules/packages/Unpacker_js.py | 47 ----- .../windows/modules/packages/Unpacker_ps1.py | 37 ---- .../modules/packages/Unpacker_regsvr.py | 46 ----- .../windows/modules/packages/Unpacker_zip.py | 182 ------------------ .../packages/{Shellcode.py => shellcode.py} | 0 .../{Shellcode_x64.py => shellcode_x64.py} | 0 9 files changed, 466 deletions(-) delete mode 100644 analyzer/windows/modules/packages/Shellcode-Unpacker.py delete mode 100644 analyzer/windows/modules/packages/Unpacker.py delete mode 100644 analyzer/windows/modules/packages/Unpacker_dll.py delete mode 100644 analyzer/windows/modules/packages/Unpacker_js.py delete mode 100644 analyzer/windows/modules/packages/Unpacker_ps1.py delete mode 100644 analyzer/windows/modules/packages/Unpacker_regsvr.py delete mode 100644 analyzer/windows/modules/packages/Unpacker_zip.py rename analyzer/windows/modules/packages/{Shellcode.py => shellcode.py} (100%) rename analyzer/windows/modules/packages/{Shellcode_x64.py => shellcode_x64.py} (100%) diff --git a/analyzer/windows/modules/packages/Shellcode-Unpacker.py b/analyzer/windows/modules/packages/Shellcode-Unpacker.py deleted file mode 100644 index 28e4cc377ad..00000000000 --- a/analyzer/windows/modules/packages/Shellcode-Unpacker.py +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright (C) 2010-2015 Cuckoo Foundation. -# This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org -# See the file 'docs/LICENSE' for copying permission. - -import logging -import os -import shutil - -from lib.common.abstracts import Package -from lib.common.constants import OPT_PROCDUMP, OPT_UNPACKER - -log = logging.getLogger(__name__) - -_OPT_DUMP_CALLER_REGIONS = "dump-caller-regions" - - -class Shellcode_Unpacker(Package): - """32-bit Shellcode Unpacker package.""" - - summary = "Executes 32-bit Shellcode using loader.exe with the unpacker option." - description = f"""Uses 'bin\\loader.exe shellcode ' to execute 32-bit Shellcode. - Turns off '{OPT_PROCDUMP}' and '{_OPT_DUMP_CALLER_REGIONS}'. - Turns on '{OPT_UNPACKER}'.""" - - def __init__(self, options=None, config=None): - """@param options: options dict.""" - if options is None: - options = {} - self.config = config - self.options = options - self.options[OPT_UNPACKER] = "1" - self.options[OPT_PROCDUMP] = "0" - self.options[_OPT_DUMP_CALLER_REGIONS] = "0" - - def start(self, path): - loaderpath = "bin\\loader.exe" - arguments = f"shellcode {path}" - - # we need to move out of the analyzer directory - # due to a check in monitor dll - basepath = os.path.dirname(path) - newpath = os.path.join(basepath, os.path.basename(loaderpath)) - shutil.copy(loaderpath, newpath) - - log.info("[-] newpath : %s", newpath) - log.info("[-] arguments : %s", arguments) - - return self.execute(newpath, arguments, newpath) diff --git a/analyzer/windows/modules/packages/Unpacker.py b/analyzer/windows/modules/packages/Unpacker.py deleted file mode 100644 index 35d6f47264f..00000000000 --- a/analyzer/windows/modules/packages/Unpacker.py +++ /dev/null @@ -1,42 +0,0 @@ -# Copyright (C) 2010-2015 Cuckoo Foundation. -# This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org -# See the file 'docs/LICENSE' for copying permission. - -from lib.common.abstracts import Package -from lib.common.common import check_file_extension -from lib.common.constants import OPT_ARGUMENTS, OPT_INJECTION, OPT_PROCDUMP, OPT_UNPACKER - - -class Unpacker(Package): - """CAPE Unpacker analysis package.""" - - # PATHS = [ - # ("SystemRoot", "system32"), - # ] - summary = "Executes a .exe file with the unpacker option." - description = f"""Executes the sample passing arguments if any. - Turns off '{OPT_PROCDUMP}' and '{OPT_INJECTION}'. - Turns on '{OPT_UNPACKER}'. - The .exe filename extension will be added automatically.""" - option_names = (OPT_ARGUMENTS,) - - def __init__(self, options=None, config=None): - """@param options: options dict.""" - if options is None: - options = {} - self.config = config - self.options = options - self.pids = [] - self.options[OPT_UNPACKER] = "1" - self.options[OPT_PROCDUMP] = "0" - self.options[OPT_INJECTION] = "0" - - def start(self, path): - arguments = self.options.get(OPT_ARGUMENTS) - - # If the file doesn't have an extension, add .exe - # See CWinApp::SetCurrentHandles(), it will throw - # an exception that will crash the app if it does - # not find an extension on the main exe's filename - path = check_file_extension(path, ".exe") - return self.execute(path, arguments, path) diff --git a/analyzer/windows/modules/packages/Unpacker_dll.py b/analyzer/windows/modules/packages/Unpacker_dll.py deleted file mode 100644 index 09e5a5ed16d..00000000000 --- a/analyzer/windows/modules/packages/Unpacker_dll.py +++ /dev/null @@ -1,64 +0,0 @@ -# Copyright (C) 2010-2015 Cuckoo Foundation. -# This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org -# See the file 'docs/LICENSE' for copying permission. - -import os -import shutil - -from lib.common.abstracts import Package -from lib.common.common import check_file_extension -from lib.common.constants import ( - DLL_OPTION_TEXT, - DLL_OPTIONS, - OPT_ARGUMENTS, - OPT_DLLLOADER, - OPT_FUNCTION, - OPT_INJECTION, - OPT_UNPACKER, -) - - -class Unpacker_dll(Package): - """CAPE Unpacker DLL analysis package.""" - - PATHS = [ - ("SystemRoot", "system32", "rundll32.exe"), - ] - summary = "Unpacks a .dll file using rundll32.exe as the loader." - description = f"""Uses rundll32.exe with the '/wait' option to run a .lnk file. - {DLL_OPTION_TEXT} - Turns off '{OPT_INJECTION}'. - Turns on '{OPT_UNPACKER}'. - The .dll filename extension will be added automatically.""" - option_names = DLL_OPTIONS - - def __init__(self, options=None, config=None): - """@param options: options dict.""" - if options is None: - options = {} - self.config = config - self.options = options - self.options[OPT_UNPACKER] = "1" - self.options[OPT_INJECTION] = "0" - - def start(self, path): - rundll32 = self.get_path("rundll32.exe") - function = self.options.get(OPT_FUNCTION, "#1") - arguments = self.options.get(OPT_ARGUMENTS) - dllloader = self.options.get(OPT_DLLLOADER) - - # If the file doesn't have the proper .dll extension force it - # and rename it. This is needed for rundll32 to execute correctly. - # See ticket #354 for details. - path = check_file_extension(path, ".dll") - - args = f"{path},{function}" - if arguments: - args += f" {arguments}" - - if dllloader: - newname = os.path.join(os.path.dirname(rundll32), dllloader) - shutil.copy(rundll32, newname) - rundll32 = newname - - return self.execute(rundll32, args, path) diff --git a/analyzer/windows/modules/packages/Unpacker_js.py b/analyzer/windows/modules/packages/Unpacker_js.py deleted file mode 100644 index 18875faa347..00000000000 --- a/analyzer/windows/modules/packages/Unpacker_js.py +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright (C) 2015 Optiv, Inc. (brad.spengler@optiv.com) -# This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org -# See the file 'docs/LICENSE' for copying permission. - -import os - -from lib.common.abstracts import Package -from lib.common.constants import OPT_INJECTION, OPT_PROCDUMP, OPT_UNPACKER - - -class Unpacker_JS(Package): - """JavaScript analysis package.""" - - PATHS = [ - ("SystemRoot", "system32", "wscript.exe"), - ] - summary = "Executes a .JS file using wscript.exe." - description = f"""Uses wscript.exe to run a .js/.jse file. - Turns off '{OPT_PROCDUMP}' and '{OPT_INJECTION}'. - Turns on '{OPT_UNPACKER}'. - The appropriate filename extension will be added automatically.""" - - def __init__(self, options=None, config=None): - """@param options: options dict.""" - if options is None: - options = {} - self.config = config - self.options = options - self.options[OPT_UNPACKER] = "1" - self.options[OPT_PROCDUMP] = "0" - self.options[OPT_INJECTION] = "0" - - def start(self, path): - wscript = self.get_path("wscript.exe") - args = f'"{path}"' - ext = os.path.splitext(path)[-1].lower() - if ext not in (".js", ".jse"): - with open(path, "r") as tmpfile: - magic_bytes = tmpfile.read(4) - if magic_bytes == "#@~^": - os.rename(path, f"{path}.jse") - path = f"{path}.jse" - else: - os.rename(path, f"{path}.js") - path = f"{path}.js" - args = f'"{path}"' - return self.execute(wscript, args, path) diff --git a/analyzer/windows/modules/packages/Unpacker_ps1.py b/analyzer/windows/modules/packages/Unpacker_ps1.py deleted file mode 100644 index 1b1243f850d..00000000000 --- a/analyzer/windows/modules/packages/Unpacker_ps1.py +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (C) 2010-2015 Cuckoo Foundation. -# This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org -# See the file 'docs/LICENSE' for copying permission. - -from lib.common.abstracts import Package -from lib.common.common import check_file_extension -from lib.common.constants import OPT_INJECTION, OPT_PROCDUMP, OPT_UNPACKER - - -class PS1(Package): - """PowerShell Unpacker analysis package.""" - - PATHS = [ - ("SystemRoot", "system32", "WindowsPowerShell", "v*.0", "powershell.exe"), - ] - summary = "Executes a sample file with powershell." - description = f"""Uses 'powershell -NoProfile -ExecutionPolicy bypass -File ' - to run a .ps1 file. - Turns off '{OPT_PROCDUMP}' and '{OPT_INJECTION}'. - Turns on '{OPT_UNPACKER}'. - The .ps1 filename extension will be added automatically.""" - - def __init__(self, options=None, config=None): - """@param options: options dict.""" - if options is None: - options = {} - self.config = config - self.options = options - self.options[OPT_UNPACKER] = "1" - self.options[OPT_PROCDUMP] = "0" - self.options[OPT_INJECTION] = "0" - - def start(self, path): - powershell = self.get_path_glob("PowerShell") - path = check_file_extension(path, ".ps1") - args = f'-NoProfile -ExecutionPolicy bypass -File "{path}"' - return self.execute(powershell, args, path) diff --git a/analyzer/windows/modules/packages/Unpacker_regsvr.py b/analyzer/windows/modules/packages/Unpacker_regsvr.py deleted file mode 100644 index dd357ca7169..00000000000 --- a/analyzer/windows/modules/packages/Unpacker_regsvr.py +++ /dev/null @@ -1,46 +0,0 @@ -# Copyright (C) 2010-2015 Cuckoo Foundation. -# This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org -# See the file 'docs/LICENSE' for copying permission. - -from lib.common.abstracts import Package -from lib.common.common import check_file_extension -from lib.common.constants import OPT_ARGUMENTS, OPT_INJECTION, OPT_PROCDUMP, OPT_UNPACKER - - -class Unpacker_Regsvr(Package): - """CAPE Unpacker DLL analysis package.""" - - PATHS = [ - ("SystemRoot", "system32", "regsvr32.exe"), - ] - summary = "Executes function(s) in a DLL file using regsvr32.exe." - description = f"""Uses regsvr32.exe to run one or more functions in a .dll file. - Turns off '{OPT_PROCDUMP}' and '{OPT_INJECTION}'. - Turns on '{OPT_UNPACKER}'. - The .dll filename extension will be added automatically.""" - option_names = (OPT_ARGUMENTS,) - - def __init__(self, options=None, config=None): - """@param options: options dict.""" - if options is None: - options = {} - self.config = config - self.options = options - self.options[OPT_UNPACKER] = "1" - self.options[OPT_PROCDUMP] = "0" - self.options[OPT_INJECTION] = "0" - - def start(self, path): - regsvr32 = self.get_path("regsvr32.exe") - arguments = self.options.get(OPT_ARGUMENTS) - - # If the file doesn't have the proper .dll extension force it - # and rename it. This is needed for rundll32 to execute correctly. - # See ticket #354 for details. - path = check_file_extension(path, ".dll") - - args = path - if arguments: - args += f" {arguments}" - - return self.execute(regsvr32, args, path) diff --git a/analyzer/windows/modules/packages/Unpacker_zip.py b/analyzer/windows/modules/packages/Unpacker_zip.py deleted file mode 100644 index d1bd8f5b85f..00000000000 --- a/analyzer/windows/modules/packages/Unpacker_zip.py +++ /dev/null @@ -1,182 +0,0 @@ -# Copyright (C) 2010-2015 Cuckoo Foundation. -# This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org -# See the file 'docs/LICENSE' for copying permission. - -import logging -import os -import shutil -from zipfile import BadZipfile, ZipFile - -try: - import re2 as re -except ImportError: - import re - -from lib.common.abstracts import Package -from lib.common.constants import ( - ARCHIVE_OPTIONS, - DLL_OPTIONS, - OPT_ARGUMENTS, - OPT_DLLLOADER, - OPT_FILE, - OPT_FUNCTION, - OPT_INJECTION, - OPT_PASSWORD, - OPT_PROCDUMP, - OPT_UNPACKER, -) -from lib.common.exceptions import CuckooPackageError - -log = logging.getLogger(__name__) - - -class Unpacker_zip(Package): - """CAPE Unpacker zip analysis package.""" - - PATHS = [ - ("SystemRoot", "system32", "cmd.exe"), - ] - summary = "Unzips a file with the supplied password, execute its contents." - description = f"""Extracts the sample from a zip file. If the file name is not - supplied in the '{OPT_FILE}" option, the first file in the zip is taken. - Turns off '{OPT_PROCDUMP}' and '{OPT_INJECTION}'. - Turns on '{OPT_UNPACKER}'. - The execution method is chosen based on the filename extension.""" - option_names = sorted(set(ARCHIVE_OPTIONS + DLL_OPTIONS)) - - def __init__(self, options=None, config=None): - """@param options: options dict.""" - if options is None: - options = {} - self.config = config - self.options = options - self.pids = [] - self.options[OPT_UNPACKER] = "1" - self.options[OPT_PROCDUMP] = "0" - self.options[OPT_INJECTION] = "0" - - def extract_zip(self, zip_path, extract_path, password, recursion_depth): - """Extracts a nested ZIP file. - @param zip_path: ZIP path - @param extract_path: where to extract - @param password: ZIP password - @param recursion_depth: how deep we are in a nested archive - """ - # Test if zip file contains a file named as itself. - if self.is_overwritten(zip_path): - log.debug("ZIP file contains a file with the same name, original is going to be overwritten") - # TODO: add random string. - new_zip_path = f"{zip_path}.old" - shutil.move(zip_path, new_zip_path) - zip_path = new_zip_path - - # Unpacker. - with ZipFile(zip_path, "r") as archive: - try: - archive.extractall(path=extract_path, pwd=password) - except BadZipfile as e: - raise CuckooPackageError("Invalid Zip file") from e - except RuntimeError: - try: - archive.extractall(path=extract_path, pwd="infected") - except RuntimeError as e: - raise CuckooPackageError(f"Unable to extract Zip file: {e}") from e - finally: - if recursion_depth < 4: - # Extract nested archives. - for name in archive.namelist(): - if name.endswith(".zip"): - # Recurse. - try: - self.extract_zip(os.path.join(extract_path, name), extract_path, password, recursion_depth + 1) - except BadZipfile: - log.warning( - "Nested zip file '%s' name end with 'zip' extension is not a valid zip, skipping extraction", - name, - ) - except RuntimeError as run_err: - log.error("Error to extract nested zip file %s with details: %s", name, run_err) - - def is_overwritten(self, zip_path): - """Checks if the ZIP file contains another file with the same name, so it is going to be overwritten. - @param zip_path: zip file path - @return: comparison boolean - """ - with ZipFile(zip_path, "r") as archive: - # Test if zip file contains a file named as itself. - try: - return any(name == os.path.basename(zip_path) for name in archive.namelist()) - except BadZipfile as e: - raise CuckooPackageError("Invalid Zip file") from e - - def get_infos(self, zip_path): - """Get information from ZIP file. - @param zip_path: zip file path - @return: ZipInfo class - """ - try: - with ZipFile(zip_path, "r") as archive: - return archive.infolist() - except BadZipfile as e: - raise CuckooPackageError("Invalid Zip file") from e - - def start(self, path): - root = os.environ["TEMP"] - password = self.options.get(OPT_PASSWORD) - exe_regex = re.compile(r"(\.exe|\.scr|\.msi|\.bat|\.lnk|\.js|\.jse|\.vbs|\.vbe|\.wsf\.ps1)$", flags=re.IGNORECASE) - dll_regex = re.compile(r"(\.dll|\.ocx)$", flags=re.IGNORECASE) - zipinfos = self.get_infos(path) - self.extract_zip(path, root, password, 0) - - file_name = self.options.get(OPT_FILE) - # If no file name is provided via option, take the first file. - if file_name is None: - # No name provided try to find a better name. - if not len(zipinfos): - raise CuckooPackageError("Empty ZIP archive") - - # Attempt to find a valid exe extension in the archive - for f in zipinfos: - if exe_regex.search(f.filename): - file_name = f.filename - break - if file_name is None: - for f in zipinfos: - if dll_regex.search(f.filename): - file_name = f.filename - break - # Default to the first one if none found - file_name = file_name or zipinfos[0].filename - log.debug("Missing file option, auto executing: %s", file_name) - file_path = os.path.join(root, file_name) - log.debug('file_name: "%s"', file_name) - if file_name.lower().endswith(".lnk"): - cmd_path = self.get_path("cmd.exe") - cmd_args = f'/c start /wait "" "{file_path}"' - return self.execute(cmd_path, cmd_args, file_path) - elif file_name.lower().endswith(".msi"): - msi_path = self.get_path("msiexec.exe") - msi_args = f'/I "{file_path}"' - return self.execute(msi_path, msi_args, file_path) - elif file_name.lower().endswith((".js", ".jse", ".vbs", ".vbe", ".wsf")): - wscript = self.get_path_app_in_path("wscript.exe") - wscript_args = f'"{file_path}"' - return self.execute(wscript, wscript_args, file_path) - elif file_name.lower().endswith((".dll", ".ocx")): - rundll32 = self.get_path_app_in_path("rundll32.exe") - function = self.options.get(OPT_FUNCTION, "#1") - arguments = self.options.get(OPT_ARGUMENTS) - dllloader = self.options.get(OPT_DLLLOADER) - dll_args = f'"{file_path}",{function}' - if arguments: - dll_args += f" {arguments}" - if dllloader: - newname = os.path.join(os.path.dirname(rundll32), dllloader) - shutil.copy(rundll32, newname) - rundll32 = newname - return self.execute(rundll32, dll_args, file_path) - elif file_name.lower().endswith(".ps1"): - powershell = self.get_path_app_in_path("powershell.exe") - args = f'-NoProfile -ExecutionPolicy bypass -File "{path}"' - return self.execute(powershell, args, file_path) - return self.execute(file_path, self.options.get(OPT_ARGUMENTS), file_path) diff --git a/analyzer/windows/modules/packages/Shellcode.py b/analyzer/windows/modules/packages/shellcode.py similarity index 100% rename from analyzer/windows/modules/packages/Shellcode.py rename to analyzer/windows/modules/packages/shellcode.py diff --git a/analyzer/windows/modules/packages/Shellcode_x64.py b/analyzer/windows/modules/packages/shellcode_x64.py similarity index 100% rename from analyzer/windows/modules/packages/Shellcode_x64.py rename to analyzer/windows/modules/packages/shellcode_x64.py From a9682ffe02a2f60331bbb3f3cca9cc585cace782 Mon Sep 17 00:00:00 2001 From: Kevin O'Reilly Date: Wed, 16 Oct 2024 16:28:07 +0100 Subject: [PATCH 35/98] Remove references to'o 'Unpacker' packages from docs --- docs/book/src/usage/packages.rst | 46 -------------------------------- 1 file changed, 46 deletions(-) diff --git a/docs/book/src/usage/packages.rst b/docs/book/src/usage/packages.rst index 83eb2efbaa3..59152c7cd2e 100644 --- a/docs/book/src/usage/packages.rst +++ b/docs/book/src/usage/packages.rst @@ -163,7 +163,6 @@ The following is a list of the existing packages in alphabetical order: **Options**: * ``offset``: specify the offset to run with the 64-bit CAPE loader. - * ``shellcode-unpacker``: used to run and analyze **Shellcode** via the 32-bit CAPE loader, with unpacking! * ``shellcode``: used to run and analyze **Shellcode** via the 32-bit CAPE loader, with unpacking! **Options**: @@ -173,51 +172,6 @@ The following is a list of the existing packages in alphabetical order: *NB*: You need to have ``flashplayer.exe`` in the analyzer's ``bin`` folder. - * ``unpacker_dll``: used to run and analyze **Dynamically Linked Libraries** via ``flashplayer.exe``, with unpacking! - - *NB*: You need to have ``flashplayer.exe`` in the analyzer's ``bin`` folder. - - **Options**: - * ``arguments``: specify arguments to pass to the DLL through commandline. - * ``dllloader``: specify a process name to use to fake the DLL launcher name instead of ``rundll32.exe`` (this is used to fool possible anti-sandboxing tricks of certain malware). - * ``function``: specify the function to be executed. If none is specified, CAPE will try to run all available functions, - up to the limit found in the `max_dll_exports` task option. - - * ``unpacker_js``: used to run and analyze **JavaScript and JScript Encoded files** via ``wscript.exe``, with unpacking! - * ``unpacker_ps1``: used to run and analyze **PowerShell scripts** via ``powershell.exe``, with unpacking! - * ``unpacker_regsvr``: used to run and analyze **Dynamically Linked Libraries** via ``regsvr.exe``, with unpacking! - - **Options**: - * ``arguments``: specify any command line argument to pass to the initial process of the submitted malware. - - * ``unpacker_zip``: used to run and analyze **Zip archives** via the zipfile Python package, and runs an executable file (if it exists), with ``cmd.exe``. Also unpacking! - - **Options**: - * ``arguments``: specify arguments to pass to the DLL through commandline. - * ``dllloader``: specify a process name to use to fake the DLL launcher name instead of ``rundll32.exe`` (this is used to fool possible anti-sandboxing tricks of certain malware). - * ``file``: specify the name of the file contained in the archive to execute. If none is specified, CAPE will try to execute *sample.exe*. - * ``function``: specify the function to be executed. If none is specified, CAPE will try to run the entry at ordinal 1. - * ``password``: specify the password of the archive. If none is specified, CAPE will try to extract the archive without password or use the password "*infected*". - - * ``unpacker``: used to run and analyze generic **Windows executables**, with unpacking! - - **Options**: - * ``arguments``: specify any command line argument to pass to the initial process of the submitted malware. - - * ``upx_dll``: used to run and analyze **Dynamically Linked Libraries** packed with **Ultimate Packer for eXecutables**. - - **Options**: - * ``arguments``: specify arguments to pass to the DLL through commandline. - * ``dllloader``: specify a process name to use to fake the DLL launcher name instead of ``rundll32.exe`` (this is used to fool possible anti-sandboxing tricks of certain malware). - * ``function``: specify the function to be executed. If none is specified, CAPE will try to run all available functions, - up to the limit found in the `max_dll_exports` task option. - - * ``upx``: used to run and analyze generic **Windows executables** packed with **Ultimate Packer for eXecutables**. - - **Options**: - * ``appdata``: *[yes/no]* if enabled, run the executable from the APPDATA directory. - * ``arguments``: specify any command line argument to pass to the initial process of the submitted malware. - * ``vawtrak``: used to run and analyze **Vawtrak malware** with ``iexplore.exe``. *NB*: https://www.microsoft.com/en-us/wdsi/threats/malware-encyclopedia-description?Name=Backdoor:Win32/Vawtrak.A From 2ec86640798a3bd86a96a3680a729fe4719272b4 Mon Sep 17 00:00:00 2001 From: doomedraven Date: Thu, 17 Oct 2024 12:41:01 +0200 Subject: [PATCH 36/98] dotNet reactor --- conf/default/selfextract.conf.default | 2 +- lib/cuckoo/common/integrations/file_extra_info.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/conf/default/selfextract.conf.default b/conf/default/selfextract.conf.default index 6175734093e..638bc1b4f49 100644 --- a/conf/default/selfextract.conf.default +++ b/conf/default/selfextract.conf.default @@ -75,7 +75,7 @@ binary = /usr/bin/de4dot extra_args = timeout = 60 -# https://github.com/SychicBoy/NETReactorSlayer/releases +# https://github.com/otavepto/NETReactorSlayer/releases [eziriz_deobfuscate] enabled = yes binary = data/NETReactorSlayer.CLI diff --git a/lib/cuckoo/common/integrations/file_extra_info.py b/lib/cuckoo/common/integrations/file_extra_info.py index f582aac1bd0..4e65c4bd18c 100644 --- a/lib/cuckoo/common/integrations/file_extra_info.py +++ b/lib/cuckoo/common/integrations/file_extra_info.py @@ -576,7 +576,7 @@ def eziriz_deobfuscate(file: str, *, data_dictionary: dict, **_) -> ExtractorRet if file.endswith("_Slayed"): return - if all("Eziriz .NET Reactor" not in string for string in data_dictionary.get("die", [])): + if all(".NET Reactor" not in string for string in data_dictionary.get("die", [])): return binary = shlex.split(selfextract_conf.eziriz_deobfuscate.binary.strip())[0] @@ -587,7 +587,7 @@ def eziriz_deobfuscate(file: str, *, data_dictionary: dict, **_) -> ExtractorRet if not path_exists(binary): log.error( - "Missing dependency: Download from https://github.com/SychicBoy/NETReactorSlayer/releases and place under %s.", + "Missing dependency: Download from https://github.com/otavepto/NETReactorSlayer/releases and place under %s.", binary, ) return From a057c61a1e6462f574e94fd441ca0acbd89e1ce7 Mon Sep 17 00:00:00 2001 From: Josh Feather <142008135+josh-feather@users.noreply.github.com> Date: Thu, 17 Oct 2024 12:05:50 +0100 Subject: [PATCH 37/98] Package consolidation fix (#2357) * Fix unit tests for package changes in 45b0099 * Remove vawtrack package --- analyzer/windows/modules/packages/vawtrak.py | 51 ------------ .../windows/tests/test_analysis_packages.py | 49 +---------- analyzer/windows/tests/test_analyzer.py | 81 ++----------------- docs/book/src/usage/packages.rst | 15 +--- lib/cuckoo/common/integrations/floss.py | 4 +- lib/cuckoo/core/database.py | 4 +- tests/web/test_submission_views.py | 8 +- 7 files changed, 18 insertions(+), 194 deletions(-) delete mode 100644 analyzer/windows/modules/packages/vawtrak.py diff --git a/analyzer/windows/modules/packages/vawtrak.py b/analyzer/windows/modules/packages/vawtrak.py deleted file mode 100644 index 709ff56736d..00000000000 --- a/analyzer/windows/modules/packages/vawtrak.py +++ /dev/null @@ -1,51 +0,0 @@ -# Andriy :P - -import os -import shutil -from subprocess import call - -from lib.common.abstracts import Package -from lib.common.common import check_file_extension -from lib.common.constants import OPT_APPDATA, OPT_ARGUMENTS, OPT_RUNASX86 - - -class IE(Package): - """Internet Explorer analysis package.""" - - PATHS = [ - ("ProgramFiles", "Internet Explorer", "iexplore.exe"), - ] - summary = "Runs the supplied executable." - description = f"""First runs 'iexplore.exe about:blank' to open Internet Explorer. - Next executes the given sample, passing '{OPT_ARGUMENTS}' if specified. - Use the '{OPT_APPDATA}' option to run the executable from the APPDATA directory. - Use the '{OPT_RUNASX86}' option to set the 32BITREQUIRED flag in the PE header, - using 'CorFlags.exe /32bit+'. - The .exe filename extension will be added automatically.""" - option_names = (OPT_ARGUMENTS, OPT_APPDATA, OPT_RUNASX86) - - def start(self, path): - iexplore = self.get_path("iexplore.exe") - # pass the URL instead of a filename in this case - self.execute(iexplore, '"about:blank"', "about:blank") - - args = self.options.get(OPT_ARGUMENTS) - appdata = self.options.get(OPT_APPDATA) - runasx86 = self.options.get(OPT_RUNASX86) - - # If the file doesn't have an extension, add .exe - # See CWinApp::SetCurrentHandles(), it will throw - # an exception that will crash the app if it does - # not find an extension on the main exe's filename - path = check_file_extension(path, ".exe") - - if appdata: - # run the executable from the APPDATA directory, required for some malware - basepath = os.getenv("APPDATA") - newpath = os.path.join(basepath, os.path.basename(path)) - shutil.copy(path, newpath) - path = newpath - if runasx86: - # ignore the return value, user must have CorFlags.exe installed in the guest VM - call(["CorFlags.exe", path, "/32bit+"]) - return self.execute(path, args, path) diff --git a/analyzer/windows/tests/test_analysis_packages.py b/analyzer/windows/tests/test_analysis_packages.py index a86bc0b33ce..5c86fba6220 100644 --- a/analyzer/windows/tests/test_analysis_packages.py +++ b/analyzer/windows/tests/test_analysis_packages.py @@ -36,56 +36,17 @@ def test_has_summary_description(self): self.assertGreater(len(subclass.summary), 0) self.assertGreater(len(subclass.description), 0) - def test_choose_package_Shellcode_Unpacker(self): - pkg_class = self.class_from_analysis_package("modules.packages.Shellcode-Unpacker") - pkg_class() - def test_Shellcode(self): - pkg_class = self.class_from_analysis_package("modules.packages.Shellcode") + pkg_class = self.class_from_analysis_package("modules.packages.shellcode") obj = pkg_class() self.assertEqual("offset", obj.option_names[0]) expected_summary = "Executes 32-bit Shellcode using loader.exe." self.assertEqual(expected_summary, obj.summary) - def test_Shellcode_x64(self): - pkg_class = self.class_from_analysis_package("modules.packages.Shellcode_x64") + def test_shellcode_x64(self): + pkg_class = self.class_from_analysis_package("modules.packages.shellcode_x64") pkg_class() - def test_Unpacker(self): - pkg_class = self.class_from_analysis_package("modules.packages.Unpacker") - obj = pkg_class() - expected_summary = "Executes a .exe file with the unpacker option." - self.assertEqual(expected_summary, obj.summary) - - def test_Unpacker_dll(self): - pkg_class = self.class_from_analysis_package("modules.packages.Unpacker_dll") - obj = pkg_class() - self.assertEqual("arguments", obj.option_names[0]) - self.assertEqual("dllloader", obj.option_names[1]) - self.assertEqual("function", obj.option_names[2]) - - def test_Unpacker_js(self): - pkg_class = self.class_from_analysis_package("modules.packages.Unpacker_js") - obj = pkg_class() - expected_summary = "Executes a .JS file using wscript.exe." - self.assertEqual(expected_summary, obj.summary) - - def test_Unpacker_ps1(self): - pkg_class = self.class_from_analysis_package("modules.packages.Unpacker_ps1") - obj = pkg_class() - expected_summary = "Executes a sample file with powershell." - self.assertEqual(expected_summary, obj.summary) - - def test_Unpacker_regsvr(self): - pkg_class = self.class_from_analysis_package("modules.packages.Unpacker_regsvr") - pkg_class() - - def test_Unpacker_zip(self): - pkg_class = self.class_from_analysis_package("modules.packages.Unpacker_zip") - obj = pkg_class() - expected_summary = "Unzips a file with the supplied password, execute its contents." - self.assertEqual(expected_summary, obj.summary) - def test_access(self): pkg_class = self.class_from_analysis_package("modules.packages.access") pkg_class() @@ -315,10 +276,6 @@ def test_swf(self): pkg_class = self.class_from_analysis_package("modules.packages.swf") pkg_class() - def test_vawtrak(self): - pkg_class = self.class_from_analysis_package("modules.packages.vawtrak") - pkg_class() - def test_vbejse(self): pkg_class = self.class_from_analysis_package("modules.packages.vbejse") pkg_class() diff --git a/analyzer/windows/tests/test_analyzer.py b/analyzer/windows/tests/test_analyzer.py index c633a4a7d73..a8db4ec4241 100644 --- a/analyzer/windows/tests/test_analyzer.py +++ b/analyzer/windows/tests/test_analyzer.py @@ -81,87 +81,25 @@ def test_prepare(self, set_lock, init_logging, config, pipeserver): class TestAnalyzerChoosePackage(unittest.TestCase): - def test_choose_package_Shellcode_Unpacker(self): - test = analyzer.Analyzer() - test.config = MagicMock() - test.options = MagicMock() - test.config.package = "Shellcode-Unpacker" - pkg_name, pkg_class = test.choose_package() - self.assertEqual("modules.packages.Shellcode-Unpacker", pkg_name) - self.assertEqual(pkg_class.__class__.__name__, "Shellcode_Unpacker") - def test_choose_package_Shellcode(self): + def test_choose_package_shellcode(self): test = analyzer.Analyzer() test.config = MagicMock() test.options = MagicMock() - test.config.package = "Shellcode" + test.config.package = "shellcode" pkg_name, pkg_class = test.choose_package() - self.assertEqual("modules.packages.Shellcode", pkg_name) + self.assertEqual("modules.packages.shellcode", pkg_name) self.assertEqual(pkg_class.__class__.__name__, "Shellcode") def test_choose_package_Shellcode_x64(self): test = analyzer.Analyzer() test.config = MagicMock() test.options = MagicMock() - test.config.package = "Shellcode_x64" + test.config.package = "shellcode_x64" pkg_name, pkg_class = test.choose_package() - self.assertEqual("modules.packages.Shellcode_x64", pkg_name) + self.assertEqual("modules.packages.shellcode_x64", pkg_name) self.assertEqual(pkg_class.__class__.__name__, "Shellcode_x64") - def test_choose_package_Unpacker(self): - test = analyzer.Analyzer() - test.config = MagicMock() - test.options = MagicMock() - test.config.package = "Unpacker" - pkg_name, pkg_class = test.choose_package() - self.assertEqual("modules.packages.Unpacker", pkg_name) - self.assertEqual(pkg_class.__class__.__name__, "Unpacker") - - def test_choose_package_Unpacker_dll(self): - test = analyzer.Analyzer() - test.config = MagicMock() - test.options = MagicMock() - test.config.package = "Unpacker_dll" - pkg_name, pkg_class = test.choose_package() - self.assertEqual("modules.packages.Unpacker_dll", pkg_name) - self.assertEqual(pkg_class.__class__.__name__, "Unpacker_dll") - - def test_choose_package_Unpacker_js(self): - test = analyzer.Analyzer() - test.config = MagicMock() - test.options = MagicMock() - test.config.package = "Unpacker_js" - pkg_name, pkg_class = test.choose_package() - self.assertEqual("modules.packages.Unpacker_js", pkg_name) - self.assertEqual(pkg_class.__class__.__name__, "Unpacker_JS") - - def test_choose_package_Unpacker_ps1(self): - test = analyzer.Analyzer() - test.config = MagicMock() - test.options = MagicMock() - test.config.package = "Unpacker_ps1" - pkg_name, pkg_class = test.choose_package() - self.assertEqual("modules.packages.Unpacker_ps1", pkg_name) - self.assertEqual(pkg_class.__class__.__name__, "PS1") - - def test_choose_package_Unpacker_regsvr(self): - test = analyzer.Analyzer() - test.config = MagicMock() - test.options = MagicMock() - test.config.package = "Unpacker_regsvr" - pkg_name, pkg_class = test.choose_package() - self.assertEqual("modules.packages.Unpacker_regsvr", pkg_name) - self.assertEqual(pkg_class.__class__.__name__, "Unpacker_Regsvr") - - def test_choose_package_Unpacker_zip(self): - test = analyzer.Analyzer() - test.config = MagicMock() - test.options = MagicMock() - test.config.package = "Unpacker_zip" - pkg_name, pkg_class = test.choose_package() - self.assertEqual("modules.packages.Unpacker_zip", pkg_name) - self.assertEqual(pkg_class.__class__.__name__, "Unpacker_zip") - def test_choose_package_access(self): test = analyzer.Analyzer() test.config = MagicMock() @@ -603,15 +541,6 @@ def test_choose_package_swf(self): self.assertEqual("modules.packages.swf", pkg_name) self.assertEqual(pkg_class.__class__.__name__, "SWF") - def test_choose_package_vawtrak(self): - test = analyzer.Analyzer() - test.config = MagicMock() - test.options = MagicMock() - test.config.package = "vawtrak" - pkg_name, pkg_class = test.choose_package() - self.assertEqual("modules.packages.vawtrak", pkg_name) - self.assertEqual(pkg_class.__class__.__name__, "IE") - def test_choose_package_vbejse(self): test = analyzer.Analyzer() test.config = MagicMock() diff --git a/docs/book/src/usage/packages.rst b/docs/book/src/usage/packages.rst index 59152c7cd2e..bf622f1d7d7 100644 --- a/docs/book/src/usage/packages.rst +++ b/docs/book/src/usage/packages.rst @@ -30,7 +30,7 @@ The following is a list of the existing packages in alphabetical order: prior to executing files of interest within in the extracted folder. **Options**: - * ``arguments``: specify arguments to pass to the DLL through commandline. + * ``arguments``: specify arguments to pass to the DLL through commandline. * ``dllloader``: specify a process name to use to fake the DLL launcher name instead of ``rundll32.exe`` (this is used to fool possible anti-sandboxing tricks of certain malware). * ``file``: specify the name of the file contained in the archive to execute. If none is specified, CAPE will try to execute *sample.exe*. * ``function``: specify the function to be executed. If none is specified, CAPE will try to run the entry at ordinal 1. @@ -172,15 +172,6 @@ The following is a list of the existing packages in alphabetical order: *NB*: You need to have ``flashplayer.exe`` in the analyzer's ``bin`` folder. - * ``vawtrak``: used to run and analyze **Vawtrak malware** with ``iexplore.exe``. - - *NB*: https://www.microsoft.com/en-us/wdsi/threats/malware-encyclopedia-description?Name=Backdoor:Win32/Vawtrak.A - - **Options**: - * ``appdata``: *[yes/no]* if enabled, run the executable from the APPDATA directory. - * ``arguments``: specify any command line argument to pass to the initial process of the submitted malware. - * ``runasx86``: *[yes/no]* if enabled, run ``CorFlags.exe`` with ``/32bit+`` prior to execution. - * ``vbejse``: used to run and analyze **VBScript Encoded and JScript Encoded files** via ``wscript.exe``. * ``vbs``: used to run and analyze **VBScript and VBScript Encoded files** via ``wscript.exe``. * ``wsf``: used to run and analyze **Windows Script Files** via ``wscript.exe``. @@ -205,7 +196,7 @@ The following is a list of the existing packages in alphabetical order: **Options**: * ``appdata``: *[yes/no]* if enabled, create custom folders in the APPDATA directory. - * ``arguments``: specify arguments to pass to the DLL through commandline. + * ``arguments``: specify arguments to pass to the DLL through commandline. * ``curdir``: specify the directory to create custom folders. * ``dllloader``: specify a process name to use to fake the DLL launcher name instead of ``rundll32.exe`` (this is used to fool possible anti-sandboxing tricks of certain malware). * ``file``: specify the name of the file contained in the archive to execute. If none is specified, a ``__configuration.json`` file must be present in the zip file. @@ -216,7 +207,7 @@ The following is a list of the existing packages in alphabetical order: **Options**: * ``appdata``: *[yes/no]* if enabled, create custom folders in the APPDATA directory. - * ``arguments``: specify arguments to pass to the DLL through commandline. + * ``arguments``: specify arguments to pass to the DLL through commandline. * ``dllloader``: specify a process name to use to fake the DLL launcher name instead of ``rundll32.exe`` (this is used to fool possible anti-sandboxing tricks of certain malware). * ``file``: specify the name of the file contained in the archive to execute. If none is specified, CAPE will try to execute *sample.exe*. * ``function``: specify the function to be executed. If none is specified, CAPE will try to run the entry at ordinal 1. diff --git a/lib/cuckoo/common/integrations/floss.py b/lib/cuckoo/common/integrations/floss.py index f146ff7e9c9..5bc55331822 100644 --- a/lib/cuckoo/common/integrations/floss.py +++ b/lib/cuckoo/common/integrations/floss.py @@ -48,9 +48,9 @@ def run(self): try: if not fm.is_supported_file_type(Path(self.file_path)): - if self.package == "Shellcode": + if self.package == "shellcode": fileformat = "sc32" - elif self.package == "Shellcode_x64": + elif self.package == "shellcode_x64": fileformat = "sc64" else: return results diff --git a/lib/cuckoo/core/database.py b/lib/cuckoo/core/database.py index a549b1b870f..0efb16f49e1 100644 --- a/lib/cuckoo/core/database.py +++ b/lib/cuckoo/core/database.py @@ -103,8 +103,8 @@ "msbuild", "sct", "xslt", - "Shellcode", - "Shellcode_x64", + "shellcode", + "shellcode_x64", "generic", "iso", "vhd", diff --git a/tests/web/test_submission_views.py b/tests/web/test_submission_views.py index 007fe0dca85..5896cf79428 100644 --- a/tests/web/test_submission_views.py +++ b/tests/web/test_submission_views.py @@ -71,7 +71,6 @@ def test_submission_page(self): self.assertEqual('value="" title="">Detect Automatically', options[0]) self.one_should_match('value="exe" title=".*">exe - .*', options) - self.one_should_match('value="Unpacker" title="[^"]*">Unpacker', options) self.one_should_match(".*ichitaro.*", options) self.one_should_match(".*chromium.*", options) self.assertGreater(len(options), 10) @@ -80,7 +79,7 @@ def test_submission_page(self): def test_package_exclusion(self): """Pick a couple of packages to exclude, to test exclusion""" - web_conf.package_exclusion.packages = "chromium,chromium_ext,ichitaro,Shellcode" + web_conf.package_exclusion.packages = "chromium,chromium_ext,ichitaro,shellcode" submission_page = self.client.get("/submit/#file") self.assertIsNotNone(submission_page.content) self.assertIn("Analysis Package", submission_page.content.decode()) @@ -90,9 +89,8 @@ def test_package_exclusion(self): # excluded packages should not be listed self.none_should_match(".*ichitaro.*", options) self.none_should_match(".*chromium.*", options) - # Package 'Shellcode' was excluded, but not 'Shellcode-Unpacker'. - self.none_should_match('.*"Shellcode".*', options) - self.one_should_match('.*"Shellcode-Unpacker".*', options) + # Package 'shellcode' was excluded. + self.none_should_match('.*"shellcode".*', options) def test_get_package_exe_info(self): """Get the package info from exe.py.""" From 72c5289838b3d41dcb6db6b18ef27a700ea3a8eb Mon Sep 17 00:00:00 2001 From: Josh Feather <142008135+josh-feather@users.noreply.github.com> Date: Thu, 17 Oct 2024 12:19:19 +0100 Subject: [PATCH 38/98] Rename test_Shellcode test to test_shellcode (#2358) --- analyzer/windows/tests/test_analysis_packages.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/analyzer/windows/tests/test_analysis_packages.py b/analyzer/windows/tests/test_analysis_packages.py index 5c86fba6220..d1bd1202198 100644 --- a/analyzer/windows/tests/test_analysis_packages.py +++ b/analyzer/windows/tests/test_analysis_packages.py @@ -36,7 +36,7 @@ def test_has_summary_description(self): self.assertGreater(len(subclass.summary), 0) self.assertGreater(len(subclass.description), 0) - def test_Shellcode(self): + def test_shellcode(self): pkg_class = self.class_from_analysis_package("modules.packages.shellcode") obj = pkg_class() self.assertEqual("offset", obj.option_names[0]) From a411d423d2badcb5ac5f344345770d902b053287 Mon Sep 17 00:00:00 2001 From: qux-bbb <1147635419@qq.com> Date: Thu, 17 Oct 2024 23:28:36 +0800 Subject: [PATCH 39/98] Save stdout and stderr to log (#2359) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f0c302fd6ef..5bc6459548d 100644 --- a/README.md +++ b/README.md @@ -162,10 +162,10 @@ A huge thank you to @D00m3dR4v3n for single-handedly porting CAPE to Python 3. * Replace `` with a real pattern. * You need to replace all `` inside! * Read it! You must understand what it does! It has configuration in header of the script. - * `sudo ./kvm-qemu.sh all | tee kvm-qemu.log` + * `sudo ./kvm-qemu.sh all 2>&1 | tee kvm-qemu.log` 4. To install CAPE itself, [cape2.sh](https://github.com/kevoreilly/CAPEv2/blob/master/installer/cape2.sh) with all optimizations * Read and understand what it does! This is not a silver bullet for all your problems! It has configuration in header of the script. - * `sudo ./cape2.sh base | tee cape.log` + * `sudo ./cape2.sh base 2>&1 | tee cape.log` 5. After installing everything save both installation logs as gold! 6. Configure CAPE by doing mods to config files inside `conf` folder. 7. Restart all CAPE services to pick config changes and run CAPE properly! From da36b34377f3697b40a86ee4fbfa048bd69205b9 Mon Sep 17 00:00:00 2001 From: Maxime Berthault <2143487+Maxou56800@users.noreply.github.com> Date: Fri, 18 Oct 2024 07:59:50 +0200 Subject: [PATCH 40/98] Update mongodb to 8.0 (#2361) --- installer/cape2.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/installer/cape2.sh b/installer/cape2.sh index d89faff9ab8..055dfcfa5ef 100644 --- a/installer/cape2.sh +++ b/installer/cape2.sh @@ -785,7 +785,7 @@ function install_mongo(){ echo "[+] Installing MongoDB" # Mongo >=5 requires CPU AVX instruction support https://www.mongodb.com/docs/manual/administration/production-notes/#x86_64 if grep -q ' avx ' /proc/cpuinfo; then - MONGO_VERSION="7.0" + MONGO_VERSION="8.0" else echo "[-] Mongo >= 5 is not supported" MONGO_VERSION="4.4" From 6cd365a16f016015da94713e31f57f9c95cfb5b9 Mon Sep 17 00:00:00 2001 From: Yung Binary <93540406+YungBinary@users.noreply.github.com> Date: Sun, 20 Oct 2024 00:39:32 +0000 Subject: [PATCH 41/98] Add Lumma C2 extractor --- data/yara/CAPE/Lumma.yar | 38 ++++++++---- modules/processing/parsers/CAPE/Lumma.py | 73 +++++++++++++++++++++--- 2 files changed, 93 insertions(+), 18 deletions(-) diff --git a/data/yara/CAPE/Lumma.yar b/data/yara/CAPE/Lumma.yar index 4be2af810bc..8da6997b6f2 100644 --- a/data/yara/CAPE/Lumma.yar +++ b/data/yara/CAPE/Lumma.yar @@ -1,14 +1,30 @@ rule Lumma { - meta: - author = "kevoreilly" - description = "Lumma Payload" - cape_type = "Lumma Payload" - packed = "0ee580f0127b821f4f1e7c032cf76475df9724a9fade2e153a69849f652045f8" - strings: - $c2 = {8D 44 24 ?? 50 89 4C 24 ?? FF 31 E8 [4] 83 C4 08 B8 FF FF FF FF} - $peb = {8B 44 24 04 85 C0 74 13 64 8B 0D 30 00 00 00 50 6A 00 FF 71 18 FF 15} - $remap = {C6 44 24 20 00 C7 44 24 1C C2 00 00 90 C7 44 24 18 00 00 FF D2 C7 44 24 14 00 BA 00 00 C7 44 24 10 B8 00 00 00 8B ?? 89 44 24 11} - condition: - uint16(0) == 0x5a4d and any of them + meta: + author = "YungBinary" + description = "Lumma stealer" + cape_type = "Lumma Payload" + packed = "5d58bc449693815f6fb0755a364c4cd3a8e2a81188e431d4801f2fb0b1c2de8f" + strings: + $chunk_1 = { + 0F B6 14 0E + 89 CF + 83 E7 1F + 0F B6 7C 3C ?? + 89 D3 + 31 FB + 83 F3 FF + 89 FD + 21 DD + D1 E5 + 29 FD + 29 EA + 8B 5C 24 ?? + 88 14 0B + EB ?? + } + + condition: + uint16(0) == 0x5a4d and $chunk_1 + } diff --git a/modules/processing/parsers/CAPE/Lumma.py b/modules/processing/parsers/CAPE/Lumma.py index 8c5352b09a5..6b0c4d9db67 100644 --- a/modules/processing/parsers/CAPE/Lumma.py +++ b/modules/processing/parsers/CAPE/Lumma.py @@ -1,12 +1,71 @@ +import base64 +import pefile +import re + +def is_base64(s): + pattern = re.compile("^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$") + if not s or len(s) < 1: + return False + else: + return pattern.match(s) + +def extract_strings(data, minchars): + endlimit = b"8192" + apat = b"([\x20-\x7e]{" + str(minchars).encode() + b"," + endlimit + b"})\x00" + upat = b"((?:[\x20-\x7e][\x00]){" + str(minchars).encode() + b"," + endlimit + b"})\x00\x00" + strings = [string.decode() for string in re.findall(apat, data)] + return strings + +def get_base64_strings(str_list): + base64_strings = [] + for s in str_list: + if is_base64(s): + base64_strings.append(s) + return base64_strings + +def get_rdata(data): + rdata = None + pe = pefile.PE(data=data) + section_idx = 0 + for section in pe.sections: + if section.Name == b'.rdata\x00\x00': + rdata = pe.sections[section_idx].get_data() + break + section_idx += 1 + return rdata + +def xor_data(data, key): + decoded = bytearray() + key_len = len(key) + for i in range(len(data)): + if i >= key_len: + break + decoded.append(data[i] ^ key[i]) + return decoded + +def contains_non_printable(byte_array): + for byte in byte_array: + if not chr(byte).isprintable(): + return True + return False + def extract_config(data): - config_dict = {} - C2s = [] + config_dict = {"C2": []} try: - lines = data.decode().split("\n") - for line in lines: - if "." in line and len(line) > 2: - C2s.append(line) + rdata = get_rdata(data) + strings = extract_strings(rdata, 44) + base64_strings = get_base64_strings(strings) + for base64_str in base64_strings: + decoded_bytes = base64.b64decode(base64_str, validate=True) + encoded_c2 = decoded_bytes[:32] + xor_key = decoded_bytes[32:] + + decoded_c2 = xor_data(encoded_c2, xor_key) + + if not contains_non_printable(decoded_c2): + config_dict["C2"].append(decoded_c2.decode()) + except Exception: return - config_dict["C2s"] = C2s + return config_dict From fb3d6e95afdd29a36a491ea43b42e8a033af4f8a Mon Sep 17 00:00:00 2001 From: Yung Binary <93540406+YungBinary@users.noreply.github.com> Date: Sun, 20 Oct 2024 00:42:42 +0000 Subject: [PATCH 42/98] Fix unused var --- modules/processing/parsers/CAPE/Lumma.py | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/processing/parsers/CAPE/Lumma.py b/modules/processing/parsers/CAPE/Lumma.py index 6b0c4d9db67..1aa00c5d862 100644 --- a/modules/processing/parsers/CAPE/Lumma.py +++ b/modules/processing/parsers/CAPE/Lumma.py @@ -12,7 +12,6 @@ def is_base64(s): def extract_strings(data, minchars): endlimit = b"8192" apat = b"([\x20-\x7e]{" + str(minchars).encode() + b"," + endlimit + b"})\x00" - upat = b"((?:[\x20-\x7e][\x00]){" + str(minchars).encode() + b"," + endlimit + b"})\x00\x00" strings = [string.decode() for string in re.findall(apat, data)] return strings From b75b80af21e17cc73da4794e0c9481dbcc349556 Mon Sep 17 00:00:00 2001 From: Yung Binary <93540406+YungBinary@users.noreply.github.com> Date: Sun, 20 Oct 2024 08:40:04 +0000 Subject: [PATCH 43/98] Backwards compatible yara rule add kev author --- data/yara/CAPE/Lumma.yar | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/data/yara/CAPE/Lumma.yar b/data/yara/CAPE/Lumma.yar index 8da6997b6f2..8b27eb42a9c 100644 --- a/data/yara/CAPE/Lumma.yar +++ b/data/yara/CAPE/Lumma.yar @@ -1,12 +1,15 @@ rule Lumma { meta: - author = "YungBinary" + author = "kevoreilly,YungBinary" description = "Lumma stealer" cape_type = "Lumma Payload" packed = "5d58bc449693815f6fb0755a364c4cd3a8e2a81188e431d4801f2fb0b1c2de8f" strings: - $chunk_1 = { + $c2 = {8D 44 24 ?? 50 89 4C 24 ?? FF 31 E8 [4] 83 C4 08 B8 FF FF FF FF} + $peb = {8B 44 24 04 85 C0 74 13 64 8B 0D 30 00 00 00 50 6A 00 FF 71 18 FF 15} + $remap = {C6 44 24 20 00 C7 44 24 1C C2 00 00 90 C7 44 24 18 00 00 FF D2 C7 44 24 14 00 BA 00 00 C7 44 24 10 B8 00 00 00 8B ?? 89 44 24 11} + $xor_decode = { 0F B6 14 0E 89 CF 83 E7 1F @@ -25,6 +28,6 @@ rule Lumma } condition: - uint16(0) == 0x5a4d and $chunk_1 + uint16(0) == 0x5a4d and any of them } From 7ef999bd644cbef7cdaa3e8c5b7e85549dbb1cc7 Mon Sep 17 00:00:00 2001 From: Yung Binary <93540406+YungBinary@users.noreply.github.com> Date: Sun, 20 Oct 2024 08:41:49 +0000 Subject: [PATCH 44/98] Tabs -> Spaces --- data/yara/CAPE/Lumma.yar | 50 ++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/data/yara/CAPE/Lumma.yar b/data/yara/CAPE/Lumma.yar index 8b27eb42a9c..a0b9ebcb410 100644 --- a/data/yara/CAPE/Lumma.yar +++ b/data/yara/CAPE/Lumma.yar @@ -1,33 +1,33 @@ rule Lumma { - meta: - author = "kevoreilly,YungBinary" - description = "Lumma stealer" - cape_type = "Lumma Payload" - packed = "5d58bc449693815f6fb0755a364c4cd3a8e2a81188e431d4801f2fb0b1c2de8f" - strings: - $c2 = {8D 44 24 ?? 50 89 4C 24 ?? FF 31 E8 [4] 83 C4 08 B8 FF FF FF FF} + meta: + author = "kevoreilly,YungBinary" + description = "Lumma stealer" + cape_type = "Lumma Payload" + packed = "5d58bc449693815f6fb0755a364c4cd3a8e2a81188e431d4801f2fb0b1c2de8f" + strings: + $c2 = {8D 44 24 ?? 50 89 4C 24 ?? FF 31 E8 [4] 83 C4 08 B8 FF FF FF FF} $peb = {8B 44 24 04 85 C0 74 13 64 8B 0D 30 00 00 00 50 6A 00 FF 71 18 FF 15} $remap = {C6 44 24 20 00 C7 44 24 1C C2 00 00 90 C7 44 24 18 00 00 FF D2 C7 44 24 14 00 BA 00 00 C7 44 24 10 B8 00 00 00 8B ?? 89 44 24 11} - $xor_decode = { - 0F B6 14 0E - 89 CF - 83 E7 1F - 0F B6 7C 3C ?? - 89 D3 - 31 FB - 83 F3 FF - 89 FD - 21 DD - D1 E5 - 29 FD - 29 EA - 8B 5C 24 ?? - 88 14 0B - EB ?? - } + $xor_decode = { + 0F B6 14 0E + 89 CF + 83 E7 1F + 0F B6 7C 3C ?? + 89 D3 + 31 FB + 83 F3 FF + 89 FD + 21 DD + D1 E5 + 29 FD + 29 EA + 8B 5C 24 ?? + 88 14 0B + EB ?? + } condition: - uint16(0) == 0x5a4d and any of them + uint16(0) == 0x5a4d and any of them } From bdde20686a652e9809a664c95148ce3b088f90ab Mon Sep 17 00:00:00 2001 From: Yung Binary <93540406+YungBinary@users.noreply.github.com> Date: Sun, 20 Oct 2024 08:43:43 +0000 Subject: [PATCH 45/98] Tabs -> Spaces --- data/yara/CAPE/Lumma.yar | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/data/yara/CAPE/Lumma.yar b/data/yara/CAPE/Lumma.yar index a0b9ebcb410..3a74f1d0023 100644 --- a/data/yara/CAPE/Lumma.yar +++ b/data/yara/CAPE/Lumma.yar @@ -2,7 +2,7 @@ rule Lumma { meta: author = "kevoreilly,YungBinary" - description = "Lumma stealer" + description = "Lumma Payload" cape_type = "Lumma Payload" packed = "5d58bc449693815f6fb0755a364c4cd3a8e2a81188e431d4801f2fb0b1c2de8f" strings: @@ -10,24 +10,24 @@ rule Lumma $peb = {8B 44 24 04 85 C0 74 13 64 8B 0D 30 00 00 00 50 6A 00 FF 71 18 FF 15} $remap = {C6 44 24 20 00 C7 44 24 1C C2 00 00 90 C7 44 24 18 00 00 FF D2 C7 44 24 14 00 BA 00 00 C7 44 24 10 B8 00 00 00 8B ?? 89 44 24 11} $xor_decode = { - 0F B6 14 0E - 89 CF - 83 E7 1F - 0F B6 7C 3C ?? - 89 D3 - 31 FB - 83 F3 FF - 89 FD - 21 DD - D1 E5 - 29 FD - 29 EA - 8B 5C 24 ?? - 88 14 0B - EB ?? + 0F B6 14 0E + 89 CF + 83 E7 1F + 0F B6 7C 3C ?? + 89 D3 + 31 FB + 83 F3 FF + 89 FD + 21 DD + D1 E5 + 29 FD + 29 EA + 8B 5C 24 ?? + 88 14 0B + EB ?? } - condition: + condition: uint16(0) == 0x5a4d and any of them } From d9e5b424d3096c6cbcda3a584080393023b346e1 Mon Sep 17 00:00:00 2001 From: Yung Binary <93540406+YungBinary@users.noreply.github.com> Date: Sun, 20 Oct 2024 08:44:09 +0000 Subject: [PATCH 46/98] Fix new line --- data/yara/CAPE/Lumma.yar | 1 - 1 file changed, 1 deletion(-) diff --git a/data/yara/CAPE/Lumma.yar b/data/yara/CAPE/Lumma.yar index 3a74f1d0023..dad8967c68b 100644 --- a/data/yara/CAPE/Lumma.yar +++ b/data/yara/CAPE/Lumma.yar @@ -29,5 +29,4 @@ rule Lumma condition: uint16(0) == 0x5a4d and any of them - } From b9dd1e773d4198b795bab2929574a684ce638a76 Mon Sep 17 00:00:00 2001 From: Yung Binary <93540406+YungBinary@users.noreply.github.com> Date: Sun, 20 Oct 2024 08:45:49 +0000 Subject: [PATCH 47/98] Fix order --- data/yara/CAPE/Lumma.yar | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/data/yara/CAPE/Lumma.yar b/data/yara/CAPE/Lumma.yar index dad8967c68b..e4cb735628a 100644 --- a/data/yara/CAPE/Lumma.yar +++ b/data/yara/CAPE/Lumma.yar @@ -6,10 +6,7 @@ rule Lumma cape_type = "Lumma Payload" packed = "5d58bc449693815f6fb0755a364c4cd3a8e2a81188e431d4801f2fb0b1c2de8f" strings: - $c2 = {8D 44 24 ?? 50 89 4C 24 ?? FF 31 E8 [4] 83 C4 08 B8 FF FF FF FF} - $peb = {8B 44 24 04 85 C0 74 13 64 8B 0D 30 00 00 00 50 6A 00 FF 71 18 FF 15} - $remap = {C6 44 24 20 00 C7 44 24 1C C2 00 00 90 C7 44 24 18 00 00 FF D2 C7 44 24 14 00 BA 00 00 C7 44 24 10 B8 00 00 00 8B ?? 89 44 24 11} - $xor_decode = { + $xor_decode = { 0F B6 14 0E 89 CF 83 E7 1F @@ -26,6 +23,9 @@ rule Lumma 88 14 0B EB ?? } + $c2 = {8D 44 24 ?? 50 89 4C 24 ?? FF 31 E8 [4] 83 C4 08 B8 FF FF FF FF} + $peb = {8B 44 24 04 85 C0 74 13 64 8B 0D 30 00 00 00 50 6A 00 FF 71 18 FF 15} + $remap = {C6 44 24 20 00 C7 44 24 1C C2 00 00 90 C7 44 24 18 00 00 FF D2 C7 44 24 14 00 BA 00 00 C7 44 24 10 B8 00 00 00 8B ?? 89 44 24 11} condition: uint16(0) == 0x5a4d and any of them From 3a4157176b3e2e79d141d9a5310ca9885165e5dd Mon Sep 17 00:00:00 2001 From: Yung Binary <93540406+YungBinary@users.noreply.github.com> Date: Sun, 20 Oct 2024 08:54:54 +0000 Subject: [PATCH 48/98] Maintain backwards compatibility --- modules/processing/parsers/CAPE/Lumma.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/modules/processing/parsers/CAPE/Lumma.py b/modules/processing/parsers/CAPE/Lumma.py index 1aa00c5d862..e1ab1e0715a 100644 --- a/modules/processing/parsers/CAPE/Lumma.py +++ b/modules/processing/parsers/CAPE/Lumma.py @@ -51,15 +51,23 @@ def contains_non_printable(byte_array): def extract_config(data): config_dict = {"C2": []} try: - rdata = get_rdata(data) - strings = extract_strings(rdata, 44) - base64_strings = get_base64_strings(strings) - for base64_str in base64_strings: - decoded_bytes = base64.b64decode(base64_str, validate=True) - encoded_c2 = decoded_bytes[:32] - xor_key = decoded_bytes[32:] + lines = data.decode().split("\n") + for line in lines: + if "." in line and len(line) > 2: + if not contains_non_printable(line): + config_dict["C2"].append(line) - decoded_c2 = xor_data(encoded_c2, xor_key) + # If no C2s with the old method, + # try with newer version xor decoding + if not config_dict["C2"]: + rdata = get_rdata(data) + strings = extract_strings(rdata, 44) + base64_strings = get_base64_strings(strings) + for base64_str in base64_strings: + decoded_bytes = base64.b64decode(base64_str, validate=True) + encoded_c2 = decoded_bytes[:32] + xor_key = decoded_bytes[32:] + decoded_c2 = xor_data(encoded_c2, xor_key) if not contains_non_printable(decoded_c2): config_dict["C2"].append(decoded_c2.decode()) From c5e2e03ee777aa3ca7c497ea9406cf003e686dc1 Mon Sep 17 00:00:00 2001 From: Yung Binary <93540406+YungBinary@users.noreply.github.com> Date: Sun, 20 Oct 2024 09:05:54 +0000 Subject: [PATCH 49/98] Fix --- data/yara/CAPE/Lumma.yar | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/yara/CAPE/Lumma.yar b/data/yara/CAPE/Lumma.yar index e4cb735628a..83e318d8219 100644 --- a/data/yara/CAPE/Lumma.yar +++ b/data/yara/CAPE/Lumma.yar @@ -6,7 +6,7 @@ rule Lumma cape_type = "Lumma Payload" packed = "5d58bc449693815f6fb0755a364c4cd3a8e2a81188e431d4801f2fb0b1c2de8f" strings: - $xor_decode = { + $xor_decode = { 0F B6 14 0E 89 CF 83 E7 1F From cd03becb2f4841588394bbad420af862f570c41b Mon Sep 17 00:00:00 2001 From: Yung Binary <93540406+YungBinary@users.noreply.github.com> Date: Sun, 20 Oct 2024 09:10:16 +0000 Subject: [PATCH 50/98] Fix backwards compat --- modules/processing/parsers/CAPE/Lumma.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/modules/processing/parsers/CAPE/Lumma.py b/modules/processing/parsers/CAPE/Lumma.py index e1ab1e0715a..a747c7f43d0 100644 --- a/modules/processing/parsers/CAPE/Lumma.py +++ b/modules/processing/parsers/CAPE/Lumma.py @@ -56,10 +56,13 @@ def extract_config(data): if "." in line and len(line) > 2: if not contains_non_printable(line): config_dict["C2"].append(line) + except Exception: + pass - # If no C2s with the old method, - # try with newer version xor decoding - if not config_dict["C2"]: + # If no C2s with the old method, + # try with newer version xor decoding + if not config_dict["C2"]: + try: rdata = get_rdata(data) strings = extract_strings(rdata, 44) base64_strings = get_base64_strings(strings) @@ -72,7 +75,7 @@ def extract_config(data): if not contains_non_printable(decoded_c2): config_dict["C2"].append(decoded_c2.decode()) - except Exception: - return + except Exception: + pass return config_dict From d031f4917ff895a834327dd5e5ef90b85801163e Mon Sep 17 00:00:00 2001 From: Yung Binary <93540406+YungBinary@users.noreply.github.com> Date: Sun, 20 Oct 2024 09:43:00 +0000 Subject: [PATCH 51/98] Fix --- modules/processing/parsers/CAPE/Lumma.py | 29 +++++++++++++++--------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/modules/processing/parsers/CAPE/Lumma.py b/modules/processing/parsers/CAPE/Lumma.py index a747c7f43d0..c72db668a87 100644 --- a/modules/processing/parsers/CAPE/Lumma.py +++ b/modules/processing/parsers/CAPE/Lumma.py @@ -50,12 +50,16 @@ def contains_non_printable(byte_array): def extract_config(data): config_dict = {"C2": []} + try: lines = data.decode().split("\n") for line in lines: - if "." in line and len(line) > 2: - if not contains_non_printable(line): - config_dict["C2"].append(line) + try: + if "." in line and len(line) > 2: + if not contains_non_printable(line): + config_dict["C2"].append(line) + except Exception: + continue except Exception: pass @@ -66,16 +70,19 @@ def extract_config(data): rdata = get_rdata(data) strings = extract_strings(rdata, 44) base64_strings = get_base64_strings(strings) - for base64_str in base64_strings: - decoded_bytes = base64.b64decode(base64_str, validate=True) - encoded_c2 = decoded_bytes[:32] - xor_key = decoded_bytes[32:] - decoded_c2 = xor_data(encoded_c2, xor_key) - if not contains_non_printable(decoded_c2): - config_dict["C2"].append(decoded_c2.decode()) + for base64_str in base64_strings: + try: + decoded_bytes = base64.b64decode(base64_str, validate=True) + encoded_c2 = decoded_bytes[:32] + xor_key = decoded_bytes[32:] + decoded_c2 = xor_data(encoded_c2, xor_key) + if not contains_non_printable(decoded_c2): + config_dict["C2"].append(decoded_c2.decode()) + except Exception: + continue except Exception: - pass + return return config_dict From f289fcfa5bd7f121d6c52b6efba5a4630ba87c43 Mon Sep 17 00:00:00 2001 From: doomedraven Date: Tue, 22 Oct 2024 13:58:37 +0200 Subject: [PATCH 52/98] overlay (#2364) --- conf/default/processing.conf.default | 5 -- conf/default/selfextract.conf.default | 5 ++ .../common/integrations/file_extra_info.py | 3 - .../file_extra_info_modules/overlay.py | 35 +++++++++ modules/processing/overlay.py | 70 ------------------ web/templates/analysis/overlay/index.html | 74 ------------------- 6 files changed, 40 insertions(+), 152 deletions(-) create mode 100644 lib/cuckoo/common/integrations/file_extra_info_modules/overlay.py delete mode 100644 modules/processing/overlay.py delete mode 100644 web/templates/analysis/overlay/index.html diff --git a/conf/default/processing.conf.default b/conf/default/processing.conf.default index 0a83dda5407..dbd297d6286 100644 --- a/conf/default/processing.conf.default +++ b/conf/default/processing.conf.default @@ -321,11 +321,6 @@ key = [script_log_processing] enabled = yes -# Community -# Dump PE's overlay info -[overlay] -enabled = no - # Community [floss] enabled = no diff --git a/conf/default/selfextract.conf.default b/conf/default/selfextract.conf.default index 638bc1b4f49..b39903710fe 100644 --- a/conf/default/selfextract.conf.default +++ b/conf/default/selfextract.conf.default @@ -89,3 +89,8 @@ timeout = 60 [msix_extract] enabled = no timeout = 60 + +# PE file overlay +[overlay] +enabled = yes +timeout = 60 diff --git a/lib/cuckoo/common/integrations/file_extra_info.py b/lib/cuckoo/common/integrations/file_extra_info.py index 4e65c4bd18c..b49d5d31415 100644 --- a/lib/cuckoo/common/integrations/file_extra_info.py +++ b/lib/cuckoo/common/integrations/file_extra_info.py @@ -112,9 +112,6 @@ HAVE_BAT_DECODER = False print("OPTIONAL! Missed dependency: poetry run pip install -U git+https://github.com/DissectMalware/batch_deobfuscator") -processing_conf = Config("processing") -selfextract_conf = Config("selfextract") - unautoit_binary = os.path.join(CUCKOO_ROOT, selfextract_conf.UnAutoIt_extract.binary) if processing_conf.trid.enabled: diff --git a/lib/cuckoo/common/integrations/file_extra_info_modules/overlay.py b/lib/cuckoo/common/integrations/file_extra_info_modules/overlay.py new file mode 100644 index 00000000000..36518ede500 --- /dev/null +++ b/lib/cuckoo/common/integrations/file_extra_info_modules/overlay.py @@ -0,0 +1,35 @@ +import os +import logging +# from base64 import b64encode + +from lib.cuckoo.common.path_utils import path_write_file +from lib.cuckoo.common.integrations.file_extra_info_modules import time_tracker, ExtractorReturnType, extractor_ctx, collect_extracted_filenames + +log = logging.getLogger(__name__) + + +@time_tracker +def extract_details(file, *, data_dictionary, **_) -> ExtractorReturnType: + + if not data_dictionary.get("pe", {}).get("overlay"): + return {} + + data = "" + overlay_size = int(data_dictionary["pe"]["overlay"]["size"], 16) + # Extract out the overlay data + try: + with open(file, "rb") as f: + f.seek(-overlay_size, os.SEEK_END) + data = f.read() + # data_dictionary["pe"]["overlay"]["data"] = b64encode(data[: min(overlay_size, 4096)]) + except Exception as e: + log.error(e) + + + with extractor_ctx(file, "overlay", prefix="overlay") as ctx: + if data: + tempdir = ctx["tempdir"] + # You might need to change this 2 lines. See other examples in `file_extra_info.py` + _ = path_write_file(os.path.join(tempdir, "overlay"), data) + ctx["extracted_files"] = collect_extracted_filenames(tempdir) + return ctx diff --git a/modules/processing/overlay.py b/modules/processing/overlay.py deleted file mode 100644 index 7de6ade5372..00000000000 --- a/modules/processing/overlay.py +++ /dev/null @@ -1,70 +0,0 @@ -import base64 -import logging -import os - -from lib.cuckoo.common.abstracts import Processing -from lib.cuckoo.common.objects import File -from lib.cuckoo.common.path_utils import path_exists, path_mkdir, path_write_file - -log = logging.getLogger(__name__) - - -class process_overlay_file(object): - """Returns the file information of the containing overlay data""" - - def __init__(self, overlay_fullpath): - self.overlay_fullpath = overlay_fullpath - - def run(self): - if not self.options.enabled: - return {} - - if not path_exists(self.overlay_fullpath): - return {} - - file_info, _ = File(file_path=self.overlay_fullpath).get_all() - return file_info - - -class extract_overlay_data(Processing): - """Makes use of static.py's result to determine if there is overlay data. Only works for PE for now. - If overlay has been detected by static.py, we extract the whole data and save them in a file - @returns: Up to first 4096 bytes of overlay data added as part of the json, full data will need to be downloaded - """ - - # To tell CAPE to run this after first round of processing is done - order = 2 - - def run(self): - if "static" not in self.results: - return None - - self.key = "static" # uses the existing "static" sub container to add in the overlay data - output = self.results["static"] - - if not output.get("pe", {}).get("overlay"): - return output - - overlay_size = int(output["pe"]["overlay"]["size"], 16) - - # Extract out the overlay data - try: - with open(self.file_path, "rb") as f: - f.seek(-overlay_size, os.SEEK_END) - data = f.read() - output["pe"]["overlay"]["data"] = base64.b64encode(data[: min(overlay_size, 4096)]) - - fld = os.path.join(self.analysis_path, "files") - if not path_exists(fld): - log.warning("Folder not present, creating it. Might affect the displaying of (overlay) results on the web") - path_mkdir(fld) - - fld = os.path.join(fld, "extracted_overlay") - _ = path_write_file(fld, data) - - output["pe"]["overlay"]["fileinfo"] = process_overlay_file(fld).run() - - except Exception as e: - log.error(e) - - return output diff --git a/web/templates/analysis/overlay/index.html b/web/templates/analysis/overlay/index.html deleted file mode 100644 index 361facc9e84..00000000000 --- a/web/templates/analysis/overlay/index.html +++ /dev/null @@ -1,74 +0,0 @@ -{% with overlay=analysis.static.pe.overlay %} -{% with fileinfo=overlay.fileinfo %} - -{%if fileinfo %} -
- - - - - - - - - - - - - - - - - - - - - - - - - - {% if fileinfo.sha3_384 %} - - - - - {% endif %} - - - - - {% if fileinfo.tlsh %} - - - - - {% endif %} - - - - - - - - - {% if overlay.data %} - - - - {% endif %} -
File name -
{{fileinfo.name|safe}}
-
File Size{{fileinfo.size}} bytes
File Type{{fileinfo.type}}
MD5{{fileinfo.md5}}
SHA1{{fileinfo.sha1}}
SHA256{{fileinfo.sha256}}
SHA3-384{{fileinfo.sha3_384}}
CRC32{{fileinfo.crc32}}
TLSH{{fileinfo.tlsh}}
Ssdeep{{fileinfo.ssdeep}}
- Download - {% if overlay.data %} -  Display Overlay Data (Up to 4KB) - {% endif %} -
{{overlay.data}}
-
-{%else%} -
Sorry! No overlay information.
-{% endif %} - -{% endwith %} -{% endwith %} From d0c133f9c3f0d7d05516aebf7327c1e9dd567605 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 22 Oct 2024 11:59:29 +0000 Subject: [PATCH 53/98] style: Automatic code formatting --- .../file_extra_info_modules/overlay.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/cuckoo/common/integrations/file_extra_info_modules/overlay.py b/lib/cuckoo/common/integrations/file_extra_info_modules/overlay.py index 36518ede500..540a97d2e22 100644 --- a/lib/cuckoo/common/integrations/file_extra_info_modules/overlay.py +++ b/lib/cuckoo/common/integrations/file_extra_info_modules/overlay.py @@ -1,9 +1,16 @@ -import os import logging -# from base64 import b64encode +import os +from lib.cuckoo.common.integrations.file_extra_info_modules import ( + ExtractorReturnType, + collect_extracted_filenames, + extractor_ctx, + time_tracker, +) from lib.cuckoo.common.path_utils import path_write_file -from lib.cuckoo.common.integrations.file_extra_info_modules import time_tracker, ExtractorReturnType, extractor_ctx, collect_extracted_filenames + +# from base64 import b64encode + log = logging.getLogger(__name__) @@ -25,7 +32,6 @@ def extract_details(file, *, data_dictionary, **_) -> ExtractorReturnType: except Exception as e: log.error(e) - with extractor_ctx(file, "overlay", prefix="overlay") as ctx: if data: tempdir = ctx["tempdir"] From a0a3364e94d450d763ed23670ed7e16cfcde8c31 Mon Sep 17 00:00:00 2001 From: doomedraven Date: Tue, 22 Oct 2024 14:00:02 +0200 Subject: [PATCH 54/98] overlay --- web/templates/analysis/report.html | 8 -------- 1 file changed, 8 deletions(-) diff --git a/web/templates/analysis/report.html b/web/templates/analysis/report.html index 7988fa1f1ad..ed08b01984f 100644 --- a/web/templates/analysis/report.html +++ b/web/templates/analysis/report.html @@ -85,9 +85,6 @@ {% if analysis.dropped %} {% endif %} - {% if analysis.static.pe.overlay.fileinfo %} - - {% endif %} {% if analysis.procmemory %} {% endif %} @@ -193,10 +190,5 @@ {% include "analysis/admin/index.html" %}
{% endif %} - {% if analysis.static.pe.overlay.fileinfo %} -
- {% include "analysis/overlay/index.html" %} -
- {% endif %} {% endblock %} From ec5bcbe6ed57d422e2de21f1a9315ef65e06ca63 Mon Sep 17 00:00:00 2001 From: David Santos <44490090+dsecuma@users.noreply.github.com> Date: Tue, 22 Oct 2024 14:54:32 +0200 Subject: [PATCH 55/98] Mitmdump support (#2365) --- conf/default/auxiliary.conf.default | 6 ++ conf/default/mitmdump.conf.default | 11 +++ installer/cape2.sh | 14 ++++ modules/auxiliary/Mitmdump.py | 111 ++++++++++++++++++++++++++++ utils/rooter.py | 25 +++++++ web/apiv2/urls.py | 1 + web/apiv2/views.py | 30 ++++++++ web/submission/views.py | 3 + 8 files changed, 201 insertions(+) create mode 100644 conf/default/mitmdump.conf.default create mode 100644 modules/auxiliary/Mitmdump.py diff --git a/conf/default/auxiliary.conf.default b/conf/default/auxiliary.conf.default index 4f6029ba9b6..ec8aeb84c73 100644 --- a/conf/default/auxiliary.conf.default +++ b/conf/default/auxiliary.conf.default @@ -77,3 +77,9 @@ bpf = not arp # Enable or disable the use of QEMU as screenshot capture [yes/no]. # screenshots_linux and screenshots_windows must be disabled enabled = no + +[Mitmdump] +# Enable or disable the use of mitmdump (mitmproxy) to get dump.har [yes/no]. +# This module requires installed mitmproxy see install_mitmproxy +# (https://github.com/kevoreilly/CAPEv2/blob/master/installer/cape2.sh#L1320) +enabled = no diff --git a/conf/default/mitmdump.conf.default b/conf/default/mitmdump.conf.default new file mode 100644 index 00000000000..703da46560a --- /dev/null +++ b/conf/default/mitmdump.conf.default @@ -0,0 +1,11 @@ +[cfg] +# bin path to mitmdump +bin = /opt/mitmproxy/mitmdump + +# Host ip where mitmdump is listening +host = 127.0.0.1 + +# Interface where mitmdump is listening +interface = virbr0 + +# Future options like custom ports, cert paths, etc diff --git a/installer/cape2.sh b/installer/cape2.sh index 055dfcfa5ef..e9cb4cd5b98 100644 --- a/installer/cape2.sh +++ b/installer/cape2.sh @@ -1317,6 +1317,17 @@ function install_volatility3() { chown "${USER}:${USER}" $vol_path -R } +function install_mitmproxy() { + sudo mkdir /opt/mitmproxy + sudo chown ${USER}:${USER} /opt/mitmproxy + cd /opt/mitmproxy + mitmproxy_version=$(curl -s https://api.github.com/repos/mitmproxy/mitmproxy/releases/latest | grep '"tag_name":' | cut -d '"' -f 4 | sed 's/^v//') + wget https://downloads.mitmproxy.org/"$mitmproxy_version"/mitmproxy-"$mitmproxy_version"-linux-x86_64.tar.gz -O mitmproxy.tar.gz + tar xvzf mitmproxy.tar.gz + rm mitmproxy.tar.gz + chown "${USER}:${USER}" /opt/mitmproxy -R +} + function install_guacamole() { # Kudos to @Enzok https://github.com/kevoreilly/CAPEv2/pull/1065 # https://guacamole.apache.org/doc/gug/installing-guacamole.html @@ -1451,6 +1462,7 @@ case "$COMMAND" in install_systemd install_jemalloc install_logrotate + install_mitmproxy #socksproxies is to start redsocks stuff if [ -f /opt/CAPEv2/socksproxies.sh ]; then crontab -l | { cat; echo "@reboot /opt/CAPEv2/socksproxies.sh"; } | crontab - @@ -1501,6 +1513,8 @@ case "$COMMAND" in librenms_snmpd_config;; 'librenms_sneck_config') librenms_sneck_config;; +'mitmproxy') + install_mitmproxy;; 'issues') issues;; 'nginx') diff --git a/modules/auxiliary/Mitmdump.py b/modules/auxiliary/Mitmdump.py new file mode 100644 index 00000000000..1e632978288 --- /dev/null +++ b/modules/auxiliary/Mitmdump.py @@ -0,0 +1,111 @@ +# Copyright (C) 2024 davidsb@virustotal.com +# This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org +# See the file 'docs/LICENSE' for copying permission. +# This module runs mitmdump to get a HAR file +# mitmdump is behind mitmproxy project https://mitmproxy.org/ + +import logging +import os +import socket +import subprocess +from threading import Thread + +from lib.cuckoo.common.abstracts import Auxiliary +from lib.cuckoo.common.config import Config +from lib.cuckoo.common.constants import CUCKOO_ROOT +from lib.cuckoo.core.rooter import rooter + +mitmdump = Config("mitmdump") + +log = logging.getLogger(__name__) + +class Mitmdump(Auxiliary): + """Module for generating HAR with Mitmdump.""" + + def __init__(self): + Auxiliary.__init__(self) + Thread.__init__(self) + log.info("Mitmdump module loaded") + self.mitmdump_thread = None + + + def start(self): + """Start mitmdump in a separate thread.""" + + self.mitmdump_thread = MitmdumpThread(self.task, self.machine) + self.mitmdump_thread.start() + return True + + def stop(self): + """Stop mitmdump capture thread.""" + if self.mitmdump_thread: + self.mitmdump_thread.stop() + + +class MitmdumpThread(Thread): + """Thread responsible for control mitmdump service for each analysis.""" + + def __init__(self, task, machine): + Thread.__init__(self) + self.task = task + self.machine = machine + self.do_run = True + self.host_ip = mitmdump.cfg.get("host") + self.host_iface = mitmdump.cfg.get("interface") + self.mitmdump_bin = mitmdump.cfg.get("bin") + self.proc = None + self.host_port = self._get_unused_port() + self.mitmdump_path = os.path.join(CUCKOO_ROOT, "storage", "analyses", str(self.task.id), "mitmdump") + + def stop(self): + """Set stop mitmdump capture.""" + self.do_run = False + + if self.proc and self.proc.poll() is None: + self.proc.terminate() + self.proc.wait() + log.info("Stopping mitmdump") + + try: + rooter("disable_mitmdump",self.host_iface, self.machine.ip, self.host_port) + except subprocess.CalledProcessError as e: + log.error("Failed to execute firewall rules: %s", e) + + def run(self): + """Core function to the manage the module""" + if "mitmdump" not in self.task.options: + log.info("Exiting mitmdump. No parameter received.") + return + + if self.do_run: + if not self.host_port: + log.exception("All ports in range are in use") + return + + try: + rooter("enable_mitmdump",self.host_iface, self.machine.ip, self.host_port) + except subprocess.CalledProcessError as e: + log.error("Failed to execute firewall rules: %s", e) + + try: + mitmdump_args = [] + os.makedirs(self.mitmdump_path, exist_ok=True) + file_path = os.path.join(self.mitmdump_path, "dump.har") + mitmdump_args.extend([self.mitmdump_bin, "-q", "--listen-host", self.host_ip, "-p", str(self.host_port), "--set", "hardump=", file_path]) + mitmdump_args[-2:] = ["".join(mitmdump_args[-2:])] # concatenate the last two arguments, otherwise the HAR file will not be created. + self.proc = subprocess.Popen(mitmdump_args, stdout=None, stderr=None, shell=False) + except (OSError, ValueError): + log.exception("Failed to mitmdump (host=%s, port=%s, dump_path=%s)", self.host_ip, self.host_port, file_path) + return + + log.info("Started mitmdump with PID %d (host=%s, port=%s, dump_path=%s)", self.proc.pid, self.host_ip, self.host_port, file_path) + + + def _get_unused_port(self) -> str | None: + """Return the first unused TCP port from the set.""" + ports = set(range(8001, 8081)) + for port in ports: + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + if s.connect_ex((self.host_ip, port)) != 0: + return str(port) + return None diff --git a/utils/rooter.py b/utils/rooter.py index 4c8175dfcec..d07fcec45c1 100644 --- a/utils/rooter.py +++ b/utils/rooter.py @@ -188,6 +188,29 @@ def disable_nat(interface): run_iptables("-t", "nat", "-D", "POSTROUTING", "-o", interface, "-j", "MASQUERADE") +def enable_mitmdump(interface, client, port): + """Enable mitmdump on this interface.""" + run_iptables( + "-t", "nat", "-I", "PREROUTING", "-i", interface, "-s", client, "-p", "tcp", "--dport", "443", + "-j", "REDIRECT", "--to-port", port + ) + run_iptables( + "-t", "nat", "-I", "PREROUTING", "-i", interface, "-s", client, "-p", "tcp", "--dport", "80", + "-j", "REDIRECT", "--to-port", port + ) + +def disable_mitmdump(interface, client, port): + """Disable mitmdump on this interface.""" + run_iptables( + "-t", "nat", "-D", "PREROUTING", "-i", interface, "-s", client, "-p", "tcp", "--dport", "443", + "-j", "REDIRECT", "--to-port", port + ) + run_iptables( + "-t", "nat", "-D", "PREROUTING", "-i", interface, "-s", client, "-p", "tcp", "--dport", "80", + "-j", "REDIRECT", "--to-port", port + ) + + def init_rttable(rt_table, interface): """Initialise routing table for this interface using routes from main table.""" @@ -674,6 +697,8 @@ def drop_disable(ipaddr, resultserver_port): "cleanup_vrf": cleanup_vrf, "add_dev_to_vrf": add_dev_to_vrf, "delete_dev_from_vrf": delete_dev_from_vrf, + "enable_mitmdump": enable_mitmdump, + "disable_mitmdump": disable_mitmdump, } if __name__ == "__main__": diff --git a/web/apiv2/urls.py b/web/apiv2/urls.py index 23571f3281c..aa512323add 100644 --- a/web/apiv2/urls.py +++ b/web/apiv2/urls.py @@ -51,6 +51,7 @@ re_path(r"^tasks/get/evtx/(?P\d+)/$", views.tasks_evtx), re_path(r"^tasks/get/dropped/(?P\d+)/$", views.tasks_dropped), re_path(r"^tasks/get/surifile/(?P\d+)/$", views.tasks_surifile), + re_path(r"^tasks/get/mitmdump/(?P\d+)/$", views.tasks_mitmdump), re_path(r"^tasks/get/payloadfiles/(?P\d+)/$", views.tasks_payloadfiles), re_path(r"^tasks/get/procdumpfiles/(?P\d+)/$", views.tasks_procdumpfiles), re_path(r"^files/view/md5/(?P([a-fA-F\d]{32}))/$", views.files_view), diff --git a/web/apiv2/views.py b/web/apiv2/views.py index b744aafdb0a..882f4005cd0 100644 --- a/web/apiv2/views.py +++ b/web/apiv2/views.py @@ -1625,6 +1625,36 @@ def tasks_evtx(request, task_id): return Response(resp) +@csrf_exempt +@api_view(["GET"]) +def tasks_mitmdump(request, task_id): + if not apiconf.taskmitmdump.get("enabled"): + resp = {"error": True, "error_value": "Mitmdump HAR download API is disabled"} + return Response(resp) + + check = validate_task(task_id) + if check["error"]: + return Response(check) + + rtid = check.get("rtid", 0) + if rtid: + task_id = rtid + + harfile = os.path.join(CUCKOO_ROOT, "storage", "analyses", "%s" % task_id, "mitmdump", "dump.har") + if not os.path.normpath(harfile).startswith(ANALYSIS_BASE_PATH): + return render(request, "error.html", {"error": f"File not found: {os.path.basename(harfile)}"}) + if path_exists(harfile): + fname = "%s_dump.har" % task_id + resp = StreamingHttpResponse(FileWrapper(open(harfile, "rb")), content_type="text/plain") + resp["Content-Length"] = os.path.getsize(harfile) + resp["Content-Disposition"] = "attachment; filename=" + fname + return resp + + else: + resp = {"error": True, "error_value": "HAR file does not exist"} + return Response(resp) + + @csrf_exempt @api_view(["GET"]) def tasks_dropped(request, task_id): diff --git a/web/submission/views.py b/web/submission/views.py index 39c25136c3a..a8c9e7efccd 100644 --- a/web/submission/views.py +++ b/web/submission/views.py @@ -312,6 +312,9 @@ def index(request, task_id=None, resubmit_hash=None): if request.POST.get("nohuman"): options += "nohuman=yes," + if request.POST.get("mitmdump"): + options += "mitmdump=yes," + if web_conf.guacamole.enabled and request.POST.get("interactive"): remote_console = True options += "interactive=1," From 57f653e1edba8c4eec2ffa6f6950463cc808d3c3 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 22 Oct 2024 12:55:47 +0000 Subject: [PATCH 56/98] style: Automatic code formatting --- modules/auxiliary/Mitmdump.py | 41 ++++++++++++++----- utils/rooter.py | 75 ++++++++++++++++++++++++++++++----- 2 files changed, 96 insertions(+), 20 deletions(-) diff --git a/modules/auxiliary/Mitmdump.py b/modules/auxiliary/Mitmdump.py index 1e632978288..68cf1ecc12c 100644 --- a/modules/auxiliary/Mitmdump.py +++ b/modules/auxiliary/Mitmdump.py @@ -19,6 +19,7 @@ log = logging.getLogger(__name__) + class Mitmdump(Auxiliary): """Module for generating HAR with Mitmdump.""" @@ -26,8 +27,7 @@ def __init__(self): Auxiliary.__init__(self) Thread.__init__(self) log.info("Mitmdump module loaded") - self.mitmdump_thread = None - + self.mitmdump_thread = None def start(self): """Start mitmdump in a separate thread.""" @@ -50,12 +50,12 @@ def __init__(self, task, machine): self.task = task self.machine = machine self.do_run = True - self.host_ip = mitmdump.cfg.get("host") - self.host_iface = mitmdump.cfg.get("interface") + self.host_ip = mitmdump.cfg.get("host") + self.host_iface = mitmdump.cfg.get("interface") self.mitmdump_bin = mitmdump.cfg.get("bin") self.proc = None self.host_port = self._get_unused_port() - self.mitmdump_path = os.path.join(CUCKOO_ROOT, "storage", "analyses", str(self.task.id), "mitmdump") + self.mitmdump_path = os.path.join(CUCKOO_ROOT, "storage", "analyses", str(self.task.id), "mitmdump") def stop(self): """Set stop mitmdump capture.""" @@ -67,7 +67,7 @@ def stop(self): log.info("Stopping mitmdump") try: - rooter("disable_mitmdump",self.host_iface, self.machine.ip, self.host_port) + rooter("disable_mitmdump", self.host_iface, self.machine.ip, self.host_port) except subprocess.CalledProcessError as e: log.error("Failed to execute firewall rules: %s", e) @@ -83,7 +83,7 @@ def run(self): return try: - rooter("enable_mitmdump",self.host_iface, self.machine.ip, self.host_port) + rooter("enable_mitmdump", self.host_iface, self.machine.ip, self.host_port) except subprocess.CalledProcessError as e: log.error("Failed to execute firewall rules: %s", e) @@ -91,15 +91,34 @@ def run(self): mitmdump_args = [] os.makedirs(self.mitmdump_path, exist_ok=True) file_path = os.path.join(self.mitmdump_path, "dump.har") - mitmdump_args.extend([self.mitmdump_bin, "-q", "--listen-host", self.host_ip, "-p", str(self.host_port), "--set", "hardump=", file_path]) - mitmdump_args[-2:] = ["".join(mitmdump_args[-2:])] # concatenate the last two arguments, otherwise the HAR file will not be created. + mitmdump_args.extend( + [ + self.mitmdump_bin, + "-q", + "--listen-host", + self.host_ip, + "-p", + str(self.host_port), + "--set", + "hardump=", + file_path, + ] + ) + mitmdump_args[-2:] = [ + "".join(mitmdump_args[-2:]) + ] # concatenate the last two arguments, otherwise the HAR file will not be created. self.proc = subprocess.Popen(mitmdump_args, stdout=None, stderr=None, shell=False) except (OSError, ValueError): log.exception("Failed to mitmdump (host=%s, port=%s, dump_path=%s)", self.host_ip, self.host_port, file_path) return - log.info("Started mitmdump with PID %d (host=%s, port=%s, dump_path=%s)", self.proc.pid, self.host_ip, self.host_port, file_path) - + log.info( + "Started mitmdump with PID %d (host=%s, port=%s, dump_path=%s)", + self.proc.pid, + self.host_ip, + self.host_port, + file_path, + ) def _get_unused_port(self) -> str | None: """Return the first unused TCP port from the set.""" diff --git a/utils/rooter.py b/utils/rooter.py index d07fcec45c1..717bdbdc762 100644 --- a/utils/rooter.py +++ b/utils/rooter.py @@ -191,23 +191,80 @@ def disable_nat(interface): def enable_mitmdump(interface, client, port): """Enable mitmdump on this interface.""" run_iptables( - "-t", "nat", "-I", "PREROUTING", "-i", interface, "-s", client, "-p", "tcp", "--dport", "443", - "-j", "REDIRECT", "--to-port", port + "-t", + "nat", + "-I", + "PREROUTING", + "-i", + interface, + "-s", + client, + "-p", + "tcp", + "--dport", + "443", + "-j", + "REDIRECT", + "--to-port", + port, ) run_iptables( - "-t", "nat", "-I", "PREROUTING", "-i", interface, "-s", client, "-p", "tcp", "--dport", "80", - "-j", "REDIRECT", "--to-port", port + "-t", + "nat", + "-I", + "PREROUTING", + "-i", + interface, + "-s", + client, + "-p", + "tcp", + "--dport", + "80", + "-j", + "REDIRECT", + "--to-port", + port, ) + def disable_mitmdump(interface, client, port): """Disable mitmdump on this interface.""" run_iptables( - "-t", "nat", "-D", "PREROUTING", "-i", interface, "-s", client, "-p", "tcp", "--dport", "443", - "-j", "REDIRECT", "--to-port", port + "-t", + "nat", + "-D", + "PREROUTING", + "-i", + interface, + "-s", + client, + "-p", + "tcp", + "--dport", + "443", + "-j", + "REDIRECT", + "--to-port", + port, ) run_iptables( - "-t", "nat", "-D", "PREROUTING", "-i", interface, "-s", client, "-p", "tcp", "--dport", "80", - "-j", "REDIRECT", "--to-port", port + "-t", + "nat", + "-D", + "PREROUTING", + "-i", + interface, + "-s", + client, + "-p", + "tcp", + "--dport", + "80", + "-j", + "REDIRECT", + "--to-port", + port, ) @@ -698,7 +755,7 @@ def drop_disable(ipaddr, resultserver_port): "add_dev_to_vrf": add_dev_to_vrf, "delete_dev_from_vrf": delete_dev_from_vrf, "enable_mitmdump": enable_mitmdump, - "disable_mitmdump": disable_mitmdump, + "disable_mitmdump": disable_mitmdump, } if __name__ == "__main__": From b21dd40898e6381375f74c22dc7a592dfa35dcc1 Mon Sep 17 00:00:00 2001 From: Kevin O'Reilly Date: Tue, 22 Oct 2024 14:46:35 +0100 Subject: [PATCH 57/98] Rewrite Lumma detection --- data/yara/CAPE/Lumma.yar | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) diff --git a/data/yara/CAPE/Lumma.yar b/data/yara/CAPE/Lumma.yar index 83e318d8219..1422e550b62 100644 --- a/data/yara/CAPE/Lumma.yar +++ b/data/yara/CAPE/Lumma.yar @@ -1,32 +1,15 @@ rule Lumma { meta: - author = "kevoreilly,YungBinary" + author = "kevoreilly" description = "Lumma Payload" cape_type = "Lumma Payload" - packed = "5d58bc449693815f6fb0755a364c4cd3a8e2a81188e431d4801f2fb0b1c2de8f" + packed = "0ee580f0127b821f4f1e7c032cf76475df9724a9fade2e153a69849f652045f8" + packed = "23ff1c20b16d9afaf1ce443784fc9a025434a010e2194de9dec041788c369887" strings: - $xor_decode = { - 0F B6 14 0E - 89 CF - 83 E7 1F - 0F B6 7C 3C ?? - 89 D3 - 31 FB - 83 F3 FF - 89 FD - 21 DD - D1 E5 - 29 FD - 29 EA - 8B 5C 24 ?? - 88 14 0B - EB ?? - } - $c2 = {8D 44 24 ?? 50 89 4C 24 ?? FF 31 E8 [4] 83 C4 08 B8 FF FF FF FF} - $peb = {8B 44 24 04 85 C0 74 13 64 8B 0D 30 00 00 00 50 6A 00 FF 71 18 FF 15} - $remap = {C6 44 24 20 00 C7 44 24 1C C2 00 00 90 C7 44 24 18 00 00 FF D2 C7 44 24 14 00 BA 00 00 C7 44 24 10 B8 00 00 00 8B ?? 89 44 24 11} - + $decode1 = {C1 (E9|EA) 02 [0-3] 0F B6 (44|4C) ?? FF 83 (F8|F9) 3D 74 05 83 (F8|F9) 2E 75 01 (49|4A) [0-30] 2E 75} + $decode2 = {B0 40 C3 B0 3F C3 89 C8 04 D0 3C 09 77 06 80 C1 04 89 C8 C3 89 C8 04 BF 3C} + $decode3 = {B0 40 C3 B0 3F C3 80 F9 30 72 ?? 80 F9 39 77 06 80 C1 04 89 C8 C3} condition: uint16(0) == 0x5a4d and any of them } From 00ba68ff56fba412ecf5f686ddce3400beda7e00 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 22 Oct 2024 13:51:45 +0000 Subject: [PATCH 58/98] style: Automatic code formatting --- modules/processing/parsers/CAPE/Lumma.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/modules/processing/parsers/CAPE/Lumma.py b/modules/processing/parsers/CAPE/Lumma.py index c72db668a87..b1437d8e435 100644 --- a/modules/processing/parsers/CAPE/Lumma.py +++ b/modules/processing/parsers/CAPE/Lumma.py @@ -1,7 +1,9 @@ import base64 -import pefile import re +import pefile + + def is_base64(s): pattern = re.compile("^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$") if not s or len(s) < 1: @@ -9,12 +11,14 @@ def is_base64(s): else: return pattern.match(s) + def extract_strings(data, minchars): endlimit = b"8192" apat = b"([\x20-\x7e]{" + str(minchars).encode() + b"," + endlimit + b"})\x00" strings = [string.decode() for string in re.findall(apat, data)] return strings + def get_base64_strings(str_list): base64_strings = [] for s in str_list: @@ -22,17 +26,19 @@ def get_base64_strings(str_list): base64_strings.append(s) return base64_strings + def get_rdata(data): rdata = None pe = pefile.PE(data=data) section_idx = 0 for section in pe.sections: - if section.Name == b'.rdata\x00\x00': + if section.Name == b".rdata\x00\x00": rdata = pe.sections[section_idx].get_data() break section_idx += 1 return rdata + def xor_data(data, key): decoded = bytearray() key_len = len(key) @@ -42,11 +48,13 @@ def xor_data(data, key): decoded.append(data[i] ^ key[i]) return decoded + def contains_non_printable(byte_array): for byte in byte_array: if not chr(byte).isprintable(): return True - return False + return False + def extract_config(data): config_dict = {"C2": []} From 867c047dc97a199d389f27af570d78c3c1664b07 Mon Sep 17 00:00:00 2001 From: David Santos <44490090+dsecuma@users.noreply.github.com> Date: Tue, 22 Oct 2024 17:40:45 +0200 Subject: [PATCH 59/98] ReportHTML fix (#2367) * dump memory from pids in brackground * skip download dumps and other files from analysis dir as dropfiles * style: Automatic code formatting * omogenise to windows dumps extension (dmp) * fix --------- Co-authored-by: GitHub Actions --- data/html/base-report.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/html/base-report.html b/data/html/base-report.html index 60fcb615486..f7d6a475ce5 100644 --- a/data/html/base-report.html +++ b/data/html/base-report.html @@ -23,7 +23,7 @@ {% if title %} -{{ title|add:" · CAPE Sandbox" }} +{{ title }} • CAPE Sandbox {% else %} CAPE Sandbox {% endif %} From 6f37aa4a541fad84f0b701090c4baa8eab3bf02a Mon Sep 17 00:00:00 2001 From: enzo <7831008+enzok@users.noreply.github.com> Date: Tue, 22 Oct 2024 13:49:57 -0400 Subject: [PATCH 60/98] Add BlackDropper Parser and Yara (#2366) * BlackDropper parsers and yara * Fix tabs * sort urls * sort urls --- data/yara/CAPE/BlackDropper.yar | 17 ++++ .../processing/parsers/CAPE/BlackDropper.py | 95 +++++++++++++++++++ tests_parsers/test_blackdropper.py | 15 +++ 3 files changed, 127 insertions(+) create mode 100644 data/yara/CAPE/BlackDropper.yar create mode 100644 modules/processing/parsers/CAPE/BlackDropper.py create mode 100644 tests_parsers/test_blackdropper.py diff --git a/data/yara/CAPE/BlackDropper.yar b/data/yara/CAPE/BlackDropper.yar new file mode 100644 index 00000000000..fa8f218a74e --- /dev/null +++ b/data/yara/CAPE/BlackDropper.yar @@ -0,0 +1,17 @@ +rule BlackDropper +{ + meta: + author = "enzok" + description = "BlackDropper" + cape_type = "BlackDropper Payload" + hash = "f8026ae3237bdd885e5fcaceb86bcab4087d8857e50ba472ca79ce44c12bc257" + strings: + $string1 = "BlackDropperCPP" + $string2 = "Builder.dll" + $string3 = "\\Builder.exe" + $crypt1 = {33 D2 48 8B 44 24 ?? 48 8B 4C 24 ?? 48 F7 F1 48 8B C2 48 8B D0 48 8D 4C 24 ?? E8} + $crypt2 = {0F BE 00 8B 4C 24 ?? 33 C8 8B C1 88 44 24 ?? 48 8B 54 24 ?? 48 8D 4C 24} + $crypt3 = {E8 [4] 0F B6 4C 24 ?? 88 08 E9} + condition: + 2 of ($string*) or 2 of ($crypt*) +} \ No newline at end of file diff --git a/modules/processing/parsers/CAPE/BlackDropper.py b/modules/processing/parsers/CAPE/BlackDropper.py new file mode 100644 index 00000000000..952f7890d75 --- /dev/null +++ b/modules/processing/parsers/CAPE/BlackDropper.py @@ -0,0 +1,95 @@ +# Copyright (C) 2024 enzok +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +import datetime +import re +from contextlib import suppress +import pefile + + +def get_current_year() -> str: + current_date = datetime.datetime.now() + return str(current_date.year) + + +def decrypt_string(encoded_string: str, key: str) -> str: + encoded_bytes = bytearray.fromhex(encoded_string) + key_bytes = bytearray(ord(char) for char in key) + encoded_length = len(encoded_bytes) + key_length = len(key_bytes) + decoded_bytes = bytearray(encoded_length) + + for i in range(encoded_length): + new_byte = (encoded_bytes[i] ^ key_bytes[i % key_length]) & 0xff + decoded_bytes[i] = new_byte + + decoded_string = decoded_bytes.decode('ascii', errors='ignore') + + return decoded_string + + +def extract_config(data: bytes) -> dict: + pe = pefile.PE(data=data) + rdata_section = None + for section in pe.sections: + if b".rdata" in section.Name: + rdata_section = section + break + + if not rdata_section: + return {} + + rdata_data = rdata_section.get_data() + patterns = [b"Builder\.dll\x00", b"Builder\.exe\x00"] + matches = [] + for pattern in patterns: + matches.extend(re.finditer(pattern, rdata_data)) + + found_strings = set() + for match in matches: + start = max(0, match.start() - 1024) + end = min(len(rdata_data), match.end() + 1024) + found_strings.update(re.findall(b"[\x20-\x7E]{4,}?\x00", rdata_data[start:end])) + + result = {} + urls = [] + directories = [] + campaign = "" + + if found_strings: + for string in found_strings: + with suppress(UnicodeDecodeError): + decoded_string = string.decode("utf-8").rstrip("\x00") + + if re.match(r"^[0-9A-Fa-f]+$", decoded_string): + key = get_current_year() + url = decrypt_string(decoded_string, key) + if url: + urls.append(url) + elif decoded_string.count("\\") > 1: + directories.append(decoded_string) + elif re.match(r"^(?![A-Z]{6,}$)[a-zA-Z0-9\-=]{6,}$", decoded_string): + campaign = decoded_string + + result = {"urls": sorted(urls), "directories": directories, "campaign": campaign} + + return result + + +if __name__ == "__main__": + import sys + + with open(sys.argv[1], "rb") as f: + print(extract_config(f.read())) diff --git a/tests_parsers/test_blackdropper.py b/tests_parsers/test_blackdropper.py new file mode 100644 index 00000000000..ea739d29195 --- /dev/null +++ b/tests_parsers/test_blackdropper.py @@ -0,0 +1,15 @@ +# Copyright (C) 2010-2015 Cuckoo Foundation. +# This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org +# See the file 'docs/LICENSE' for copying permission. + +from modules.processing.parsers.CAPE.BlackDropper import extract_config + + +def test_blackdropper(): + with open("tests/data/malware/f8026ae3237bdd885e5fcaceb86bcab4087d8857e50ba472ca79ce44c12bc257", "rb") as data: + conf = extract_config(data.read()) + assert conf == { + 'urls': ['http://72.5.42.222:8568/api/dll/', 'http://72.5.42.222:8568/api/fileZip'], + 'directories': ['\\Music\\dkcydqtwjv'], + 'campaign': 'oFwQ0aQ3v' + } From 3a517d4d55b48e45fe0d34b856e9ed0a99795031 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 22 Oct 2024 17:50:53 +0000 Subject: [PATCH 61/98] style: Automatic code formatting --- modules/processing/parsers/CAPE/BlackDropper.py | 5 +++-- tests_parsers/test_blackdropper.py | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/modules/processing/parsers/CAPE/BlackDropper.py b/modules/processing/parsers/CAPE/BlackDropper.py index 952f7890d75..31f57e7095e 100644 --- a/modules/processing/parsers/CAPE/BlackDropper.py +++ b/modules/processing/parsers/CAPE/BlackDropper.py @@ -16,6 +16,7 @@ import datetime import re from contextlib import suppress + import pefile @@ -32,10 +33,10 @@ def decrypt_string(encoded_string: str, key: str) -> str: decoded_bytes = bytearray(encoded_length) for i in range(encoded_length): - new_byte = (encoded_bytes[i] ^ key_bytes[i % key_length]) & 0xff + new_byte = (encoded_bytes[i] ^ key_bytes[i % key_length]) & 0xFF decoded_bytes[i] = new_byte - decoded_string = decoded_bytes.decode('ascii', errors='ignore') + decoded_string = decoded_bytes.decode("ascii", errors="ignore") return decoded_string diff --git a/tests_parsers/test_blackdropper.py b/tests_parsers/test_blackdropper.py index ea739d29195..7237dd53cd6 100644 --- a/tests_parsers/test_blackdropper.py +++ b/tests_parsers/test_blackdropper.py @@ -9,7 +9,7 @@ def test_blackdropper(): with open("tests/data/malware/f8026ae3237bdd885e5fcaceb86bcab4087d8857e50ba472ca79ce44c12bc257", "rb") as data: conf = extract_config(data.read()) assert conf == { - 'urls': ['http://72.5.42.222:8568/api/dll/', 'http://72.5.42.222:8568/api/fileZip'], - 'directories': ['\\Music\\dkcydqtwjv'], - 'campaign': 'oFwQ0aQ3v' + "urls": ["http://72.5.42.222:8568/api/dll/", "http://72.5.42.222:8568/api/fileZip"], + "directories": ["\\Music\\dkcydqtwjv"], + "campaign": "oFwQ0aQ3v", } From 083a8fa0db4d08e51d220d1fec0615a940115f95 Mon Sep 17 00:00:00 2001 From: Maxime Berthault <2143487+Maxou56800@users.noreply.github.com> Date: Thu, 24 Oct 2024 15:44:13 +0200 Subject: [PATCH 62/98] Update install script for ubuntu 24.04 (#2369) * Update mongodb to 8.0 * Update installer for ubuntu 24.04 --- extra/yara_installer.sh | 12 +- installer/cape2.sh | 254 ++++++++++++++++++++++++++-------------- 2 files changed, 175 insertions(+), 91 deletions(-) diff --git a/extra/yara_installer.sh b/extra/yara_installer.sh index 9b0d29d794c..ca5909bcfed 100755 --- a/extra/yara_installer.sh +++ b/extra/yara_installer.sh @@ -9,10 +9,12 @@ if [ ! -d /tmp/yara-python ]; then fi cd /tmp/yara-python -python setup.py build --enable-cuckoo --enable-magic --enable-profiling + +poetry --directory /opt/CAPEv2 run python setup.py build --enable-cuckoo --enable-magic --enable-profiling +poetry --directory /opt/CAPEv2 run pip install . + cd .. -# for root -pip install ./yara-python + if [ -d yara-python ]; then - rm -r yara-python -fi + rm -rf yara-python +fi \ No newline at end of file diff --git a/installer/cape2.sh b/installer/cape2.sh index e9cb4cd5b98..f10522cf54f 100644 --- a/installer/cape2.sh +++ b/installer/cape2.sh @@ -93,7 +93,7 @@ cat << EndOfHelp * This ISN'T a silver bullet, we can't control all changes in all third part software, you are welcome to report updates - Usage: $0 | tee $0.log + Usage: $0 [options] | tee $0.log Example: $0 all 192.168.1.1 | tee $0.log Commands - are case insensitive: Base - Installs dependencies, CAPE, systemd, see code for full list @@ -105,7 +105,9 @@ cat << EndOfHelp LetsEncrypt - Install LetsEncrypt for your site, pass your domain as argument Suricata - Install latest suricata with performance boost PostgreSQL - Install latest PostgresSQL + PostgreSQL_Utility - Install pg_activity Yara - Install latest yara + Yara-x - Install latest yara-x Volatility3 - Install Volatility3 and windows symbols Mongo - Install latest mongodb LetsEncrypt - Install dependencies and retrieves certificate @@ -127,7 +129,9 @@ cat << EndOfHelp osslsigncode - Linux alternative to Windows signtool.exe modsecurity - install Nginx ModSecurity plugin Issues - show some known possible bugs/solutions - + Options: + --disable-mongodb-avx-check - Disable check of AVX CPU feature for MongoDB + --disable-libvirt - Disable libvirt related packages installation Useful links - THEY CAN BE OUTDATED; RTFM!!! * https://cuckoo.sh/docs/introduction/index.html * https://medium.com/@seifreed/how-to-deploy-cuckoo-sandbox-431a6e65b848 @@ -138,6 +142,7 @@ EndOfHelp } function install_crowdsecurity() { + echo "[+] Install crowdsecurity" sudo apt-get install bash gettext whiptail curl wget cd /tmp || return if [ ! -d crowdsec-release.tgz ]; then @@ -160,6 +165,7 @@ function install_crowdsecurity() { } function install_docker() { + echo "[+] Install docker" # https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04 sudo apt-get install apt-transport-https ca-certificates curl software-properties-common @@ -246,6 +252,7 @@ function librenms_snmpd_config() { } function install_librenms() { + echo "[+] Install librenms" if [ "$librenms_enable" -ge 1 ]; then echo "Enabling stuff for LibreNMS" apt-get install -y zlib1g-dev cpanminus libjson-perl libfile-readbackwards-perl \ @@ -285,6 +292,7 @@ function install_librenms() { } function install_modsecurity() { + echo "[+] Install modsecurity" # Tested on nginx 1.(16|18).X Based on https://www.nginx.com/blog/compiling-and-installing-modsecurity-for-open-source-nginx/ with fixes apt-get install -y apt-utils autoconf automake build-essential git libcurl4-openssl-dev libgeoip-dev liblmdb-dev libpcre++-dev libtool libxml2-dev libyajl-dev pkgconf wget zlib1g-dev git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity @@ -332,7 +340,7 @@ function install_modsecurity() { } function install_nginx() { - + echo "[+] Install nginx" if [ ! -d nginx-$nginx_version ]; then wget http://nginx.org/download/nginx-$nginx_version.tar.gz wget http://nginx.org/download/nginx-$nginx_version.tar.gz.asc @@ -560,6 +568,7 @@ fi } function install_letsencrypt(){ + echo "[+] Install and configure letsencrypt" sudo add-apt-repository ppa:certbot/certbot -y sudo apt-get update sudo apt-get install python3-certbot-nginx -y @@ -568,6 +577,7 @@ function install_letsencrypt(){ } function install_fail2ban() { + echo "[+] Installing fail2ban" sudo apt-get install fail2ban -y sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local sudo sed -i /etc/fail2ban/jail.local @@ -578,6 +588,7 @@ function install_fail2ban() { } function install_logrotate() { + echo "[+] Installing logrotate" # du -sh /var/log/* | sort -hr | head -n10 # thanks digitalocean.com for the manual # https://www.digitalocean.com/community/tutorials/how-to-manage-logfiles-with-logrotate-on-ubuntu-16-04 @@ -601,6 +612,7 @@ EOF } function redsocks2() { + echo "[+] Installing redsocks2" cd /tmp || return sudo apt-get install -y git libevent-dev libreadline-dev zlib1g-dev libncurses5-dev libssl1.0-dev libssl-dev git clone https://github.com/semigodking/redsocks redsocks2 && cd redsocks2 || return @@ -609,6 +621,7 @@ function redsocks2() { } function distributed() { + echo "[+] Configure distributed configuration" sudo apt-get install uwsgi uwsgi-plugin-python3 nginx -y 2>/dev/null sudo -u ${USER} bash -c 'poetry run pip install flask flask-restful flask-sqlalchemy requests' @@ -655,20 +668,25 @@ EOL function install_suricata() { echo '[+] Installing Suricata' add-apt-repository ppa:oisf/suricata-stable -y - apt-get install suricata -y + apt-get install suricata suricata-update -y touch /etc/suricata/threshold.config # Download etupdate to update Emerging Threats Open IDS rules: - pip3 install suricata-update mkdir -p "/etc/suricata/rules" if ! crontab -l | grep -q -F '15 * * * * /usr/bin/suricata-update'; then crontab -l | { cat; echo "15 * * * * /usr/bin/suricata-update --suricata /usr/bin/suricata --suricata-conf /etc/suricata/suricata.yaml -o /etc/suricata/rules/ && /usr/bin/suricatasc -c reload-rules /tmp/suricata-command.socket &>/dev/null"; } | crontab - fi if [ -d /usr/share/suricata/rules/ ]; then - cp "/usr/share/suricata/rules/"* "/etc/suricata/rules/" + # copy files if rules folder contains files + if [ "$(ls -A /var/lib/suricata/rules/)" ]; then + cp "/usr/share/suricata/rules/"* "/etc/suricata/rules/" + fi fi if [ -d /var/lib/suricata/rules/ ]; then - cp "/var/lib/suricata/rules/"* "/etc/suricata/rules/" + # copy files if rules folder contains files + if [ "$(ls -A /var/lib/suricata/rules/)" ]; then + cp "/var/lib/suricata/rules/"* "/etc/suricata/rules/" + fi fi # ToDo this is not the best solution but i don't have time now to investigate proper one @@ -710,14 +728,18 @@ function install_suricata() { systemctl restart suricata } -function insall_yara_x() { - curl https://sh.rustup.rs -sSf | sh +function install_yara_x() { + echo '[+] Installing Yara-X' + sudo -u ${USER} bash -c 'curl https://sh.rustup.rs -sSf | sh' cd /tmp || return - git clone https://github.com/VirusTotal/yara-x + # if yara-x exists from previous install remove it + if [ -d yara-x ]; then + sudo rm -rf yara-x + fi + sudo -u ${USER} git clone https://github.com/VirusTotal/yara-x cd yara-x || return - source "$HOME/.cargo/env" - cargo install --path cli - pip3 install yara-x + sudo -u ${USER} bash -c 'source "$HOME/.cargo/env" ; cargo install --path cli' + poetry --directory /opt/CAPEv2/ run pip install yara-x } function install_yara() { @@ -734,7 +756,7 @@ function install_yara() { yara_repo_url=$(echo "$yara_info" | jq ".zipball_url" | sed "s/\"//g") if [ ! -f "$yara_version" ]; then wget -q "$yara_repo_url" - unzip -q "$yara_version" + unzip -o -q "$yara_version" #wget "https://github.com/VirusTotal/yara/archive/v$yara_version.zip" && unzip "v$yara_version.zip" fi directory=$(ls | grep "VirusTotal-yara-*") @@ -751,29 +773,9 @@ function install_yara() { #checkinstall -D --pkgname="yara-$yara_version" --pkgversion="$yara_version_only" --default ldconfig - cd /tmp || return - git clone --recursive https://github.com/VirusTotal/yara-python - cd yara-python - # checkout tag v4.2.3 to work around broken master branch - # git checkout tags/v4.2.3 - # sometimes it requires to have a copy of YARA inside of yara-python for proper compilation - # git clone --recursive https://github.com/VirusTotal/yara - # Temp workarond to fix issues compiling yara-python https://github.com/VirusTotal/yara-python/issues/212 - # partially applying PR https://github.com/VirusTotal/yara-python/pull/210/files - # sed -i "191 i \ \ \ \ # Needed to build tlsh'\n module.define_macros.extend([('BUCKETS_128', 1), ('CHECKSUM_1B', 1)])\n # Needed to build authenticode parser\n module.libraries.append('ssl')" setup.py - python3 setup.py build --enable-cuckoo --enable-magic --enable-profiling - cd .. - # for root - pip3 install ./yara-python - if [ -d yara-python ]; then - sudo rm -rf yara-python - fi + # Run yara installer script + sudo -u ${USER} poetry --directory /opt/CAPEv2 run /opt/CAPEv2/extra/yara_installer.sh - if id "cape" >/dev/null 2>&1; then - cd /opt/CAPEv2/ - sudo -u cape poetry run extra/yara_installer.sh - cd - - fi if [ -d yara-python ]; then sudo rm -rf yara-python fi @@ -784,12 +786,14 @@ function install_mongo(){ if [ "$MONGO_ENABLE" -ge 1 ]; then echo "[+] Installing MongoDB" # Mongo >=5 requires CPU AVX instruction support https://www.mongodb.com/docs/manual/administration/production-notes/#x86_64 - if grep -q ' avx ' /proc/cpuinfo; then - MONGO_VERSION="8.0" - else - echo "[-] Mongo >= 5 is not supported" - MONGO_VERSION="4.4" - fi + + MONGO_VERSION="8.0" + if ! grep -q ' avx ' /proc/cpuinfo; then + if [[ "$DISABLE_MONGO_AVX_CHECK" -eq 0 ]]; then + echo "[-] Mongo >= 5 is not supported" + MONGO_VERSION="4.4" + fi + fi sudo curl -fsSL "https://pgp.mongodb.com/server-${MONGO_VERSION}.asc" | sudo gpg --dearmor -o /etc/apt/keyrings/mongo.gpg --yes echo "deb [signed-by=/etc/apt/keyrings/mongo.gpg arch=amd64] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/${MONGO_VERSION} multiverse" > /etc/apt/sources.list.d/mongodb.list @@ -797,7 +801,7 @@ function install_mongo(){ apt-get update 2>/dev/null apt-get install libpcre3-dev numactl cron -y apt-get install -y mongodb-org - pip3 install pymongo -U + pip3 install pymongo -U --break-system-packages apt-get install -y ntp systemctl start ntp.service && sudo systemctl enable ntp.service @@ -850,10 +854,10 @@ EOF systemctl restart mongodb.service if ! crontab -l | grep -q -F 'delete-unused-file-data-in-mongo'; then - crontab -l | { cat; echo "30 1 * * 0 cd /opt/CAPEv2 && sudo -u cape poetry run python ./utils/cleaners.py --delete-unused-file-data-in-mongo"; } | crontab - + crontab -l | { cat; echo "30 1 * * 0 cd /opt/CAPEv2 && sudo -u ${USER} poetry run python ./utils/cleaners.py --delete-unused-file-data-in-mongo"; } | crontab - fi - echo -n "https://www.percona.com/blog/2016/08/12/tuning-linux-for-mongodb/" + echo "https://www.percona.com/blog/2016/08/12/tuning-linux-for-mongodb/" else echo "[+] Skipping MongoDB" fi @@ -861,7 +865,7 @@ EOF } function install_elastic() { - + echo "[+] Installing elastic" sudo curl -fsSL "https://artifacts.elastic.co/GPG-KEY-elasticsearch" | sudo gpg --dearmor -o /etc/apt/keyrings/elasticsearch-keyring.gpg --yes # Elasticsearch 7.x @@ -871,7 +875,7 @@ function install_elastic() { # echo "deb [signed-by=/etc/apt/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" > /etc/apt/sources.list.d/elastic-8.x.list apt-get update && apt-get install elasticsearch - pip3 install elasticsearch + pip3 install elasticsearch --break-system-packages systemctl enable elasticsearch } @@ -884,9 +888,6 @@ function install_postgresql() { sudo apt-get update -y sudo apt -y install libpq-dev postgresql postgresql-client - # amazing tool for monitoring https://github.com/dalibo/pg_activity - # sudo -u postgres pg_activity -U postgres - python3 -m pip install pg_activity psycopg2-binary sudo systemctl enable postgresql.service sudo systemctl start postgresql.service @@ -894,6 +895,24 @@ function install_postgresql() { sudo -u postgres -H sh -c "psql -d \"${USER}\" -c \"ALTER DATABASE postgres REFRESH COLLATION VERSION;\"" } +function install_capa() { + echo "[+] Installing capa" + # pip3 install flare-capa fails for me + cd /tmp || return + if [ ! -d /tmp/capa ]; then + # problem with test files of dotnet as it goes over ssh insted of https --recurse-submodules + git clone https://github.com/mandiant/capa.git + fi + cd capa || return + git pull + git submodule update --init rules + poetry --directory /opt/CAPEv2/ run pip install . + cd /opt/CAPEv2 + if [ -d /tmp/capa ]; then + sudo rm -rf /tmp/capa + fi +} + function dependencies() { echo "[+] Installing dependencies" @@ -912,10 +931,23 @@ function dependencies() { apt-get install uthash-dev libconfig-dev libarchive-dev libtool autoconf automake privoxy software-properties-common wkhtmltopdf xvfb xfonts-100dpi tcpdump libcap2-bin wireshark-common -y apt-get install python3-pil subversion uwsgi uwsgi-plugin-python3 python3-pyelftools git curl -y apt-get install openvpn wireguard -y + apt-get install python3-poetry crudini -y + apt-get install locate # used by extra/libvirt_installer.sh # de4dot selfextraction apt-get install -y libgdiplus libdnlib2.1-cil libgif7 libmono-accessibility4.0-cil libmono-ldap4.0-cil libmono-posix4.0-cil libmono-sqlite4.0-cil libmono-system-componentmodel-dataannotations4.0-cil libmono-system-data4.0-cil libmono-system-design4.0-cil libmono-system-drawing4.0-cil libmono-system-enterpriseservices4.0-cil libmono-system-ldap4.0-cil libmono-system-runtime-serialization-formatters-soap4.0-cil libmono-system-runtime4.0-cil libmono-system-transactions4.0-cil libmono-system-web-applicationservices4.0-cil libmono-system-web-services4.0-cil libmono-system-web4.0-cil libmono-system-windows-forms4.0-cil libmono-webbrowser4.0-cil - wget http://archive.ubuntu.com/ubuntu/pool/universe/d/de4dot/de4dot_3.1.41592.3405-2_all.deb && sudo dpkg -i de4dot_3.1.41592.3405-2_all.deb + de4dot_package_name="de4dot_3.1.41592.3405-2_all.deb" + # if not exist download package + if [ ! -f $de4dot_package_name ]; then + wget http://archive.ubuntu.com/ubuntu/pool/universe/d/de4dot/$de4dot_package_name + fi + if [ -f $de4dot_package_name ]; then + sudo dpkg -i $de4dot_package_name + sudo rm $de4dot_package_name + else + echo "[-] de4dot package not found" + return + fi # if broken sudo python -m pip uninstall pip && sudo apt-get install python-pip --reinstall #pip3 install --upgrade pip @@ -924,23 +956,14 @@ function dependencies() { # if __name__ == '__main__': # sys.exit(__main__._main()) - # pip3 install flare-capa fails for me - cd /tmp || return - if [ ! -d /tmp/capa ]; then - # problem with test files of dotnet as it goes over ssh insted of https --recurse-submodules - git clone https://github.com/mandiant/capa.git - fi - cd capa || return - git pull - git submodule update --init rules - pip3 install . - # re2 - dead on py3.11 # apt-get install libre2-dev -y #re2 for py3 # pip3 install cython # pip3 install git+https://github.com/andreasvc/pyre2.git + install_capa + install_postgresql sudo -u postgres -H sh -c "psql -c \"CREATE USER ${USER} WITH PASSWORD '$PASSWD'\""; @@ -969,9 +992,16 @@ function dependencies() { sudo apt-get install gnupg2 -y wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | sudo tee /usr/share/keyrings/deb.torproject.org-keyring.gpg >/dev/null - echo "deb [arch=amd64 signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg] https://deb.torproject.org/torproject.org $(lsb_release -cs) main" > /etc/apt/sources.list.d/tor.list - echo "deb-src [arch=amd64 signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg] https://deb.torproject.org/torproject.org $(lsb_release -cs) main" >> /etc/apt/sources.list.d/tor.list - + + # Tor project has no release for Ubuntu noble (24-10-18) + # TODO: Check if it is still the case + if [ "$(lsb_release -cs)" = "noble" ]; then + echo "deb [signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg arch=amd64] https://deb.torproject.org/torproject.org jammy main" > /etc/apt/sources.list.d/tor.list + echo "deb-src [signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg arch=amd64] https://deb.torproject.org/torproject.org jammy main" >> /etc/apt/sources.list.d/tor.list + else + echo "deb [signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg arch=amd64] https://deb.torproject.org/torproject.org $(lsb_release -cs) main" > /etc/apt/sources.list.d/tor.list + echo "deb-src [signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg arch=amd64] https://deb.torproject.org/torproject.org $(lsb_release -cs) main" >> /etc/apt/sources.list.d/tor.list + fi sudo apt-get update 2>/dev/null sudo systemctl stop tor@default.service && sudo systemctl disable tor@default.service @@ -1043,22 +1073,31 @@ EOF ### PDNS sudo apt-get install git binutils-dev libldns-dev libpcap-dev libdate-simple-perl libdatetime-perl libdbd-mysql-perl -y cd /tmp || return + + # From pevious install + if [ -d /tmp/passivedns ]; then + sudo rm -rf /tmp/passivedns + fi git clone https://github.com/gamelinux/passivedns.git cd passivedns/ || return autoreconf --install ./configure make -j"$(getconf _NPROCESSORS_ONLN)" sudo checkinstall -D --pkgname=passivedns --default - - pip3 install unicorn capstone - + chown ${USER}:${USER} -R /tmp/passivedns/ + sudo -u ${USER} bash -c 'poetry --directory /opt/CAPEv2/ run pip install unicorn capstone' + sudo -u ${USER} bash -c 'cd /tmp/passivedns/ ; poetry --directory /opt/CAPEv2/ run pip install unicorn capstone' sed -i 's/APT::Periodic::Unattended-Upgrade "1";/APT::Periodic::Unattended-Upgrade "0";/g' /etc/apt/apt.conf.d/20auto-upgrades + if [ -d /tmp/passivedns ]; then + sudo rm -rf /tmp/passivedns + fi + } function install_clamav() { - apt-get install clamav clamav-daemon clamav-freshclam clamav-unofficial-sigs -y - pip3 install -U pyclamd + echo "[+] Installing clamav" + apt-get install clamav clamav-daemon clamav-freshclam clamav-unofficial-sigs python3-pyclamd -y cat >> /usr/share/clamav-unofficial-sigs/conf.d/00-clamav-unofficial-sigs.conf << EOF # This file contains user configuration settings for the clamav-unofficial-sigs.sh @@ -1190,21 +1229,30 @@ function install_CAPE() { echo "[+] Installing CAPEv2" cd /opt || return - git clone https://github.com/kevoreilly/CAPEv2/ + # if folder CAPEv2 dosn't exist, clone it + if [ ! -d CAPEv2 ]; then + git clone https://github.com/kevoreilly/CAPEv2/ + fi + chown ${USER}:${USER} -R /opt/CAPEv2/ #chown -R root:${USER} /usr/var/malheur/ #chmod -R =rwX,g=rwX,o=X /usr/var/malheur/ # Adapting owner permissions to the ${USER} path folder cd "/opt/CAPEv2/" || return - pip3 install poetry crudini - CRYPTOGRAPHY_DONT_BUILD_RUST=1 sudo -u ${USER} bash -c 'export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring; poetry install' - sudo -u ${USER} bash -c 'export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring; poetry run extra/libvirt_installer.sh' + sudo -u ${USER} bash -c 'export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring; CRYPTOGRAPHY_DONT_BUILD_RUST=1 poetry install' + + if [ "$DISABLE_LIBVIRT" -eq 0 ]; then + sudo -u ${USER} bash -c 'export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring; poetry run extra/libvirt_installer.sh' + sudo usermod -aG kvm ${USER} + sudo usermod -aG libvirt ${USER} + fi + #packages are needed for build options in extra/yara_installer.sh apt-get install libjansson-dev libmagic1 libmagic-dev -y - sudo -u ${USER} bash -c 'poetry run extra/yara_installer.sh' - sudo rm -rf yara-python - - sudo usermod -aG kvm ${USER} - sudo usermod -aG libvirt ${USER} + sudo -u ${USER} bash -c 'poetry run /opt/CAPEv2/extra/yara_installer.sh' + + if [ -d /tmp/yara-python ]; then + sudo rm -rf /tmp/yara-python + fi # copy *.conf.default to *.conf so we have all properly updated fields, as we can't ignore old configs in repository for filename in conf/default/*.conf.default; do cp -vf "./$filename" "./$(echo "$filename" | sed -e 's/.default//g' | sed -e 's/default//g')"; done @@ -1240,7 +1288,7 @@ fi } function install_systemd() { - + echo "[+] Installing systemd configuration" cp /opt/CAPEv2/systemd/cape.service /lib/systemd/system/cape.service cp /opt/CAPEv2/systemd/cape-processor.service /lib/systemd/system/cape-processor.service cp /opt/CAPEv2/systemd/cape-web.service /lib/systemd/system/cape-web.service @@ -1281,7 +1329,7 @@ EOF function install_prometheus_grafana() { - + echo "[+] Installing prometheus grafana" # install only on master only master wget https://github.com/prometheus/prometheus/releases/download/v"$prometheus_version"/prometheus-"$prometheus_version".linux-amd64.tar.gz && tar xf prometheus-"$prometheus_version".linux-amd64.tar.gz cd prometheus-$prometheus_version.linux-amd6 && ./prometheus --config.file=prometheus.yml & @@ -1301,23 +1349,26 @@ EOL } function install_node_exporter() { + echo "[+] Installing prometheus's node exported" # deploy on all all monitoring servers wget https://github.com/prometheus/node_exporter/releases/download/v"$node_exporter_version"/node_exporter-"$node_exporter_version".linux-amd64.tar.gz && tar xf node_exporter-"$node_exporter_version".linux-amd64.tar.gz cd node_exporter-"$node_exporter_version".linux-amd6 && ./node_exporter & } function install_volatility3() { + echo "[+] Installing volatility3" sudo apt-get install unzip sudo -u ${USER} poetry run pip3 install git+https://github.com/volatilityfoundation/volatility3 vol_path=$(sudo -u ${USER} poetry run python3 -c "import volatility3.plugins;print(volatility3.__file__.replace('__init__.py', 'symbols/'))") cd $vol_path || return wget https://downloads.volatilityfoundation.org/volatility3/symbols/windows.zip -O windows.zip - unzip windows.zip + unzip -o windows.zip rm windows.zip chown "${USER}:${USER}" $vol_path -R } function install_mitmproxy() { + echo "[+] Installing mitmproxy" sudo mkdir /opt/mitmproxy sudo chown ${USER}:${USER} /opt/mitmproxy cd /opt/mitmproxy @@ -1329,6 +1380,7 @@ function install_mitmproxy() { } function install_guacamole() { + echo "[+] Installing guacamole" # Kudos to @Enzok https://github.com/kevoreilly/CAPEv2/pull/1065 # https://guacamole.apache.org/doc/gug/installing-guacamole.html sudo add-apt-repository ppa:remmina-ppa-team/remmina-next-daily @@ -1360,7 +1412,8 @@ function install_guacamole() { sudo dpkg -i --force-overwrite /tmp/guacamole-"${guacamole_version}"_builded.deb sudo ldconfig - pip3 install -U 'Twisted[tls,http2]' + #pip3 install -U 'Twisted[tls,http2]' + sudo apt install python3-twisted -y if [ -f "/etc/systemd/system/guacd.service" ] ; then sudo rm /etc/systemd/system/guacd.service @@ -1393,17 +1446,26 @@ function install_guacamole() { } function install_DIE() { + echo "[+] Installing Detect It Easy" apt-get install libqt5opengl5 libqt5script5 libqt5scripttools5 libqt5sql5 -y wget "https://github.com/horsicq/DIE-engine/releases/download/${DIE_VERSION}/die_${DIE_VERSION}_Ubuntu_${UBUNTU_VERSION}_amd64.deb" -O DIE.deb && dpkg -i DIE.deb } function install_fluentd() { + echo "[+] Installing fluentd" curl -sSO https://dl.google.com/cloudagents/add-logging-agent-repo.sh && sudo bash add-logging-agent-repo.sh sudo apt-get update && sudo apt-get install google-fluentd sudo apt-get install -y google-fluentd-catch-all-config-structured sudo service google-fluentd start && sudo service google-fluentd status } +function install_postgres_pg_activity() { + echo "[+] Installing pg-activity" + # amazing tool for monitoring https://github.com/dalibo/pg_activity + # sudo -u postgres pg_activity -U postgres + apt install pg-activity -y +} + # Doesn't work ${$1,,} COMMAND=$(echo "$1"|tr "{A-Z}" "{a-z}") @@ -1421,6 +1483,20 @@ elif [ $# -eq 0 ]; then exit 1 fi +DISABLE_MONGO_AVX_CHECK=0 +DISABLE_LIBVIRT=0 + +for i in "$@"; do + if [ "$i" == "--disable-mongodb-avx-check" ]; then + # Usage: disable AVX check for MongoDB + # Example usecase: Run script in docker container where AVX is not available + DISABLE_MONGO_AVX_CHECK=1 + elif [ "$i" == "--disable-libvirt" ]; then + # Disable libvirt installation + DISABLE_LIBVIRT=1 + fi +done + sandbox_version=$(echo "$sandbox_version"|tr "{A-Z}" "{a-z}") #check if start with root @@ -1433,10 +1509,10 @@ case "$COMMAND" in 'base') dependencies install_mongo - install_suricata install_CAPE install_yara install_systemd + install_suricata install_jemalloc if ! crontab -l | grep -q './smtp_sinkhole.sh'; then crontab -l | { cat; echo "@reboot cd /opt/CAPEv2/utils/ && ./smtp_sinkhole.sh 2>/dev/null"; } | crontab - @@ -1457,9 +1533,9 @@ case "$COMMAND" in install_CAPE install_volatility3 install_mongo - install_suricata install_yara install_systemd + install_suricata install_jemalloc install_logrotate install_mitmproxy @@ -1472,7 +1548,7 @@ case "$COMMAND" in fi # Update FLARE CAPA rules once per day if ! crontab -l | grep -q 'community.py -waf -cr'; then - crontab -l | { cat; echo "5 0 */1 * * cd /opt/CAPEv2/utils/ && python3 community.py -waf -cr && pip3 install -U flare-capa && systemctl restart cape-processor 2>/dev/null"; } | crontab - + crontab -l | { cat; echo "5 0 */1 * * cd /opt/CAPEv2/utils/ && sudo -u ${USER} poetry --directory /opt/CAPEv2/ run python3 community.py -waf -cr && poetry --directory /opt/CAPEv2/ run pip install -U flare-capa && systemctl restart cape-processor 2>/dev/null"; } | crontab - fi install_librenms if [ "$clamav_enable" -ge 1 ]; then @@ -1485,10 +1561,14 @@ case "$COMMAND" in install_suricata;; 'yara') install_yara;; +'yara-x') + install_yara_x;; 'volatility3') install_volatility3;; 'postgresql') install_postgresql;; +'postgresql_utility') + install_postgres_pg_activity;; 'elastic') install_elastic;; 'sandbox') @@ -1544,3 +1624,5 @@ case "$COMMAND" in *) usage;; esac + +echo "[+] cape2.sh - Done" \ No newline at end of file From 0db59994a7213270b95f97db9a9c2b20004d5a96 Mon Sep 17 00:00:00 2001 From: Mohannad Raafat <62453654+para0x0dise@users.noreply.github.com> Date: Fri, 25 Oct 2024 09:16:48 +0300 Subject: [PATCH 63/98] Update database.py (#2370) --- lib/cuckoo/core/database.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/cuckoo/core/database.py b/lib/cuckoo/core/database.py index 0efb16f49e1..20c66e1b738 100644 --- a/lib/cuckoo/core/database.py +++ b/lib/cuckoo/core/database.py @@ -976,8 +976,7 @@ def unlock_machine(self, machine: Machine) -> Machine: """ machine.locked = False machine.locked_changed_on = datetime.now() - self.session.add(machine) - + self.session.merge(machine) return machine def count_machines_available(self, label=None, platform=None, tags=None, arch=None, include_reserved=False, os_version=None): From 81e2b531c66637f61b8787c18353fdc82f3df9c6 Mon Sep 17 00:00:00 2001 From: YungBinary <93540406+YungBinary@users.noreply.github.com> Date: Fri, 25 Oct 2024 08:08:49 +0000 Subject: [PATCH 64/98] YungBinary Add Stealc/KoiLoader Config Extractors (#2368) --- data/yara/CAPE/KoiLoader.yar | 35 ++++++ modules/processing/parsers/CAPE/KoiLoader.py | 120 +++++++++++++++++++ modules/processing/parsers/CAPE/Lumma.py | 5 + modules/processing/parsers/CAPE/Stealc.py | 93 +++++++++++++- tests_parsers/test_koiloader.py | 11 ++ tests_parsers/test_lumma.py | 12 ++ tests_parsers/test_stealc.py | 11 ++ 7 files changed, 282 insertions(+), 5 deletions(-) create mode 100644 data/yara/CAPE/KoiLoader.yar create mode 100644 modules/processing/parsers/CAPE/KoiLoader.py create mode 100644 tests_parsers/test_koiloader.py create mode 100644 tests_parsers/test_lumma.py create mode 100644 tests_parsers/test_stealc.py diff --git a/data/yara/CAPE/KoiLoader.yar b/data/yara/CAPE/KoiLoader.yar new file mode 100644 index 00000000000..3f71f780ef1 --- /dev/null +++ b/data/yara/CAPE/KoiLoader.yar @@ -0,0 +1,35 @@ +rule KoiLoader +{ + meta: + author = "YungBinary" + description = "KoiLoader" + cape_type = "KoiLoader Payload" + hash = "b462e3235c7578450b2b56a8aff875a3d99d22f6970a01db3ba98f7ecb6b01a0" + strings: + $chunk_1 = { + 68 27 11 68 05 + 8B 45 ?? + 50 + E8 ?? ?? ?? ?? + 83 C4 08 + 89 45 ?? + 68 15 B1 B3 09 + 8B 4D ?? + 51 + E8 ?? ?? ?? ?? + 83 C4 08 + 89 45 ?? + 68 B5 96 AA 0D + 8B 55 ?? + 52 + E8 ?? ?? ?? ?? + 83 C4 08 + 89 45 ?? + 6A 00 + FF 15 ?? ?? ?? ?? + } + + condition: + $chunk_1 + +} diff --git a/modules/processing/parsers/CAPE/KoiLoader.py b/modules/processing/parsers/CAPE/KoiLoader.py new file mode 100644 index 00000000000..629b7a9b086 --- /dev/null +++ b/modules/processing/parsers/CAPE/KoiLoader.py @@ -0,0 +1,120 @@ +import pefile +import yara +import struct +import re +from itertools import cycle +from contextlib import suppress + +# Hash = b462e3235c7578450b2b56a8aff875a3d99d22f6970a01db3ba98f7ecb6b01a0 + +RULE_SOURCE = """ +rule KoiLoaderResources +{ + meta: + author = "YungBinary" + description = "Find KoiLoader XOR key and payload resource ids" + strings: + $payload_resource = {8D [2] 50 68 [4] E8} + $xor_key_resource = {8D [2] 51 68 [4] E8} + condition: + uint16(0) == 0x5A4D and $payload_resource and $xor_key_resource +} +""" + +def yara_scan(raw_data): + yara_rules = yara.compile(source=RULE_SOURCE) + matches = yara_rules.match(data=raw_data) + payload_resource_id = None + xor_key_resource_id = None + + for match in matches: + if match.rule != "KoiLoaderResources": + continue + for item in match.strings: + if "$payload_resource" in item.identifier: + payload_offset = item.instances[0].offset + payload_resource_id = struct.unpack("i", raw_data[payload_offset + 5 : payload_offset + 9])[0] + + elif "$xor_key_resource" in item.identifier: + xor_key_offset = item.instances[0].offset + xor_key_resource_id = struct.unpack("i", raw_data[xor_key_offset + 5 : xor_key_offset + 9])[0] + + return (payload_resource_id, xor_key_resource_id) + +def remove_nulls(buffer, buffer_size): + """ + Modify a buffer removing null bytes + """ + num_nulls = count_nulls(buffer) + result = skip_nth(buffer, num_nulls+1) + return bytearray(result) + +def count_nulls(buffer): + """ + Count null separation in a buffer + """ + num_nulls = 0 + idx = 1 + while True: + cur_byte = buffer[idx] + if cur_byte == 0: + num_nulls += 1 + idx += 1 + continue + else: + break + + return num_nulls + +def skip_nth(buffer, n): + iterable = list(buffer) + yield from (value for index, value in enumerate(iterable) if (index + 1) % n and (index - 1) % n) + +def find_c2(decoded_buffer): + decoded_buffer = bytearray(skip_nth(decoded_buffer, 2)) + url_regex = re.compile(rb"http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+") + urls = [url.lower().decode() for url in url_regex.findall(decoded_buffer)] + return urls + +def xor_data(data, key): + return bytes(c ^ k for c, k in zip(data, cycle(key))) + +def extract_config(data): + config_dict = {"C2": []} + + xor_key = b'' + encoded_payload = b'' + + payload_resource_id, xor_key_resource_id = yara_scan(data) + + if payload_resource_id is None or xor_key_resource_id is None: + return + + with suppress(Exception): + pe = pefile.PE(data=data) + for entry in pe.DIRECTORY_ENTRY_RESOURCE.entries: + resource_type = pefile.RESOURCE_TYPE.get(entry.struct.Id) + for directory in entry.directory.entries: + for resource in directory.directory.entries: + if resource_type != "RT_RCDATA": + continue + if directory.struct.Id == xor_key_resource_id: + offset = resource.data.struct.OffsetToData + xor_phrase_size = resource.data.struct.Size + xor_key = pe.get_memory_mapped_image()[offset:offset+xor_phrase_size] + elif directory.struct.Id == payload_resource_id: + offset = resource.data.struct.OffsetToData + encoded_payload_size = resource.data.struct.Size + encoded_payload = pe.get_memory_mapped_image()[offset:offset+encoded_payload_size] + + encoded_payload = remove_nulls(encoded_payload, encoded_payload_size) + decoded_payload = xor_data(encoded_payload, xor_key) + + config_dict["C2"] = find_c2(decoded_payload) + + return config_dict + +if __name__ == "__main__": + import sys + with open(sys.argv[1], "rb") as f: + print(extract_config(f.read())) diff --git a/modules/processing/parsers/CAPE/Lumma.py b/modules/processing/parsers/CAPE/Lumma.py index b1437d8e435..eb7e520e9f4 100644 --- a/modules/processing/parsers/CAPE/Lumma.py +++ b/modules/processing/parsers/CAPE/Lumma.py @@ -94,3 +94,8 @@ def extract_config(data): return return config_dict + +if __name__ == "__main__": + import sys + with open(sys.argv[1], "rb") as f: + print(extract_config(f.read())) diff --git a/modules/processing/parsers/CAPE/Stealc.py b/modules/processing/parsers/CAPE/Stealc.py index a6a7d4e0c3d..4ae06e72961 100644 --- a/modules/processing/parsers/CAPE/Stealc.py +++ b/modules/processing/parsers/CAPE/Stealc.py @@ -1,6 +1,54 @@ +import yara +import pefile +import struct +from contextlib import suppress + + +MAX_STRING_SIZE = 100 + +# Hash = 619751f5ed0a9716318092998f2e4561f27f7f429fe6103406ecf16e33837470 + +RULE_SOURCE = """rule StealC +{ + meta: + author = "Yung Binary" + hash = "619751f5ed0a9716318092998f2e4561f27f7f429fe6103406ecf16e33837470" + strings: + $decode_1 = { + 6A ?? + 68 ?? ?? ?? ?? + 68 ?? ?? ?? ?? + E8 ?? ?? ?? ?? + 83 C4 0C + A3 ?? ?? ?? ?? + } + + condition: + $decode_1 +}""" + +def yara_scan(raw_data): + yara_rules = yara.compile(source=RULE_SOURCE) + matches = yara_rules.match(data=raw_data) + + for match in matches: + for block in match.strings: + for instance in block.instances: + yield instance.offset + +def xor_data(data, key): + decoded = bytearray() + for i in range(len(data)): + decoded.append(data[i] ^ key[i]) + return decoded + +def string_from_offset(data, offset): + return data[offset : offset + MAX_STRING_SIZE].split(b"\0", 1)[0] + def extract_config(data): - config_dict = {} - C2s = [] + config_dict = {"C2": []} + + # Attempt to extract via old method try: domain = "" uri = "" @@ -11,8 +59,43 @@ def extract_config(data): if line.startswith("/") and line[-4] == ".": uri = line if domain and uri: - C2s = [f"{domain}{uri}"] + config_dict["C2"].append(f"{domain}{uri}") except Exception: - return - config_dict["C2s"] = C2s + pass + + # Try with new method + if not config_dict["C2"]: + with suppress(Exception): + # config_dict["Strings"] = [] + pe = pefile.PE(data=data, fast_load=False) + image_base = pe.OPTIONAL_HEADER.ImageBase + + for str_decode_offset in yara_scan(data): + str_size = int(data[str_decode_offset + 1]) + # Ignore size 0 strings + if not str_size: + continue + + key_rva = data[str_decode_offset + 3 : str_decode_offset + 7] + encoded_str_rva = data[str_decode_offset + 8 : str_decode_offset + 12] + dword_rva = data[str_decode_offset + 21 : str_decode_offset + 25] + + key_offset = pe.get_offset_from_rva(struct.unpack("i", key_rva)[0] - image_base) + encoded_str_offset = pe.get_offset_from_rva(struct.unpack("i", encoded_str_rva)[0] - image_base) + dword_offset = hex(struct.unpack("i", dword_rva)[0])[2:] + + key = string_from_offset(data, key_offset) + encoded_str = string_from_offset(data, encoded_str_offset) + + decoded_str = xor_data(encoded_str, key).decode() + if "http://" in decoded_str or "https://" in decoded_str: + config_dict["C2"].append(decoded_str) + # else: + # config_dict["Strings"].append({f"dword_{dword_offset}" : decoded_str}) + return config_dict + +if __name__ == "__main__": + import sys + with open(sys.argv[1], "rb") as f: + print(extract_config(f.read())) diff --git a/tests_parsers/test_koiloader.py b/tests_parsers/test_koiloader.py new file mode 100644 index 00000000000..c06faaa700c --- /dev/null +++ b/tests_parsers/test_koiloader.py @@ -0,0 +1,11 @@ +# Copyright (C) 2010-2015 Cuckoo Foundation. +# This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org +# See the file 'docs/LICENSE' for copying permission. + +from modules.processing.parsers.CAPE.KoiLoader import extract_config + + +def test_koiloader(): + with open("tests/data/malware/b462e3235c7578450b2b56a8aff875a3d99d22f6970a01db3ba98f7ecb6b01a0", "rb") as data: + conf = extract_config(data.read()) + assert conf == {'C2': ['http://91.202.233.209/hypermetropia.php', 'https://admiralpub.ca/wp-content/uploads/2017']} diff --git a/tests_parsers/test_lumma.py b/tests_parsers/test_lumma.py new file mode 100644 index 00000000000..4e48b6506a0 --- /dev/null +++ b/tests_parsers/test_lumma.py @@ -0,0 +1,12 @@ +# Copyright (C) 2010-2015 Cuckoo Foundation. +# This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org +# See the file 'docs/LICENSE' for copying permission. + +from modules.processing.parsers.CAPE.Lumma import extract_config + + +def test_lumma(): + with open("tests/data/malware/5d58bc449693815f6fb0755a364c4cd3a8e2a81188e431d4801f2fb0b1c2de8f", "rb") as data: + conf = extract_config(data.read()) + assert conf == {'C2': ['delaylacedmn.site', 'writekdmsnu.site', 'agentyanlark.site', 'bellykmrebk.site', 'underlinemdsj.site', 'commandejorsk.site', 'possiwreeste.site', 'famikyjdiag.site', 'agentyanlark.site']} + diff --git a/tests_parsers/test_stealc.py b/tests_parsers/test_stealc.py new file mode 100644 index 00000000000..4f8960e6bcd --- /dev/null +++ b/tests_parsers/test_stealc.py @@ -0,0 +1,11 @@ +# Copyright (C) 2010-2015 Cuckoo Foundation. +# This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org +# See the file 'docs/LICENSE' for copying permission. + +from modules.processing.parsers.CAPE.Stealc import extract_config + + +def test_stealc(): + with open("tests/data/malware/619751f5ed0a9716318092998f2e4561f27f7f429fe6103406ecf16e33837470", "rb") as data: + conf = extract_config(data.read()) + assert conf == {'C2': ['http://95.217.125.57'], 'Strings': [{'dword_64a330': 'IN'}, {'dword_64a5ec': '09'}, {'dword_64a31c': '11'}, {'dword_64a570': '20'}, {'dword_64a56c': '24'}, {'dword_64a3f0': 'GetProcAddress'}, {'dword_64a204': 'LoadLibraryA'}, {'dword_64a5c8': 'lstrcatA'}, {'dword_64a644': 'OpenEventA'}, {'dword_64a264': 'CreateEventA'}, {'dword_64a250': 'CloseHandle'}, {'dword_64a2f8': 'Sleep'}, {'dword_64a4d4': 'GetUserDefaultLangID'}, {'dword_64a33c': 'VirtualAllocExNuma'}, {'dword_64a5a0': ''}, {'dword_64a548': ''}, {'dword_64a3bc': 'VirtualAlloc'}, {'dword_64a2e8': 'HeapAlloc'}, {'dword_64a60c': 'GetComputerNameA'}, {'dword_64a0b0': 'lstrcpyA'}, {'dword_64a598': 'Get'}, {'dword_64a224': 'GetCurrentProcess'}, {'dword_64a418': 'lstrlenA'}, {'dword_64a634': 'ExitProcess'}, {'dword_64a0bc': 'GlobalMemoryStatusEx'}, {'dword_64a12c': 'GetSystemTime'}, {'dword_64a2b0': 'SystemTimeToFileTime'}, {'dword_64a550': 'advapi32.dll'}, {'dword_64a17c': 'gdi32.dll'}, {'dword_64a104': 'user32.dll'}, {'dword_64a1dc': 'crypt32.dll'}, {'dword_64a328': 'ntdll.dll'}, {'dword_64a4ac': 'GetUserNameA'}, {'dword_64a424': 'CreateDCA'}, {'dword_64a1cc': 'GetDeviceCaps'}, {'dword_64a394': 'ReleaseDC'}, {'dword_64a128': 'CryptStringToBinaryA'}, {'dword_64a414': 'sscanf'}, {'dword_64a150': ''}, {'dword_64a540': 'HAL9T'}, {'dword_64a61c': 'JohnDoe'}, {'dword_64a0d0': 'DISPLAY'}, {'dword_64a400': '%hu/%hu/%hu'}, {'dword_64a47c': 'srttybh'}, {'dword_64a440': '!|'}, {'dword_64a1fc': '/2f571d994666c8cb.php'}, {'dword_64a32c': '/557b2ce3c387a13c/'}, {'dword_64a230': '5385386367'}, {'dword_64a58c': 'GetEnvironmentVariableA'}, {'dword_64a1c4': 'GetFileAttributesA'}, {'dword_64a178': 'GlobalLock'}, {'dword_64a1ac': 'HeapFree'}, {'dword_64a534': 'GetFileSize'}, {'dword_64a1d8': 'GlobalSize'}, {'dword_64a390': 'CreateToolhelp32Snapshot'}, {'dword_64a14c': 'IsWow64Process'}, {'dword_64a1c8': 'Process32Next'}, {'dword_64a210': 'GetLocalTime'}, {'dword_64a324': 'FreeLibrary'}, {'dword_64a608': 'GetTimeZoneInformation'}, {'dword_64a2d8': 'GetSystemPowerStatus'}, {'dword_64a38c': 'GetVolumeInformationA'}, {'dword_64a538': 'GetWindows'}, {'dword_64a194': 'Process32First'}, {'dword_64a3e4': 'GetLocaleInfoA'}, {'dword_64a4fc': 'GetUserDefaultLocaleName'}, {'dword_64a4f8': 'GetModuleFileNameA'}, {'dword_64a0b8': 'DeleteFileA'}, {'dword_64a4dc': 'FindNextFileA'}, {'dword_64a13c': 'LocalFree'}, {'dword_64a24c': 'FindClose'}, {'dword_64a51c': 'SetEnvironmentVariableA'}, {'dword_64a18c': 'LocalAlloc'}, {'dword_64a488': 'GetFileSizeEx'}, {'dword_64a628': 'ReadFile'}, {'dword_64a44c': 'SetFilePointer'}, {'dword_64a4e0': 'WriteFile'}, {'dword_64a54c': 'CreateFileA'}, {'dword_64a468': 'FindFirstFileA'}, {'dword_64a35c': 'CopyFileA'}, {'dword_64a3a8': 'VirtualProtect'}, {'dword_64a0a0': 'GetLogicalProcessorInformationEx'}, {'dword_64a420': 'GetLastError'}, {'dword_64a368': 'lstrcpynA'}, {'dword_64a568': 'MultiByteToWideChar'}, {'dword_64a294': 'GlobalFree'}, {'dword_64a39c': 'WideCharToMultiByte'}, {'dword_64a3d8': 'GlobalAlloc'}, {'dword_64a410': 'OpenProcess'}, {'dword_64a0e0': 'TerminateProcess'}, {'dword_64a1ec': 'GetCurrentProcessId'}, {'dword_64a34c': 'gdiplus.dll'}, {'dword_64a588': 'ole32.dll'}, {'dword_64a2e4': 'bcrypt.dll'}, {'dword_64a2b8': 'wininet.dll'}, {'dword_64a4e4': 'shlwapi.dll'}, {'dword_64a20c': 'shell32.dll'}, {'dword_64a220': 'psapi.dll'}, {'dword_64a4a8': 'rstrtmgr.dll'}, {'dword_64a260': 'CreateCompatibleBitmap'}, {'dword_64a518': 'SelectObject'}, {'dword_64a2a0': 'BitBlt'}, {'dword_64a4f4': 'DeleteObject'}, {'dword_64a604': 'CreateCompatibleDC'}, {'dword_64a380': 'GdipGetImageEncodersSize'}, {'dword_64a274': 'GdipGetImageEncoders'}, {'dword_64a2d4': ''}, {'dword_64a19c': 'GdiplusStartup'}, {'dword_64a43c': 'GdiplusShutdown'}, {'dword_64a62c': 'GdipSaveImageToStream'}, {'dword_64a344': 'GdipDisposeImage'}, {'dword_64a624': 'GdipFree'}, {'dword_64a388': 'Get'}, {'dword_64a1b4': 'CreateStreamOnHGlobal'}, {'dword_64a2e0': 'CoUninitialize'}, {'dword_64a5e8': 'CoInitialize'}, {'dword_64a42c': 'CoCreateInstance'}, {'dword_64a464': 'BCryptGenerateSymmetricKey'}, {'dword_64a160': 'BCryptCloseAlgorithmProvider'}, {'dword_64a114': ''}, {'dword_64a318': 'BCryptSetProperty'}, {'dword_64a5b0': 'BCryptDestroyKey'}, {'dword_64a454': 'BCryptOpenAlgorithmProvider'}, {'dword_64a340': 'GetWindowRect'}, {'dword_64a510': 'GetDesktopWindow'}, {'dword_64a530': 'GetDC'}, {'dword_64a348': 'CloseWindow'}, {'dword_64a2dc': 'wsprintfA'}, {'dword_64a460': 'EnumDisplayDevicesA'}, {'dword_64a504': 'GetKeyboardLayoutList'}, {'dword_64a52c': 'Char'}, {'dword_64a4bc': 'wsprintfW'}, {'dword_64a478': 'RegQueryValueExA'}, {'dword_64a218': 'RegEnumKeyExA'}, {'dword_64a57c': 'RegOpenKeyExA'}, {'dword_64a1c0': 'RegCloseKey'}, {'dword_64a640': 'RegEnumValueA'}, {'dword_64a188': 'CryptBinaryToStringA'}, {'dword_64a308': 'CryptUnprotectData'}, {'dword_64a25c': 'SHGetFolderPathA'}, {'dword_64a338': 'ShellExecuteExA'}, {'dword_64a258': 'InternetOpenUrlA'}, {'dword_64a244': 'InternetConnectA'}, {'dword_64a23c': 'InternetCloseHandle'}, {'dword_64a40c': 'InternetOpenA'}, {'dword_64a48c': 'HttpSendRequestA'}, {'dword_64a46c': 'HttpOpenRequestA'}, {'dword_64a490': 'InternetReadFile'}, {'dword_64a5a4': 'InternetCrackUrlA'}, {'dword_64a1bc': 'StrCmpCA'}, {'dword_64a55c': 'StrStrA'}, {'dword_64a240': 'StrCmpCW'}, {'dword_64a144': 'PathMatchSpecA'}, {'dword_64a358': 'GetModuleFileNameExA'}, {'dword_64a5ac': 'RmStartSession'}, {'dword_64a5c4': 'RmRegisterResources'}, {'dword_64a100': ''}, {'dword_64a0f8': 'RmEndSession'}, {'dword_64a430': 'sqlite3_open'}, {'dword_64a148': 'sqlite3_prepare_v2'}, {'dword_64a3c4': 'sqlite3_step'}, {'dword_64a3ac': 'sqlite3_column_text'}, {'dword_64a3d4': 'sqlite3_finalize'}, {'dword_64a554': 'sqlite3_close'}, {'dword_64a498': 'sqlite3_column_bytes'}, {'dword_64a59c': 'sqlite3_column_blob'}, {'dword_64a0ec': 'encrypted_key'}, {'dword_64a0b4': 'PATH'}, {'dword_64a578': 'C:\\ProgramData\\nss3.dll'}, {'dword_64a290': 'NSS_Init'}, {'dword_64a520': 'NSS_Shutdown'}, {'dword_64a1e4': 'PK11_GetInternalKeySlot'}, {'dword_64a184': 'PK11_FreeSlot'}, {'dword_64a620': 'PK11_Authenticate'}, {'dword_64a310': 'PK11SDR_Decrypt'}, {'dword_64a4a4': 'C:\\ProgramData\\'}, {'dword_64a134': 'SELECT origin_url, username_value, password_value '}, {'dword_64a37c': 'browser: '}, {'dword_64a124': 'profile: '}, {'dword_64a15c': 'url: '}, {'dword_64a0dc': 'login: '}, {'dword_64a29c': 'password: '}, {'dword_64a350': 'Opera'}, {'dword_64a36c': 'OperaGX'}, {'dword_64a528': 'Network'}, {'dword_64a270': 'cookies'}, {'dword_64a2fc': '.txt'}, {'dword_64a2f4': 'SELECT HOST_KEY, is_httponly, path, is_secure, (expires_utc/10'}, {'dword_64a3ec': 'T'}, {'dword_64a0e4': 'FALSE'}, {'dword_64a4b8': 'autofill'}, {'dword_64a594': 'SELECT name, value FROM autofill'}, {'dword_64a3e0': 'history'}, {'dword_64a3c0': 'SELECT url FROM urls LIMIT 1000'}, {'dword_64a3a4': 'cc'}, {'dword_64a1f8': 'SELECT name_on_card, expiration_month, expiration_year, card_number_encrypted FROM credit_cards'}, {'dword_64a26c': 'name: '}, {'dword_64a2cc': 'month: '}, {'dword_64a28c': 'year: '}, {'dword_64a214': 'card: '}, {'dword_64a0c8': 'Cookies'}, {'dword_64a474': 'Login Data'}, {'dword_64a4c8': 'Web Data'}, {'dword_64a320': 'History'}, {'dword_64a63c': 'logins.json'}, {'dword_64a1b0': 'formSubmitUR'}, {'dword_64a364': 'usernameField'}, {'dword_64a4d0': 'encryptedUsername'}, {'dword_64a4cc': 'encryptedPassword'}, {'dword_64a5a8': 'guid'}, {'dword_64a1f4': 'SELECT host, isHttpOnly, path, isSecure, expiry, name, value FROM moz_cookies'}, {'dword_64a0f4': 'SELECT fieldname, value FROM moz_formhistory'}, {'dword_64a268': 'S'}, {'dword_64a428': 'cookies.sqlite'}, {'dword_64a0a8': 'formhistory.sqlite'}, {'dword_64a138': 'places.sqlite'}, {'dword_64a500': 'plugins'}, {'dword_64a4e8': 'Local Extension Settings'}, {'dword_64a3dc': 'Sync Extension Settings'}, {'dword_64a1a8': 'IndexedDB'}, {'dword_64a4f0': 'Opera Stable'}, {'dword_64a140': 'Opera GX Stable'}, {'dword_64a600': 'CURRENT'}, {'dword_64a0ac': 'chrome-extension_'}, {'dword_64a0a4': '_0.indexeddb.leveldb'}, {'dword_64a5d8': 'Local State'}, {'dword_64a21c': 'profiles.ini'}, {'dword_64a2ac': 'chrome'}, {'dword_64a41c': 'opera'}, {'dword_64a584': 'firefox'}, {'dword_64a1f0': 'wallets'}, {'dword_64a0c4': '%08l'}, {'dword_64a398': 'SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion'}, {'dword_64a434': 'ProductName'}, {'dword_64a2c0': 'x32'}, {'dword_64a174': 'x64'}, {'dword_64a630': '%d/%d/%d %d:%d:%d'}, {'dword_64a1d4': 'HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0'}, {'dword_64a4ec': 'ProcessorName'}, {'dword_64a544': 'SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall'}, {'dword_64a5c0': 'DisplayName'}, {'dword_64a3d0': 'DisplayVersion'}, {'dword_64a5f4': 'Network Info:'}, {'dword_64a228': '\t- IP: IP?'}, {'dword_64a0fc': '\t- Country: ISO?'}, {'dword_64a180': 'System Summary:'}, {'dword_64a09c': '\t- HWID: '}, {'dword_64a354': '\t- OS: '}, {'dword_64a638': '\t- Architecture: '}, {'dword_64a1a0': '\t- UserName: '}, {'dword_64a314': '\t- Computer Name: '}, {'dword_64a248': '\t- Local Time: '}, {'dword_64a384': '\t- UTC: '}, {'dword_64a450': '\t- Language: '}, {'dword_64a4b4': '\t- Keyboards: '}, {'dword_64a1a4': '\t- Laptop: '}, {'dword_64a3a0': '\t- Running Path: '}, {'dword_64a170': '\t- CPU: '}, {'dword_64a4a0': '\t- Threads: '}, {'dword_64a360': '\t- Cores: '}, {'dword_64a304': '\t- RAM: '}, {'dword_64a154': '\t- Display '}, {'dword_64a5fc': '\t- GPU:'}, {'dword_64a614': ''}, {'dword_64a1d0': 'Installed Apps:'}, {'dword_64a618': 'All Users:'}, {'dword_64a5d4': 'Current User:'}, {'dword_64a5b8': 'Process List:'}, {'dword_64a298': 'system_info.txt'}, {'dword_64a098': 'freebl3.dll'}, {'dword_64a1e8': 'mozglue.dll'}, {'dword_64a378': 'msvcp140.dll'}, {'dword_64a208': 'nss3.dll'}, {'dword_64a590': 'softokn3.dll'}, {'dword_64a120': 'vcruntime140.dll'}, {'dword_64a0c0': '\\Temp\\'}, {'dword_64a238': '.exe'}, {'dword_64a198': 'runas'}, {'dword_64a558': 'open'}, {'dword_64a3cc': '/c start '}, {'dword_64a408': '%DESKTOP%'}, {'dword_64a494': '%APPDATA%'}, {'dword_64a45c': '%LOCALAPPDATA%'}, {'dword_64a2bc': '%USERPROFILE%'}, {'dword_64a2d0': '%DOCUMENTS%'}, {'dword_64a11c': '%PROGRAMFI'}, {'dword_64a53c': '%PROGRAMFILES_86%'}, {'dword_64a334': '%RECENT%'}, {'dword_64a564': '*.lnk'}, {'dword_64a508': 'files'}, {'dword_64a30c': '\\discord\\'}, {'dword_64a284': '\\Local Storage\\leveldb\\CURRENT'}, {'dword_64a2c8': '\\Local Storage\\leveldb'}, {'dword_64a300': '\\Telegram Desktop\\'}, {'dword_64a610': 'key_datas'}, {'dword_64a280': 'D877F783D5D3EF8C*'}, {'dword_64a438': 'map*'}, {'dword_64a374': 'A7FDF864FBC1'}, {'dword_64a484': 'A92DAA6EA6F'}, {'dword_64a1e0': 'F'}, {'dword_64a3b8': 'Telegram'}, {'dword_64a5f8': 'Tox'}, {'dword_64a3b4': '*.tox'}, {'dword_64a4c4': '*.ini'}, {'dword_64a580': 'Password'}, {'dword_64a5f0': 'Software\\'}, {'dword_64a10c': 'Software\\Microsoft\\Office\\13.0\\Outlook\\Profiles\\Outlook\\93'}, {'dword_64a234': 'Software\\Microsoft\\Office\\14.0\\Outlook\\Profiles\\Outlook\\93'}, {'dword_64a370': 'Software\\Microsoft\\Office\\15.0\\Outlook\\Profiles\\Outlook\\9375CFF0413111d3B88A00104B2A6676\\'}, {'dword_64a200': 'Software\\Microsoft\\'}, {'dword_64a574': 'oftware\\Microsoft\\Windows Messaging Subsystem\\Profiles\\9375CFF0413111d3B88A00104B2A6676\\'}, {'dword_64a3c8': '00000001'}, {'dword_64a190': '00000002'}, {'dword_64a110': '00000003'}, {'dword_64a1b8': '0'}, {'dword_64a16c': '\\Outlook\\accounts.txt'}, {'dword_64a108': 'Pidgin'}, {'dword_64a130': '\\.purple\\'}, {'dword_64a288': 'accounts.xml'}, {'dword_64a0d8': 'dQw4w9WgXcQ'}, {'dword_64a404': 'token: '}, {'dword_64a4d8': 'Software\\Valve\\Steam'}, {'dword_64a0d4': 'SteamPath'}, {'dword_64a168': '\\config\\'}, {'dword_64a158': 'ssfn*'}, {'dword_64a448': 'config.vdf'}, {'dword_64a4b0': 'DialogConfig.vdf'}, {'dword_64a164': 'DialogConfigOverlay*.vdf'}, {'dword_64a3fc': 'libraryfolders.vdf'}, {'dword_64a27c': 'loginusers.vdf'}, {'dword_64a3f8': '\\Steam\\'}, {'dword_64a560': 'sqlite3.dll'}, {'dword_64a254': 'browsers'}, {'dword_64a3e8': 'done'}, {'dword_64a524': 'soft'}, {'dword_64a22c': '\\Discord\\tokens.txt'}, {'dword_64a444': '/c timeout /t 5 & del /f /q "'}, {'dword_64a2a8': '" & del "C:\\ProgramData\\*.dll"" & exit'}, {'dword_64a5e4': 'C:\\'}, {'dword_64a480': 'https'}, {'dword_64a118': 'Content-Type: multipart/form-data; boundary=----'}, {'dword_64a49c': 'POST'}, {'dword_64a2b4': 'HTTP/1.1'}, {'dword_64a2f0': 'Content-Disposition: form-data; name="'}, {'dword_64a458': 'hwid'}, {'dword_64a514': 'build'}, {'dword_64a470': 'token'}, {'dword_64a3f4': 'file_name'}, {'dword_64a0cc': 'file'}, {'dword_64a0f0': 'message'}, {'dword_64a2a4': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ123456'}, {'dword_64a278': 'screenshot.jpg'}]} From c0cb5edda11af1eb0d39c35a13ee7e6e48d568e2 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Fri, 25 Oct 2024 08:09:52 +0000 Subject: [PATCH 65/98] style: Automatic code formatting --- modules/processing/parsers/CAPE/KoiLoader.py | 28 +- modules/processing/parsers/CAPE/Lumma.py | 2 + modules/processing/parsers/CAPE/Stealc.py | 14 +- tests_parsers/test_koiloader.py | 2 +- tests_parsers/test_lumma.py | 15 +- tests_parsers/test_stealc.py | 360 ++++++++++++++++++- 6 files changed, 404 insertions(+), 17 deletions(-) diff --git a/modules/processing/parsers/CAPE/KoiLoader.py b/modules/processing/parsers/CAPE/KoiLoader.py index 629b7a9b086..75563816613 100644 --- a/modules/processing/parsers/CAPE/KoiLoader.py +++ b/modules/processing/parsers/CAPE/KoiLoader.py @@ -1,9 +1,10 @@ -import pefile -import yara -import struct import re -from itertools import cycle +import struct from contextlib import suppress +from itertools import cycle + +import pefile +import yara # Hash = b462e3235c7578450b2b56a8aff875a3d99d22f6970a01db3ba98f7ecb6b01a0 @@ -21,6 +22,7 @@ } """ + def yara_scan(raw_data): yara_rules = yara.compile(source=RULE_SOURCE) matches = yara_rules.match(data=raw_data) @@ -41,14 +43,16 @@ def yara_scan(raw_data): return (payload_resource_id, xor_key_resource_id) + def remove_nulls(buffer, buffer_size): """ Modify a buffer removing null bytes """ num_nulls = count_nulls(buffer) - result = skip_nth(buffer, num_nulls+1) + result = skip_nth(buffer, num_nulls + 1) return bytearray(result) + def count_nulls(buffer): """ Count null separation in a buffer @@ -66,24 +70,28 @@ def count_nulls(buffer): return num_nulls + def skip_nth(buffer, n): iterable = list(buffer) yield from (value for index, value in enumerate(iterable) if (index + 1) % n and (index - 1) % n) + def find_c2(decoded_buffer): decoded_buffer = bytearray(skip_nth(decoded_buffer, 2)) url_regex = re.compile(rb"http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+") urls = [url.lower().decode() for url in url_regex.findall(decoded_buffer)] return urls + def xor_data(data, key): return bytes(c ^ k for c, k in zip(data, cycle(key))) + def extract_config(data): config_dict = {"C2": []} - xor_key = b'' - encoded_payload = b'' + xor_key = b"" + encoded_payload = b"" payload_resource_id, xor_key_resource_id = yara_scan(data) @@ -101,11 +109,11 @@ def extract_config(data): if directory.struct.Id == xor_key_resource_id: offset = resource.data.struct.OffsetToData xor_phrase_size = resource.data.struct.Size - xor_key = pe.get_memory_mapped_image()[offset:offset+xor_phrase_size] + xor_key = pe.get_memory_mapped_image()[offset : offset + xor_phrase_size] elif directory.struct.Id == payload_resource_id: offset = resource.data.struct.OffsetToData encoded_payload_size = resource.data.struct.Size - encoded_payload = pe.get_memory_mapped_image()[offset:offset+encoded_payload_size] + encoded_payload = pe.get_memory_mapped_image()[offset : offset + encoded_payload_size] encoded_payload = remove_nulls(encoded_payload, encoded_payload_size) decoded_payload = xor_data(encoded_payload, xor_key) @@ -114,7 +122,9 @@ def extract_config(data): return config_dict + if __name__ == "__main__": import sys + with open(sys.argv[1], "rb") as f: print(extract_config(f.read())) diff --git a/modules/processing/parsers/CAPE/Lumma.py b/modules/processing/parsers/CAPE/Lumma.py index eb7e520e9f4..05a50025994 100644 --- a/modules/processing/parsers/CAPE/Lumma.py +++ b/modules/processing/parsers/CAPE/Lumma.py @@ -95,7 +95,9 @@ def extract_config(data): return config_dict + if __name__ == "__main__": import sys + with open(sys.argv[1], "rb") as f: print(extract_config(f.read())) diff --git a/modules/processing/parsers/CAPE/Stealc.py b/modules/processing/parsers/CAPE/Stealc.py index 4ae06e72961..d1337af2e84 100644 --- a/modules/processing/parsers/CAPE/Stealc.py +++ b/modules/processing/parsers/CAPE/Stealc.py @@ -1,8 +1,8 @@ -import yara -import pefile import struct from contextlib import suppress +import pefile +import yara MAX_STRING_SIZE = 100 @@ -27,6 +27,7 @@ $decode_1 }""" + def yara_scan(raw_data): yara_rules = yara.compile(source=RULE_SOURCE) matches = yara_rules.match(data=raw_data) @@ -36,15 +37,18 @@ def yara_scan(raw_data): for instance in block.instances: yield instance.offset + def xor_data(data, key): decoded = bytearray() for i in range(len(data)): decoded.append(data[i] ^ key[i]) return decoded + def string_from_offset(data, offset): return data[offset : offset + MAX_STRING_SIZE].split(b"\0", 1)[0] + def extract_config(data): config_dict = {"C2": []} @@ -79,14 +83,14 @@ def extract_config(data): key_rva = data[str_decode_offset + 3 : str_decode_offset + 7] encoded_str_rva = data[str_decode_offset + 8 : str_decode_offset + 12] dword_rva = data[str_decode_offset + 21 : str_decode_offset + 25] - + key_offset = pe.get_offset_from_rva(struct.unpack("i", key_rva)[0] - image_base) encoded_str_offset = pe.get_offset_from_rva(struct.unpack("i", encoded_str_rva)[0] - image_base) dword_offset = hex(struct.unpack("i", dword_rva)[0])[2:] key = string_from_offset(data, key_offset) encoded_str = string_from_offset(data, encoded_str_offset) - + decoded_str = xor_data(encoded_str, key).decode() if "http://" in decoded_str or "https://" in decoded_str: config_dict["C2"].append(decoded_str) @@ -95,7 +99,9 @@ def extract_config(data): return config_dict + if __name__ == "__main__": import sys + with open(sys.argv[1], "rb") as f: print(extract_config(f.read())) diff --git a/tests_parsers/test_koiloader.py b/tests_parsers/test_koiloader.py index c06faaa700c..cc7ab8de3d6 100644 --- a/tests_parsers/test_koiloader.py +++ b/tests_parsers/test_koiloader.py @@ -8,4 +8,4 @@ def test_koiloader(): with open("tests/data/malware/b462e3235c7578450b2b56a8aff875a3d99d22f6970a01db3ba98f7ecb6b01a0", "rb") as data: conf = extract_config(data.read()) - assert conf == {'C2': ['http://91.202.233.209/hypermetropia.php', 'https://admiralpub.ca/wp-content/uploads/2017']} + assert conf == {"C2": ["http://91.202.233.209/hypermetropia.php", "https://admiralpub.ca/wp-content/uploads/2017"]} diff --git a/tests_parsers/test_lumma.py b/tests_parsers/test_lumma.py index 4e48b6506a0..c56efdb3aea 100644 --- a/tests_parsers/test_lumma.py +++ b/tests_parsers/test_lumma.py @@ -8,5 +8,16 @@ def test_lumma(): with open("tests/data/malware/5d58bc449693815f6fb0755a364c4cd3a8e2a81188e431d4801f2fb0b1c2de8f", "rb") as data: conf = extract_config(data.read()) - assert conf == {'C2': ['delaylacedmn.site', 'writekdmsnu.site', 'agentyanlark.site', 'bellykmrebk.site', 'underlinemdsj.site', 'commandejorsk.site', 'possiwreeste.site', 'famikyjdiag.site', 'agentyanlark.site']} - + assert conf == { + "C2": [ + "delaylacedmn.site", + "writekdmsnu.site", + "agentyanlark.site", + "bellykmrebk.site", + "underlinemdsj.site", + "commandejorsk.site", + "possiwreeste.site", + "famikyjdiag.site", + "agentyanlark.site", + ] + } diff --git a/tests_parsers/test_stealc.py b/tests_parsers/test_stealc.py index 4f8960e6bcd..e5135297291 100644 --- a/tests_parsers/test_stealc.py +++ b/tests_parsers/test_stealc.py @@ -8,4 +8,362 @@ def test_stealc(): with open("tests/data/malware/619751f5ed0a9716318092998f2e4561f27f7f429fe6103406ecf16e33837470", "rb") as data: conf = extract_config(data.read()) - assert conf == {'C2': ['http://95.217.125.57'], 'Strings': [{'dword_64a330': 'IN'}, {'dword_64a5ec': '09'}, {'dword_64a31c': '11'}, {'dword_64a570': '20'}, {'dword_64a56c': '24'}, {'dword_64a3f0': 'GetProcAddress'}, {'dword_64a204': 'LoadLibraryA'}, {'dword_64a5c8': 'lstrcatA'}, {'dword_64a644': 'OpenEventA'}, {'dword_64a264': 'CreateEventA'}, {'dword_64a250': 'CloseHandle'}, {'dword_64a2f8': 'Sleep'}, {'dword_64a4d4': 'GetUserDefaultLangID'}, {'dword_64a33c': 'VirtualAllocExNuma'}, {'dword_64a5a0': ''}, {'dword_64a548': ''}, {'dword_64a3bc': 'VirtualAlloc'}, {'dword_64a2e8': 'HeapAlloc'}, {'dword_64a60c': 'GetComputerNameA'}, {'dword_64a0b0': 'lstrcpyA'}, {'dword_64a598': 'Get'}, {'dword_64a224': 'GetCurrentProcess'}, {'dword_64a418': 'lstrlenA'}, {'dword_64a634': 'ExitProcess'}, {'dword_64a0bc': 'GlobalMemoryStatusEx'}, {'dword_64a12c': 'GetSystemTime'}, {'dword_64a2b0': 'SystemTimeToFileTime'}, {'dword_64a550': 'advapi32.dll'}, {'dword_64a17c': 'gdi32.dll'}, {'dword_64a104': 'user32.dll'}, {'dword_64a1dc': 'crypt32.dll'}, {'dword_64a328': 'ntdll.dll'}, {'dword_64a4ac': 'GetUserNameA'}, {'dword_64a424': 'CreateDCA'}, {'dword_64a1cc': 'GetDeviceCaps'}, {'dword_64a394': 'ReleaseDC'}, {'dword_64a128': 'CryptStringToBinaryA'}, {'dword_64a414': 'sscanf'}, {'dword_64a150': ''}, {'dword_64a540': 'HAL9T'}, {'dword_64a61c': 'JohnDoe'}, {'dword_64a0d0': 'DISPLAY'}, {'dword_64a400': '%hu/%hu/%hu'}, {'dword_64a47c': 'srttybh'}, {'dword_64a440': '!|'}, {'dword_64a1fc': '/2f571d994666c8cb.php'}, {'dword_64a32c': '/557b2ce3c387a13c/'}, {'dword_64a230': '5385386367'}, {'dword_64a58c': 'GetEnvironmentVariableA'}, {'dword_64a1c4': 'GetFileAttributesA'}, {'dword_64a178': 'GlobalLock'}, {'dword_64a1ac': 'HeapFree'}, {'dword_64a534': 'GetFileSize'}, {'dword_64a1d8': 'GlobalSize'}, {'dword_64a390': 'CreateToolhelp32Snapshot'}, {'dword_64a14c': 'IsWow64Process'}, {'dword_64a1c8': 'Process32Next'}, {'dword_64a210': 'GetLocalTime'}, {'dword_64a324': 'FreeLibrary'}, {'dword_64a608': 'GetTimeZoneInformation'}, {'dword_64a2d8': 'GetSystemPowerStatus'}, {'dword_64a38c': 'GetVolumeInformationA'}, {'dword_64a538': 'GetWindows'}, {'dword_64a194': 'Process32First'}, {'dword_64a3e4': 'GetLocaleInfoA'}, {'dword_64a4fc': 'GetUserDefaultLocaleName'}, {'dword_64a4f8': 'GetModuleFileNameA'}, {'dword_64a0b8': 'DeleteFileA'}, {'dword_64a4dc': 'FindNextFileA'}, {'dword_64a13c': 'LocalFree'}, {'dword_64a24c': 'FindClose'}, {'dword_64a51c': 'SetEnvironmentVariableA'}, {'dword_64a18c': 'LocalAlloc'}, {'dword_64a488': 'GetFileSizeEx'}, {'dword_64a628': 'ReadFile'}, {'dword_64a44c': 'SetFilePointer'}, {'dword_64a4e0': 'WriteFile'}, {'dword_64a54c': 'CreateFileA'}, {'dword_64a468': 'FindFirstFileA'}, {'dword_64a35c': 'CopyFileA'}, {'dword_64a3a8': 'VirtualProtect'}, {'dword_64a0a0': 'GetLogicalProcessorInformationEx'}, {'dword_64a420': 'GetLastError'}, {'dword_64a368': 'lstrcpynA'}, {'dword_64a568': 'MultiByteToWideChar'}, {'dword_64a294': 'GlobalFree'}, {'dword_64a39c': 'WideCharToMultiByte'}, {'dword_64a3d8': 'GlobalAlloc'}, {'dword_64a410': 'OpenProcess'}, {'dword_64a0e0': 'TerminateProcess'}, {'dword_64a1ec': 'GetCurrentProcessId'}, {'dword_64a34c': 'gdiplus.dll'}, {'dword_64a588': 'ole32.dll'}, {'dword_64a2e4': 'bcrypt.dll'}, {'dword_64a2b8': 'wininet.dll'}, {'dword_64a4e4': 'shlwapi.dll'}, {'dword_64a20c': 'shell32.dll'}, {'dword_64a220': 'psapi.dll'}, {'dword_64a4a8': 'rstrtmgr.dll'}, {'dword_64a260': 'CreateCompatibleBitmap'}, {'dword_64a518': 'SelectObject'}, {'dword_64a2a0': 'BitBlt'}, {'dword_64a4f4': 'DeleteObject'}, {'dword_64a604': 'CreateCompatibleDC'}, {'dword_64a380': 'GdipGetImageEncodersSize'}, {'dword_64a274': 'GdipGetImageEncoders'}, {'dword_64a2d4': ''}, {'dword_64a19c': 'GdiplusStartup'}, {'dword_64a43c': 'GdiplusShutdown'}, {'dword_64a62c': 'GdipSaveImageToStream'}, {'dword_64a344': 'GdipDisposeImage'}, {'dword_64a624': 'GdipFree'}, {'dword_64a388': 'Get'}, {'dword_64a1b4': 'CreateStreamOnHGlobal'}, {'dword_64a2e0': 'CoUninitialize'}, {'dword_64a5e8': 'CoInitialize'}, {'dword_64a42c': 'CoCreateInstance'}, {'dword_64a464': 'BCryptGenerateSymmetricKey'}, {'dword_64a160': 'BCryptCloseAlgorithmProvider'}, {'dword_64a114': ''}, {'dword_64a318': 'BCryptSetProperty'}, {'dword_64a5b0': 'BCryptDestroyKey'}, {'dword_64a454': 'BCryptOpenAlgorithmProvider'}, {'dword_64a340': 'GetWindowRect'}, {'dword_64a510': 'GetDesktopWindow'}, {'dword_64a530': 'GetDC'}, {'dword_64a348': 'CloseWindow'}, {'dword_64a2dc': 'wsprintfA'}, {'dword_64a460': 'EnumDisplayDevicesA'}, {'dword_64a504': 'GetKeyboardLayoutList'}, {'dword_64a52c': 'Char'}, {'dword_64a4bc': 'wsprintfW'}, {'dword_64a478': 'RegQueryValueExA'}, {'dword_64a218': 'RegEnumKeyExA'}, {'dword_64a57c': 'RegOpenKeyExA'}, {'dword_64a1c0': 'RegCloseKey'}, {'dword_64a640': 'RegEnumValueA'}, {'dword_64a188': 'CryptBinaryToStringA'}, {'dword_64a308': 'CryptUnprotectData'}, {'dword_64a25c': 'SHGetFolderPathA'}, {'dword_64a338': 'ShellExecuteExA'}, {'dword_64a258': 'InternetOpenUrlA'}, {'dword_64a244': 'InternetConnectA'}, {'dword_64a23c': 'InternetCloseHandle'}, {'dword_64a40c': 'InternetOpenA'}, {'dword_64a48c': 'HttpSendRequestA'}, {'dword_64a46c': 'HttpOpenRequestA'}, {'dword_64a490': 'InternetReadFile'}, {'dword_64a5a4': 'InternetCrackUrlA'}, {'dword_64a1bc': 'StrCmpCA'}, {'dword_64a55c': 'StrStrA'}, {'dword_64a240': 'StrCmpCW'}, {'dword_64a144': 'PathMatchSpecA'}, {'dword_64a358': 'GetModuleFileNameExA'}, {'dword_64a5ac': 'RmStartSession'}, {'dword_64a5c4': 'RmRegisterResources'}, {'dword_64a100': ''}, {'dword_64a0f8': 'RmEndSession'}, {'dword_64a430': 'sqlite3_open'}, {'dword_64a148': 'sqlite3_prepare_v2'}, {'dword_64a3c4': 'sqlite3_step'}, {'dword_64a3ac': 'sqlite3_column_text'}, {'dword_64a3d4': 'sqlite3_finalize'}, {'dword_64a554': 'sqlite3_close'}, {'dword_64a498': 'sqlite3_column_bytes'}, {'dword_64a59c': 'sqlite3_column_blob'}, {'dword_64a0ec': 'encrypted_key'}, {'dword_64a0b4': 'PATH'}, {'dword_64a578': 'C:\\ProgramData\\nss3.dll'}, {'dword_64a290': 'NSS_Init'}, {'dword_64a520': 'NSS_Shutdown'}, {'dword_64a1e4': 'PK11_GetInternalKeySlot'}, {'dword_64a184': 'PK11_FreeSlot'}, {'dword_64a620': 'PK11_Authenticate'}, {'dword_64a310': 'PK11SDR_Decrypt'}, {'dword_64a4a4': 'C:\\ProgramData\\'}, {'dword_64a134': 'SELECT origin_url, username_value, password_value '}, {'dword_64a37c': 'browser: '}, {'dword_64a124': 'profile: '}, {'dword_64a15c': 'url: '}, {'dword_64a0dc': 'login: '}, {'dword_64a29c': 'password: '}, {'dword_64a350': 'Opera'}, {'dword_64a36c': 'OperaGX'}, {'dword_64a528': 'Network'}, {'dword_64a270': 'cookies'}, {'dword_64a2fc': '.txt'}, {'dword_64a2f4': 'SELECT HOST_KEY, is_httponly, path, is_secure, (expires_utc/10'}, {'dword_64a3ec': 'T'}, {'dword_64a0e4': 'FALSE'}, {'dword_64a4b8': 'autofill'}, {'dword_64a594': 'SELECT name, value FROM autofill'}, {'dword_64a3e0': 'history'}, {'dword_64a3c0': 'SELECT url FROM urls LIMIT 1000'}, {'dword_64a3a4': 'cc'}, {'dword_64a1f8': 'SELECT name_on_card, expiration_month, expiration_year, card_number_encrypted FROM credit_cards'}, {'dword_64a26c': 'name: '}, {'dword_64a2cc': 'month: '}, {'dword_64a28c': 'year: '}, {'dword_64a214': 'card: '}, {'dword_64a0c8': 'Cookies'}, {'dword_64a474': 'Login Data'}, {'dword_64a4c8': 'Web Data'}, {'dword_64a320': 'History'}, {'dword_64a63c': 'logins.json'}, {'dword_64a1b0': 'formSubmitUR'}, {'dword_64a364': 'usernameField'}, {'dword_64a4d0': 'encryptedUsername'}, {'dword_64a4cc': 'encryptedPassword'}, {'dword_64a5a8': 'guid'}, {'dword_64a1f4': 'SELECT host, isHttpOnly, path, isSecure, expiry, name, value FROM moz_cookies'}, {'dword_64a0f4': 'SELECT fieldname, value FROM moz_formhistory'}, {'dword_64a268': 'S'}, {'dword_64a428': 'cookies.sqlite'}, {'dword_64a0a8': 'formhistory.sqlite'}, {'dword_64a138': 'places.sqlite'}, {'dword_64a500': 'plugins'}, {'dword_64a4e8': 'Local Extension Settings'}, {'dword_64a3dc': 'Sync Extension Settings'}, {'dword_64a1a8': 'IndexedDB'}, {'dword_64a4f0': 'Opera Stable'}, {'dword_64a140': 'Opera GX Stable'}, {'dword_64a600': 'CURRENT'}, {'dword_64a0ac': 'chrome-extension_'}, {'dword_64a0a4': '_0.indexeddb.leveldb'}, {'dword_64a5d8': 'Local State'}, {'dword_64a21c': 'profiles.ini'}, {'dword_64a2ac': 'chrome'}, {'dword_64a41c': 'opera'}, {'dword_64a584': 'firefox'}, {'dword_64a1f0': 'wallets'}, {'dword_64a0c4': '%08l'}, {'dword_64a398': 'SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion'}, {'dword_64a434': 'ProductName'}, {'dword_64a2c0': 'x32'}, {'dword_64a174': 'x64'}, {'dword_64a630': '%d/%d/%d %d:%d:%d'}, {'dword_64a1d4': 'HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0'}, {'dword_64a4ec': 'ProcessorName'}, {'dword_64a544': 'SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall'}, {'dword_64a5c0': 'DisplayName'}, {'dword_64a3d0': 'DisplayVersion'}, {'dword_64a5f4': 'Network Info:'}, {'dword_64a228': '\t- IP: IP?'}, {'dword_64a0fc': '\t- Country: ISO?'}, {'dword_64a180': 'System Summary:'}, {'dword_64a09c': '\t- HWID: '}, {'dword_64a354': '\t- OS: '}, {'dword_64a638': '\t- Architecture: '}, {'dword_64a1a0': '\t- UserName: '}, {'dword_64a314': '\t- Computer Name: '}, {'dword_64a248': '\t- Local Time: '}, {'dword_64a384': '\t- UTC: '}, {'dword_64a450': '\t- Language: '}, {'dword_64a4b4': '\t- Keyboards: '}, {'dword_64a1a4': '\t- Laptop: '}, {'dword_64a3a0': '\t- Running Path: '}, {'dword_64a170': '\t- CPU: '}, {'dword_64a4a0': '\t- Threads: '}, {'dword_64a360': '\t- Cores: '}, {'dword_64a304': '\t- RAM: '}, {'dword_64a154': '\t- Display '}, {'dword_64a5fc': '\t- GPU:'}, {'dword_64a614': ''}, {'dword_64a1d0': 'Installed Apps:'}, {'dword_64a618': 'All Users:'}, {'dword_64a5d4': 'Current User:'}, {'dword_64a5b8': 'Process List:'}, {'dword_64a298': 'system_info.txt'}, {'dword_64a098': 'freebl3.dll'}, {'dword_64a1e8': 'mozglue.dll'}, {'dword_64a378': 'msvcp140.dll'}, {'dword_64a208': 'nss3.dll'}, {'dword_64a590': 'softokn3.dll'}, {'dword_64a120': 'vcruntime140.dll'}, {'dword_64a0c0': '\\Temp\\'}, {'dword_64a238': '.exe'}, {'dword_64a198': 'runas'}, {'dword_64a558': 'open'}, {'dword_64a3cc': '/c start '}, {'dword_64a408': '%DESKTOP%'}, {'dword_64a494': '%APPDATA%'}, {'dword_64a45c': '%LOCALAPPDATA%'}, {'dword_64a2bc': '%USERPROFILE%'}, {'dword_64a2d0': '%DOCUMENTS%'}, {'dword_64a11c': '%PROGRAMFI'}, {'dword_64a53c': '%PROGRAMFILES_86%'}, {'dword_64a334': '%RECENT%'}, {'dword_64a564': '*.lnk'}, {'dword_64a508': 'files'}, {'dword_64a30c': '\\discord\\'}, {'dword_64a284': '\\Local Storage\\leveldb\\CURRENT'}, {'dword_64a2c8': '\\Local Storage\\leveldb'}, {'dword_64a300': '\\Telegram Desktop\\'}, {'dword_64a610': 'key_datas'}, {'dword_64a280': 'D877F783D5D3EF8C*'}, {'dword_64a438': 'map*'}, {'dword_64a374': 'A7FDF864FBC1'}, {'dword_64a484': 'A92DAA6EA6F'}, {'dword_64a1e0': 'F'}, {'dword_64a3b8': 'Telegram'}, {'dword_64a5f8': 'Tox'}, {'dword_64a3b4': '*.tox'}, {'dword_64a4c4': '*.ini'}, {'dword_64a580': 'Password'}, {'dword_64a5f0': 'Software\\'}, {'dword_64a10c': 'Software\\Microsoft\\Office\\13.0\\Outlook\\Profiles\\Outlook\\93'}, {'dword_64a234': 'Software\\Microsoft\\Office\\14.0\\Outlook\\Profiles\\Outlook\\93'}, {'dword_64a370': 'Software\\Microsoft\\Office\\15.0\\Outlook\\Profiles\\Outlook\\9375CFF0413111d3B88A00104B2A6676\\'}, {'dword_64a200': 'Software\\Microsoft\\'}, {'dword_64a574': 'oftware\\Microsoft\\Windows Messaging Subsystem\\Profiles\\9375CFF0413111d3B88A00104B2A6676\\'}, {'dword_64a3c8': '00000001'}, {'dword_64a190': '00000002'}, {'dword_64a110': '00000003'}, {'dword_64a1b8': '0'}, {'dword_64a16c': '\\Outlook\\accounts.txt'}, {'dword_64a108': 'Pidgin'}, {'dword_64a130': '\\.purple\\'}, {'dword_64a288': 'accounts.xml'}, {'dword_64a0d8': 'dQw4w9WgXcQ'}, {'dword_64a404': 'token: '}, {'dword_64a4d8': 'Software\\Valve\\Steam'}, {'dword_64a0d4': 'SteamPath'}, {'dword_64a168': '\\config\\'}, {'dword_64a158': 'ssfn*'}, {'dword_64a448': 'config.vdf'}, {'dword_64a4b0': 'DialogConfig.vdf'}, {'dword_64a164': 'DialogConfigOverlay*.vdf'}, {'dword_64a3fc': 'libraryfolders.vdf'}, {'dword_64a27c': 'loginusers.vdf'}, {'dword_64a3f8': '\\Steam\\'}, {'dword_64a560': 'sqlite3.dll'}, {'dword_64a254': 'browsers'}, {'dword_64a3e8': 'done'}, {'dword_64a524': 'soft'}, {'dword_64a22c': '\\Discord\\tokens.txt'}, {'dword_64a444': '/c timeout /t 5 & del /f /q "'}, {'dword_64a2a8': '" & del "C:\\ProgramData\\*.dll"" & exit'}, {'dword_64a5e4': 'C:\\'}, {'dword_64a480': 'https'}, {'dword_64a118': 'Content-Type: multipart/form-data; boundary=----'}, {'dword_64a49c': 'POST'}, {'dword_64a2b4': 'HTTP/1.1'}, {'dword_64a2f0': 'Content-Disposition: form-data; name="'}, {'dword_64a458': 'hwid'}, {'dword_64a514': 'build'}, {'dword_64a470': 'token'}, {'dword_64a3f4': 'file_name'}, {'dword_64a0cc': 'file'}, {'dword_64a0f0': 'message'}, {'dword_64a2a4': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ123456'}, {'dword_64a278': 'screenshot.jpg'}]} + assert conf == { + "C2": ["http://95.217.125.57"], + "Strings": [ + {"dword_64a330": "IN"}, + {"dword_64a5ec": "09"}, + {"dword_64a31c": "11"}, + {"dword_64a570": "20"}, + {"dword_64a56c": "24"}, + {"dword_64a3f0": "GetProcAddress"}, + {"dword_64a204": "LoadLibraryA"}, + {"dword_64a5c8": "lstrcatA"}, + {"dword_64a644": "OpenEventA"}, + {"dword_64a264": "CreateEventA"}, + {"dword_64a250": "CloseHandle"}, + {"dword_64a2f8": "Sleep"}, + {"dword_64a4d4": "GetUserDefaultLangID"}, + {"dword_64a33c": "VirtualAllocExNuma"}, + {"dword_64a5a0": ""}, + {"dword_64a548": ""}, + {"dword_64a3bc": "VirtualAlloc"}, + {"dword_64a2e8": "HeapAlloc"}, + {"dword_64a60c": "GetComputerNameA"}, + {"dword_64a0b0": "lstrcpyA"}, + {"dword_64a598": "Get"}, + {"dword_64a224": "GetCurrentProcess"}, + {"dword_64a418": "lstrlenA"}, + {"dword_64a634": "ExitProcess"}, + {"dword_64a0bc": "GlobalMemoryStatusEx"}, + {"dword_64a12c": "GetSystemTime"}, + {"dword_64a2b0": "SystemTimeToFileTime"}, + {"dword_64a550": "advapi32.dll"}, + {"dword_64a17c": "gdi32.dll"}, + {"dword_64a104": "user32.dll"}, + {"dword_64a1dc": "crypt32.dll"}, + {"dword_64a328": "ntdll.dll"}, + {"dword_64a4ac": "GetUserNameA"}, + {"dword_64a424": "CreateDCA"}, + {"dword_64a1cc": "GetDeviceCaps"}, + {"dword_64a394": "ReleaseDC"}, + {"dword_64a128": "CryptStringToBinaryA"}, + {"dword_64a414": "sscanf"}, + {"dword_64a150": ""}, + {"dword_64a540": "HAL9T"}, + {"dword_64a61c": "JohnDoe"}, + {"dword_64a0d0": "DISPLAY"}, + {"dword_64a400": "%hu/%hu/%hu"}, + {"dword_64a47c": "srttybh"}, + {"dword_64a440": "!|"}, + {"dword_64a1fc": "/2f571d994666c8cb.php"}, + {"dword_64a32c": "/557b2ce3c387a13c/"}, + {"dword_64a230": "5385386367"}, + {"dword_64a58c": "GetEnvironmentVariableA"}, + {"dword_64a1c4": "GetFileAttributesA"}, + {"dword_64a178": "GlobalLock"}, + {"dword_64a1ac": "HeapFree"}, + {"dword_64a534": "GetFileSize"}, + {"dword_64a1d8": "GlobalSize"}, + {"dword_64a390": "CreateToolhelp32Snapshot"}, + {"dword_64a14c": "IsWow64Process"}, + {"dword_64a1c8": "Process32Next"}, + {"dword_64a210": "GetLocalTime"}, + {"dword_64a324": "FreeLibrary"}, + {"dword_64a608": "GetTimeZoneInformation"}, + {"dword_64a2d8": "GetSystemPowerStatus"}, + {"dword_64a38c": "GetVolumeInformationA"}, + {"dword_64a538": "GetWindows"}, + {"dword_64a194": "Process32First"}, + {"dword_64a3e4": "GetLocaleInfoA"}, + {"dword_64a4fc": "GetUserDefaultLocaleName"}, + {"dword_64a4f8": "GetModuleFileNameA"}, + {"dword_64a0b8": "DeleteFileA"}, + {"dword_64a4dc": "FindNextFileA"}, + {"dword_64a13c": "LocalFree"}, + {"dword_64a24c": "FindClose"}, + {"dword_64a51c": "SetEnvironmentVariableA"}, + {"dword_64a18c": "LocalAlloc"}, + {"dword_64a488": "GetFileSizeEx"}, + {"dword_64a628": "ReadFile"}, + {"dword_64a44c": "SetFilePointer"}, + {"dword_64a4e0": "WriteFile"}, + {"dword_64a54c": "CreateFileA"}, + {"dword_64a468": "FindFirstFileA"}, + {"dword_64a35c": "CopyFileA"}, + {"dword_64a3a8": "VirtualProtect"}, + {"dword_64a0a0": "GetLogicalProcessorInformationEx"}, + {"dword_64a420": "GetLastError"}, + {"dword_64a368": "lstrcpynA"}, + {"dword_64a568": "MultiByteToWideChar"}, + {"dword_64a294": "GlobalFree"}, + {"dword_64a39c": "WideCharToMultiByte"}, + {"dword_64a3d8": "GlobalAlloc"}, + {"dword_64a410": "OpenProcess"}, + {"dword_64a0e0": "TerminateProcess"}, + {"dword_64a1ec": "GetCurrentProcessId"}, + {"dword_64a34c": "gdiplus.dll"}, + {"dword_64a588": "ole32.dll"}, + {"dword_64a2e4": "bcrypt.dll"}, + {"dword_64a2b8": "wininet.dll"}, + {"dword_64a4e4": "shlwapi.dll"}, + {"dword_64a20c": "shell32.dll"}, + {"dword_64a220": "psapi.dll"}, + {"dword_64a4a8": "rstrtmgr.dll"}, + {"dword_64a260": "CreateCompatibleBitmap"}, + {"dword_64a518": "SelectObject"}, + {"dword_64a2a0": "BitBlt"}, + {"dword_64a4f4": "DeleteObject"}, + {"dword_64a604": "CreateCompatibleDC"}, + {"dword_64a380": "GdipGetImageEncodersSize"}, + {"dword_64a274": "GdipGetImageEncoders"}, + {"dword_64a2d4": ""}, + {"dword_64a19c": "GdiplusStartup"}, + {"dword_64a43c": "GdiplusShutdown"}, + {"dword_64a62c": "GdipSaveImageToStream"}, + {"dword_64a344": "GdipDisposeImage"}, + {"dword_64a624": "GdipFree"}, + {"dword_64a388": "Get"}, + {"dword_64a1b4": "CreateStreamOnHGlobal"}, + {"dword_64a2e0": "CoUninitialize"}, + {"dword_64a5e8": "CoInitialize"}, + {"dword_64a42c": "CoCreateInstance"}, + {"dword_64a464": "BCryptGenerateSymmetricKey"}, + {"dword_64a160": "BCryptCloseAlgorithmProvider"}, + {"dword_64a114": ""}, + {"dword_64a318": "BCryptSetProperty"}, + {"dword_64a5b0": "BCryptDestroyKey"}, + {"dword_64a454": "BCryptOpenAlgorithmProvider"}, + {"dword_64a340": "GetWindowRect"}, + {"dword_64a510": "GetDesktopWindow"}, + {"dword_64a530": "GetDC"}, + {"dword_64a348": "CloseWindow"}, + {"dword_64a2dc": "wsprintfA"}, + {"dword_64a460": "EnumDisplayDevicesA"}, + {"dword_64a504": "GetKeyboardLayoutList"}, + {"dword_64a52c": "Char"}, + {"dword_64a4bc": "wsprintfW"}, + {"dword_64a478": "RegQueryValueExA"}, + {"dword_64a218": "RegEnumKeyExA"}, + {"dword_64a57c": "RegOpenKeyExA"}, + {"dword_64a1c0": "RegCloseKey"}, + {"dword_64a640": "RegEnumValueA"}, + {"dword_64a188": "CryptBinaryToStringA"}, + {"dword_64a308": "CryptUnprotectData"}, + {"dword_64a25c": "SHGetFolderPathA"}, + {"dword_64a338": "ShellExecuteExA"}, + {"dword_64a258": "InternetOpenUrlA"}, + {"dword_64a244": "InternetConnectA"}, + {"dword_64a23c": "InternetCloseHandle"}, + {"dword_64a40c": "InternetOpenA"}, + {"dword_64a48c": "HttpSendRequestA"}, + {"dword_64a46c": "HttpOpenRequestA"}, + {"dword_64a490": "InternetReadFile"}, + {"dword_64a5a4": "InternetCrackUrlA"}, + {"dword_64a1bc": "StrCmpCA"}, + {"dword_64a55c": "StrStrA"}, + {"dword_64a240": "StrCmpCW"}, + {"dword_64a144": "PathMatchSpecA"}, + {"dword_64a358": "GetModuleFileNameExA"}, + {"dword_64a5ac": "RmStartSession"}, + {"dword_64a5c4": "RmRegisterResources"}, + {"dword_64a100": ""}, + {"dword_64a0f8": "RmEndSession"}, + {"dword_64a430": "sqlite3_open"}, + {"dword_64a148": "sqlite3_prepare_v2"}, + {"dword_64a3c4": "sqlite3_step"}, + {"dword_64a3ac": "sqlite3_column_text"}, + {"dword_64a3d4": "sqlite3_finalize"}, + {"dword_64a554": "sqlite3_close"}, + {"dword_64a498": "sqlite3_column_bytes"}, + {"dword_64a59c": "sqlite3_column_blob"}, + {"dword_64a0ec": "encrypted_key"}, + {"dword_64a0b4": "PATH"}, + {"dword_64a578": "C:\\ProgramData\\nss3.dll"}, + {"dword_64a290": "NSS_Init"}, + {"dword_64a520": "NSS_Shutdown"}, + {"dword_64a1e4": "PK11_GetInternalKeySlot"}, + {"dword_64a184": "PK11_FreeSlot"}, + {"dword_64a620": "PK11_Authenticate"}, + {"dword_64a310": "PK11SDR_Decrypt"}, + {"dword_64a4a4": "C:\\ProgramData\\"}, + {"dword_64a134": "SELECT origin_url, username_value, password_value "}, + {"dword_64a37c": "browser: "}, + {"dword_64a124": "profile: "}, + {"dword_64a15c": "url: "}, + {"dword_64a0dc": "login: "}, + {"dword_64a29c": "password: "}, + {"dword_64a350": "Opera"}, + {"dword_64a36c": "OperaGX"}, + {"dword_64a528": "Network"}, + {"dword_64a270": "cookies"}, + {"dword_64a2fc": ".txt"}, + {"dword_64a2f4": "SELECT HOST_KEY, is_httponly, path, is_secure, (expires_utc/10"}, + {"dword_64a3ec": "T"}, + {"dword_64a0e4": "FALSE"}, + {"dword_64a4b8": "autofill"}, + {"dword_64a594": "SELECT name, value FROM autofill"}, + {"dword_64a3e0": "history"}, + {"dword_64a3c0": "SELECT url FROM urls LIMIT 1000"}, + {"dword_64a3a4": "cc"}, + {"dword_64a1f8": "SELECT name_on_card, expiration_month, expiration_year, card_number_encrypted FROM credit_cards"}, + {"dword_64a26c": "name: "}, + {"dword_64a2cc": "month: "}, + {"dword_64a28c": "year: "}, + {"dword_64a214": "card: "}, + {"dword_64a0c8": "Cookies"}, + {"dword_64a474": "Login Data"}, + {"dword_64a4c8": "Web Data"}, + {"dword_64a320": "History"}, + {"dword_64a63c": "logins.json"}, + {"dword_64a1b0": "formSubmitUR"}, + {"dword_64a364": "usernameField"}, + {"dword_64a4d0": "encryptedUsername"}, + {"dword_64a4cc": "encryptedPassword"}, + {"dword_64a5a8": "guid"}, + {"dword_64a1f4": "SELECT host, isHttpOnly, path, isSecure, expiry, name, value FROM moz_cookies"}, + {"dword_64a0f4": "SELECT fieldname, value FROM moz_formhistory"}, + {"dword_64a268": "S"}, + {"dword_64a428": "cookies.sqlite"}, + {"dword_64a0a8": "formhistory.sqlite"}, + {"dword_64a138": "places.sqlite"}, + {"dword_64a500": "plugins"}, + {"dword_64a4e8": "Local Extension Settings"}, + {"dword_64a3dc": "Sync Extension Settings"}, + {"dword_64a1a8": "IndexedDB"}, + {"dword_64a4f0": "Opera Stable"}, + {"dword_64a140": "Opera GX Stable"}, + {"dword_64a600": "CURRENT"}, + {"dword_64a0ac": "chrome-extension_"}, + {"dword_64a0a4": "_0.indexeddb.leveldb"}, + {"dword_64a5d8": "Local State"}, + {"dword_64a21c": "profiles.ini"}, + {"dword_64a2ac": "chrome"}, + {"dword_64a41c": "opera"}, + {"dword_64a584": "firefox"}, + {"dword_64a1f0": "wallets"}, + {"dword_64a0c4": "%08l"}, + {"dword_64a398": "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion"}, + {"dword_64a434": "ProductName"}, + {"dword_64a2c0": "x32"}, + {"dword_64a174": "x64"}, + {"dword_64a630": "%d/%d/%d %d:%d:%d"}, + {"dword_64a1d4": "HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0"}, + {"dword_64a4ec": "ProcessorName"}, + {"dword_64a544": "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"}, + {"dword_64a5c0": "DisplayName"}, + {"dword_64a3d0": "DisplayVersion"}, + {"dword_64a5f4": "Network Info:"}, + {"dword_64a228": "\t- IP: IP?"}, + {"dword_64a0fc": "\t- Country: ISO?"}, + {"dword_64a180": "System Summary:"}, + {"dword_64a09c": "\t- HWID: "}, + {"dword_64a354": "\t- OS: "}, + {"dword_64a638": "\t- Architecture: "}, + {"dword_64a1a0": "\t- UserName: "}, + {"dword_64a314": "\t- Computer Name: "}, + {"dword_64a248": "\t- Local Time: "}, + {"dword_64a384": "\t- UTC: "}, + {"dword_64a450": "\t- Language: "}, + {"dword_64a4b4": "\t- Keyboards: "}, + {"dword_64a1a4": "\t- Laptop: "}, + {"dword_64a3a0": "\t- Running Path: "}, + {"dword_64a170": "\t- CPU: "}, + {"dword_64a4a0": "\t- Threads: "}, + {"dword_64a360": "\t- Cores: "}, + {"dword_64a304": "\t- RAM: "}, + {"dword_64a154": "\t- Display "}, + {"dword_64a5fc": "\t- GPU:"}, + {"dword_64a614": ""}, + {"dword_64a1d0": "Installed Apps:"}, + {"dword_64a618": "All Users:"}, + {"dword_64a5d4": "Current User:"}, + {"dword_64a5b8": "Process List:"}, + {"dword_64a298": "system_info.txt"}, + {"dword_64a098": "freebl3.dll"}, + {"dword_64a1e8": "mozglue.dll"}, + {"dword_64a378": "msvcp140.dll"}, + {"dword_64a208": "nss3.dll"}, + {"dword_64a590": "softokn3.dll"}, + {"dword_64a120": "vcruntime140.dll"}, + {"dword_64a0c0": "\\Temp\\"}, + {"dword_64a238": ".exe"}, + {"dword_64a198": "runas"}, + {"dword_64a558": "open"}, + {"dword_64a3cc": "/c start "}, + {"dword_64a408": "%DESKTOP%"}, + {"dword_64a494": "%APPDATA%"}, + {"dword_64a45c": "%LOCALAPPDATA%"}, + {"dword_64a2bc": "%USERPROFILE%"}, + {"dword_64a2d0": "%DOCUMENTS%"}, + {"dword_64a11c": "%PROGRAMFI"}, + {"dword_64a53c": "%PROGRAMFILES_86%"}, + {"dword_64a334": "%RECENT%"}, + {"dword_64a564": "*.lnk"}, + {"dword_64a508": "files"}, + {"dword_64a30c": "\\discord\\"}, + {"dword_64a284": "\\Local Storage\\leveldb\\CURRENT"}, + {"dword_64a2c8": "\\Local Storage\\leveldb"}, + {"dword_64a300": "\\Telegram Desktop\\"}, + {"dword_64a610": "key_datas"}, + {"dword_64a280": "D877F783D5D3EF8C*"}, + {"dword_64a438": "map*"}, + {"dword_64a374": "A7FDF864FBC1"}, + {"dword_64a484": "A92DAA6EA6F"}, + {"dword_64a1e0": "F"}, + {"dword_64a3b8": "Telegram"}, + {"dword_64a5f8": "Tox"}, + {"dword_64a3b4": "*.tox"}, + {"dword_64a4c4": "*.ini"}, + {"dword_64a580": "Password"}, + {"dword_64a5f0": "Software\\"}, + {"dword_64a10c": "Software\\Microsoft\\Office\\13.0\\Outlook\\Profiles\\Outlook\\93"}, + {"dword_64a234": "Software\\Microsoft\\Office\\14.0\\Outlook\\Profiles\\Outlook\\93"}, + { + "dword_64a370": "Software\\Microsoft\\Office\\15.0\\Outlook\\Profiles\\Outlook\\9375CFF0413111d3B88A00104B2A6676\\" + }, + {"dword_64a200": "Software\\Microsoft\\"}, + {"dword_64a574": "oftware\\Microsoft\\Windows Messaging Subsystem\\Profiles\\9375CFF0413111d3B88A00104B2A6676\\"}, + {"dword_64a3c8": "00000001"}, + {"dword_64a190": "00000002"}, + {"dword_64a110": "00000003"}, + {"dword_64a1b8": "0"}, + {"dword_64a16c": "\\Outlook\\accounts.txt"}, + {"dword_64a108": "Pidgin"}, + {"dword_64a130": "\\.purple\\"}, + {"dword_64a288": "accounts.xml"}, + {"dword_64a0d8": "dQw4w9WgXcQ"}, + {"dword_64a404": "token: "}, + {"dword_64a4d8": "Software\\Valve\\Steam"}, + {"dword_64a0d4": "SteamPath"}, + {"dword_64a168": "\\config\\"}, + {"dword_64a158": "ssfn*"}, + {"dword_64a448": "config.vdf"}, + {"dword_64a4b0": "DialogConfig.vdf"}, + {"dword_64a164": "DialogConfigOverlay*.vdf"}, + {"dword_64a3fc": "libraryfolders.vdf"}, + {"dword_64a27c": "loginusers.vdf"}, + {"dword_64a3f8": "\\Steam\\"}, + {"dword_64a560": "sqlite3.dll"}, + {"dword_64a254": "browsers"}, + {"dword_64a3e8": "done"}, + {"dword_64a524": "soft"}, + {"dword_64a22c": "\\Discord\\tokens.txt"}, + {"dword_64a444": '/c timeout /t 5 & del /f /q "'}, + {"dword_64a2a8": '" & del "C:\\ProgramData\\*.dll"" & exit'}, + {"dword_64a5e4": "C:\\"}, + {"dword_64a480": "https"}, + {"dword_64a118": "Content-Type: multipart/form-data; boundary=----"}, + {"dword_64a49c": "POST"}, + {"dword_64a2b4": "HTTP/1.1"}, + {"dword_64a2f0": 'Content-Disposition: form-data; name="'}, + {"dword_64a458": "hwid"}, + {"dword_64a514": "build"}, + {"dword_64a470": "token"}, + {"dword_64a3f4": "file_name"}, + {"dword_64a0cc": "file"}, + {"dword_64a0f0": "message"}, + {"dword_64a2a4": "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456"}, + {"dword_64a278": "screenshot.jpg"}, + ], + } From 5c302d4ef91071ddc5e5ee9d6f01efb8482b0a16 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 26 Oct 2024 08:03:47 +0200 Subject: [PATCH 66/98] Bump werkzeug from 3.0.3 to 3.0.6 (#2371) Bumps [werkzeug](https://github.com/pallets/werkzeug) from 3.0.3 to 3.0.6. - [Release notes](https://github.com/pallets/werkzeug/releases) - [Changelog](https://github.com/pallets/werkzeug/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/werkzeug/compare/3.0.3...3.0.6) --- updated-dependencies: - dependency-name: werkzeug dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index cec3d267ee9..5450ebc85d2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -4330,13 +4330,13 @@ files = [ [[package]] name = "werkzeug" -version = "3.0.3" +version = "3.0.6" description = "The comprehensive WSGI web application library." optional = false python-versions = ">=3.8" files = [ - {file = "werkzeug-3.0.3-py3-none-any.whl", hash = "sha256:fc9645dc43e03e4d630d23143a04a7f947a9a3b5727cd535fdfe155a17cc48c8"}, - {file = "werkzeug-3.0.3.tar.gz", hash = "sha256:097e5bfda9f0aba8da6b8545146def481d06aa7d3266e7448e2cccf67dd8bd18"}, + {file = "werkzeug-3.0.6-py3-none-any.whl", hash = "sha256:1bc0c2310d2fbb07b1dd1105eba2f7af72f322e1e455f2f93c993bee8c8a5f17"}, + {file = "werkzeug-3.0.6.tar.gz", hash = "sha256:a8dd59d4de28ca70471a34cba79bed5f7ef2e036a76b3ab0835474246eb41f8d"}, ] [package.dependencies] @@ -4541,4 +4541,4 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] [metadata] lock-version = "2.0" python-versions = ">=3.10, <4.0" -content-hash = "60bf927752538b220c3156c89605a163fd272ecca872edc4926885ab68a1477d" +content-hash = "ba6ac8df00c9c33e24ff9946fbc9285619d931904a334b60969533d9bce85551" diff --git a/pyproject.toml b/pyproject.toml index 8d6e5a5d6eb..ceda1f9f6ba 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -74,7 +74,7 @@ paramiko = "3.4.0" psutil = "5.9.8" # peepdf-3 = "4.0.0" -Werkzeug = "3.0.3" +Werkzeug = "3.0.6" packaging = "23.1" setuptools = "70.0.0" # command line config manipulation From 535133c580c59d0df87f07e648f8edba35782f4b Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Sat, 26 Oct 2024 06:04:25 +0000 Subject: [PATCH 67/98] ci: Update requirements.txt --- requirements.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index 8cc40264dac..41596324d0b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1958,9 +1958,9 @@ websockets==13.1 ; python_version >= "3.10" and python_version < "4.0" \ --hash=sha256:f1c3cf67185543730888b20682fb186fc8d0fa6f07ccc3ef4390831ab4b388d9 \ --hash=sha256:f48c749857f8fb598fb890a75f540e3221d0976ed0bf879cf3c7eef34151acee \ --hash=sha256:f779498eeec470295a2b1a5d97aa1bc9814ecd25e1eb637bd9d1c73a327387f6 -werkzeug==3.0.3 ; python_version >= "3.10" and python_version < "4.0" \ - --hash=sha256:097e5bfda9f0aba8da6b8545146def481d06aa7d3266e7448e2cccf67dd8bd18 \ - --hash=sha256:fc9645dc43e03e4d630d23143a04a7f947a9a3b5727cd535fdfe155a17cc48c8 +werkzeug==3.0.6 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:1bc0c2310d2fbb07b1dd1105eba2f7af72f322e1e455f2f93c993bee8c8a5f17 \ + --hash=sha256:a8dd59d4de28ca70471a34cba79bed5f7ef2e036a76b3ab0835474246eb41f8d wheel==0.44.0 ; python_version >= "3.10" and python_version < "4.0" \ --hash=sha256:2376a90c98cc337d18623527a97c31797bd02bad0033d41547043a1cbfbe448f \ --hash=sha256:a29c3f2817e95ab89aa4660681ad547c0e9547f20e75b0562fe7723c9a2a9d49 From e722e67d25b0d922a408d7928658dcc79def270a Mon Sep 17 00:00:00 2001 From: doomedraven Date: Sat, 26 Oct 2024 08:06:30 +0200 Subject: [PATCH 68/98] Update Stealc.py --- modules/processing/parsers/CAPE/Stealc.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/processing/parsers/CAPE/Stealc.py b/modules/processing/parsers/CAPE/Stealc.py index d1337af2e84..d9cfc0d3a3b 100644 --- a/modules/processing/parsers/CAPE/Stealc.py +++ b/modules/processing/parsers/CAPE/Stealc.py @@ -82,11 +82,11 @@ def extract_config(data): key_rva = data[str_decode_offset + 3 : str_decode_offset + 7] encoded_str_rva = data[str_decode_offset + 8 : str_decode_offset + 12] - dword_rva = data[str_decode_offset + 21 : str_decode_offset + 25] + # dword_rva = data[str_decode_offset + 21 : str_decode_offset + 25] key_offset = pe.get_offset_from_rva(struct.unpack("i", key_rva)[0] - image_base) encoded_str_offset = pe.get_offset_from_rva(struct.unpack("i", encoded_str_rva)[0] - image_base) - dword_offset = hex(struct.unpack("i", dword_rva)[0])[2:] + # dword_offset = hex(struct.unpack("i", dword_rva)[0])[2:] key = string_from_offset(data, key_offset) encoded_str = string_from_offset(data, encoded_str_offset) From a89bd2bb426c58f5ab5a6852c670f80dde49376f Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Sat, 26 Oct 2024 06:07:24 +0000 Subject: [PATCH 69/98] style: Automatic code formatting --- modules/processing/parsers/CAPE/Stealc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/processing/parsers/CAPE/Stealc.py b/modules/processing/parsers/CAPE/Stealc.py index d9cfc0d3a3b..f76ddab7541 100644 --- a/modules/processing/parsers/CAPE/Stealc.py +++ b/modules/processing/parsers/CAPE/Stealc.py @@ -82,7 +82,7 @@ def extract_config(data): key_rva = data[str_decode_offset + 3 : str_decode_offset + 7] encoded_str_rva = data[str_decode_offset + 8 : str_decode_offset + 12] - # dword_rva = data[str_decode_offset + 21 : str_decode_offset + 25] + # dword_rva = data[str_decode_offset + 21 : str_decode_offset + 25] key_offset = pe.get_offset_from_rva(struct.unpack("i", key_rva)[0] - image_base) encoded_str_offset = pe.get_offset_from_rva(struct.unpack("i", encoded_str_rva)[0] - image_base) From 97583771d8df7bc6e33cce60fb5491d0127ac648 Mon Sep 17 00:00:00 2001 From: doomedraven Date: Tue, 29 Oct 2024 10:57:51 +0100 Subject: [PATCH 70/98] Update cape2.sh --- installer/cape2.sh | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/installer/cape2.sh b/installer/cape2.sh index f10522cf54f..c674fd4a3f1 100644 --- a/installer/cape2.sh +++ b/installer/cape2.sh @@ -962,8 +962,6 @@ function dependencies() { # pip3 install cython # pip3 install git+https://github.com/andreasvc/pyre2.git - install_capa - install_postgresql sudo -u postgres -H sh -c "psql -c \"CREATE USER ${USER} WITH PASSWORD '$PASSWD'\""; @@ -992,7 +990,7 @@ function dependencies() { sudo apt-get install gnupg2 -y wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | sudo tee /usr/share/keyrings/deb.torproject.org-keyring.gpg >/dev/null - + # Tor project has no release for Ubuntu noble (24-10-18) # TODO: Check if it is still the case if [ "$(lsb_release -cs)" = "noble" ]; then @@ -1073,7 +1071,7 @@ EOF ### PDNS sudo apt-get install git binutils-dev libldns-dev libpcap-dev libdate-simple-perl libdatetime-perl libdbd-mysql-perl -y cd /tmp || return - + # From pevious install if [ -d /tmp/passivedns ]; then sudo rm -rf /tmp/passivedns @@ -1097,7 +1095,7 @@ EOF function install_clamav() { echo "[+] Installing clamav" - apt-get install clamav clamav-daemon clamav-freshclam clamav-unofficial-sigs python3-pyclamd -y + apt-get install clamav clamav-daemon clamav-freshclam clamav-unofficial-sigs python3-pyclamd -y cat >> /usr/share/clamav-unofficial-sigs/conf.d/00-clamav-unofficial-sigs.conf << EOF # This file contains user configuration settings for the clamav-unofficial-sigs.sh @@ -1245,11 +1243,11 @@ function install_CAPE() { sudo usermod -aG kvm ${USER} sudo usermod -aG libvirt ${USER} fi - + #packages are needed for build options in extra/yara_installer.sh apt-get install libjansson-dev libmagic1 libmagic-dev -y sudo -u ${USER} bash -c 'poetry run /opt/CAPEv2/extra/yara_installer.sh' - + if [ -d /tmp/yara-python ]; then sudo rm -rf /tmp/yara-python fi @@ -1370,7 +1368,7 @@ function install_volatility3() { function install_mitmproxy() { echo "[+] Installing mitmproxy" sudo mkdir /opt/mitmproxy - sudo chown ${USER}:${USER} /opt/mitmproxy + sudo chown ${USER}:${USER} /opt/mitmproxy cd /opt/mitmproxy mitmproxy_version=$(curl -s https://api.github.com/repos/mitmproxy/mitmproxy/releases/latest | grep '"tag_name":' | cut -d '"' -f 4 | sed 's/^v//') wget https://downloads.mitmproxy.org/"$mitmproxy_version"/mitmproxy-"$mitmproxy_version"-linux-x86_64.tar.gz -O mitmproxy.tar.gz @@ -1625,4 +1623,4 @@ case "$COMMAND" in usage;; esac -echo "[+] cape2.sh - Done" \ No newline at end of file +echo "[+] cape2.sh - Done" From b1e7b0ba90756a1775c89e0e6cd7624c859977d7 Mon Sep 17 00:00:00 2001 From: doomedraven Date: Tue, 29 Oct 2024 12:04:40 +0100 Subject: [PATCH 71/98] Update Stealc.py --- modules/processing/parsers/CAPE/Stealc.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/processing/parsers/CAPE/Stealc.py b/modules/processing/parsers/CAPE/Stealc.py index f76ddab7541..0d2f5a35025 100644 --- a/modules/processing/parsers/CAPE/Stealc.py +++ b/modules/processing/parsers/CAPE/Stealc.py @@ -22,7 +22,7 @@ 83 C4 0C A3 ?? ?? ?? ?? } - + condition: $decode_1 }""" @@ -50,7 +50,7 @@ def string_from_offset(data, offset): def extract_config(data): - config_dict = {"C2": []} + config_dict = {} # Attempt to extract via old method try: @@ -63,12 +63,12 @@ def extract_config(data): if line.startswith("/") and line[-4] == ".": uri = line if domain and uri: - config_dict["C2"].append(f"{domain}{uri}") + config_dict.setdefault("C2", []).append(f"{domain}{uri}") except Exception: pass # Try with new method - if not config_dict["C2"]: + if not config_dict.get("C2"): with suppress(Exception): # config_dict["Strings"] = [] pe = pefile.PE(data=data, fast_load=False) @@ -92,8 +92,8 @@ def extract_config(data): encoded_str = string_from_offset(data, encoded_str_offset) decoded_str = xor_data(encoded_str, key).decode() - if "http://" in decoded_str or "https://" in decoded_str: - config_dict["C2"].append(decoded_str) + if ("http://" in decoded_str or "https://" in decoded_str) and len(decoded_str) > 11: + config_dict.setdefault("C2", []).append(decoded_str) # else: # config_dict["Strings"].append({f"dword_{dword_offset}" : decoded_str}) From 317c86a1ea386580416ff8ecea8b879a945ba08f Mon Sep 17 00:00:00 2001 From: doomedraven Date: Tue, 29 Oct 2024 14:19:36 +0100 Subject: [PATCH 72/98] Update test_stealc.py --- tests_parsers/test_stealc.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests_parsers/test_stealc.py b/tests_parsers/test_stealc.py index e5135297291..95e466f0c2a 100644 --- a/tests_parsers/test_stealc.py +++ b/tests_parsers/test_stealc.py @@ -10,6 +10,7 @@ def test_stealc(): conf = extract_config(data.read()) assert conf == { "C2": ["http://95.217.125.57"], + """ "Strings": [ {"dword_64a330": "IN"}, {"dword_64a5ec": "09"}, @@ -365,5 +366,6 @@ def test_stealc(): {"dword_64a0f0": "message"}, {"dword_64a2a4": "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456"}, {"dword_64a278": "screenshot.jpg"}, + """ ], } From f00443dec13536e3b85289dda4a6d92f66f9dcc0 Mon Sep 17 00:00:00 2001 From: doomedraven Date: Tue, 29 Oct 2024 15:21:12 +0100 Subject: [PATCH 73/98] Update test_stealc.py --- tests_parsers/test_stealc.py | 358 ----------------------------------- 1 file changed, 358 deletions(-) diff --git a/tests_parsers/test_stealc.py b/tests_parsers/test_stealc.py index 95e466f0c2a..79b238dd3e8 100644 --- a/tests_parsers/test_stealc.py +++ b/tests_parsers/test_stealc.py @@ -10,362 +10,4 @@ def test_stealc(): conf = extract_config(data.read()) assert conf == { "C2": ["http://95.217.125.57"], - """ - "Strings": [ - {"dword_64a330": "IN"}, - {"dword_64a5ec": "09"}, - {"dword_64a31c": "11"}, - {"dword_64a570": "20"}, - {"dword_64a56c": "24"}, - {"dword_64a3f0": "GetProcAddress"}, - {"dword_64a204": "LoadLibraryA"}, - {"dword_64a5c8": "lstrcatA"}, - {"dword_64a644": "OpenEventA"}, - {"dword_64a264": "CreateEventA"}, - {"dword_64a250": "CloseHandle"}, - {"dword_64a2f8": "Sleep"}, - {"dword_64a4d4": "GetUserDefaultLangID"}, - {"dword_64a33c": "VirtualAllocExNuma"}, - {"dword_64a5a0": ""}, - {"dword_64a548": ""}, - {"dword_64a3bc": "VirtualAlloc"}, - {"dword_64a2e8": "HeapAlloc"}, - {"dword_64a60c": "GetComputerNameA"}, - {"dword_64a0b0": "lstrcpyA"}, - {"dword_64a598": "Get"}, - {"dword_64a224": "GetCurrentProcess"}, - {"dword_64a418": "lstrlenA"}, - {"dword_64a634": "ExitProcess"}, - {"dword_64a0bc": "GlobalMemoryStatusEx"}, - {"dword_64a12c": "GetSystemTime"}, - {"dword_64a2b0": "SystemTimeToFileTime"}, - {"dword_64a550": "advapi32.dll"}, - {"dword_64a17c": "gdi32.dll"}, - {"dword_64a104": "user32.dll"}, - {"dword_64a1dc": "crypt32.dll"}, - {"dword_64a328": "ntdll.dll"}, - {"dword_64a4ac": "GetUserNameA"}, - {"dword_64a424": "CreateDCA"}, - {"dword_64a1cc": "GetDeviceCaps"}, - {"dword_64a394": "ReleaseDC"}, - {"dword_64a128": "CryptStringToBinaryA"}, - {"dword_64a414": "sscanf"}, - {"dword_64a150": ""}, - {"dword_64a540": "HAL9T"}, - {"dword_64a61c": "JohnDoe"}, - {"dword_64a0d0": "DISPLAY"}, - {"dword_64a400": "%hu/%hu/%hu"}, - {"dword_64a47c": "srttybh"}, - {"dword_64a440": "!|"}, - {"dword_64a1fc": "/2f571d994666c8cb.php"}, - {"dword_64a32c": "/557b2ce3c387a13c/"}, - {"dword_64a230": "5385386367"}, - {"dword_64a58c": "GetEnvironmentVariableA"}, - {"dword_64a1c4": "GetFileAttributesA"}, - {"dword_64a178": "GlobalLock"}, - {"dword_64a1ac": "HeapFree"}, - {"dword_64a534": "GetFileSize"}, - {"dword_64a1d8": "GlobalSize"}, - {"dword_64a390": "CreateToolhelp32Snapshot"}, - {"dword_64a14c": "IsWow64Process"}, - {"dword_64a1c8": "Process32Next"}, - {"dword_64a210": "GetLocalTime"}, - {"dword_64a324": "FreeLibrary"}, - {"dword_64a608": "GetTimeZoneInformation"}, - {"dword_64a2d8": "GetSystemPowerStatus"}, - {"dword_64a38c": "GetVolumeInformationA"}, - {"dword_64a538": "GetWindows"}, - {"dword_64a194": "Process32First"}, - {"dword_64a3e4": "GetLocaleInfoA"}, - {"dword_64a4fc": "GetUserDefaultLocaleName"}, - {"dword_64a4f8": "GetModuleFileNameA"}, - {"dword_64a0b8": "DeleteFileA"}, - {"dword_64a4dc": "FindNextFileA"}, - {"dword_64a13c": "LocalFree"}, - {"dword_64a24c": "FindClose"}, - {"dword_64a51c": "SetEnvironmentVariableA"}, - {"dword_64a18c": "LocalAlloc"}, - {"dword_64a488": "GetFileSizeEx"}, - {"dword_64a628": "ReadFile"}, - {"dword_64a44c": "SetFilePointer"}, - {"dword_64a4e0": "WriteFile"}, - {"dword_64a54c": "CreateFileA"}, - {"dword_64a468": "FindFirstFileA"}, - {"dword_64a35c": "CopyFileA"}, - {"dword_64a3a8": "VirtualProtect"}, - {"dword_64a0a0": "GetLogicalProcessorInformationEx"}, - {"dword_64a420": "GetLastError"}, - {"dword_64a368": "lstrcpynA"}, - {"dword_64a568": "MultiByteToWideChar"}, - {"dword_64a294": "GlobalFree"}, - {"dword_64a39c": "WideCharToMultiByte"}, - {"dword_64a3d8": "GlobalAlloc"}, - {"dword_64a410": "OpenProcess"}, - {"dword_64a0e0": "TerminateProcess"}, - {"dword_64a1ec": "GetCurrentProcessId"}, - {"dword_64a34c": "gdiplus.dll"}, - {"dword_64a588": "ole32.dll"}, - {"dword_64a2e4": "bcrypt.dll"}, - {"dword_64a2b8": "wininet.dll"}, - {"dword_64a4e4": "shlwapi.dll"}, - {"dword_64a20c": "shell32.dll"}, - {"dword_64a220": "psapi.dll"}, - {"dword_64a4a8": "rstrtmgr.dll"}, - {"dword_64a260": "CreateCompatibleBitmap"}, - {"dword_64a518": "SelectObject"}, - {"dword_64a2a0": "BitBlt"}, - {"dword_64a4f4": "DeleteObject"}, - {"dword_64a604": "CreateCompatibleDC"}, - {"dword_64a380": "GdipGetImageEncodersSize"}, - {"dword_64a274": "GdipGetImageEncoders"}, - {"dword_64a2d4": ""}, - {"dword_64a19c": "GdiplusStartup"}, - {"dword_64a43c": "GdiplusShutdown"}, - {"dword_64a62c": "GdipSaveImageToStream"}, - {"dword_64a344": "GdipDisposeImage"}, - {"dword_64a624": "GdipFree"}, - {"dword_64a388": "Get"}, - {"dword_64a1b4": "CreateStreamOnHGlobal"}, - {"dword_64a2e0": "CoUninitialize"}, - {"dword_64a5e8": "CoInitialize"}, - {"dword_64a42c": "CoCreateInstance"}, - {"dword_64a464": "BCryptGenerateSymmetricKey"}, - {"dword_64a160": "BCryptCloseAlgorithmProvider"}, - {"dword_64a114": ""}, - {"dword_64a318": "BCryptSetProperty"}, - {"dword_64a5b0": "BCryptDestroyKey"}, - {"dword_64a454": "BCryptOpenAlgorithmProvider"}, - {"dword_64a340": "GetWindowRect"}, - {"dword_64a510": "GetDesktopWindow"}, - {"dword_64a530": "GetDC"}, - {"dword_64a348": "CloseWindow"}, - {"dword_64a2dc": "wsprintfA"}, - {"dword_64a460": "EnumDisplayDevicesA"}, - {"dword_64a504": "GetKeyboardLayoutList"}, - {"dword_64a52c": "Char"}, - {"dword_64a4bc": "wsprintfW"}, - {"dword_64a478": "RegQueryValueExA"}, - {"dword_64a218": "RegEnumKeyExA"}, - {"dword_64a57c": "RegOpenKeyExA"}, - {"dword_64a1c0": "RegCloseKey"}, - {"dword_64a640": "RegEnumValueA"}, - {"dword_64a188": "CryptBinaryToStringA"}, - {"dword_64a308": "CryptUnprotectData"}, - {"dword_64a25c": "SHGetFolderPathA"}, - {"dword_64a338": "ShellExecuteExA"}, - {"dword_64a258": "InternetOpenUrlA"}, - {"dword_64a244": "InternetConnectA"}, - {"dword_64a23c": "InternetCloseHandle"}, - {"dword_64a40c": "InternetOpenA"}, - {"dword_64a48c": "HttpSendRequestA"}, - {"dword_64a46c": "HttpOpenRequestA"}, - {"dword_64a490": "InternetReadFile"}, - {"dword_64a5a4": "InternetCrackUrlA"}, - {"dword_64a1bc": "StrCmpCA"}, - {"dword_64a55c": "StrStrA"}, - {"dword_64a240": "StrCmpCW"}, - {"dword_64a144": "PathMatchSpecA"}, - {"dword_64a358": "GetModuleFileNameExA"}, - {"dword_64a5ac": "RmStartSession"}, - {"dword_64a5c4": "RmRegisterResources"}, - {"dword_64a100": ""}, - {"dword_64a0f8": "RmEndSession"}, - {"dword_64a430": "sqlite3_open"}, - {"dword_64a148": "sqlite3_prepare_v2"}, - {"dword_64a3c4": "sqlite3_step"}, - {"dword_64a3ac": "sqlite3_column_text"}, - {"dword_64a3d4": "sqlite3_finalize"}, - {"dword_64a554": "sqlite3_close"}, - {"dword_64a498": "sqlite3_column_bytes"}, - {"dword_64a59c": "sqlite3_column_blob"}, - {"dword_64a0ec": "encrypted_key"}, - {"dword_64a0b4": "PATH"}, - {"dword_64a578": "C:\\ProgramData\\nss3.dll"}, - {"dword_64a290": "NSS_Init"}, - {"dword_64a520": "NSS_Shutdown"}, - {"dword_64a1e4": "PK11_GetInternalKeySlot"}, - {"dword_64a184": "PK11_FreeSlot"}, - {"dword_64a620": "PK11_Authenticate"}, - {"dword_64a310": "PK11SDR_Decrypt"}, - {"dword_64a4a4": "C:\\ProgramData\\"}, - {"dword_64a134": "SELECT origin_url, username_value, password_value "}, - {"dword_64a37c": "browser: "}, - {"dword_64a124": "profile: "}, - {"dword_64a15c": "url: "}, - {"dword_64a0dc": "login: "}, - {"dword_64a29c": "password: "}, - {"dword_64a350": "Opera"}, - {"dword_64a36c": "OperaGX"}, - {"dword_64a528": "Network"}, - {"dword_64a270": "cookies"}, - {"dword_64a2fc": ".txt"}, - {"dword_64a2f4": "SELECT HOST_KEY, is_httponly, path, is_secure, (expires_utc/10"}, - {"dword_64a3ec": "T"}, - {"dword_64a0e4": "FALSE"}, - {"dword_64a4b8": "autofill"}, - {"dword_64a594": "SELECT name, value FROM autofill"}, - {"dword_64a3e0": "history"}, - {"dword_64a3c0": "SELECT url FROM urls LIMIT 1000"}, - {"dword_64a3a4": "cc"}, - {"dword_64a1f8": "SELECT name_on_card, expiration_month, expiration_year, card_number_encrypted FROM credit_cards"}, - {"dword_64a26c": "name: "}, - {"dword_64a2cc": "month: "}, - {"dword_64a28c": "year: "}, - {"dword_64a214": "card: "}, - {"dword_64a0c8": "Cookies"}, - {"dword_64a474": "Login Data"}, - {"dword_64a4c8": "Web Data"}, - {"dword_64a320": "History"}, - {"dword_64a63c": "logins.json"}, - {"dword_64a1b0": "formSubmitUR"}, - {"dword_64a364": "usernameField"}, - {"dword_64a4d0": "encryptedUsername"}, - {"dword_64a4cc": "encryptedPassword"}, - {"dword_64a5a8": "guid"}, - {"dword_64a1f4": "SELECT host, isHttpOnly, path, isSecure, expiry, name, value FROM moz_cookies"}, - {"dword_64a0f4": "SELECT fieldname, value FROM moz_formhistory"}, - {"dword_64a268": "S"}, - {"dword_64a428": "cookies.sqlite"}, - {"dword_64a0a8": "formhistory.sqlite"}, - {"dword_64a138": "places.sqlite"}, - {"dword_64a500": "plugins"}, - {"dword_64a4e8": "Local Extension Settings"}, - {"dword_64a3dc": "Sync Extension Settings"}, - {"dword_64a1a8": "IndexedDB"}, - {"dword_64a4f0": "Opera Stable"}, - {"dword_64a140": "Opera GX Stable"}, - {"dword_64a600": "CURRENT"}, - {"dword_64a0ac": "chrome-extension_"}, - {"dword_64a0a4": "_0.indexeddb.leveldb"}, - {"dword_64a5d8": "Local State"}, - {"dword_64a21c": "profiles.ini"}, - {"dword_64a2ac": "chrome"}, - {"dword_64a41c": "opera"}, - {"dword_64a584": "firefox"}, - {"dword_64a1f0": "wallets"}, - {"dword_64a0c4": "%08l"}, - {"dword_64a398": "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion"}, - {"dword_64a434": "ProductName"}, - {"dword_64a2c0": "x32"}, - {"dword_64a174": "x64"}, - {"dword_64a630": "%d/%d/%d %d:%d:%d"}, - {"dword_64a1d4": "HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0"}, - {"dword_64a4ec": "ProcessorName"}, - {"dword_64a544": "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"}, - {"dword_64a5c0": "DisplayName"}, - {"dword_64a3d0": "DisplayVersion"}, - {"dword_64a5f4": "Network Info:"}, - {"dword_64a228": "\t- IP: IP?"}, - {"dword_64a0fc": "\t- Country: ISO?"}, - {"dword_64a180": "System Summary:"}, - {"dword_64a09c": "\t- HWID: "}, - {"dword_64a354": "\t- OS: "}, - {"dword_64a638": "\t- Architecture: "}, - {"dword_64a1a0": "\t- UserName: "}, - {"dword_64a314": "\t- Computer Name: "}, - {"dword_64a248": "\t- Local Time: "}, - {"dword_64a384": "\t- UTC: "}, - {"dword_64a450": "\t- Language: "}, - {"dword_64a4b4": "\t- Keyboards: "}, - {"dword_64a1a4": "\t- Laptop: "}, - {"dword_64a3a0": "\t- Running Path: "}, - {"dword_64a170": "\t- CPU: "}, - {"dword_64a4a0": "\t- Threads: "}, - {"dword_64a360": "\t- Cores: "}, - {"dword_64a304": "\t- RAM: "}, - {"dword_64a154": "\t- Display "}, - {"dword_64a5fc": "\t- GPU:"}, - {"dword_64a614": ""}, - {"dword_64a1d0": "Installed Apps:"}, - {"dword_64a618": "All Users:"}, - {"dword_64a5d4": "Current User:"}, - {"dword_64a5b8": "Process List:"}, - {"dword_64a298": "system_info.txt"}, - {"dword_64a098": "freebl3.dll"}, - {"dword_64a1e8": "mozglue.dll"}, - {"dword_64a378": "msvcp140.dll"}, - {"dword_64a208": "nss3.dll"}, - {"dword_64a590": "softokn3.dll"}, - {"dword_64a120": "vcruntime140.dll"}, - {"dword_64a0c0": "\\Temp\\"}, - {"dword_64a238": ".exe"}, - {"dword_64a198": "runas"}, - {"dword_64a558": "open"}, - {"dword_64a3cc": "/c start "}, - {"dword_64a408": "%DESKTOP%"}, - {"dword_64a494": "%APPDATA%"}, - {"dword_64a45c": "%LOCALAPPDATA%"}, - {"dword_64a2bc": "%USERPROFILE%"}, - {"dword_64a2d0": "%DOCUMENTS%"}, - {"dword_64a11c": "%PROGRAMFI"}, - {"dword_64a53c": "%PROGRAMFILES_86%"}, - {"dword_64a334": "%RECENT%"}, - {"dword_64a564": "*.lnk"}, - {"dword_64a508": "files"}, - {"dword_64a30c": "\\discord\\"}, - {"dword_64a284": "\\Local Storage\\leveldb\\CURRENT"}, - {"dword_64a2c8": "\\Local Storage\\leveldb"}, - {"dword_64a300": "\\Telegram Desktop\\"}, - {"dword_64a610": "key_datas"}, - {"dword_64a280": "D877F783D5D3EF8C*"}, - {"dword_64a438": "map*"}, - {"dword_64a374": "A7FDF864FBC1"}, - {"dword_64a484": "A92DAA6EA6F"}, - {"dword_64a1e0": "F"}, - {"dword_64a3b8": "Telegram"}, - {"dword_64a5f8": "Tox"}, - {"dword_64a3b4": "*.tox"}, - {"dword_64a4c4": "*.ini"}, - {"dword_64a580": "Password"}, - {"dword_64a5f0": "Software\\"}, - {"dword_64a10c": "Software\\Microsoft\\Office\\13.0\\Outlook\\Profiles\\Outlook\\93"}, - {"dword_64a234": "Software\\Microsoft\\Office\\14.0\\Outlook\\Profiles\\Outlook\\93"}, - { - "dword_64a370": "Software\\Microsoft\\Office\\15.0\\Outlook\\Profiles\\Outlook\\9375CFF0413111d3B88A00104B2A6676\\" - }, - {"dword_64a200": "Software\\Microsoft\\"}, - {"dword_64a574": "oftware\\Microsoft\\Windows Messaging Subsystem\\Profiles\\9375CFF0413111d3B88A00104B2A6676\\"}, - {"dword_64a3c8": "00000001"}, - {"dword_64a190": "00000002"}, - {"dword_64a110": "00000003"}, - {"dword_64a1b8": "0"}, - {"dword_64a16c": "\\Outlook\\accounts.txt"}, - {"dword_64a108": "Pidgin"}, - {"dword_64a130": "\\.purple\\"}, - {"dword_64a288": "accounts.xml"}, - {"dword_64a0d8": "dQw4w9WgXcQ"}, - {"dword_64a404": "token: "}, - {"dword_64a4d8": "Software\\Valve\\Steam"}, - {"dword_64a0d4": "SteamPath"}, - {"dword_64a168": "\\config\\"}, - {"dword_64a158": "ssfn*"}, - {"dword_64a448": "config.vdf"}, - {"dword_64a4b0": "DialogConfig.vdf"}, - {"dword_64a164": "DialogConfigOverlay*.vdf"}, - {"dword_64a3fc": "libraryfolders.vdf"}, - {"dword_64a27c": "loginusers.vdf"}, - {"dword_64a3f8": "\\Steam\\"}, - {"dword_64a560": "sqlite3.dll"}, - {"dword_64a254": "browsers"}, - {"dword_64a3e8": "done"}, - {"dword_64a524": "soft"}, - {"dword_64a22c": "\\Discord\\tokens.txt"}, - {"dword_64a444": '/c timeout /t 5 & del /f /q "'}, - {"dword_64a2a8": '" & del "C:\\ProgramData\\*.dll"" & exit'}, - {"dword_64a5e4": "C:\\"}, - {"dword_64a480": "https"}, - {"dword_64a118": "Content-Type: multipart/form-data; boundary=----"}, - {"dword_64a49c": "POST"}, - {"dword_64a2b4": "HTTP/1.1"}, - {"dword_64a2f0": 'Content-Disposition: form-data; name="'}, - {"dword_64a458": "hwid"}, - {"dword_64a514": "build"}, - {"dword_64a470": "token"}, - {"dword_64a3f4": "file_name"}, - {"dword_64a0cc": "file"}, - {"dword_64a0f0": "message"}, - {"dword_64a2a4": "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456"}, - {"dword_64a278": "screenshot.jpg"}, - """ - ], } From bd6bd96d69c489666d0de03ee748225023a57ec0 Mon Sep 17 00:00:00 2001 From: cccs-rs <62077998+cccs-rs@users.noreply.github.com> Date: Tue, 29 Oct 2024 11:02:53 -0400 Subject: [PATCH 74/98] Create MACO extractors that wrap the CAPE extractor (#2373) * Create a AgentTesla MACO extractor that wraps the CAPE extractor * Add MACO extractors with tests * Create MACO extractors that wrap the CAPE extractor * Add maco dependency * Patch yara rule name * Update poetry lockfile * Run Ruff --- README.md | 4 +- modules/processing/parsers/MACO/AgentTesla.py | 64 ++++++ modules/processing/parsers/MACO/AsyncRAT.py | 51 +++++ .../processing/parsers/MACO/AuroraStealer.py | 26 +++ modules/processing/parsers/MACO/Azorult.py | 20 ++ .../processing/parsers/MACO/BackOffLoader.py | 31 +++ modules/processing/parsers/MACO/BackOffPOS.py | 31 +++ modules/processing/parsers/MACO/BitPaymer.py | 27 +++ .../processing/parsers/MACO/BlackDropper.py | 28 +++ modules/processing/parsers/MACO/BlackNix.py | 53 +++++ modules/processing/parsers/MACO/Blister.py | 32 +++ modules/processing/parsers/MACO/BruteRatel.py | 30 +++ modules/processing/parsers/MACO/BuerLoader.py | 24 +++ modules/processing/parsers/MACO/BumbleBee.py | 44 +++++ modules/processing/parsers/MACO/Carbanak.py | 44 +++++ modules/processing/parsers/MACO/ChChes.py | 25 +++ .../parsers/MACO/CobaltStrikeBeacon.py | 44 +++++ .../parsers/MACO/CobaltStrikeStager.py | 22 +++ modules/processing/parsers/MACO/DCRat.py | 24 +++ modules/processing/parsers/MACO/DarkGate.py | 49 +++++ .../processing/parsers/MACO/DoppelPaymer.py | 27 +++ .../processing/parsers/MACO/DridexLoader.py | 30 +++ modules/processing/parsers/MACO/Emotet.py | 29 +++ modules/processing/parsers/MACO/Enfal.py | 22 +++ modules/processing/parsers/MACO/EvilGrab.py | 37 ++++ modules/processing/parsers/MACO/Fareit.py | 25 +++ modules/processing/parsers/MACO/Formbook.py | 30 +++ modules/processing/parsers/MACO/Greame.py | 22 +++ modules/processing/parsers/MACO/GuLoader.py | 27 +++ modules/processing/parsers/MACO/Hancitor.py | 30 +++ .../processing/parsers/MACO/HttpBrowser.py | 34 ++++ modules/processing/parsers/MACO/IcedID.py | 23 +++ .../processing/parsers/MACO/IcedIDLoader.py | 31 +++ modules/processing/parsers/MACO/KoiLoader.py | 26 +++ .../processing/parsers/MACO/Latrodectus.py | 43 ++++ modules/processing/parsers/MACO/LokiBot.py | 27 +++ modules/processing/parsers/MACO/Lumma.py | 27 +++ modules/processing/parsers/MACO/NanoCore.py | 44 +++++ modules/processing/parsers/MACO/Nighthawk.py | 26 +++ modules/processing/parsers/MACO/Njrat.py | 34 ++++ modules/processing/parsers/MACO/Oyster.py | 33 ++++ modules/processing/parsers/MACO/Pandora.py | 49 +++++ .../parsers/MACO/PhemedroneStealer.py | 22 +++ modules/processing/parsers/MACO/PikaBot.py | 34 ++++ modules/processing/parsers/MACO/PlugX.py | 22 +++ modules/processing/parsers/MACO/PoisonIvy.py | 44 +++++ modules/processing/parsers/MACO/Punisher.py | 45 +++++ modules/processing/parsers/MACO/QakBot.py | 27 +++ modules/processing/parsers/MACO/QuasarRAT.py | 25 +++ modules/processing/parsers/MACO/Quickbind.py | 34 ++++ modules/processing/parsers/MACO/RCSession.py | 43 ++++ modules/processing/parsers/MACO/REvil.py | 22 +++ modules/processing/parsers/MACO/RedLeaf.py | 35 ++++ modules/processing/parsers/MACO/RedLine.py | 26 +++ modules/processing/parsers/MACO/Remcos.py | 25 +++ modules/processing/parsers/MACO/Retefe.py | 23 +++ .../processing/parsers/MACO/Rhadamanthys.py | 26 +++ modules/processing/parsers/MACO/Rozena.py | 26 +++ modules/processing/parsers/MACO/SmallNet.py | 26 +++ .../processing/parsers/MACO/SmokeLoader.py | 24 +++ .../processing/parsers/MACO/Socks5Systemz.py | 30 +++ modules/processing/parsers/MACO/SparkRAT.py | 31 +++ .../processing/parsers/MACO/SquirrelWaffle.py | 24 +++ modules/processing/parsers/MACO/Stealc.py | 24 +++ modules/processing/parsers/MACO/Strrat.py | 22 +++ modules/processing/parsers/MACO/TSCookie.py | 25 +++ modules/processing/parsers/MACO/TrickBot.py | 23 +++ modules/processing/parsers/MACO/UrsnifV3.py | 25 +++ modules/processing/parsers/MACO/VenomRat.py | 23 +++ modules/processing/parsers/MACO/WarzoneRAT.py | 27 +++ modules/processing/parsers/MACO/XWorm.py | 25 +++ modules/processing/parsers/MACO/XenoRAT.py | 25 +++ modules/processing/parsers/MACO/Zloader.py | 32 +++ modules/processing/parsers/MACO/__init__.py | 1 + modules/processing/parsers/MACO/test_maco.py | 9 + poetry.lock | 73 ++++++- pyproject.toml | 1 + tests_parsers/test_agenttesla.py | 41 ++++ tests_parsers/test_asyncrat.py | 36 ++++ tests_parsers/test_aurorastealer.py | 30 +++ tests_parsers/test_blackdropper.py | 13 ++ tests_parsers/test_bumblebee.py | 9 + tests_parsers/test_carbanak.py | 6 + tests_parsers/test_cobaltstrikebeacon.py | 62 +++++- tests_parsers/test_darkgate.py | 6 + tests_parsers/test_icedid.py | 7 + tests_parsers/test_koiloader.py | 9 + tests_parsers/test_latrodectus.py | 185 ++++++++++++++++++ tests_parsers/test_lumma.py | 28 +++ tests_parsers/test_nanocore.py | 57 ++++++ tests_parsers/test_njrat.py | 11 ++ tests_parsers/test_oyster.py | 12 ++ tests_parsers/test_pikabot.py | 83 ++++++++ tests_parsers/test_quickbind.py | 12 ++ tests_parsers/test_redline.py | 11 ++ tests_parsers/test_smokeloader.py | 6 + tests_parsers/test_sparkrat.py | 14 ++ tests_parsers/test_zloader.py | 12 ++ 98 files changed, 2943 insertions(+), 5 deletions(-) create mode 100644 modules/processing/parsers/MACO/AgentTesla.py create mode 100644 modules/processing/parsers/MACO/AsyncRAT.py create mode 100644 modules/processing/parsers/MACO/AuroraStealer.py create mode 100644 modules/processing/parsers/MACO/Azorult.py create mode 100644 modules/processing/parsers/MACO/BackOffLoader.py create mode 100644 modules/processing/parsers/MACO/BackOffPOS.py create mode 100644 modules/processing/parsers/MACO/BitPaymer.py create mode 100644 modules/processing/parsers/MACO/BlackDropper.py create mode 100644 modules/processing/parsers/MACO/BlackNix.py create mode 100644 modules/processing/parsers/MACO/Blister.py create mode 100644 modules/processing/parsers/MACO/BruteRatel.py create mode 100644 modules/processing/parsers/MACO/BuerLoader.py create mode 100644 modules/processing/parsers/MACO/BumbleBee.py create mode 100644 modules/processing/parsers/MACO/Carbanak.py create mode 100644 modules/processing/parsers/MACO/ChChes.py create mode 100644 modules/processing/parsers/MACO/CobaltStrikeBeacon.py create mode 100644 modules/processing/parsers/MACO/CobaltStrikeStager.py create mode 100644 modules/processing/parsers/MACO/DCRat.py create mode 100644 modules/processing/parsers/MACO/DarkGate.py create mode 100644 modules/processing/parsers/MACO/DoppelPaymer.py create mode 100644 modules/processing/parsers/MACO/DridexLoader.py create mode 100644 modules/processing/parsers/MACO/Emotet.py create mode 100644 modules/processing/parsers/MACO/Enfal.py create mode 100644 modules/processing/parsers/MACO/EvilGrab.py create mode 100644 modules/processing/parsers/MACO/Fareit.py create mode 100644 modules/processing/parsers/MACO/Formbook.py create mode 100644 modules/processing/parsers/MACO/Greame.py create mode 100644 modules/processing/parsers/MACO/GuLoader.py create mode 100644 modules/processing/parsers/MACO/Hancitor.py create mode 100644 modules/processing/parsers/MACO/HttpBrowser.py create mode 100644 modules/processing/parsers/MACO/IcedID.py create mode 100644 modules/processing/parsers/MACO/IcedIDLoader.py create mode 100644 modules/processing/parsers/MACO/KoiLoader.py create mode 100644 modules/processing/parsers/MACO/Latrodectus.py create mode 100644 modules/processing/parsers/MACO/LokiBot.py create mode 100644 modules/processing/parsers/MACO/Lumma.py create mode 100644 modules/processing/parsers/MACO/NanoCore.py create mode 100644 modules/processing/parsers/MACO/Nighthawk.py create mode 100644 modules/processing/parsers/MACO/Njrat.py create mode 100644 modules/processing/parsers/MACO/Oyster.py create mode 100644 modules/processing/parsers/MACO/Pandora.py create mode 100644 modules/processing/parsers/MACO/PhemedroneStealer.py create mode 100644 modules/processing/parsers/MACO/PikaBot.py create mode 100644 modules/processing/parsers/MACO/PlugX.py create mode 100644 modules/processing/parsers/MACO/PoisonIvy.py create mode 100644 modules/processing/parsers/MACO/Punisher.py create mode 100644 modules/processing/parsers/MACO/QakBot.py create mode 100644 modules/processing/parsers/MACO/QuasarRAT.py create mode 100644 modules/processing/parsers/MACO/Quickbind.py create mode 100644 modules/processing/parsers/MACO/RCSession.py create mode 100644 modules/processing/parsers/MACO/REvil.py create mode 100644 modules/processing/parsers/MACO/RedLeaf.py create mode 100644 modules/processing/parsers/MACO/RedLine.py create mode 100644 modules/processing/parsers/MACO/Remcos.py create mode 100644 modules/processing/parsers/MACO/Retefe.py create mode 100644 modules/processing/parsers/MACO/Rhadamanthys.py create mode 100644 modules/processing/parsers/MACO/Rozena.py create mode 100644 modules/processing/parsers/MACO/SmallNet.py create mode 100644 modules/processing/parsers/MACO/SmokeLoader.py create mode 100644 modules/processing/parsers/MACO/Socks5Systemz.py create mode 100644 modules/processing/parsers/MACO/SparkRAT.py create mode 100644 modules/processing/parsers/MACO/SquirrelWaffle.py create mode 100644 modules/processing/parsers/MACO/Stealc.py create mode 100644 modules/processing/parsers/MACO/Strrat.py create mode 100644 modules/processing/parsers/MACO/TSCookie.py create mode 100644 modules/processing/parsers/MACO/TrickBot.py create mode 100644 modules/processing/parsers/MACO/UrsnifV3.py create mode 100644 modules/processing/parsers/MACO/VenomRat.py create mode 100644 modules/processing/parsers/MACO/WarzoneRAT.py create mode 100644 modules/processing/parsers/MACO/XWorm.py create mode 100644 modules/processing/parsers/MACO/XenoRAT.py create mode 100644 modules/processing/parsers/MACO/Zloader.py create mode 100644 modules/processing/parsers/MACO/__init__.py create mode 100644 modules/processing/parsers/MACO/test_maco.py create mode 100644 tests_parsers/test_agenttesla.py create mode 100644 tests_parsers/test_asyncrat.py create mode 100644 tests_parsers/test_aurorastealer.py diff --git a/README.md b/README.md index 5bc6459548d..62909436d14 100644 --- a/README.md +++ b/README.md @@ -92,7 +92,7 @@ Malware can be classified in CAPE via three mechanisms: ![image](https://github.com/kevoreilly/CAPEv2/assets/22219888/a44f2f8a-10df-47cc-9690-5ef08f04ea6b) -Parsing can be done using CAPE's own framework, alternatively the following frameworks are supported: [RATDecoders](https://github.com/kevthehermit/RATDecoders), [DC3-MWCP](https://github.com/Defense-Cyber-Crime-Center/DC3-MWCP) or [MalDuck](https://github.com/CERT-Polska/malduck/tree/master/malduck/) +Parsing can be done using CAPE's own framework, alternatively the following frameworks are supported: [RATDecoders](https://github.com/kevthehermit/RATDecoders), [DC3-MWCP](https://github.com/Defense-Cyber-Crime-Center/DC3-MWCP), [MalDuck](https://github.com/CERT-Polska/malduck/tree/master/malduck/), or [MaCo](https://github.com/CybercentreCanada/maco) #### Special note about config parsing frameworks: * Due to the nature of malware, since it changes constantly when any new version is released, something might become broken! @@ -228,5 +228,3 @@ If you use CAPEv2 in your work, please cite it as specified in the "Cite this re ### Docs * [ReadTheDocs](https://capev2.readthedocs.io/en/latest/#) - - diff --git a/modules/processing/parsers/MACO/AgentTesla.py b/modules/processing/parsers/MACO/AgentTesla.py new file mode 100644 index 00000000000..4bc6e7349ce --- /dev/null +++ b/modules/processing/parsers/MACO/AgentTesla.py @@ -0,0 +1,64 @@ +import os +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.AgentTesla import extract_config + +def convert_to_MACO(raw_config: dict) -> MACOModel: + if not raw_config: + return + + protocol = raw_config.get('Protocol') + if not protocol: + return + + parsed_result = MACOModel(family="AgentTesla", other=raw_config) + if protocol == "Telegram": + parsed_result.http.append( + MACOModel.Http(uri=raw_config["C2"], + password=raw_config["Password"], + usage="c2") + ) + + elif protocol in ["HTTP(S)", "Discord"]: + parsed_result.http.append( + MACOModel.Http(uri=raw_config["C2"], + usage="c2") + ) + + elif protocol == "FTP": + parsed_result.ftp.append( + MACOModel.FTP(username=raw_config["Username"], + password=raw_config["Password"], + hostname=raw_config["C2"].replace('ftp://', ''), + usage="c2") + ) + + elif protocol == "SMTP": + smtp = dict(username=raw_config["Username"], + password=raw_config["Password"], + hostname=raw_config["C2"], + mail_to=[raw_config["EmailTo"]], + usage="c2") + if "Port" in raw_config: + smtp["port"] = raw_config["Port"] + parsed_result.smtp.append(MACOModel.SMTP(**smtp)) + + if "Persistence_Filename" in raw_config: + parsed_result.paths.append(MACOModel.Path(path=raw_config["Persistence_Filename"], usage="storage")) + + if "ExternalIPCheckServices" in raw_config: + for service in raw_config["ExternalIPCheckServices"]: + parsed_result.http.append(MACOModel.Http(uri=service, usage="other")) + + + return parsed_result + +class AgentTesla(Extractor): + author = "kevoreilly" + family = "AgentTesla" + last_modified = "2024-10-20" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/AsyncRAT.py b/modules/processing/parsers/MACO/AsyncRAT.py new file mode 100644 index 00000000000..a36cf01f13b --- /dev/null +++ b/modules/processing/parsers/MACO/AsyncRAT.py @@ -0,0 +1,51 @@ +import os +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.AsyncRAT import extract_config + +def convert_to_MACO(raw_config: dict) -> MACOModel: + if not raw_config: + return + + parsed_result = MACOModel(family="AsyncRAT", other=raw_config) + + # Mutex + parsed_result.mutex.append(raw_config["Mutex"]) + + # Version + parsed_result.version = raw_config["Version"] + + # Was persistence enabled? + if raw_config['Install'] == 'true': + parsed_result.capability_enabled.append('persistence') + else: + parsed_result.capability_disabled.append('persistence') + + # Installation Path + if raw_config.get('Folder'): + parsed_result.paths.append(MACOModel.Path(path=os.path.join(raw_config['Folder'], raw_config['Filename']), + usage="install")) + + # C2s + for i in range(len(raw_config.get('C2s', []))): + parsed_result.http.append(MACOModel.Http(hostname=raw_config["C2s"][i], + port=int(raw_config["Ports"][i]), + usage="c2")) + # Pastebin + if raw_config.get("Pastebin") not in ["null", None]: + # TODO: Is it used to download the C2 information if not embedded? + # Ref: https://www.netskope.com/blog/asyncrat-using-fully-undetected-downloader + parsed_result.http.append(MACOModel.Http(uri=raw_config["Pastebin"], + usage="download")) + + return parsed_result + +class AsyncRAT(Extractor): + author = "kevoreilly" + family = "AsyncRAT" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/AuroraStealer.py b/modules/processing/parsers/MACO/AuroraStealer.py new file mode 100644 index 00000000000..7825c32441a --- /dev/null +++ b/modules/processing/parsers/MACO/AuroraStealer.py @@ -0,0 +1,26 @@ +import os +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.AuroraStealer import extract_config + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="AuroraStealer", other=raw_config) + if raw_config.get('C2'): + # IP related to C2 + parsed_result.http.append(MACOModel.Http(hostname=raw_config['C2'], + usage="c2")) + + return parsed_result + +class AuroraStealer(Extractor): + author = "kevoreilly" + family = "AuroraStealer" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Azorult.py b/modules/processing/parsers/MACO/Azorult.py new file mode 100644 index 00000000000..0fb3db5b07b --- /dev/null +++ b/modules/processing/parsers/MACO/Azorult.py @@ -0,0 +1,20 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Azorult import extract_config, rule_source + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + return MACOModel(family="Azorult", http=[MACOModel.Http(hostname=raw_config["address"])], other=raw_config) + + +class Azorult(Extractor): + author = "kevoreilly" + family = "Azorult" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = rule_source + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/BackOffLoader.py b/modules/processing/parsers/MACO/BackOffLoader.py new file mode 100644 index 00000000000..5266ff34501 --- /dev/null +++ b/modules/processing/parsers/MACO/BackOffLoader.py @@ -0,0 +1,31 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.BackOffLoader import extract_config + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="BackOffLoader", other=raw_config) + + # Version + parsed_result.version = raw_config['Version'] + + # Encryption details + parsed_result.encryption.append(MACOModel.Encryption(algorithm="rc4", + key=raw_config['EncryptionKey'], + seed=raw_config['RC4Seed'])) + for url in raw_config['URLs']: + parsed_result.http.append(MACOModel.Http(url=url)) + + return parsed_result + + +class BackOffLoader(Extractor): + author = "kevoreilly" + family = "BackOffLoader" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/BackOffPOS.py b/modules/processing/parsers/MACO/BackOffPOS.py new file mode 100644 index 00000000000..21817e93676 --- /dev/null +++ b/modules/processing/parsers/MACO/BackOffPOS.py @@ -0,0 +1,31 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.BackOffPOS import extract_config + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="BackOffPOS", other=raw_config) + + # Version + parsed_result.version = raw_config['Version'] + + # Encryption details + parsed_result.encryption.append(MACOModel.Encryption(algorithm="rc4", + key=raw_config['EncryptionKey'], + seed=raw_config['RC4Seed'])) + for url in raw_config['URLs']: + parsed_result.http.append(MACOModel.Http(url=url)) + + return parsed_result + + +class BackOffPOS(Extractor): + author = "kevoreilly" + family = "BackOffPOS" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/BitPaymer.py b/modules/processing/parsers/MACO/BitPaymer.py new file mode 100644 index 00000000000..8786a57a6b0 --- /dev/null +++ b/modules/processing/parsers/MACO/BitPaymer.py @@ -0,0 +1,27 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.BitPaymer import extract_config, rule_source + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="BitPaymer", other=raw_config) + + # Extracted strings + parsed_result.decoded_strings = raw_config["strings"] + + # Encryption details + parsed_result.encryption.append(MACOModel.Encryption(algorithm="rsa", + public_key=raw_config['RSA public key'])) + return parsed_result + +class BitPaymer(Extractor): + author = "kevoreilly" + family = "BitPaymer" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = rule_source + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/BlackDropper.py b/modules/processing/parsers/MACO/BlackDropper.py new file mode 100644 index 00000000000..395992b1c28 --- /dev/null +++ b/modules/processing/parsers/MACO/BlackDropper.py @@ -0,0 +1,28 @@ +import os +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.BlackDropper import extract_config + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="BlackDropper", campaign_id=[raw_config["campaign"]], other=raw_config) + + for dir in raw_config.get("directories", []): + parsed_result.paths.append(MACOModel.Path(path=dir)) + + for url in raw_config.get("urls", []): + parsed_result.http.append(MACOModel.Http(uri=url)) + + return parsed_result + +class BlackDropper(Extractor): + author = "kevoreilly" + family = "BlackDropper" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/BlackNix.py b/modules/processing/parsers/MACO/BlackNix.py new file mode 100644 index 00000000000..4750ec83cdf --- /dev/null +++ b/modules/processing/parsers/MACO/BlackNix.py @@ -0,0 +1,53 @@ +import os +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.BlackNix import extract_config + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="BlackNix", other=raw_config) + + # Mutex + parsed_result.mutex.append(raw_config['Mutex']) + + # Capabilities that are enabled/disabled + # TODO: Review if these are all capabilities set by a boolean flag + for capa in ["Anti Sandboxie", "Kernel Mode Unhooking", "User Mode Unhooking", + "Melt Server", "Offline Screen Capture", "Offline Keylogger", "Copy to ADS", + "Safe Mode Startup", "Inject winlogon.exe", "Active X Run", "Registry Run"]: + if raw_config[capa].lower() == "true": + parsed_result.capability_enabled.append(capa) + else: + parsed_result.capability_disabled.append(capa) + + # Delay Time + parsed_result.sleep_delay = raw_config["Delay Time"] + + # Password + parsed_result.password.append(raw_config["Password"]) + + # C2 Domain + parsed_result.http.append(MACOModel.Http(hostname=raw_config['Domain'], + usage="c2")) + # Registry + parsed_result.registry.append(MACOModel.Registry(key=raw_config["Registry Key"])) + + # Install Path + parsed_result.paths.append(MACOModel.Path(path=os.path.join(raw_config['Install Path'], raw_config["Install Name"]), + usage="install")) + + # Campaign Group/Name + parsed_result.campaign_id = [raw_config["Campaign Name"], raw_config["Campaign Group"]] + return parsed_result + + +class BlackNix(Extractor): + author = "kevoreilly" + family = "BlackNix" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Blister.py b/modules/processing/parsers/MACO/Blister.py new file mode 100644 index 00000000000..e865ab7cfc3 --- /dev/null +++ b/modules/processing/parsers/MACO/Blister.py @@ -0,0 +1,32 @@ +import os +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Blister import extract_config + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="Blister", other=raw_config) + + for capa in ["Persistence", "Sleep after injection"]: + if raw_config[capa]: + parsed_result.capability_enabled.append(capa) + else: + parsed_result.capability_disabled.append(capa) + + # Rabbit encryption + parsed_result.encryption.append(MACOModel.Encryption(algorithm="rabbit", + key=raw_config["Rabbit key"], + iv=raw_config["Rabbit IV"])) + return parsed_result + +class Blister(Extractor): + author = "kevoreilly" + family = "Blister" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/BruteRatel.py b/modules/processing/parsers/MACO/BruteRatel.py new file mode 100644 index 00000000000..4b8edcfbc23 --- /dev/null +++ b/modules/processing/parsers/MACO/BruteRatel.py @@ -0,0 +1,30 @@ +import os +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.BruteRatel import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="BruteRatel", other=raw_config) + + for url in raw_config["C2"]: + for path in raw_config["URI"]: + parsed_result.http.append( + MACOModel.Http(uri=url, user_agent=raw_config["User Agent"], port=raw_config["Port"], path=path, usage="c2") + ) + + return parsed_result + + +class BruteRatel(Extractor): + author = "kevoreilly" + family = "BruteRatel" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/BuerLoader.py b/modules/processing/parsers/MACO/BuerLoader.py new file mode 100644 index 00000000000..f3e9241af0a --- /dev/null +++ b/modules/processing/parsers/MACO/BuerLoader.py @@ -0,0 +1,24 @@ +import os +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.BuerLoader import extract_config + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="BuerLoader", other=raw_config) + + for c2 in raw_config["address"]: + parsed_result.http.append(MACOModel.Http(hostname=c2, usage="c2")) + return parsed_result + +class BuerLoader(Extractor): + author = "kevoreilly" + family = "BuerLoader" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/BumbleBee.py b/modules/processing/parsers/MACO/BumbleBee.py new file mode 100644 index 00000000000..07f693c083f --- /dev/null +++ b/modules/processing/parsers/MACO/BumbleBee.py @@ -0,0 +1,44 @@ +import os +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.BumbleBee import extract_config + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="BumbleBee", other=raw_config) + + # Campaign ID + if raw_config.get("Campaign ID"): + parsed_result.campaign_id.append(raw_config["Campaign ID"]) + + # Botnet ID + if raw_config.get("Botnet ID"): + parsed_result.identifier.append(raw_config["Botnet ID"]) + + # C2s + for c2 in raw_config.get("C2s", []): + parsed_result.http.append(MACOModel.Http(hostname=c2, + usage="c2")) + + # Data + if raw_config.get("Data"): + parsed_result.binaries.append(MACOModel.Binary(data=raw_config["Data"])) + + # RC4 Key + if raw_config.get("RC4 Key"): + parsed_result.encryption.append(MACOModel.Encryption(algorithm="rc4", + key=raw_config["RC4 Key"])) + + return parsed_result + +class BumbleBee(Extractor): + author = "kevoreilly" + family = "BumbleBee" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Carbanak.py b/modules/processing/parsers/MACO/Carbanak.py new file mode 100644 index 00000000000..55ddff8fe5e --- /dev/null +++ b/modules/processing/parsers/MACO/Carbanak.py @@ -0,0 +1,44 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Carbanak import extract_config, rule_source + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="Carbanak", other=raw_config) + + # Version + if raw_config.get("Version"): + parsed_result.version = raw_config["Version"] + + # Unknown strings + for i in [1, 2]: + if raw_config.get(f"Unknown {i}"): + parsed_result.decoded_strings.append(raw_config[f"Unknown {i}"]) + + # C2 + if raw_config.get("C2"): + if isinstance(raw_config["C2"], str): + parsed_result.http.append(MACOModel.Http(hostname=raw_config["C2"], + usage="c2")) + else: + for c2 in raw_config["C2"]: + parsed_result.http.append(MACOModel.Http(hostname=c2, + usage="c2")) + + # Campaign Id + if raw_config.get("Campaign Id"): + parsed_result.campaign_id.append(raw_config["Campaign Id"]) + + return parsed_result + +class Carbanak(Extractor): + author = "kevoreilly" + family = "Carbanak" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = rule_source + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/ChChes.py b/modules/processing/parsers/MACO/ChChes.py new file mode 100644 index 00000000000..464b9f2faa2 --- /dev/null +++ b/modules/processing/parsers/MACO/ChChes.py @@ -0,0 +1,25 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.ChChes import extract_config, rule_source + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="ChChes", other=raw_config) + + # C2 URLs + for c2_url in raw_config.get("c2_url", []): + parsed_result.http.append(MACOModel.Http(uri=c2_url, usage="c2")) + + return parsed_result + +class ChChes(Extractor): + author = "kevoreilly" + family = "ChChes" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = rule_source + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/CobaltStrikeBeacon.py b/modules/processing/parsers/MACO/CobaltStrikeBeacon.py new file mode 100644 index 00000000000..86aa4f29e92 --- /dev/null +++ b/modules/processing/parsers/MACO/CobaltStrikeBeacon.py @@ -0,0 +1,44 @@ +import os +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.CobaltStrikeBeacon import extract_config + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="CobaltStrikeBeacon", other=raw_config) + + clean_config = {k: v for k, v in raw_config.items() if v != "Not Found"} + capabilities = {k[1:]: clean_config.pop(k) for k in list(clean_config.keys()) if clean_config[k] in ["True", "False"]} + + for capability, enabled in capabilities.items(): + if enabled.lower() == "true": + parsed_result.capability_enabled.append(capability) + else: + parsed_result.capability_disabled.append(capability) + + if "C2Server" in clean_config: + host, get_path = clean_config.pop("C2Server").split(',') + port = clean_config.pop("Port") + parsed_result.http.append(MACOModel.Http(hostname=host, port=port, method="GET", path=get_path, usage="c2")) + parsed_result.http.append(MACOModel.Http(hostname=host, port=port, method="POST", path=clean_config.pop("HttpPostUri"), usage="c2")) + + parsed_result.sleep_delay = clean_config.pop("SleepTime") + parsed_result.sleep_delay_jitter = clean_config.pop("Jitter") + + for path_key in ["Spawnto_x86", "Spawnto_x64"]: + if path_key in clean_config: + parsed_result.paths.append(MACOModel.Path(path=clean_config.pop(path_key))) + + return parsed_result + +class CobaltStrikeBeacon(Extractor): + author = "kevoreilly" + family = "CobaltStrikeBeacon" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/CobaltStrikeStager.py b/modules/processing/parsers/MACO/CobaltStrikeStager.py new file mode 100644 index 00000000000..9f88e95f0f8 --- /dev/null +++ b/modules/processing/parsers/MACO/CobaltStrikeStager.py @@ -0,0 +1,22 @@ +import os +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.CobaltStrikeStager import extract_config + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="CobaltStrikeStager", other=raw_config) + + return parsed_result + +class CobaltStrikeStager(Extractor): + author = "kevoreilly" + family = "CobaltStrikeStager" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/DCRat.py b/modules/processing/parsers/MACO/DCRat.py new file mode 100644 index 00000000000..214b3cfb0de --- /dev/null +++ b/modules/processing/parsers/MACO/DCRat.py @@ -0,0 +1,24 @@ +import os + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.DCRat import extract_config + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + # TODO: Assign fields to MACO model + parsed_result = MACOModel(family="DCRat", other=raw_config) + + return parsed_result + +class DCRat(Extractor): + author = "kevoreilly" + family = "DCRat" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/DarkGate.py b/modules/processing/parsers/MACO/DarkGate.py new file mode 100644 index 00000000000..e4697b422da --- /dev/null +++ b/modules/processing/parsers/MACO/DarkGate.py @@ -0,0 +1,49 @@ +import os +from copy import deepcopy + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.DarkGate import extract_config + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="DarkGate", other=raw_config) + + # Create a copy of the raw configuration for parsing + config = deepcopy(raw_config) + + # Go through capabilities/settings that are boolean in nature + for k, v in list(config.items()): + if v not in ['Yes', 'No']: + continue + + if v == 'Yes': + parsed_result.capability_enabled.append(k) + else: + parsed_result.capability_disabled.append(k) + + # Remove key from raw config + config.pop(k) + + # C2 + c2_port = config.pop('c2_port', None) + for c2_url in config.pop("C2", []): + parsed_result.http.append(MACOModel.Http(uri=c2_url, port=c2_port, usage="c2")) + + # Mutex + if config.get('internal_mutex'): + parsed_result.mutex.append(config.pop('internal_mutex')) + + return parsed_result + +class DarkGate(Extractor): + author = "kevoreilly" + family = "DarkGate" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/DoppelPaymer.py b/modules/processing/parsers/MACO/DoppelPaymer.py new file mode 100644 index 00000000000..78bb7e965eb --- /dev/null +++ b/modules/processing/parsers/MACO/DoppelPaymer.py @@ -0,0 +1,27 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.DoppelPaymer import extract_config, rule_source + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="DoppelPaymer") + + if "strings" in raw_config: + parsed_result.decoded_strings = raw_config["strings"] + + if "RSA public key" in raw_config: + parsed_result.encryption.append(MACOModel.Encryption(algorithm="RSA", public_key=raw_config["RSA public key"])) + + return parsed_result + +class DoppelPaymer(Extractor): + author = "kevoreilly" + family = "DoppelPaymer" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = rule_source + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/DridexLoader.py b/modules/processing/parsers/MACO/DridexLoader.py new file mode 100644 index 00000000000..3a165ee5641 --- /dev/null +++ b/modules/processing/parsers/MACO/DridexLoader.py @@ -0,0 +1,30 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.DridexLoader import extract_config, rule_source + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="DridexLoader", other=raw_config) + + for c2_address in raw_config.get("address", []): + parsed_result.http.append(MACOModel.Http(uri=c2_address, usage="c2")) + + if "RC4 key" in raw_config: + parsed_result.encryption.append(MACOModel.Encryption(algorithm="RC4", key=raw_config["RC4 key"])) + + if "Botnet ID" in raw_config: + parsed_result.identifier.append(raw_config["Botnet ID"]) + + return parsed_result + +class DridexLoader(Extractor): + author = "kevoreilly" + family = "DridexLoader" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = rule_source + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Emotet.py b/modules/processing/parsers/MACO/Emotet.py new file mode 100644 index 00000000000..960ce9e0270 --- /dev/null +++ b/modules/processing/parsers/MACO/Emotet.py @@ -0,0 +1,29 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Emotet import extract_config, rule_source + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="Emotet", other=raw_config) + + for c2_address in raw_config.get("address", []): + parsed_result.http.append(MACOModel.Http(uri=c2_address, usage="c2")) + + if "RC4 public key" in raw_config: + parsed_result.encryption.append(MACOModel.Encryption(algorithm="RC4", public_key=raw_config["RSA public key"])) + + parsed_result.other = {k: raw_config[k] for k in raw_config.keys() if k not in ["address", "RSA public key"] } + + return parsed_result + +class Emotet(Extractor): + author = "kevoreilly" + family = "Emotet" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = rule_source + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Enfal.py b/modules/processing/parsers/MACO/Enfal.py new file mode 100644 index 00000000000..5996968b4b3 --- /dev/null +++ b/modules/processing/parsers/MACO/Enfal.py @@ -0,0 +1,22 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Enfal import extract_config, rule_source + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + # TODO: Assign fields to MACO model + parsed_result = MACOModel(family="Enfal", other=raw_config) + + return parsed_result + +class Enfal(Extractor): + author = "kevoreilly" + family = "Enfal" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = rule_source + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/EvilGrab.py b/modules/processing/parsers/MACO/EvilGrab.py new file mode 100644 index 00000000000..69d5e19bd8e --- /dev/null +++ b/modules/processing/parsers/MACO/EvilGrab.py @@ -0,0 +1,37 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.EvilGrab import extract_config, rule_source + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="EvilGrab", other=raw_config) + + if "mutex" in raw_config: + parsed_result.mutex.append(raw_config["mutex"]) + + if "missionid" in raw_config: + parsed_result.campaign_id.append(raw_config["missionid"]) + + if "version" in raw_config: + parsed_result.version = raw_config["version"] + + if "c2_address" in raw_config: + parsed_result.http.append( + parsed_result.Http(uri=raw_config["c2_address"], port=raw_config["port"][0] if "port" in raw_config else None) + ) + + return parsed_result + + +class EvilGrab(Extractor): + author = "kevoreilly" + family = "EvilGrab" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = rule_source + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Fareit.py b/modules/processing/parsers/MACO/Fareit.py new file mode 100644 index 00000000000..3f6ca981c82 --- /dev/null +++ b/modules/processing/parsers/MACO/Fareit.py @@ -0,0 +1,25 @@ +import os +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Fareit import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + # TODO: Assign fields to MACO model + parsed_result = MACOModel(family="Fareit", other=raw_config) + + return parsed_result + + +class Fareit(Extractor): + author = "kevoreilly" + family = "Fareit" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Formbook.py b/modules/processing/parsers/MACO/Formbook.py new file mode 100644 index 00000000000..52fec228f90 --- /dev/null +++ b/modules/processing/parsers/MACO/Formbook.py @@ -0,0 +1,30 @@ +import os +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Formbook import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="Formbook", other=raw_config) + + if "C2" in raw_config: + parsed_result.http.append(MACOModel.Http(uri=raw_config["C2"], usage="c2")) + + for decoy in raw_config.get("Decoys", []): + parsed_result.http.append(MACOModel.Http(uri=decoy, usage="decoy")) + + return parsed_result + + +class Formbook(Extractor): + author = "kevoreilly" + family = "Formbook" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Greame.py b/modules/processing/parsers/MACO/Greame.py new file mode 100644 index 00000000000..c2c82bb5de7 --- /dev/null +++ b/modules/processing/parsers/MACO/Greame.py @@ -0,0 +1,22 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Greame import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="Greame", other=raw_config) + + return parsed_result + + +class Greame(Extractor): + author = "kevoreilly" + family = "Greame" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/GuLoader.py b/modules/processing/parsers/MACO/GuLoader.py new file mode 100644 index 00000000000..d6cba02a4ee --- /dev/null +++ b/modules/processing/parsers/MACO/GuLoader.py @@ -0,0 +1,27 @@ +import os +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.GuLoader import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="GuLoader", other=raw_config) + + for url in raw_config.get("URLs", []): + parsed_result.http.append(MACOModel.Http(uri=url, usage="download")) + + return parsed_result + + +class GuLoader(Extractor): + author = "kevoreilly" + family = "GuLoader" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], "data/yara/CAPE/Guloader.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Hancitor.py b/modules/processing/parsers/MACO/Hancitor.py new file mode 100644 index 00000000000..8d45cb53ae6 --- /dev/null +++ b/modules/processing/parsers/MACO/Hancitor.py @@ -0,0 +1,30 @@ +import os +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Hancitor import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="Hancitor", other=raw_config) + + for url in raw_config.get("address", []): + parsed_result.http.append(MACOModel.Http(uri=url, usage="c2")) + + if "Build ID" in raw_config: + parsed_result.identifier.append(raw_config["Build ID"]) + + return parsed_result + + +class Hancitor(Extractor): + author = "kevoreilly" + family = "Hancitor" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/HttpBrowser.py b/modules/processing/parsers/MACO/HttpBrowser.py new file mode 100644 index 00000000000..298997d5f81 --- /dev/null +++ b/modules/processing/parsers/MACO/HttpBrowser.py @@ -0,0 +1,34 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.HttpBrowser import extract_config, rule_source + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="HttpBrowser", other=raw_config) + + port = raw_config["port"][0] if "port" in raw_config else None + + if "c2_address" in raw_config: + parsed_result.http.append(MACOModel.Http(uri=raw_config["c2_address"], port=port, usage="c2")) + + if "filepath" in raw_config: + parsed_result.paths.append(MACOModel.Path(path=raw_config["filepath"])) + + if "injectionprocess" in raw_config: + parsed_result["injectionprocess"] = raw_config["injectionprocess"] + + return parsed_result + + +class HttpBrowser(Extractor): + author = "kevoreilly" + family = "HttpBrowser" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = rule_source + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/IcedID.py b/modules/processing/parsers/MACO/IcedID.py new file mode 100644 index 00000000000..1b355f78867 --- /dev/null +++ b/modules/processing/parsers/MACO/IcedID.py @@ -0,0 +1,23 @@ +import os + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.IcedID import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + return MACOModel(**raw_config) + + +class IcedID(Extractor): + author = "kevoreilly" + family = "IcedID" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/IcedIDLoader.py b/modules/processing/parsers/MACO/IcedIDLoader.py new file mode 100644 index 00000000000..ae85fbf8083 --- /dev/null +++ b/modules/processing/parsers/MACO/IcedIDLoader.py @@ -0,0 +1,31 @@ +import os + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.IcedIDLoader import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="IcedIDLoader", other=raw_config) + + if "C2" in raw_config: + parsed_result.http.append(MACOModel.Http(hostname=raw_config["C2"], usage="c2")) + + if "Campaign" in raw_config: + parsed_result.campaign_id.append(str(raw_config["Campaign"])) + + return parsed_result + + +class IcedIDLoader(Extractor): + author = "kevoreilly" + family = "IcedIDLoader" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/KoiLoader.py b/modules/processing/parsers/MACO/KoiLoader.py new file mode 100644 index 00000000000..3841f4342fe --- /dev/null +++ b/modules/processing/parsers/MACO/KoiLoader.py @@ -0,0 +1,26 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.KoiLoader import extract_config, RULE_SOURCE + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="KoiLoader", other=raw_config) + + for c2_url in raw_config.get("C2", []): + parsed_result.http.append(MACOModel.Http(uri=c2_url, usage="c2")) + + return parsed_result + + +class KoiLoader(Extractor): + author = "kevoreilly" + family = "KoiLoader" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = RULE_SOURCE + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Latrodectus.py b/modules/processing/parsers/MACO/Latrodectus.py new file mode 100644 index 00000000000..d0483106858 --- /dev/null +++ b/modules/processing/parsers/MACO/Latrodectus.py @@ -0,0 +1,43 @@ +import os + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Latrodectus import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="Latrodectus", other=raw_config) + + for c2_url in raw_config.get("C2", []): + parsed_result.http.append(MACOModel.Http(uri=c2_url, usage="c2")) + + if "Group name" in raw_config: + parsed_result.identifier.append(raw_config["Group name"]) + + if "Campaign ID" in raw_config: + parsed_result.campaign_id.append(str(raw_config["Campaign ID"])) + + if "Version" in raw_config: + parsed_result.version = raw_config["Version"] + + if "RC4 key" in raw_config: + parsed_result.encryption.append(MACOModel.Encryption(algorithm="RC4", key=raw_config["RC4 key"])) + + if "Strings" in raw_config: + parsed_result.decoded_strings = raw_config["Strings"] + + return parsed_result + + +class Latrodectus(Extractor): + author = "kevoreilly" + family = "Latrodectus" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/LokiBot.py b/modules/processing/parsers/MACO/LokiBot.py new file mode 100644 index 00000000000..6a4f3196acf --- /dev/null +++ b/modules/processing/parsers/MACO/LokiBot.py @@ -0,0 +1,27 @@ +import os +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.LokiBot import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="LokiBot", other=raw_config) + + for address in raw_config.get("address", []): + parsed_result.http.append(MACOModel.Http(uri=address)) + + return parsed_result + + +class LokiBot(Extractor): + author = "kevoreilly" + family = "LokiBot" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Lumma.py b/modules/processing/parsers/MACO/Lumma.py new file mode 100644 index 00000000000..16c8a37c056 --- /dev/null +++ b/modules/processing/parsers/MACO/Lumma.py @@ -0,0 +1,27 @@ +import os +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Lumma import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="Lumma", other=raw_config) + + for address in raw_config.get("C2", []): + parsed_result.http.append(MACOModel.Http(hostname=address, usage="c2")) + + return parsed_result + + +class Lumma(Extractor): + author = "kevoreilly" + family = "Lumma" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/NanoCore.py b/modules/processing/parsers/MACO/NanoCore.py new file mode 100644 index 00000000000..05c17620ee4 --- /dev/null +++ b/modules/processing/parsers/MACO/NanoCore.py @@ -0,0 +1,44 @@ +from copy import deepcopy + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.NanoCore import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + + parsed_result = MACOModel(family="NanoCore", other=raw_config) + + config_copy = deepcopy(raw_config) + capabilities = {k: config_copy.pop(k) for k in list(config_copy.keys()) if config_copy[k] in ["True", "False"]} + + if "Version" in config_copy: + parsed_result.version = config_copy.pop("Version") + + if "Mutex" in config_copy: + parsed_result.mutex.append(config_copy.pop("Mutex")) + + for capability, enabled in capabilities.items(): + if enabled.lower() == "true": + parsed_result.capability_enabled.append(capability) + else: + parsed_result.capability_disabled.append(capability) + + for address in config_copy.pop("cncs", []): + host, port = address.split(':') + parsed_result.http.append(MACOModel.Http(hostname=host, port=port, usage="c2")) + + return parsed_result + + +class NanoCore(Extractor): + author = "kevoreilly" + family = "NanoCore" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Nighthawk.py b/modules/processing/parsers/MACO/Nighthawk.py new file mode 100644 index 00000000000..4d45e8de950 --- /dev/null +++ b/modules/processing/parsers/MACO/Nighthawk.py @@ -0,0 +1,26 @@ +import os + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Nighthawk import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + + parsed_result = MACOModel(family="Nighthawk", other=raw_config) + + return parsed_result + + +class Nighthawk(Extractor): + author = "kevoreilly" + family = "Nighthawk" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Njrat.py b/modules/processing/parsers/MACO/Njrat.py new file mode 100644 index 00000000000..404bf100599 --- /dev/null +++ b/modules/processing/parsers/MACO/Njrat.py @@ -0,0 +1,34 @@ + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Njrat import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + + parsed_result = MACOModel(family="Njrat", other=raw_config) + + if "version" in raw_config: + parsed_result.version = raw_config["version"] + + if "campaign_id" in raw_config: + parsed_result.campaign_id.append(raw_config["campaign_id"]) + + for c2 in raw_config.get("cncs", []): + host, port = c2.split(':') + parsed_result.http.append(MACOModel.Http(hostname=host, port=port, usage="c2")) + + return parsed_result + + +class Njrat(Extractor): + author = "kevoreilly" + family = "Njrat" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Oyster.py b/modules/processing/parsers/MACO/Oyster.py new file mode 100644 index 00000000000..7ff072ae745 --- /dev/null +++ b/modules/processing/parsers/MACO/Oyster.py @@ -0,0 +1,33 @@ +import os +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Oyster import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="Oyster", other=raw_config) + + for address in raw_config.get("C2", []): + parsed_result.http.append(MACOModel.Http(uri=address, usage="c2")) + + if "Dll Version" in raw_config: + parsed_result.version = raw_config["Dll Version"] + + if "Strings" in raw_config: + parsed_result.decoded_strings = raw_config["Strings"] + + return parsed_result + + +class Oyster(Extractor): + author = "kevoreilly" + family = "Oyster" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Pandora.py b/modules/processing/parsers/MACO/Pandora.py new file mode 100644 index 00000000000..cd745f75750 --- /dev/null +++ b/modules/processing/parsers/MACO/Pandora.py @@ -0,0 +1,49 @@ +import os +from copy import deepcopy + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Pandora import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + config_copy = deepcopy(raw_config) + parsed_result = MACOModel( + family="Pandora", + mutex=[config_copy.pop("Mutex")], + campaign_id=[config_copy.pop("Campaign ID")], + version=config_copy.pop("Version"), + http=[dict(hostname=config_copy.pop("Domain"), port=config_copy.pop("Port"), password=config_copy.pop("Password"))], + other=raw_config + ) + + parsed_result.paths.append( + MACOModel.Path(path=os.path.join(config_copy.pop("Install Path"), config_copy.pop("Install Name")), usage="install") + ) + + parsed_result.registry.append(MACOModel.Registry(key=config_copy.pop("HKCU Key"))) + parsed_result.registry.append(MACOModel.Registry(key=config_copy.pop("ActiveX Key"))) + + for field in list(config_copy.keys()): + # TODO: Unsure what's the value of the remaining fields + if config_copy[field].lower() in ["true", "false"]: + enabled = config_copy.pop(field).lower() == "true" + if enabled: + parsed_result.capability_enabled.append(field) + else: + parsed_result.capability_disabled.append(field) + + return parsed_result + + +class Pandora(Extractor): + author = "kevoreilly" + family = "Pandora" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/PhemedroneStealer.py b/modules/processing/parsers/MACO/PhemedroneStealer.py new file mode 100644 index 00000000000..b7797c7edb8 --- /dev/null +++ b/modules/processing/parsers/MACO/PhemedroneStealer.py @@ -0,0 +1,22 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.PhemedroneStealer import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="PhemedroneStealer", other=raw_config) + + return parsed_result + + +class PhemedroneStealer(Extractor): + author = "kevoreilly" + family = "PhemedroneStealer" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/PikaBot.py b/modules/processing/parsers/MACO/PikaBot.py new file mode 100644 index 00000000000..ae8a423fb54 --- /dev/null +++ b/modules/processing/parsers/MACO/PikaBot.py @@ -0,0 +1,34 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.PikaBot import extract_config, rule_source + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="PikaBot", other=raw_config) + + if "C2" in raw_config: + [parsed_result.http.append(MACOModel.Http(uri=c2, usage="c2")) for c2 in raw_config["C2"]] + parsed_result.binaries.append(MACOModel.Binary(datatype="payload", data=raw_config["Powershell"])) + elif "C2s" in raw_config: + parsed_result.version = raw_config["Version"] + parsed_result.campaign_id.append(raw_config["Campaign Name"]) + parsed_result.registry.append(MACOModel.Registry(key=raw_config["Registry Key"])) + for c2 in raw_config["C2s"]: + host, port = c2.split(':') + parsed_result.http.append(MACOModel.Http(hostname=host, port=port, user_agent=raw_config["User Agent"])) + + return parsed_result + + +class PikaBot(Extractor): + author = "kevoreilly" + family = "PikaBot" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = rule_source + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/PlugX.py b/modules/processing/parsers/MACO/PlugX.py new file mode 100644 index 00000000000..87239f9e115 --- /dev/null +++ b/modules/processing/parsers/MACO/PlugX.py @@ -0,0 +1,22 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.PlugX import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="PlugX", other=raw_config) + + return parsed_result + + +class PlugX(Extractor): + author = "kevoreilly" + family = "PlugX" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/PoisonIvy.py b/modules/processing/parsers/MACO/PoisonIvy.py new file mode 100644 index 00000000000..079f526aac5 --- /dev/null +++ b/modules/processing/parsers/MACO/PoisonIvy.py @@ -0,0 +1,44 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.PoisonIvy import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="PoisonIvy", other=raw_config) + + if "Campaign ID" in raw_config: + parsed_result.campaign_id.append(raw_config["Campaign ID"]) + if "Group ID" in raw_config: + parsed_result.identifier.append(raw_config["Group ID"]) + if "Domains" in raw_config: + for domain_port in raw_config["Domains"].split('|'): + host, port = domain_port.split(':') + parsed_result.http.append(MACOModel.Http(hostname=host, port=port)) + if "Password" in raw_config: + parsed_result.password.append(raw_config["Password"]) + if "Mutex" in raw_config: + parsed_result.mutex.append(raw_config["Mutex"]) + + for field in list(raw_config.keys()): + value = raw_config[field] + if value.lower() == "true": + parsed_result.capability_enabled.append(field) + elif value.lower() == "false": + parsed_result.capability_disabled.append(field) + + return parsed_result + + +class PoisonIvy(Extractor): + author = "kevoreilly" + family = "PoisonIvy" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + + def run(self, stream, matches): + output = extract_config(stream.read()) + if output: + return convert_to_MACO(output[0]) diff --git a/modules/processing/parsers/MACO/Punisher.py b/modules/processing/parsers/MACO/Punisher.py new file mode 100644 index 00000000000..2f32dccb34c --- /dev/null +++ b/modules/processing/parsers/MACO/Punisher.py @@ -0,0 +1,45 @@ +import os +from copy import deepcopy + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Punisher import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + config_copy = deepcopy(raw_config) + parsed_result = MACOModel( + family="Punisher", + campaign_id=config_copy["Campaign Name"], + password=[config_copy["Password"]], + registry=[MACOModel.Registry(key=config_copy["Registry Key"])], + paths=[MACOModel.Path(path=os.path.join(config_copy["Install Path"], config_copy["Install Name"]))], + http=[MACOModel.Http(hostname=config_copy["Domain"], port=config_copy["Port"])], + other=raw_config + ) + + for field in raw_config.keys(): + value = raw_config[field] + if value.lower() == "true": + parsed_result.capability_enabled.append(field) + elif value.lower() == "false": + parsed_result.capability_disabled.append(field) + else: + parsed_result.other[field] = value + + return parsed_result + + +class Punisher(Extractor): + author = "kevoreilly" + family = "Punisher" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + + def run(self, stream, matches): + output = extract_config(stream.read()) + if output: + return convert_to_MACO(output[0]) diff --git a/modules/processing/parsers/MACO/QakBot.py b/modules/processing/parsers/MACO/QakBot.py new file mode 100644 index 00000000000..c8f83926cb0 --- /dev/null +++ b/modules/processing/parsers/MACO/QakBot.py @@ -0,0 +1,27 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.QakBot import extract_config, rule_source + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="QakBot", other=raw_config) + + for address in raw_config.get("address", []) + raw_config.get("C2s", []): + host, port = address.split(':') + parsed_result.http.append(MACOModel.Http(hostname=host, port=port, usage="c2")) + + return parsed_result + + +class QakBot(Extractor): + author = "kevoreilly" + family = "QakBot" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = rule_source + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/QuasarRAT.py b/modules/processing/parsers/MACO/QuasarRAT.py new file mode 100644 index 00000000000..50301847706 --- /dev/null +++ b/modules/processing/parsers/MACO/QuasarRAT.py @@ -0,0 +1,25 @@ +import os + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.QuasarRAT import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="QuasarRAT", other=raw_config) + + return parsed_result + + +class QuasarRAT(Extractor): + author = "kevoreilly" + family = "QuasarRAT" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Quickbind.py b/modules/processing/parsers/MACO/Quickbind.py new file mode 100644 index 00000000000..49f8580320b --- /dev/null +++ b/modules/processing/parsers/MACO/Quickbind.py @@ -0,0 +1,34 @@ +import os + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Quickbind import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="Quickbind", other=raw_config) + + if "Mutex" in raw_config: + parsed_result.mutex = raw_config["Mutex"] + + for c2 in raw_config.get("C2", []): + parsed_result.http.append(MACOModel.Http(hostname=c2, usage="c2")) + + if "Encryption Key" in raw_config: + parsed_result.encryption.append(MACOModel.Encryption(key=raw_config["Encryption Key"])) + + return parsed_result + + +class Quickbind(Extractor): + author = "kevoreilly" + family = "Quickbind" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/RCSession.py b/modules/processing/parsers/MACO/RCSession.py new file mode 100644 index 00000000000..451d12b78ed --- /dev/null +++ b/modules/processing/parsers/MACO/RCSession.py @@ -0,0 +1,43 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.RCSession import extract_config, rule_source + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="RCSession", other=raw_config) + + for address in raw_config.get("c2_address", []): + parsed_result.http.append(MACOModel.Http(hostname=address, usage="c2")) + + if "directory" in raw_config: + parsed_result.paths.append(MACOModel.Path(path=raw_config["directory"], usage="install")) + + service = {} + + if "servicename" in raw_config: + service["name"] = raw_config["servicename"] + if "servicedisplayname" in raw_config: + service["display_name"] = raw_config["servicedisplayname"] + if "servicedescription" in raw_config: + service["description"] = raw_config["servicedescription"] + if "filename" in raw_config: + service["dll"] = raw_config["filename"] + + if service: + parsed_result.service.append(MACOModel.Service(**service)) + + return parsed_result + + +class RCSession(Extractor): + author = "kevoreilly" + family = "RCSession" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = rule_source + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/REvil.py b/modules/processing/parsers/MACO/REvil.py new file mode 100644 index 00000000000..d6268c2ef03 --- /dev/null +++ b/modules/processing/parsers/MACO/REvil.py @@ -0,0 +1,22 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.REvil import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="REvil", other=raw_config) + + return parsed_result + + +class REvil(Extractor): + author = "kevoreilly" + family = "REvil" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/RedLeaf.py b/modules/processing/parsers/MACO/RedLeaf.py new file mode 100644 index 00000000000..82537136a05 --- /dev/null +++ b/modules/processing/parsers/MACO/RedLeaf.py @@ -0,0 +1,35 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.RedLeaf import extract_config, rule_source + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="RedLeaf", other=raw_config) + + for address in raw_config.get("c2_address", []): + parsed_result.http.append(MACOModel.Http(hostname=address, usage="c2")) + + if "missionid" in raw_config: + parsed_result.campaign_id.append(raw_config["missionid"]) + + if "mutex" in raw_config: + parsed_result.mutex.append(raw_config["mutex"]) + + if "key" in raw_config: + parsed_result.other["key"] = raw_config["key"] + + return parsed_result + + +class RedLeaf(Extractor): + author = "kevoreilly" + family = "RedLeaf" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = rule_source + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/RedLine.py b/modules/processing/parsers/MACO/RedLine.py new file mode 100644 index 00000000000..d150529ca91 --- /dev/null +++ b/modules/processing/parsers/MACO/RedLine.py @@ -0,0 +1,26 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.RedLine import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="RedLine", other=raw_config) + + if "C2" in raw_config: + host, port = raw_config["C2"].split(':') + parsed_result.http.append(MACOModel.Http(hostname=host, port=port, usage="c2")) + + return parsed_result + + +class RedLine(Extractor): + author = "kevoreilly" + family = "RedLine" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Remcos.py b/modules/processing/parsers/MACO/Remcos.py new file mode 100644 index 00000000000..6bd750006c9 --- /dev/null +++ b/modules/processing/parsers/MACO/Remcos.py @@ -0,0 +1,25 @@ +import os + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Remcos import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="Remcos", other=raw_config) + + return parsed_result + + +class Remcos(Extractor): + author = "kevoreilly" + family = "Remcos" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Retefe.py b/modules/processing/parsers/MACO/Retefe.py new file mode 100644 index 00000000000..6eb25cd834b --- /dev/null +++ b/modules/processing/parsers/MACO/Retefe.py @@ -0,0 +1,23 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Retefe import extract_config, rule_source + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="Retefe", other=raw_config) + + return parsed_result + + +class Retefe(Extractor): + author = "kevoreilly" + family = "Retefe" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = rule_source + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Rhadamanthys.py b/modules/processing/parsers/MACO/Rhadamanthys.py new file mode 100644 index 00000000000..05053168d03 --- /dev/null +++ b/modules/processing/parsers/MACO/Rhadamanthys.py @@ -0,0 +1,26 @@ +import os + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Rhadamanthys import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="Rhadamanthys", other=raw_config) + parsed_result.http = [MACOModel.Http(hostname=raw_config["C2"], usage="c2")] + + return parsed_result + + +class Rhadamanthys(Extractor): + author = "kevoreilly" + family = "Rhadamanthys" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Rozena.py b/modules/processing/parsers/MACO/Rozena.py new file mode 100644 index 00000000000..29a5e676d3a --- /dev/null +++ b/modules/processing/parsers/MACO/Rozena.py @@ -0,0 +1,26 @@ +import os + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Rozena import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="Rozena", other=raw_config) + parsed_result.http = [MACOModel.Http(hostname=raw_config["C2"], port=raw_config["Port"], usage="c2")] + + return parsed_result + + +class Rozena(Extractor): + author = "kevoreilly" + family = "Rozena" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/SmallNet.py b/modules/processing/parsers/MACO/SmallNet.py new file mode 100644 index 00000000000..8c3e5018fda --- /dev/null +++ b/modules/processing/parsers/MACO/SmallNet.py @@ -0,0 +1,26 @@ + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.SmallNet import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="SmallNet", other=raw_config) + + return parsed_result + + +class SmallNet(Extractor): + author = "kevoreilly" + family = "SmallNet" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + + def run(self, stream, matches): + output = extract_config(stream.read()) + if output: + config = output if isinstance(output, dict) else output[0] + return convert_to_MACO(config) diff --git a/modules/processing/parsers/MACO/SmokeLoader.py b/modules/processing/parsers/MACO/SmokeLoader.py new file mode 100644 index 00000000000..bdcc63768e2 --- /dev/null +++ b/modules/processing/parsers/MACO/SmokeLoader.py @@ -0,0 +1,24 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.SmokeLoader import extract_config, rule_source + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="SmokeLoader", other=raw_config, + http=[MACOModel.Http(uri=c2, usage="c2") for c2 in raw_config["C2s"]]) + + return parsed_result + + +class SmokeLoader(Extractor): + author = "kevoreilly" + family = "SmokeLoader" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = rule_source + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Socks5Systemz.py b/modules/processing/parsers/MACO/Socks5Systemz.py new file mode 100644 index 00000000000..7d3c2c0c6fc --- /dev/null +++ b/modules/processing/parsers/MACO/Socks5Systemz.py @@ -0,0 +1,30 @@ +import os + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Socks5Systemz import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel( + family="Socks5Systemz", + other=raw_config, + http=[MACOModel.Http(hostname=c2, usage="c2") for c2 in raw_config.get("C2s", [])] + + [MACOModel.Http(hostname=decoy, usage="decoy") for decoy in raw_config.get("Dummy domain", [])], + ) + + return parsed_result + + +class Socks5Systemz(Extractor): + author = "kevoreilly" + family = "Socks5Systemz" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/SparkRAT.py b/modules/processing/parsers/MACO/SparkRAT.py new file mode 100644 index 00000000000..5140d3e2c38 --- /dev/null +++ b/modules/processing/parsers/MACO/SparkRAT.py @@ -0,0 +1,31 @@ +import os + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.SparkRAT import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="SparkRAT", other=raw_config) + + url = f"http{'s' if raw_config['secure'] else ''}://{raw_config['host']}:{raw_config['port']}{raw_config['path']}" + + parsed_result.http.append(MACOModel.Http(uri=url, hostname=raw_config["host"], port=raw_config["port"], path=raw_config["path"])) + + parsed_result.identifier.append(raw_config["uuid"]) + + return parsed_result + + +class SparkRAT(Extractor): + author = "kevoreilly" + family = "SparkRAT" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/SquirrelWaffle.py b/modules/processing/parsers/MACO/SquirrelWaffle.py new file mode 100644 index 00000000000..8bede861803 --- /dev/null +++ b/modules/processing/parsers/MACO/SquirrelWaffle.py @@ -0,0 +1,24 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.SquirrelWaffle import extract_config, rule_source + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="SquirrelWaffle", other=raw_config, + http=[MACOModel.Http(uri=c2, usage="c2") for c2 in raw_config["URLs"]]) + + return parsed_result + + +class SquirrelWaffle(Extractor): + author = "kevoreilly" + family = "SquirrelWaffle" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = rule_source + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Stealc.py b/modules/processing/parsers/MACO/Stealc.py new file mode 100644 index 00000000000..91916f77975 --- /dev/null +++ b/modules/processing/parsers/MACO/Stealc.py @@ -0,0 +1,24 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Stealc import extract_config, RULE_SOURCE + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="Stealc", other=raw_config, + http=[MACOModel.Http(uri=c2, usage="c2") for c2 in raw_config["C2"]]) + + return parsed_result + + +class Stealc(Extractor): + author = "kevoreilly" + family = "Stealc" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = RULE_SOURCE + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Strrat.py b/modules/processing/parsers/MACO/Strrat.py new file mode 100644 index 00000000000..8c76bc83618 --- /dev/null +++ b/modules/processing/parsers/MACO/Strrat.py @@ -0,0 +1,22 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Strrat import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="Strrat", other=raw_config) + + return parsed_result + + +class Strrat(Extractor): + author = "kevoreilly" + family = "Strrat" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/TSCookie.py b/modules/processing/parsers/MACO/TSCookie.py new file mode 100644 index 00000000000..a71fe849a82 --- /dev/null +++ b/modules/processing/parsers/MACO/TSCookie.py @@ -0,0 +1,25 @@ +import os + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.TSCookie import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="TSCookie", other=raw_config) + + return parsed_result + + +class TSCookie(Extractor): + author = "kevoreilly" + family = "TSCookie" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/TrickBot.py b/modules/processing/parsers/MACO/TrickBot.py new file mode 100644 index 00000000000..e227e38e76d --- /dev/null +++ b/modules/processing/parsers/MACO/TrickBot.py @@ -0,0 +1,23 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.TrickBot import extract_config, rule_source + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="TrickBot", other=raw_config) + + return parsed_result + + +class TrickBot(Extractor): + author = "kevoreilly" + family = "TrickBot" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = rule_source + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/UrsnifV3.py b/modules/processing/parsers/MACO/UrsnifV3.py new file mode 100644 index 00000000000..999034bf8e6 --- /dev/null +++ b/modules/processing/parsers/MACO/UrsnifV3.py @@ -0,0 +1,25 @@ +import os + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.UrsnifV3 import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="UrsnifV3", other=raw_config) + + return parsed_result + + +class UrsnifV3(Extractor): + author = "kevoreilly" + family = "UrsnifV3" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/VenomRat.py b/modules/processing/parsers/MACO/VenomRat.py new file mode 100644 index 00000000000..406a49b9aa4 --- /dev/null +++ b/modules/processing/parsers/MACO/VenomRat.py @@ -0,0 +1,23 @@ + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.VenomRAT import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="VenomRAT", other=raw_config) + + return parsed_result + + +class VenomRAT(Extractor): + author = "kevoreilly" + family = "VenomRAT" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/WarzoneRAT.py b/modules/processing/parsers/MACO/WarzoneRAT.py new file mode 100644 index 00000000000..548885ceada --- /dev/null +++ b/modules/processing/parsers/MACO/WarzoneRAT.py @@ -0,0 +1,27 @@ + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.WarzoneRAT import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="WarzoneRAT", other=raw_config) + + if "C2" in raw_config: + host, port = raw_config["C2"].split(':') + parsed_result.http.append(MACOModel.Http(hostname=host, port=port, usage="c2")) + + return parsed_result + + +class WarzoneRAT(Extractor): + author = "kevoreilly" + family = "WarzoneRAT" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/XWorm.py b/modules/processing/parsers/MACO/XWorm.py new file mode 100644 index 00000000000..27abc58c9c2 --- /dev/null +++ b/modules/processing/parsers/MACO/XWorm.py @@ -0,0 +1,25 @@ +import os + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.XWorm import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="XWorm", other=raw_config) + + return parsed_result + + +class XWorm(Extractor): + author = "kevoreilly" + family = "XWorm" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/XenoRAT.py b/modules/processing/parsers/MACO/XenoRAT.py new file mode 100644 index 00000000000..d4a93cc32e7 --- /dev/null +++ b/modules/processing/parsers/MACO/XenoRAT.py @@ -0,0 +1,25 @@ +import os + +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.XenoRAT import extract_config + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="XenoRAT", other=raw_config) + + return parsed_result + + +class XenoRAT(Extractor): + author = "kevoreilly" + family = "XenoRAT" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Zloader.py b/modules/processing/parsers/MACO/Zloader.py new file mode 100644 index 00000000000..43b12c15f92 --- /dev/null +++ b/modules/processing/parsers/MACO/Zloader.py @@ -0,0 +1,32 @@ +from maco.model import ExtractorModel as MACOModel +from maco.extractor import Extractor +from modules.processing.parsers.CAPE.Zloader import extract_config, rule_source + + +def convert_to_MACO(raw_config: dict): + if not raw_config: + return None + + parsed_result = MACOModel(family="Zloader", other=raw_config) + + if "Campaign ID" in raw_config: + parsed_result.campaign_id = [raw_config["Campaign ID"]] + + if "RC4 key" in raw_config: + parsed_result.encryption = [MACOModel.Encryption(algorithm="RC4", key=raw_config[:"RC4 key"])] + + for address in raw_config.get("address", []): + parsed_result.http.append(MACOModel.Http(uri=address)) + + return parsed_result + + +class Zloader(Extractor): + author = "kevoreilly" + family = "Zloader" + last_modified = "2024-10-26" + sharing = "TLP:CLEAR" + yara_rule = rule_source + + def run(self, stream, matches): + return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/__init__.py b/modules/processing/parsers/MACO/__init__.py new file mode 100644 index 00000000000..f39e5e8d683 --- /dev/null +++ b/modules/processing/parsers/MACO/__init__.py @@ -0,0 +1 @@ +# Init diff --git a/modules/processing/parsers/MACO/test_maco.py b/modules/processing/parsers/MACO/test_maco.py new file mode 100644 index 00000000000..b294bd5ba5e --- /dev/null +++ b/modules/processing/parsers/MACO/test_maco.py @@ -0,0 +1,9 @@ +from maco.extractor import Extractor + +class Test(Extractor): + author = "test" + family = "test" + last_modified = "2024-10-20" + + def run(self, stream, matches): + pass diff --git a/poetry.lock b/poetry.lock index 5450ebc85d2..c47b98b49da 100644 --- a/poetry.lock +++ b/poetry.lock @@ -275,6 +275,19 @@ files = [ {file = "capstone-4.0.2.tar.gz", hash = "sha256:2842913092c9b69fd903744bc1b87488e1451625460baac173056e1808ec1c66"}, ] +[[package]] +name = "cart" +version = "1.2.2" +description = "CaRT Neutering format" +optional = false +python-versions = ">=3.6" +files = [ + {file = "cart-1.2.2-py2.py3-none-any.whl", hash = "sha256:c111398038683c85d3edcadaa3b16183461907bdb613e05cbb60d381f2886309"}, +] + +[package.dependencies] +pycryptodome = "*" + [[package]] name = "certifi" version = "2024.7.4" @@ -1579,6 +1592,23 @@ files = [ {file = "LnkParse3-1.2.0.tar.gz", hash = "sha256:102b2aba6c2896127cb719f814a8579210368f9277fd5ec0d0151fe070166e1d"}, ] +[[package]] +name = "maco" +version = "1.1.8" +description = "" +optional = false +python-versions = ">=3.8" +files = [ + {file = "maco-1.1.8-py3-none-any.whl", hash = "sha256:ab2d1d8e846c0abc455d16f718ba71dda5492ddc22533484156090aa4439fb06"}, + {file = "maco-1.1.8.tar.gz", hash = "sha256:e0985efdf645d3c55e3d4d4f2bf40b8d2260fa4add608bb8e8fdefba0500cb4a"}, +] + +[package.dependencies] +cart = "*" +pydantic = ">=2.0.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +yara-python = "*" + [[package]] name = "mako" version = "1.3.5" @@ -2452,6 +2482,47 @@ files = [ {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, ] +[[package]] +name = "pycryptodome" +version = "3.21.0" +description = "Cryptographic library for Python" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "pycryptodome-3.21.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:dad9bf36eda068e89059d1f07408e397856be9511d7113ea4b586642a429a4fd"}, + {file = "pycryptodome-3.21.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:a1752eca64c60852f38bb29e2c86fca30d7672c024128ef5d70cc15868fa10f4"}, + {file = "pycryptodome-3.21.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:3ba4cc304eac4d4d458f508d4955a88ba25026890e8abff9b60404f76a62c55e"}, + {file = "pycryptodome-3.21.0-cp27-cp27m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7cb087b8612c8a1a14cf37dd754685be9a8d9869bed2ffaaceb04850a8aeef7e"}, + {file = "pycryptodome-3.21.0-cp27-cp27m-musllinux_1_1_aarch64.whl", hash = "sha256:26412b21df30b2861424a6c6d5b1d8ca8107612a4cfa4d0183e71c5d200fb34a"}, + {file = "pycryptodome-3.21.0-cp27-cp27m-win32.whl", hash = "sha256:cc2269ab4bce40b027b49663d61d816903a4bd90ad88cb99ed561aadb3888dd3"}, + {file = "pycryptodome-3.21.0-cp27-cp27m-win_amd64.whl", hash = "sha256:0fa0a05a6a697ccbf2a12cec3d6d2650b50881899b845fac6e87416f8cb7e87d"}, + {file = "pycryptodome-3.21.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:6cce52e196a5f1d6797ff7946cdff2038d3b5f0aba4a43cb6bf46b575fd1b5bb"}, + {file = "pycryptodome-3.21.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:a915597ffccabe902e7090e199a7bf7a381c5506a747d5e9d27ba55197a2c568"}, + {file = "pycryptodome-3.21.0-cp27-cp27mu-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4e74c522d630766b03a836c15bff77cb657c5fdf098abf8b1ada2aebc7d0819"}, + {file = "pycryptodome-3.21.0-cp27-cp27mu-musllinux_1_1_aarch64.whl", hash = "sha256:a3804675283f4764a02db05f5191eb8fec2bb6ca34d466167fc78a5f05bbe6b3"}, + {file = "pycryptodome-3.21.0-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:2480ec2c72438430da9f601ebc12c518c093c13111a5c1644c82cdfc2e50b1e4"}, + {file = "pycryptodome-3.21.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:de18954104667f565e2fbb4783b56667f30fb49c4d79b346f52a29cb198d5b6b"}, + {file = "pycryptodome-3.21.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2de4b7263a33947ff440412339cb72b28a5a4c769b5c1ca19e33dd6cd1dcec6e"}, + {file = "pycryptodome-3.21.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0714206d467fc911042d01ea3a1847c847bc10884cf674c82e12915cfe1649f8"}, + {file = "pycryptodome-3.21.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d85c1b613121ed3dbaa5a97369b3b757909531a959d229406a75b912dd51dd1"}, + {file = "pycryptodome-3.21.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:8898a66425a57bcf15e25fc19c12490b87bd939800f39a03ea2de2aea5e3611a"}, + {file = "pycryptodome-3.21.0-cp36-abi3-musllinux_1_2_i686.whl", hash = "sha256:932c905b71a56474bff8a9c014030bc3c882cee696b448af920399f730a650c2"}, + {file = "pycryptodome-3.21.0-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:18caa8cfbc676eaaf28613637a89980ad2fd96e00c564135bf90bc3f0b34dd93"}, + {file = "pycryptodome-3.21.0-cp36-abi3-win32.whl", hash = "sha256:280b67d20e33bb63171d55b1067f61fbd932e0b1ad976b3a184303a3dad22764"}, + {file = "pycryptodome-3.21.0-cp36-abi3-win_amd64.whl", hash = "sha256:b7aa25fc0baa5b1d95b7633af4f5f1838467f1815442b22487426f94e0d66c53"}, + {file = "pycryptodome-3.21.0-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:2cb635b67011bc147c257e61ce864879ffe6d03342dc74b6045059dfbdedafca"}, + {file = "pycryptodome-3.21.0-pp27-pypy_73-win32.whl", hash = "sha256:4c26a2f0dc15f81ea3afa3b0c87b87e501f235d332b7f27e2225ecb80c0b1cdd"}, + {file = "pycryptodome-3.21.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:d5ebe0763c982f069d3877832254f64974139f4f9655058452603ff559c482e8"}, + {file = "pycryptodome-3.21.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ee86cbde706be13f2dec5a42b52b1c1d1cbb90c8e405c68d0755134735c8dc6"}, + {file = "pycryptodome-3.21.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0fd54003ec3ce4e0f16c484a10bc5d8b9bd77fa662a12b85779a2d2d85d67ee0"}, + {file = "pycryptodome-3.21.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5dfafca172933506773482b0e18f0cd766fd3920bd03ec85a283df90d8a17bc6"}, + {file = "pycryptodome-3.21.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:590ef0898a4b0a15485b05210b4a1c9de8806d3ad3d47f74ab1dc07c67a6827f"}, + {file = "pycryptodome-3.21.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f35e442630bc4bc2e1878482d6f59ea22e280d7121d7adeaedba58c23ab6386b"}, + {file = "pycryptodome-3.21.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff99f952db3db2fbe98a0b355175f93ec334ba3d01bbde25ad3a5a33abc02b58"}, + {file = "pycryptodome-3.21.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:8acd7d34af70ee63f9a849f957558e49a98f8f1634f86a59d2be62bb8e93f71c"}, + {file = "pycryptodome-3.21.0.tar.gz", hash = "sha256:f7787e0d469bdae763b876174cf2e6c0f7be79808af26b1da96f1a64bcf47297"}, +] + [[package]] name = "pycryptodomex" version = "3.20.0" @@ -4541,4 +4612,4 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] [metadata] lock-version = "2.0" python-versions = ">=3.10, <4.0" -content-hash = "ba6ac8df00c9c33e24ff9946fbc9285619d931904a334b60969533d9bce85551" +content-hash = "d8e5cf52c678477800f15c8cbc7b3aa9a888a98e0cab0c8f4c3e18dd7b30e705" diff --git a/pyproject.toml b/pyproject.toml index ceda1f9f6ba..418cbb9aff9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -73,6 +73,7 @@ ruff = "0.0.290" paramiko = "3.4.0" psutil = "5.9.8" # peepdf-3 = "4.0.0" +maco = "1.1.8" Werkzeug = "3.0.6" packaging = "23.1" diff --git a/tests_parsers/test_agenttesla.py b/tests_parsers/test_agenttesla.py new file mode 100644 index 00000000000..5390edb9b70 --- /dev/null +++ b/tests_parsers/test_agenttesla.py @@ -0,0 +1,41 @@ +from modules.processing.parsers.CAPE.AgentTesla import extract_config +from modules.processing.parsers.MACO.AgentTesla import convert_to_MACO + + +def test_agenttesla(): + # AgentTeslaV5 + with open("tests/data/malware/893f4dc8f8a1dcee05a0840988cf90bc93c1cda5b414f35a6adb5e9f40678ce9", "rb") as data: + conf = extract_config(data.read()) + assert conf == { + "Protocol": "SMTP", + "C2": "mail.guestequipment.com.au", + "Username": "sendlog@guestequipment.com.au", + "Password": "Clone89!", + "EmailTo": "info@marethon.com", + "Persistence_Filename": "newfile.exe", + "ExternalIPCheckServices": ["http://ip-api.com/line/?fields=hosting"], + } + + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "AgentTesla", + "other": { + "Protocol": "SMTP", + "C2": "mail.guestequipment.com.au", + "Username": "sendlog@guestequipment.com.au", + "Password": "Clone89!", + "EmailTo": "info@marethon.com", + "Persistence_Filename": "newfile.exe", + "ExternalIPCheckServices": ["http://ip-api.com/line/?fields=hosting"], + }, + "smtp": [ + { + "username": "sendlog@guestequipment.com.au", + "password": "Clone89!", + "hostname": "mail.guestequipment.com.au", + "mail_to": ["info@marethon.com"], + "usage": "c2", + } + ], + "http": [{"uri": "http://ip-api.com/line/?fields=hosting", "usage": "other"}], + "paths": [{"path": "newfile.exe", "usage": "storage"}], + } diff --git a/tests_parsers/test_asyncrat.py b/tests_parsers/test_asyncrat.py new file mode 100644 index 00000000000..376e711751b --- /dev/null +++ b/tests_parsers/test_asyncrat.py @@ -0,0 +1,36 @@ +from modules.processing.parsers.CAPE.AsyncRAT import extract_config +from modules.processing.parsers.MACO.AsyncRAT import convert_to_MACO + + +def test_asyncrat(): + with open("tests/data/malware/f08b325f5322a698e14f97db29d322e9ee91ad636ac688af352d51057fc56526", "rb") as data: + conf = extract_config(data.read()) + assert conf == { + "C2s": ["todfg.duckdns.org"], + "Ports": "6745", + "Version": "0.5.7B", + "Folder": "%AppData%", + "Filename": "updateee.exe", + "Install": "false", + "Mutex": "AsyncMutex_6SI8OkPnk", + "Pastebin": "null", + } + + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "AsyncRAT", + "version": "0.5.7B", + "capability_disabled": ["persistence"], + "mutex": ["AsyncMutex_6SI8OkPnk"], + "other": { + "C2s": ["todfg.duckdns.org"], + "Ports": "6745", + "Version": "0.5.7B", + "Folder": "%AppData%", + "Filename": "updateee.exe", + "Install": "false", + "Mutex": "AsyncMutex_6SI8OkPnk", + "Pastebin": "null", + }, + "http": [{"hostname": "todfg.duckdns.org", "port": 6, "usage": "c2"}], + "paths": [{"path": "%AppData%/updateee.exe", "usage": "install"}], + } diff --git a/tests_parsers/test_aurorastealer.py b/tests_parsers/test_aurorastealer.py new file mode 100644 index 00000000000..53af23b3f8c --- /dev/null +++ b/tests_parsers/test_aurorastealer.py @@ -0,0 +1,30 @@ +from modules.processing.parsers.CAPE.AuroraStealer import extract_config +from modules.processing.parsers.MACO.AuroraStealer import convert_to_MACO + + +def test_aurorastealer(): + with open("tests/data/malware/8da8821d410b94a2811ce7ae80e901d7e150ad3420d677b158e45324a6606ac4", "rb") as data: + conf = extract_config(data.read()) + assert conf == { + "BuildID": "x64pump", + "MD5Hash": "f29f33b296b35ec5e7fc3ee784ef68ee", + "C2": "77.91.85.73", + "Architecture": "X64", + "BuildGroup": "x64pump", + "BuildAccept": "0", + "Date": "2023-04-06 19", + } + + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "AuroraStealer", + "other": { + "BuildID": "x64pump", + "MD5Hash": "f29f33b296b35ec5e7fc3ee784ef68ee", + "C2": "77.91.85.73", + "Architecture": "X64", + "BuildGroup": "x64pump", + "BuildAccept": "0", + "Date": "2023-04-06 19", + }, + "http": [{"hostname": "77.91.85.73", "usage": "c2"}], + } diff --git a/tests_parsers/test_blackdropper.py b/tests_parsers/test_blackdropper.py index 7237dd53cd6..7e4dc59d067 100644 --- a/tests_parsers/test_blackdropper.py +++ b/tests_parsers/test_blackdropper.py @@ -3,6 +3,7 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.BlackDropper import extract_config +from modules.processing.parsers.MACO.BlackDropper import convert_to_MACO def test_blackdropper(): @@ -13,3 +14,15 @@ def test_blackdropper(): "directories": ["\\Music\\dkcydqtwjv"], "campaign": "oFwQ0aQ3v", } + + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "BlackDropper", + "campaign_id": ["oFwQ0aQ3v"], + "other": { + "urls": ["http://72.5.42.222:8568/api/dll/", "http://72.5.42.222:8568/api/fileZip"], + "directories": ["\\Music\\dkcydqtwjv"], + "campaign": "oFwQ0aQ3v", + }, + "http": [{"uri": "http://72.5.42.222:8568/api/dll/"}, {"uri": "http://72.5.42.222:8568/api/fileZip"}], + "paths": [{"path": "\\Music\\dkcydqtwjv"}], + } diff --git a/tests_parsers/test_bumblebee.py b/tests_parsers/test_bumblebee.py index 88aba1604a5..fd06f12ee10 100644 --- a/tests_parsers/test_bumblebee.py +++ b/tests_parsers/test_bumblebee.py @@ -3,9 +3,18 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.BumbleBee import extract_config +from modules.processing.parsers.MACO.BumbleBee import convert_to_MACO def test_bumblebee(): with open("tests/data/malware/f8a6eddcec59934c42ea254cdd942fb62917b5898f71f0feeae6826ba4f3470d", "rb") as data: conf = extract_config(data.read()) assert conf == {"Botnet ID": "YTBSBbNTWU", "Campaign ID": "1904r", "Data": "XNgHUGLrCD", "C2s": ["444"]} + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "BumbleBee", + "campaign_id": ["1904r"], + "identifier": ["YTBSBbNTWU"], + "other": {"Botnet ID": "YTBSBbNTWU", "Campaign ID": "1904r", "Data": "XNgHUGLrCD", "C2s": ["444"]}, + "binaries": [{"data": "XNgHUGLrCD"}], + "http": [{"hostname": "444", "usage": "c2"}], + } diff --git a/tests_parsers/test_carbanak.py b/tests_parsers/test_carbanak.py index 8460665d911..8d5169fea96 100644 --- a/tests_parsers/test_carbanak.py +++ b/tests_parsers/test_carbanak.py @@ -1,7 +1,13 @@ from modules.processing.parsers.CAPE.Carbanak import extract_config +from modules.processing.parsers.MACO.Carbanak import convert_to_MACO def test_carbanak(): with open("tests/data/malware/c9c1b06cb9c9bd6fc4451f5e2847a1f9524bb2870d7bb6f0ee09b9dd4e3e4c84", "rb") as data: conf = extract_config(data.read()) assert conf["C2"] == ["5.161.223.210:443", "207.174.30.226:443"] + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "Carbanak", + "other": {"C2": ["5.161.223.210:443", "207.174.30.226:443"]}, + "http": [{"hostname": "5.161.223.210:443", "usage": "c2"}, {"hostname": "207.174.30.226:443", "usage": "c2"}], + } diff --git a/tests_parsers/test_cobaltstrikebeacon.py b/tests_parsers/test_cobaltstrikebeacon.py index 8505e402035..47c26163b54 100644 --- a/tests_parsers/test_cobaltstrikebeacon.py +++ b/tests_parsers/test_cobaltstrikebeacon.py @@ -3,12 +3,13 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.CobaltStrikeBeacon import extract_config +from modules.processing.parsers.MACO.CobaltStrikeBeacon import convert_to_MACO def test_csb(): with open("tests/data/malware/2588fd3232138f587e294aea5cc9a0611d1e165b199743552c84bfddc1e4c063", "rb") as data: conf = extract_config(data.read()) - assert conf == { + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { "BeaconType": ["HTTP"], "Port": 4848, "SleepTime": 60000, @@ -55,3 +56,62 @@ def test_csb(): "bUsesCookies": "True", "HostHeader": "", } + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "CobaltStrikeBeacon", + "capability_enabled": ["ProcInject_StartRWX", "ProcInject_UseRWX", "UsesCookies"], + "capability_disabled": ["StageCleanup", "CFGCaution"], + "sleep_delay": 60000, + "sleep_delay_jitter": 0, + "other": { + "BeaconType": ["HTTP"], + "Port": 4848, + "SleepTime": 60000, + "MaxGetSize": 1048576, + "Jitter": 0, + "MaxDNS": "Not Found", + "PublicKey": "30819f300d06092a864886f70d010101050003818d0030818902818100bebe41805d3c15a738caf3e308a992d4d507ce827996a8c9d783c766963e7e73083111729ae0abc1b49af0bcf803efdcaf83ac694fb53d043a88e9333f169e026a3c4e63cc6d4cd1aa5e199cb95eec500f948ac472c0ab2eda385d35fb8592d74b1154a1c671afb310eccb0b139ee1100907bfcdd8dfbf3385803a11bc252995020301000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "C2Server": "192.144.206.100,/load", + "UserAgent": "Not Found", + "HttpPostUri": "/submit.php", + "Malleable_C2_Instructions": [], + "HttpGet_Metadata": "Not Found", + "HttpPost_Metadata": "Not Found", + "SpawnTo": "d7a9ca15a07f82bfd3b63020da38aa16", + "PipeName": "Not Found", + "DNS_Idle": "Not Found", + "DNS_Sleep": "Not Found", + "SSH_Host": "Not Found", + "SSH_Port": "Not Found", + "SSH_Username": "Not Found", + "SSH_Password_Plaintext": "Not Found", + "SSH_Password_Pubkey": "Not Found", + "HttpGet_Verb": "GET", + "HttpPost_Verb": "POST", + "HttpPostChunk": 0, + "Spawnto_x86": "%windir%\\syswow64\\rundll32.exe", + "Spawnto_x64": "%windir%\\sysnative\\rundll32.exe", + "CryptoScheme": 0, + "Proxy_Config": "Not Found", + "Proxy_User": "Not Found", + "Proxy_Password": "Not Found", + "Proxy_Behavior": "Use IE settings", + "Watermark": 391144938, + "bStageCleanup": "False", + "bCFGCaution": "False", + "KillDate": 0, + "bProcInject_StartRWX": "True", + "bProcInject_UseRWX": "True", + "bProcInject_MinAllocSize": 0, + "ProcInject_PrependAppend_x86": "Empty", + "ProcInject_PrependAppend_x64": "Empty", + "ProcInject_Execute": ["CreateThread", "SetThreadContext", "CreateRemoteThread", "RtlCreateUserThread"], + "ProcInject_AllocationMethod": "VirtualAllocEx", + "bUsesCookies": "True", + "HostHeader": "", + }, + "http": [ + {"hostname": "192.144.206.100", "port": 4848, "path": "/load", "method": "GET", "usage": "c2"}, + {"hostname": "192.144.206.100", "port": 4848, "path": "/submit.php", "method": "POST", "usage": "c2"}, + ], + "paths": [{"path": "%windir%\\syswow64\\rundll32.exe"}, {"path": "%windir%\\sysnative\\rundll32.exe"}], + } diff --git a/tests_parsers/test_darkgate.py b/tests_parsers/test_darkgate.py index 3052934e0b1..9a32a515a5a 100644 --- a/tests_parsers/test_darkgate.py +++ b/tests_parsers/test_darkgate.py @@ -1,7 +1,13 @@ from modules.processing.parsers.CAPE.DarkGate import extract_config +from modules.processing.parsers.MACO.DarkGate import convert_to_MACO def test_darkgate(): with open("tests/data/malware/1c3ae64795b61034080be00601b947819fe071efd69d7fc791a99ec666c2043d", "rb") as data: conf = extract_config(data.read()) assert conf["C2"] == ["http://80.66.88.145"] + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "DarkGate", + "other": {"C2": ["http://80.66.88.145"]}, + "http": [{"uri": "http://80.66.88.145", "usage": "c2"}], + } diff --git a/tests_parsers/test_icedid.py b/tests_parsers/test_icedid.py index c4b6b93f4d3..590591c2701 100644 --- a/tests_parsers/test_icedid.py +++ b/tests_parsers/test_icedid.py @@ -1,7 +1,14 @@ from modules.processing.parsers.CAPE.IcedIDLoader import extract_config +from modules.processing.parsers.MACO.IcedIDLoader import convert_to_MACO def test_icedid(): with open("tests/data/malware/7aaf80eb1436b946b2bd710ab57d2dcbaad2b1553d45602f2f3af6f2cfca5212", "rb") as data: conf = extract_config(data.read()) assert conf == {"C2": "anscowerbrut.com", "Campaign": 2738000827} + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "IcedIDLoader", + "campaign_id": ["2738000827"], + "other": {"C2": "anscowerbrut.com", "Campaign": 2738000827}, + "http": [{"hostname": "anscowerbrut.com", "usage": "c2"}], + } diff --git a/tests_parsers/test_koiloader.py b/tests_parsers/test_koiloader.py index cc7ab8de3d6..8844a08acef 100644 --- a/tests_parsers/test_koiloader.py +++ b/tests_parsers/test_koiloader.py @@ -3,9 +3,18 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.KoiLoader import extract_config +from modules.processing.parsers.MACO.KoiLoader import convert_to_MACO def test_koiloader(): with open("tests/data/malware/b462e3235c7578450b2b56a8aff875a3d99d22f6970a01db3ba98f7ecb6b01a0", "rb") as data: conf = extract_config(data.read()) assert conf == {"C2": ["http://91.202.233.209/hypermetropia.php", "https://admiralpub.ca/wp-content/uploads/2017"]} + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "KoiLoader", + "other": {"C2": ["http://91.202.233.209/hypermetropia.php", "https://admiralpub.ca/wp-content/uploads/2017"]}, + "http": [ + {"uri": "http://91.202.233.209/hypermetropia.php", "usage": "c2"}, + {"uri": "https://admiralpub.ca/wp-content/uploads/2017", "usage": "c2"}, + ], + } diff --git a/tests_parsers/test_latrodectus.py b/tests_parsers/test_latrodectus.py index 0348b115470..d71d20a4977 100644 --- a/tests_parsers/test_latrodectus.py +++ b/tests_parsers/test_latrodectus.py @@ -3,6 +3,7 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.Latrodectus import extract_config +from modules.processing.parsers.MACO.Latrodectus import convert_to_MACO def test_latrodectus(): @@ -98,3 +99,187 @@ def test_latrodectus(): "URLS|%d|%s\r\n", ], } + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "Latrodectus", + "version": "1.1", + "campaign_id": ["1053565364"], + "identifier": ["Novik"], + "decoded_strings": [ + "/c ipconfig /all", + "C:\\Windows\\System32\\cmd.exe", + "/c systeminfo", + "C:\\Windows\\System32\\cmd.exe", + "/c nltest /domain_trusts", + "C:\\Windows\\System32\\cmd.exe", + "/c nltest /domain_trusts /all_trusts", + "C:\\Windows\\System32\\cmd.exe", + "/c net view /all /domain", + "C:\\Windows\\System32\\cmd.exe", + "/c net view /all", + "C:\\Windows\\System32\\cmd.exe", + '/c net group "Domain Admins" /domain', + "C:\\Windows\\System32\\cmd.exe", + "/Node:localhost /Namespace:\\\\root\\SecurityCenter2 Path AntiVirusProduct Get * /Format:List", + "C:\\Windows\\System32\\wbem\\wmic.exe", + "/c net config workstation", + "C:\\Windows\\System32\\cmd.exe", + "/c wmic.exe /node:localhost /namespace:\\\\root\\SecurityCenter2 path AntiVirusProduct Get DisplayName | findstr /V /B /C:displayName || echo No Antivirus installed", + "C:\\Windows\\System32\\cmd.exe", + "/c whoami /groups", + "C:\\Windows\\System32\\cmd.exe", + ".dll", + ".exe", + '"%s"', + "rundll32.exe", + '"%s", %s %s', + "runnung", + ":wtfbbq", + "%s%s", + "%s\\%d.dll", + "%d.dat", + "%s\\%s", + 'init -zzzz="%s\\%s"', + "front", + "/files/", + "Novik", + ".exe", + "Content-Type: application/x-www-form-urlencoded", + "POST", + "GET", + "curl/7.88.1", + "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Tob 1.1)", + "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Tob 1.1)", + "CLEARURL", + "URLS", + "COMMAND", + "ERROR", + "12345", + "counter=%d&type=%d&guid=%s&os=%d&arch=%d&username=%s&group=%lu&ver=%d.%d&up=%d&direction=%s", + "counter=%d&type=%d&guid=%s&os=%d&arch=%d&username=%s&group=%lu&ver=%d.%d&up=%d&direction=%s", + "counter=%d&type=%d&guid=%s&os=%d&arch=%d&username=%s&group=%lu&ver=%d.%d&up=%d&direction=%s", + "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Tob 1.1)", + "%s%d.dll", + "%s%d.exe", + "LogonTrigger", + "%x%x", + "TimeTrigger", + "PT1H%02dM", + "&mac=", + "%04d-%02d-%02dT%02d:%02d:%02d", + "%02x", + ":%02x", + "PT0S", + "&computername=%s", + "&domain=%s", + "\\*.dll", + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", + "%04X%04X%04X%04X%08X%04X", + "%04X%04X%04X%04X%08X%04X", + "\\Registry\\Machine\\", + "AppData", + "Desktop", + "Startup", + "Personal", + "Local AppData", + "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", + "C:\\WINDOWS\\SYSTEM32\\rundll32.exe %s,%s", + "C:\\WINDOWS\\SYSTEM32\\rundll32.exe %s", + "URLS", + "URLS|%d|%s\r\n", + ], + "other": { + "C2": ["https://arsimonopa.com/live/", "https://lemonimonakio.com/live/"], + "Group name": "Novik", + "Campaign ID": 1053565364, + "Version": "1.1", + "RC4 key": "12345", + "Strings": [ + "/c ipconfig /all", + "C:\\Windows\\System32\\cmd.exe", + "/c systeminfo", + "C:\\Windows\\System32\\cmd.exe", + "/c nltest /domain_trusts", + "C:\\Windows\\System32\\cmd.exe", + "/c nltest /domain_trusts /all_trusts", + "C:\\Windows\\System32\\cmd.exe", + "/c net view /all /domain", + "C:\\Windows\\System32\\cmd.exe", + "/c net view /all", + "C:\\Windows\\System32\\cmd.exe", + '/c net group "Domain Admins" /domain', + "C:\\Windows\\System32\\cmd.exe", + "/Node:localhost /Namespace:\\\\root\\SecurityCenter2 Path AntiVirusProduct Get * /Format:List", + "C:\\Windows\\System32\\wbem\\wmic.exe", + "/c net config workstation", + "C:\\Windows\\System32\\cmd.exe", + "/c wmic.exe /node:localhost /namespace:\\\\root\\SecurityCenter2 path AntiVirusProduct Get DisplayName | findstr /V /B /C:displayName || echo No Antivirus installed", + "C:\\Windows\\System32\\cmd.exe", + "/c whoami /groups", + "C:\\Windows\\System32\\cmd.exe", + ".dll", + ".exe", + '"%s"', + "rundll32.exe", + '"%s", %s %s', + "runnung", + ":wtfbbq", + "%s%s", + "%s\\%d.dll", + "%d.dat", + "%s\\%s", + 'init -zzzz="%s\\%s"', + "front", + "/files/", + "Novik", + ".exe", + "Content-Type: application/x-www-form-urlencoded", + "POST", + "GET", + "curl/7.88.1", + "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Tob 1.1)", + "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Tob 1.1)", + "CLEARURL", + "URLS", + "COMMAND", + "ERROR", + "12345", + "counter=%d&type=%d&guid=%s&os=%d&arch=%d&username=%s&group=%lu&ver=%d.%d&up=%d&direction=%s", + "counter=%d&type=%d&guid=%s&os=%d&arch=%d&username=%s&group=%lu&ver=%d.%d&up=%d&direction=%s", + "counter=%d&type=%d&guid=%s&os=%d&arch=%d&username=%s&group=%lu&ver=%d.%d&up=%d&direction=%s", + "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Tob 1.1)", + "%s%d.dll", + "%s%d.exe", + "LogonTrigger", + "%x%x", + "TimeTrigger", + "PT1H%02dM", + "&mac=", + "%04d-%02d-%02dT%02d:%02d:%02d", + "%02x", + ":%02x", + "PT0S", + "&computername=%s", + "&domain=%s", + "\\*.dll", + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", + "%04X%04X%04X%04X%08X%04X", + "%04X%04X%04X%04X%08X%04X", + "\\Registry\\Machine\\", + "AppData", + "Desktop", + "Startup", + "Personal", + "Local AppData", + "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", + "C:\\WINDOWS\\SYSTEM32\\rundll32.exe %s,%s", + "C:\\WINDOWS\\SYSTEM32\\rundll32.exe %s", + "URLS", + "URLS|%d|%s\r\n", + ], + }, + "http": [ + {"uri": "https://arsimonopa.com/live/", "usage": "c2"}, + {"uri": "https://lemonimonakio.com/live/", "usage": "c2"}, + ], + "encryption": [{"algorithm": "RC4", "key": "12345"}], + } diff --git a/tests_parsers/test_lumma.py b/tests_parsers/test_lumma.py index c56efdb3aea..6f13eb15f3e 100644 --- a/tests_parsers/test_lumma.py +++ b/tests_parsers/test_lumma.py @@ -3,6 +3,7 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.Lumma import extract_config +from modules.processing.parsers.MACO.Lumma import convert_to_MACO def test_lumma(): @@ -21,3 +22,30 @@ def test_lumma(): "agentyanlark.site", ] } + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "Lumma", + "other": { + "C2": [ + "delaylacedmn.site", + "writekdmsnu.site", + "agentyanlark.site", + "bellykmrebk.site", + "underlinemdsj.site", + "commandejorsk.site", + "possiwreeste.site", + "famikyjdiag.site", + "agentyanlark.site", + ] + }, + "http": [ + {"hostname": "delaylacedmn.site", "usage": "c2"}, + {"hostname": "writekdmsnu.site", "usage": "c2"}, + {"hostname": "agentyanlark.site", "usage": "c2"}, + {"hostname": "bellykmrebk.site", "usage": "c2"}, + {"hostname": "underlinemdsj.site", "usage": "c2"}, + {"hostname": "commandejorsk.site", "usage": "c2"}, + {"hostname": "possiwreeste.site", "usage": "c2"}, + {"hostname": "famikyjdiag.site", "usage": "c2"}, + {"hostname": "agentyanlark.site", "usage": "c2"}, + ], + } diff --git a/tests_parsers/test_nanocore.py b/tests_parsers/test_nanocore.py index d27a0b1cb6a..445f2127e82 100644 --- a/tests_parsers/test_nanocore.py +++ b/tests_parsers/test_nanocore.py @@ -3,6 +3,7 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.NanoCore import extract_config +from modules.processing.parsers.MACO.NanoCore import convert_to_MACO def test_nanocore(): @@ -41,3 +42,59 @@ def test_nanocore(): "BackupDnsServer": "8.8.4.4", "cncs": ["6coinc.zapto.org:6696", "127.0.0.1:6696"], } + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "NanoCore", + "version": "1.2.2.0", + "capability_enabled": [ + "RunOnStartup", + "BypassUserAccountControl", + "ClearZoneIdentifier", + "PreventSystemSleep", + "UseCustomDnsServer", + ], + "capability_disabled": [ + "RequestElevation", + "ClearAccessControl", + "SetCriticalProcess", + "ActivateAwayMode", + "EnableDebugMode", + ], + "mutex": ["dc5ce709-95b6-4a26-9175-16a1a8446828"], + "other": { + "BuildTime": "2023-11-22 00:25:26.569697", + "Version": "1.2.2.0", + "Mutex": "dc5ce709-95b6-4a26-9175-16a1a8446828", + "DefaultGroup": "6coinc", + "PrimaryConnectionHost": "6coinc.zapto.org", + "BackupConnectionHost": "127.0.0.1", + "ConnectionPort": "6696", + "RunOnStartup": "True", + "RequestElevation": "False", + "BypassUserAccountControl": "True", + "ClearZoneIdentifier": "True", + "ClearAccessControl": "False", + "SetCriticalProcess": "False", + "PreventSystemSleep": "True", + "ActivateAwayMode": "False", + "EnableDebugMode": "False", + "RunDelay": "0", + "ConnectDelay": "4000", + "RestartDelay": "5000", + "TimeoutInterval": "5000", + "KeepAliveTimeout": "30000", + "MutexTimeout": "5000", + "LanTimeout": "2500", + "WanTimeout": "8000", + "BufferSize": "65535", + "MaxPacketSize": "10485760", + "GCThreshold": "10485760", + "UseCustomDnsServer": "True", + "PrimaryDnsServer": "8.8.8.8", + "BackupDnsServer": "8.8.4.4", + "cncs": ["6coinc.zapto.org:6696", "127.0.0.1:6696"], + }, + "http": [ + {"hostname": "6coinc.zapto.org", "port": 6696, "usage": "c2"}, + {"hostname": "127.0.0.1", "port": 6696, "usage": "c2"}, + ], + } diff --git a/tests_parsers/test_njrat.py b/tests_parsers/test_njrat.py index 8ca43e83a9c..5fb816a30a1 100644 --- a/tests_parsers/test_njrat.py +++ b/tests_parsers/test_njrat.py @@ -3,6 +3,7 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.Njrat import extract_config +from modules.processing.parsers.MACO.Njrat import convert_to_MACO def test_njrat(): @@ -13,6 +14,16 @@ def test_njrat(): "campaign id": "HacKed", "version": "Njrat 0.7 Golden By Hassan Amiri", } + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "Njrat", + "version": "Njrat 0.7 Golden By Hassan Amiri", + "other": { + "cncs": ["peter-bikini.gl.at.ply.gg:64215"], + "campaign id": "HacKed", + "version": "Njrat 0.7 Golden By Hassan Amiri", + }, + "http": [{"hostname": "peter-bikini.gl.at.ply.gg", "port": 64215, "usage": "c2"}], + } """ diff --git a/tests_parsers/test_oyster.py b/tests_parsers/test_oyster.py index bf77aac1bc7..ed758e42362 100644 --- a/tests_parsers/test_oyster.py +++ b/tests_parsers/test_oyster.py @@ -3,6 +3,7 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.Oyster import extract_config +from modules.processing.parsers.MACO.Oyster import convert_to_MACO def test_oyster(): @@ -13,3 +14,14 @@ def test_oyster(): "Dll Version": "v1.0 #ads 2", "Strings": ["api/connect", "Content-Type: application/json", "api/session"], } + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "Oyster", + "version": "v1.0 #ads 2", + "decoded_strings": ["api/connect", "Content-Type: application/json", "api/session"], + "other": { + "C2": ["https://connectivity-check.linkpc.net/"], + "Dll Version": "v1.0 #ads 2", + "Strings": ["api/connect", "Content-Type: application/json", "api/session"], + }, + "http": [{"uri": "https://connectivity-check.linkpc.net/", "usage": "c2"}], + } diff --git a/tests_parsers/test_pikabot.py b/tests_parsers/test_pikabot.py index 2562dc84441..18bc7018f06 100644 --- a/tests_parsers/test_pikabot.py +++ b/tests_parsers/test_pikabot.py @@ -3,6 +3,7 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.PikaBot import extract_config +from modules.processing.parsers.MACO.PikaBot import convert_to_MACO def test_pikabot(): @@ -27,3 +28,85 @@ def test_pikabot(): "Campaign Name": "GG24_T@T@f0adda360d2b4ccda11468e026526576", "Registry Key": "MWnkl", } + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "PikaBot", + "version": "1.8.32-beta", + "campaign_id": ["GG24_T@T@f0adda360d2b4ccda11468e026526576"], + "other": { + "C2s": [ + "154.53.55.165:13783", + "158.247.240.58:5632", + "70.34.223.164:5000", + "70.34.199.64:9785", + "45.77.63.237:5632", + "198.38.94.213:2224", + "94.72.104.80:5000", + "84.46.240.42:2083", + "154.12.236.248:13786", + "94.72.104.77:13724", + "209.126.86.48:1194", + ], + "Version": "1.8.32-beta", + "User Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + "Campaign Name": "GG24_T@T@f0adda360d2b4ccda11468e026526576", + "Registry Key": "MWnkl", + }, + "http": [ + { + "hostname": "154.53.55.165", + "port": 13783, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + { + "hostname": "158.247.240.58", + "port": 5632, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + { + "hostname": "70.34.223.164", + "port": 5000, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + { + "hostname": "70.34.199.64", + "port": 9785, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + { + "hostname": "45.77.63.237", + "port": 5632, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + { + "hostname": "198.38.94.213", + "port": 2224, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + { + "hostname": "94.72.104.80", + "port": 5000, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + { + "hostname": "84.46.240.42", + "port": 2083, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + { + "hostname": "154.12.236.248", + "port": 13786, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + { + "hostname": "94.72.104.77", + "port": 13724, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + { + "hostname": "209.126.86.48", + "port": 1194, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + ], + "registry": [{"key": "MWnkl"}], + } diff --git a/tests_parsers/test_quickbind.py b/tests_parsers/test_quickbind.py index 089371fc437..91a2248dd70 100644 --- a/tests_parsers/test_quickbind.py +++ b/tests_parsers/test_quickbind.py @@ -3,6 +3,7 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.Quickbind import extract_config +from modules.processing.parsers.MACO.Quickbind import convert_to_MACO def test_quickbind(): @@ -13,3 +14,14 @@ def test_quickbind(): "Mutex": ["15432a4d-34ca-4d0d-a4ac-04df9a373862"], "C2": ["185.49.69.41"], } + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "Quickbind", + "mutex": ["15432a4d-34ca-4d0d-a4ac-04df9a373862"], + "other": { + "Encryption Key": "24de21a8dc08434c", + "Mutex": ["15432a4d-34ca-4d0d-a4ac-04df9a373862"], + "C2": ["185.49.69.41"], + }, + "http": [{"hostname": "185.49.69.41", "usage": "c2"}], + "encryption": [{"key": "24de21a8dc08434c"}], + } diff --git a/tests_parsers/test_redline.py b/tests_parsers/test_redline.py index 96d133b72eb..17ffaaa20cf 100644 --- a/tests_parsers/test_redline.py +++ b/tests_parsers/test_redline.py @@ -3,6 +3,7 @@ # See the file "docs/LICENSE" for copying permission. from modules.processing.parsers.CAPE.RedLine import extract_config +from modules.processing.parsers.MACO.RedLine import convert_to_MACO def test_redline(): @@ -14,3 +15,13 @@ def test_redline(): "Botnet": "krast", "Key": "Formative", } + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "RedLine", + "other": { + "Authorization": "9059ea331e4599de3746df73ccb24514", + "C2": "77.91.68.68:19071", + "Botnet": "krast", + "Key": "Formative", + }, + "http": [{"hostname": "77.91.68.68", "port": 19071, "usage": "c2"}], + } diff --git a/tests_parsers/test_smokeloader.py b/tests_parsers/test_smokeloader.py index b77499c256d..cb7f4085a4e 100644 --- a/tests_parsers/test_smokeloader.py +++ b/tests_parsers/test_smokeloader.py @@ -1,7 +1,13 @@ from modules.processing.parsers.CAPE.SmokeLoader import extract_config +from modules.processing.parsers.MACO.SmokeLoader import convert_to_MACO def test_smokeloader(): with open("tests/data/malware/6929fff132c05ae7d348867f4ea77ba18f84fb8fae17d45dde3571c9e33f01f8", "rb") as data: conf = extract_config(data.read()) assert conf == {"C2s": ["http://host-file-host6.com/", "http://host-host-file8.com/"]} + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "SmokeLoader", + "other": {"C2s": ["http://host-file-host6.com/", "http://host-host-file8.com/"]}, + "http": [{"uri": "http://host-file-host6.com/", "usage": "c2"}, {"uri": "http://host-host-file8.com/", "usage": "c2"}], + } diff --git a/tests_parsers/test_sparkrat.py b/tests_parsers/test_sparkrat.py index 412c9165ae5..ba60ca225be 100644 --- a/tests_parsers/test_sparkrat.py +++ b/tests_parsers/test_sparkrat.py @@ -1,4 +1,5 @@ from modules.processing.parsers.CAPE.SparkRAT import extract_config +from modules.processing.parsers.MACO.SparkRAT import convert_to_MACO def test_sparkrat(): @@ -12,3 +13,16 @@ def test_sparkrat(): "uuid": "8dc7e7d8f8576f3e55a00850b72887db", "key": "a1348fb8969ad7a9f85ac173c2027622135e52e0e6d94d10e6a81916a29648ac", } + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "SparkRAT", + "identifier": ["8dc7e7d8f8576f3e55a00850b72887db"], + "other": { + "secure": False, + "host": "67.217.62.106", + "port": 4443, + "path": "/", + "uuid": "8dc7e7d8f8576f3e55a00850b72887db", + "key": "a1348fb8969ad7a9f85ac173c2027622135e52e0e6d94d10e6a81916a29648ac", + }, + "http": [{"uri": "http://67.217.62.106:4443/", "hostname": "67.217.62.106", "port": 4443, "path": "/"}], + } diff --git a/tests_parsers/test_zloader.py b/tests_parsers/test_zloader.py index 2168f2e9c7a..d9c0ef1f174 100644 --- a/tests_parsers/test_zloader.py +++ b/tests_parsers/test_zloader.py @@ -3,6 +3,7 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.Zloader import extract_config +from modules.processing.parsers.MACO.Zloader import convert_to_MACO def test_zloader(): @@ -14,3 +15,14 @@ def test_zloader(): "address": ["https://dem.businessdeep.com"], "Public key": "-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDKGAOWVkikqE7TyKIMtWI8dFsaleTaJNXMJNIPnRE/fGCzqrV+rtY3+ex4MCHEtq2Vwppthf0Rglv8OiWgKlerIN5P6NEyCfIsFYUMDfldQTF03VES8GBIvHq5SjlIz7lawuwfdjdEkaHfOmmu9srraftkI9gZO8WRQgY1uNdsXwIDAQAB-----END PUBLIC KEY-----", } + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "Zloader", + "campaign_id": ["M1"], + "other": { + "Botnet name": "Bing_Mod5", + "Campaign ID": "M1", + "address": ["https://dem.businessdeep.com"], + "Public key": "-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDKGAOWVkikqE7TyKIMtWI8dFsaleTaJNXMJNIPnRE/fGCzqrV+rtY3+ex4MCHEtq2Vwppthf0Rglv8OiWgKlerIN5P6NEyCfIsFYUMDfldQTF03VES8GBIvHq5SjlIz7lawuwfdjdEkaHfOmmu9srraftkI9gZO8WRQgY1uNdsXwIDAQAB-----END PUBLIC KEY-----", + }, + "http": [{"uri": "https://dem.businessdeep.com"}], + } From 626c349de6263e601e857480d1e6a737e99413bb Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 29 Oct 2024 15:03:31 +0000 Subject: [PATCH 75/98] ci: Update requirements.txt --- requirements.txt | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/requirements.txt b/requirements.txt index 41596324d0b..41e5505d9a5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -61,6 +61,8 @@ capstone==4.0.2 ; python_version >= "3.10" and python_version < "4.0" \ --hash=sha256:9d1a9096c5f875b11290317722ed44bb6e7c52e50cc79d791f142bce968c49aa \ --hash=sha256:c3d9b443d1adb40ee2d9a4e7341169b76476ddcf3a54c03793b16cdc7cd35c5a \ --hash=sha256:da442f979414cf27e4621e70e835880878c858ea438c4f0e957e132593579e37 +cart==1.2.2 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:c111398038683c85d3edcadaa3b16183461907bdb613e05cbb60d381f2886309 certifi==2024.7.4 ; python_version >= "3.10" and python_version < "4.0" \ --hash=sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b \ --hash=sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90 @@ -566,6 +568,9 @@ jinja2==3.1.4 ; python_version >= "3.10" and python_version < "4.0" \ lnkparse3==1.2.0 ; python_version >= "3.10" and python_version < "4.0" \ --hash=sha256:102b2aba6c2896127cb719f814a8579210368f9277fd5ec0d0151fe070166e1d \ --hash=sha256:b97f9a3dfffa62ecbd5f1f6561d8b5b75b0045241482b4a980657d5aac696ee3 +maco==1.1.8 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:ab2d1d8e846c0abc455d16f718ba71dda5492ddc22533484156090aa4439fb06 \ + --hash=sha256:e0985efdf645d3c55e3d4d4f2bf40b8d2260fa4add608bb8e8fdefba0500cb4a mako==1.3.5 ; python_version >= "3.10" and python_version < "4.0" \ --hash=sha256:260f1dbc3a519453a9c856dedfe4beb4e50bd5a26d96386cb6c80856556bb91a \ --hash=sha256:48dbc20568c1d276a2698b36d968fa76161bf127194907ea6fc594fa81f943bc @@ -1055,6 +1060,39 @@ pyasn1==0.5.1 ; python_version >= "3.10" and python_version < "4.0" \ pycparser==2.22 ; python_version >= "3.10" and python_version < "4.0" \ --hash=sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6 \ --hash=sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc +pycryptodome==3.21.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:0714206d467fc911042d01ea3a1847c847bc10884cf674c82e12915cfe1649f8 \ + --hash=sha256:0fa0a05a6a697ccbf2a12cec3d6d2650b50881899b845fac6e87416f8cb7e87d \ + --hash=sha256:0fd54003ec3ce4e0f16c484a10bc5d8b9bd77fa662a12b85779a2d2d85d67ee0 \ + --hash=sha256:18caa8cfbc676eaaf28613637a89980ad2fd96e00c564135bf90bc3f0b34dd93 \ + --hash=sha256:2480ec2c72438430da9f601ebc12c518c093c13111a5c1644c82cdfc2e50b1e4 \ + --hash=sha256:26412b21df30b2861424a6c6d5b1d8ca8107612a4cfa4d0183e71c5d200fb34a \ + --hash=sha256:280b67d20e33bb63171d55b1067f61fbd932e0b1ad976b3a184303a3dad22764 \ + --hash=sha256:2cb635b67011bc147c257e61ce864879ffe6d03342dc74b6045059dfbdedafca \ + --hash=sha256:2de4b7263a33947ff440412339cb72b28a5a4c769b5c1ca19e33dd6cd1dcec6e \ + --hash=sha256:3ba4cc304eac4d4d458f508d4955a88ba25026890e8abff9b60404f76a62c55e \ + --hash=sha256:4c26a2f0dc15f81ea3afa3b0c87b87e501f235d332b7f27e2225ecb80c0b1cdd \ + --hash=sha256:590ef0898a4b0a15485b05210b4a1c9de8806d3ad3d47f74ab1dc07c67a6827f \ + --hash=sha256:5dfafca172933506773482b0e18f0cd766fd3920bd03ec85a283df90d8a17bc6 \ + --hash=sha256:6cce52e196a5f1d6797ff7946cdff2038d3b5f0aba4a43cb6bf46b575fd1b5bb \ + --hash=sha256:7cb087b8612c8a1a14cf37dd754685be9a8d9869bed2ffaaceb04850a8aeef7e \ + --hash=sha256:7d85c1b613121ed3dbaa5a97369b3b757909531a959d229406a75b912dd51dd1 \ + --hash=sha256:7ee86cbde706be13f2dec5a42b52b1c1d1cbb90c8e405c68d0755134735c8dc6 \ + --hash=sha256:8898a66425a57bcf15e25fc19c12490b87bd939800f39a03ea2de2aea5e3611a \ + --hash=sha256:8acd7d34af70ee63f9a849f957558e49a98f8f1634f86a59d2be62bb8e93f71c \ + --hash=sha256:932c905b71a56474bff8a9c014030bc3c882cee696b448af920399f730a650c2 \ + --hash=sha256:a1752eca64c60852f38bb29e2c86fca30d7672c024128ef5d70cc15868fa10f4 \ + --hash=sha256:a3804675283f4764a02db05f5191eb8fec2bb6ca34d466167fc78a5f05bbe6b3 \ + --hash=sha256:a4e74c522d630766b03a836c15bff77cb657c5fdf098abf8b1ada2aebc7d0819 \ + --hash=sha256:a915597ffccabe902e7090e199a7bf7a381c5506a747d5e9d27ba55197a2c568 \ + --hash=sha256:b7aa25fc0baa5b1d95b7633af4f5f1838467f1815442b22487426f94e0d66c53 \ + --hash=sha256:cc2269ab4bce40b027b49663d61d816903a4bd90ad88cb99ed561aadb3888dd3 \ + --hash=sha256:d5ebe0763c982f069d3877832254f64974139f4f9655058452603ff559c482e8 \ + --hash=sha256:dad9bf36eda068e89059d1f07408e397856be9511d7113ea4b586642a429a4fd \ + --hash=sha256:de18954104667f565e2fbb4783b56667f30fb49c4d79b346f52a29cb198d5b6b \ + --hash=sha256:f35e442630bc4bc2e1878482d6f59ea22e280d7121d7adeaedba58c23ab6386b \ + --hash=sha256:f7787e0d469bdae763b876174cf2e6c0f7be79808af26b1da96f1a64bcf47297 \ + --hash=sha256:ff99f952db3db2fbe98a0b355175f93ec334ba3d01bbde25ad3a5a33abc02b58 pycryptodomex==3.20.0 ; python_version >= "3.10" and python_version < "4.0" \ --hash=sha256:0daad007b685db36d977f9de73f61f8da2a7104e20aca3effd30752fd56f73e1 \ --hash=sha256:108e5f1c1cd70ffce0b68739c75734437c919d2eaec8e85bffc2c8b4d2794305 \ From 00c09547ddc26b5a36faa97a94fe34fa4900a08c Mon Sep 17 00:00:00 2001 From: enzo <7831008+enzok@users.noreply.github.com> Date: Tue, 29 Oct 2024 14:36:22 -0400 Subject: [PATCH 76/98] NitrogenLoader yara and syscall bypass (#2375) --- analyzer/windows/data/yara/NitrogenLoader.yar | 41 +++++++++++++++++++ data/yara/CAPE/NitrogenLoader.yar | 41 +++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 analyzer/windows/data/yara/NitrogenLoader.yar create mode 100644 data/yara/CAPE/NitrogenLoader.yar diff --git a/analyzer/windows/data/yara/NitrogenLoader.yar b/analyzer/windows/data/yara/NitrogenLoader.yar new file mode 100644 index 00000000000..0c37500494a --- /dev/null +++ b/analyzer/windows/data/yara/NitrogenLoader.yar @@ -0,0 +1,41 @@ +rule LoaderSyscall +{ + meta: + author = "enzok" + description = "Loader Syscall" + cape_options = "sysbp=$syscall*-2,count=0" + strings: + $makehashes = {48 89 4C 24 ?? 48 89 54 24 ?? 4? 89 44 24 ?? 4? 89 4C 24 ?? 4? 83 EC ?? B? [4] E8 [3] 00} + $number = {49 89 C3 B? [4] E8 [3] 00} + $syscall = {48 83 C4 ?? 4? 8B 4C 24 ?? 4? 8B 54 24 ?? 4? 8B 44 24 ?? 4? 8B 4C 24 ?? 4? 89 CA 4? FF E3} + condition: + all of them +} + +rule NitrogenLoaderAES +{ + meta: + author = "enzok" + description = "NitrogenLoader AES and IV" + cape_options = "bp0=$keyiv0+8,action0=dump:ecx::64,hc0=1,bp1=$keyiv0*-4,action1=dump:ecx::32,hc1=1,count=0" + strings: + $keyiv0 = {48 8B 8C 24 [4] E8 [3] 00 4? 89 84 24 [4] 4? 8B 84 24 [4] 4? 89 84 24 [4] 4? 8B 8C 24 [4] E8 [3] 00} + $keyiv1 = {48 89 84 24 [4] 4? 8B 84 24 [4] 4? 8B 94 24 [4] 4? 8D 8C 24 [4] E8 [3] FF} + $keyiv2 = {48 63 84 24 [4] 4? 8B C0 4? 8B 94 24 [4] 4? 8D 8C 24 [4] E8 [3] FF 4? 8B 84 24} + condition: + all of them +} + +rule NitrogenLoaderBypass +{ + meta: + author = "enzok" + description = "Nitrogen Loader Exit Bypass" + cape_options = "bp2=$exit-2,action2=jmp,count=0" + strings: + $string1 = "LoadResource" + $syscall = {48 83 C4 ?? 4? 8B 4C 24 ?? 4? 8B 54 24 ?? 4? 8B 44 24 ?? 4? 8B 4C 24 ?? 4? 89 CA 4? FF E3} + $exit = {33 C9 E8 [4] E8 [4] 48 8D 84 24 [4] 48 89 44 24 ?? 4? B? E4 00 00 00 4? 8B 05 [4] B? 03 00 00 00 48 8D} + condition: + all of them +} \ No newline at end of file diff --git a/data/yara/CAPE/NitrogenLoader.yar b/data/yara/CAPE/NitrogenLoader.yar new file mode 100644 index 00000000000..0c37500494a --- /dev/null +++ b/data/yara/CAPE/NitrogenLoader.yar @@ -0,0 +1,41 @@ +rule LoaderSyscall +{ + meta: + author = "enzok" + description = "Loader Syscall" + cape_options = "sysbp=$syscall*-2,count=0" + strings: + $makehashes = {48 89 4C 24 ?? 48 89 54 24 ?? 4? 89 44 24 ?? 4? 89 4C 24 ?? 4? 83 EC ?? B? [4] E8 [3] 00} + $number = {49 89 C3 B? [4] E8 [3] 00} + $syscall = {48 83 C4 ?? 4? 8B 4C 24 ?? 4? 8B 54 24 ?? 4? 8B 44 24 ?? 4? 8B 4C 24 ?? 4? 89 CA 4? FF E3} + condition: + all of them +} + +rule NitrogenLoaderAES +{ + meta: + author = "enzok" + description = "NitrogenLoader AES and IV" + cape_options = "bp0=$keyiv0+8,action0=dump:ecx::64,hc0=1,bp1=$keyiv0*-4,action1=dump:ecx::32,hc1=1,count=0" + strings: + $keyiv0 = {48 8B 8C 24 [4] E8 [3] 00 4? 89 84 24 [4] 4? 8B 84 24 [4] 4? 89 84 24 [4] 4? 8B 8C 24 [4] E8 [3] 00} + $keyiv1 = {48 89 84 24 [4] 4? 8B 84 24 [4] 4? 8B 94 24 [4] 4? 8D 8C 24 [4] E8 [3] FF} + $keyiv2 = {48 63 84 24 [4] 4? 8B C0 4? 8B 94 24 [4] 4? 8D 8C 24 [4] E8 [3] FF 4? 8B 84 24} + condition: + all of them +} + +rule NitrogenLoaderBypass +{ + meta: + author = "enzok" + description = "Nitrogen Loader Exit Bypass" + cape_options = "bp2=$exit-2,action2=jmp,count=0" + strings: + $string1 = "LoadResource" + $syscall = {48 83 C4 ?? 4? 8B 4C 24 ?? 4? 8B 54 24 ?? 4? 8B 44 24 ?? 4? 8B 4C 24 ?? 4? 89 CA 4? FF E3} + $exit = {33 C9 E8 [4] E8 [4] 48 8D 84 24 [4] 48 89 44 24 ?? 4? B? E4 00 00 00 4? 8B 05 [4] B? 03 00 00 00 48 8D} + condition: + all of them +} \ No newline at end of file From a3ee5d6508b5d9937b68943541c5b1ce80b6fceb Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 29 Oct 2024 18:37:22 +0000 Subject: [PATCH 77/98] style: Automatic code formatting --- modules/processing/parsers/MACO/AgentTesla.py | 44 +++++++++---------- modules/processing/parsers/MACO/AsyncRAT.py | 28 ++++++------ .../processing/parsers/MACO/AuroraStealer.py | 13 +++--- modules/processing/parsers/MACO/Azorult.py | 4 +- .../processing/parsers/MACO/BackOffLoader.py | 14 +++--- modules/processing/parsers/MACO/BackOffPOS.py | 14 +++--- modules/processing/parsers/MACO/BitPaymer.py | 8 ++-- .../processing/parsers/MACO/BlackDropper.py | 8 +++- modules/processing/parsers/MACO/BlackNix.py | 31 +++++++++---- modules/processing/parsers/MACO/Blister.py | 14 +++--- modules/processing/parsers/MACO/BruteRatel.py | 4 +- modules/processing/parsers/MACO/BuerLoader.py | 6 ++- modules/processing/parsers/MACO/BumbleBee.py | 12 ++--- modules/processing/parsers/MACO/Carbanak.py | 11 ++--- modules/processing/parsers/MACO/ChChes.py | 5 ++- .../parsers/MACO/CobaltStrikeBeacon.py | 12 +++-- .../parsers/MACO/CobaltStrikeStager.py | 6 ++- modules/processing/parsers/MACO/DCRat.py | 5 ++- modules/processing/parsers/MACO/DarkGate.py | 15 ++++--- .../processing/parsers/MACO/DoppelPaymer.py | 5 ++- .../processing/parsers/MACO/DridexLoader.py | 5 ++- modules/processing/parsers/MACO/Emotet.py | 7 ++- modules/processing/parsers/MACO/Enfal.py | 5 ++- modules/processing/parsers/MACO/EvilGrab.py | 3 +- modules/processing/parsers/MACO/Fareit.py | 6 ++- modules/processing/parsers/MACO/Formbook.py | 6 ++- modules/processing/parsers/MACO/Greame.py | 3 +- modules/processing/parsers/MACO/GuLoader.py | 6 ++- modules/processing/parsers/MACO/Hancitor.py | 6 ++- .../processing/parsers/MACO/HttpBrowser.py | 3 +- modules/processing/parsers/MACO/IcedID.py | 5 ++- .../processing/parsers/MACO/IcedIDLoader.py | 5 ++- modules/processing/parsers/MACO/KoiLoader.py | 5 ++- .../processing/parsers/MACO/Latrodectus.py | 5 ++- modules/processing/parsers/MACO/LokiBot.py | 6 ++- modules/processing/parsers/MACO/Lumma.py | 6 ++- modules/processing/parsers/MACO/NanoCore.py | 6 +-- modules/processing/parsers/MACO/Nighthawk.py | 6 +-- modules/processing/parsers/MACO/Njrat.py | 7 ++- modules/processing/parsers/MACO/Oyster.py | 6 ++- modules/processing/parsers/MACO/Pandora.py | 5 ++- .../parsers/MACO/PhemedroneStealer.py | 3 +- modules/processing/parsers/MACO/PikaBot.py | 5 ++- modules/processing/parsers/MACO/PlugX.py | 3 +- modules/processing/parsers/MACO/PoisonIvy.py | 7 +-- modules/processing/parsers/MACO/Punisher.py | 5 ++- modules/processing/parsers/MACO/QakBot.py | 5 ++- modules/processing/parsers/MACO/QuasarRAT.py | 5 ++- modules/processing/parsers/MACO/Quickbind.py | 5 ++- modules/processing/parsers/MACO/RCSession.py | 3 +- modules/processing/parsers/MACO/REvil.py | 3 +- modules/processing/parsers/MACO/RedLeaf.py | 3 +- modules/processing/parsers/MACO/RedLine.py | 5 ++- modules/processing/parsers/MACO/Remcos.py | 5 ++- modules/processing/parsers/MACO/Retefe.py | 3 +- .../processing/parsers/MACO/Rhadamanthys.py | 5 ++- modules/processing/parsers/MACO/Rozena.py | 5 ++- modules/processing/parsers/MACO/SmallNet.py | 4 +- .../processing/parsers/MACO/SmokeLoader.py | 8 ++-- .../processing/parsers/MACO/Socks5Systemz.py | 3 +- modules/processing/parsers/MACO/SparkRAT.py | 7 ++- .../processing/parsers/MACO/SquirrelWaffle.py | 8 ++-- modules/processing/parsers/MACO/Stealc.py | 10 +++-- modules/processing/parsers/MACO/Strrat.py | 3 +- modules/processing/parsers/MACO/TSCookie.py | 3 +- modules/processing/parsers/MACO/TrickBot.py | 3 +- modules/processing/parsers/MACO/UrsnifV3.py | 3 +- modules/processing/parsers/MACO/VenomRat.py | 4 +- modules/processing/parsers/MACO/WarzoneRAT.py | 6 +-- modules/processing/parsers/MACO/XWorm.py | 3 +- modules/processing/parsers/MACO/XenoRAT.py | 3 +- modules/processing/parsers/MACO/Zloader.py | 3 +- modules/processing/parsers/MACO/test_maco.py | 1 + 73 files changed, 320 insertions(+), 193 deletions(-) diff --git a/modules/processing/parsers/MACO/AgentTesla.py b/modules/processing/parsers/MACO/AgentTesla.py index 4bc6e7349ce..04615864ac3 100644 --- a/modules/processing/parsers/MACO/AgentTesla.py +++ b/modules/processing/parsers/MACO/AgentTesla.py @@ -1,44 +1,44 @@ import os -from maco.model import ExtractorModel as MACOModel + from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.AgentTesla import extract_config + def convert_to_MACO(raw_config: dict) -> MACOModel: if not raw_config: return - protocol = raw_config.get('Protocol') + protocol = raw_config.get("Protocol") if not protocol: return parsed_result = MACOModel(family="AgentTesla", other=raw_config) if protocol == "Telegram": - parsed_result.http.append( - MACOModel.Http(uri=raw_config["C2"], - password=raw_config["Password"], - usage="c2") - ) + parsed_result.http.append(MACOModel.Http(uri=raw_config["C2"], password=raw_config["Password"], usage="c2")) elif protocol in ["HTTP(S)", "Discord"]: - parsed_result.http.append( - MACOModel.Http(uri=raw_config["C2"], - usage="c2") - ) + parsed_result.http.append(MACOModel.Http(uri=raw_config["C2"], usage="c2")) elif protocol == "FTP": parsed_result.ftp.append( - MACOModel.FTP(username=raw_config["Username"], - password=raw_config["Password"], - hostname=raw_config["C2"].replace('ftp://', ''), - usage="c2") + MACOModel.FTP( + username=raw_config["Username"], + password=raw_config["Password"], + hostname=raw_config["C2"].replace("ftp://", ""), + usage="c2", + ) ) elif protocol == "SMTP": - smtp = dict(username=raw_config["Username"], - password=raw_config["Password"], - hostname=raw_config["C2"], - mail_to=[raw_config["EmailTo"]], - usage="c2") + smtp = dict( + username=raw_config["Username"], + password=raw_config["Password"], + hostname=raw_config["C2"], + mail_to=[raw_config["EmailTo"]], + usage="c2", + ) if "Port" in raw_config: smtp["port"] = raw_config["Port"] parsed_result.smtp.append(MACOModel.SMTP(**smtp)) @@ -50,15 +50,15 @@ def convert_to_MACO(raw_config: dict) -> MACOModel: for service in raw_config["ExternalIPCheckServices"]: parsed_result.http.append(MACOModel.Http(uri=service, usage="other")) - return parsed_result + class AgentTesla(Extractor): author = "kevoreilly" family = "AgentTesla" last_modified = "2024-10-20" sharing = "TLP:CLEAR" - yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() def run(self, stream, matches): return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/AsyncRAT.py b/modules/processing/parsers/MACO/AsyncRAT.py index a36cf01f13b..6f64368cda7 100644 --- a/modules/processing/parsers/MACO/AsyncRAT.py +++ b/modules/processing/parsers/MACO/AsyncRAT.py @@ -1,8 +1,11 @@ import os -from maco.model import ExtractorModel as MACOModel + from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.AsyncRAT import extract_config + def convert_to_MACO(raw_config: dict) -> MACOModel: if not raw_config: return @@ -16,36 +19,33 @@ def convert_to_MACO(raw_config: dict) -> MACOModel: parsed_result.version = raw_config["Version"] # Was persistence enabled? - if raw_config['Install'] == 'true': - parsed_result.capability_enabled.append('persistence') + if raw_config["Install"] == "true": + parsed_result.capability_enabled.append("persistence") else: - parsed_result.capability_disabled.append('persistence') + parsed_result.capability_disabled.append("persistence") # Installation Path - if raw_config.get('Folder'): - parsed_result.paths.append(MACOModel.Path(path=os.path.join(raw_config['Folder'], raw_config['Filename']), - usage="install")) + if raw_config.get("Folder"): + parsed_result.paths.append(MACOModel.Path(path=os.path.join(raw_config["Folder"], raw_config["Filename"]), usage="install")) # C2s - for i in range(len(raw_config.get('C2s', []))): - parsed_result.http.append(MACOModel.Http(hostname=raw_config["C2s"][i], - port=int(raw_config["Ports"][i]), - usage="c2")) + for i in range(len(raw_config.get("C2s", []))): + parsed_result.http.append(MACOModel.Http(hostname=raw_config["C2s"][i], port=int(raw_config["Ports"][i]), usage="c2")) # Pastebin if raw_config.get("Pastebin") not in ["null", None]: # TODO: Is it used to download the C2 information if not embedded? # Ref: https://www.netskope.com/blog/asyncrat-using-fully-undetected-downloader - parsed_result.http.append(MACOModel.Http(uri=raw_config["Pastebin"], - usage="download")) + parsed_result.http.append(MACOModel.Http(uri=raw_config["Pastebin"], usage="download")) return parsed_result + class AsyncRAT(Extractor): author = "kevoreilly" family = "AsyncRAT" last_modified = "2024-10-26" sharing = "TLP:CLEAR" - yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() def run(self, stream, matches): return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/AuroraStealer.py b/modules/processing/parsers/MACO/AuroraStealer.py index 7825c32441a..1a63055f07e 100644 --- a/modules/processing/parsers/MACO/AuroraStealer.py +++ b/modules/processing/parsers/MACO/AuroraStealer.py @@ -1,26 +1,29 @@ import os -from maco.model import ExtractorModel as MACOModel + from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.AuroraStealer import extract_config + def convert_to_MACO(raw_config: dict): if not raw_config: return None parsed_result = MACOModel(family="AuroraStealer", other=raw_config) - if raw_config.get('C2'): + if raw_config.get("C2"): # IP related to C2 - parsed_result.http.append(MACOModel.Http(hostname=raw_config['C2'], - usage="c2")) + parsed_result.http.append(MACOModel.Http(hostname=raw_config["C2"], usage="c2")) return parsed_result + class AuroraStealer(Extractor): author = "kevoreilly" family = "AuroraStealer" last_modified = "2024-10-26" sharing = "TLP:CLEAR" - yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() def run(self, stream, matches): return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Azorult.py b/modules/processing/parsers/MACO/Azorult.py index 0fb3db5b07b..4b462eacd74 100644 --- a/modules/processing/parsers/MACO/Azorult.py +++ b/modules/processing/parsers/MACO/Azorult.py @@ -1,7 +1,9 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Azorult import extract_config, rule_source + def convert_to_MACO(raw_config: dict): if not raw_config: return None diff --git a/modules/processing/parsers/MACO/BackOffLoader.py b/modules/processing/parsers/MACO/BackOffLoader.py index 5266ff34501..155fe0d8b9a 100644 --- a/modules/processing/parsers/MACO/BackOffLoader.py +++ b/modules/processing/parsers/MACO/BackOffLoader.py @@ -1,7 +1,9 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.BackOffLoader import extract_config + def convert_to_MACO(raw_config: dict): if not raw_config: return None @@ -9,13 +11,13 @@ def convert_to_MACO(raw_config: dict): parsed_result = MACOModel(family="BackOffLoader", other=raw_config) # Version - parsed_result.version = raw_config['Version'] + parsed_result.version = raw_config["Version"] # Encryption details - parsed_result.encryption.append(MACOModel.Encryption(algorithm="rc4", - key=raw_config['EncryptionKey'], - seed=raw_config['RC4Seed'])) - for url in raw_config['URLs']: + parsed_result.encryption.append( + MACOModel.Encryption(algorithm="rc4", key=raw_config["EncryptionKey"], seed=raw_config["RC4Seed"]) + ) + for url in raw_config["URLs"]: parsed_result.http.append(MACOModel.Http(url=url)) return parsed_result diff --git a/modules/processing/parsers/MACO/BackOffPOS.py b/modules/processing/parsers/MACO/BackOffPOS.py index 21817e93676..2dfd7b89bbd 100644 --- a/modules/processing/parsers/MACO/BackOffPOS.py +++ b/modules/processing/parsers/MACO/BackOffPOS.py @@ -1,7 +1,9 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.BackOffPOS import extract_config + def convert_to_MACO(raw_config: dict): if not raw_config: return None @@ -9,13 +11,13 @@ def convert_to_MACO(raw_config: dict): parsed_result = MACOModel(family="BackOffPOS", other=raw_config) # Version - parsed_result.version = raw_config['Version'] + parsed_result.version = raw_config["Version"] # Encryption details - parsed_result.encryption.append(MACOModel.Encryption(algorithm="rc4", - key=raw_config['EncryptionKey'], - seed=raw_config['RC4Seed'])) - for url in raw_config['URLs']: + parsed_result.encryption.append( + MACOModel.Encryption(algorithm="rc4", key=raw_config["EncryptionKey"], seed=raw_config["RC4Seed"]) + ) + for url in raw_config["URLs"]: parsed_result.http.append(MACOModel.Http(url=url)) return parsed_result diff --git a/modules/processing/parsers/MACO/BitPaymer.py b/modules/processing/parsers/MACO/BitPaymer.py index 8786a57a6b0..34d0590fb08 100644 --- a/modules/processing/parsers/MACO/BitPaymer.py +++ b/modules/processing/parsers/MACO/BitPaymer.py @@ -1,7 +1,9 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.BitPaymer import extract_config, rule_source + def convert_to_MACO(raw_config: dict): if not raw_config: return None @@ -12,10 +14,10 @@ def convert_to_MACO(raw_config: dict): parsed_result.decoded_strings = raw_config["strings"] # Encryption details - parsed_result.encryption.append(MACOModel.Encryption(algorithm="rsa", - public_key=raw_config['RSA public key'])) + parsed_result.encryption.append(MACOModel.Encryption(algorithm="rsa", public_key=raw_config["RSA public key"])) return parsed_result + class BitPaymer(Extractor): author = "kevoreilly" family = "BitPaymer" diff --git a/modules/processing/parsers/MACO/BlackDropper.py b/modules/processing/parsers/MACO/BlackDropper.py index 395992b1c28..da619a6cbc4 100644 --- a/modules/processing/parsers/MACO/BlackDropper.py +++ b/modules/processing/parsers/MACO/BlackDropper.py @@ -1,8 +1,11 @@ import os -from maco.model import ExtractorModel as MACOModel + from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.BlackDropper import extract_config + def convert_to_MACO(raw_config: dict): if not raw_config: return None @@ -17,12 +20,13 @@ def convert_to_MACO(raw_config: dict): return parsed_result + class BlackDropper(Extractor): author = "kevoreilly" family = "BlackDropper" last_modified = "2024-10-26" sharing = "TLP:CLEAR" - yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() def run(self, stream, matches): return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/BlackNix.py b/modules/processing/parsers/MACO/BlackNix.py index 4750ec83cdf..70408d7828e 100644 --- a/modules/processing/parsers/MACO/BlackNix.py +++ b/modules/processing/parsers/MACO/BlackNix.py @@ -1,8 +1,11 @@ import os -from maco.model import ExtractorModel as MACOModel + from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.BlackNix import extract_config + def convert_to_MACO(raw_config: dict): if not raw_config: return None @@ -10,13 +13,23 @@ def convert_to_MACO(raw_config: dict): parsed_result = MACOModel(family="BlackNix", other=raw_config) # Mutex - parsed_result.mutex.append(raw_config['Mutex']) + parsed_result.mutex.append(raw_config["Mutex"]) # Capabilities that are enabled/disabled # TODO: Review if these are all capabilities set by a boolean flag - for capa in ["Anti Sandboxie", "Kernel Mode Unhooking", "User Mode Unhooking", - "Melt Server", "Offline Screen Capture", "Offline Keylogger", "Copy to ADS", - "Safe Mode Startup", "Inject winlogon.exe", "Active X Run", "Registry Run"]: + for capa in [ + "Anti Sandboxie", + "Kernel Mode Unhooking", + "User Mode Unhooking", + "Melt Server", + "Offline Screen Capture", + "Offline Keylogger", + "Copy to ADS", + "Safe Mode Startup", + "Inject winlogon.exe", + "Active X Run", + "Registry Run", + ]: if raw_config[capa].lower() == "true": parsed_result.capability_enabled.append(capa) else: @@ -29,14 +42,14 @@ def convert_to_MACO(raw_config: dict): parsed_result.password.append(raw_config["Password"]) # C2 Domain - parsed_result.http.append(MACOModel.Http(hostname=raw_config['Domain'], - usage="c2")) + parsed_result.http.append(MACOModel.Http(hostname=raw_config["Domain"], usage="c2")) # Registry parsed_result.registry.append(MACOModel.Registry(key=raw_config["Registry Key"])) # Install Path - parsed_result.paths.append(MACOModel.Path(path=os.path.join(raw_config['Install Path'], raw_config["Install Name"]), - usage="install")) + parsed_result.paths.append( + MACOModel.Path(path=os.path.join(raw_config["Install Path"], raw_config["Install Name"]), usage="install") + ) # Campaign Group/Name parsed_result.campaign_id = [raw_config["Campaign Name"], raw_config["Campaign Group"]] diff --git a/modules/processing/parsers/MACO/Blister.py b/modules/processing/parsers/MACO/Blister.py index e865ab7cfc3..1045539c2bc 100644 --- a/modules/processing/parsers/MACO/Blister.py +++ b/modules/processing/parsers/MACO/Blister.py @@ -1,8 +1,11 @@ import os -from maco.model import ExtractorModel as MACOModel + from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Blister import extract_config + def convert_to_MACO(raw_config: dict): if not raw_config: return None @@ -16,17 +19,18 @@ def convert_to_MACO(raw_config: dict): parsed_result.capability_disabled.append(capa) # Rabbit encryption - parsed_result.encryption.append(MACOModel.Encryption(algorithm="rabbit", - key=raw_config["Rabbit key"], - iv=raw_config["Rabbit IV"])) + parsed_result.encryption.append( + MACOModel.Encryption(algorithm="rabbit", key=raw_config["Rabbit key"], iv=raw_config["Rabbit IV"]) + ) return parsed_result + class Blister(Extractor): author = "kevoreilly" family = "Blister" last_modified = "2024-10-26" sharing = "TLP:CLEAR" - yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() def run(self, stream, matches): return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/BruteRatel.py b/modules/processing/parsers/MACO/BruteRatel.py index 4b8edcfbc23..bfd7e32fda4 100644 --- a/modules/processing/parsers/MACO/BruteRatel.py +++ b/modules/processing/parsers/MACO/BruteRatel.py @@ -1,6 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel + from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.BruteRatel import extract_config diff --git a/modules/processing/parsers/MACO/BuerLoader.py b/modules/processing/parsers/MACO/BuerLoader.py index f3e9241af0a..fdda64590ae 100644 --- a/modules/processing/parsers/MACO/BuerLoader.py +++ b/modules/processing/parsers/MACO/BuerLoader.py @@ -1,8 +1,11 @@ import os -from maco.model import ExtractorModel as MACOModel + from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.BuerLoader import extract_config + def convert_to_MACO(raw_config: dict): if not raw_config: return None @@ -13,6 +16,7 @@ def convert_to_MACO(raw_config: dict): parsed_result.http.append(MACOModel.Http(hostname=c2, usage="c2")) return parsed_result + class BuerLoader(Extractor): author = "kevoreilly" family = "BuerLoader" diff --git a/modules/processing/parsers/MACO/BumbleBee.py b/modules/processing/parsers/MACO/BumbleBee.py index 07f693c083f..27fa023e9e6 100644 --- a/modules/processing/parsers/MACO/BumbleBee.py +++ b/modules/processing/parsers/MACO/BumbleBee.py @@ -1,8 +1,11 @@ import os -from maco.model import ExtractorModel as MACOModel + from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.BumbleBee import extract_config + def convert_to_MACO(raw_config: dict): if not raw_config: return None @@ -19,8 +22,7 @@ def convert_to_MACO(raw_config: dict): # C2s for c2 in raw_config.get("C2s", []): - parsed_result.http.append(MACOModel.Http(hostname=c2, - usage="c2")) + parsed_result.http.append(MACOModel.Http(hostname=c2, usage="c2")) # Data if raw_config.get("Data"): @@ -28,11 +30,11 @@ def convert_to_MACO(raw_config: dict): # RC4 Key if raw_config.get("RC4 Key"): - parsed_result.encryption.append(MACOModel.Encryption(algorithm="rc4", - key=raw_config["RC4 Key"])) + parsed_result.encryption.append(MACOModel.Encryption(algorithm="rc4", key=raw_config["RC4 Key"])) return parsed_result + class BumbleBee(Extractor): author = "kevoreilly" family = "BumbleBee" diff --git a/modules/processing/parsers/MACO/Carbanak.py b/modules/processing/parsers/MACO/Carbanak.py index 55ddff8fe5e..8df0573348b 100644 --- a/modules/processing/parsers/MACO/Carbanak.py +++ b/modules/processing/parsers/MACO/Carbanak.py @@ -1,7 +1,9 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Carbanak import extract_config, rule_source + def convert_to_MACO(raw_config: dict): if not raw_config: return None @@ -20,12 +22,10 @@ def convert_to_MACO(raw_config: dict): # C2 if raw_config.get("C2"): if isinstance(raw_config["C2"], str): - parsed_result.http.append(MACOModel.Http(hostname=raw_config["C2"], - usage="c2")) + parsed_result.http.append(MACOModel.Http(hostname=raw_config["C2"], usage="c2")) else: for c2 in raw_config["C2"]: - parsed_result.http.append(MACOModel.Http(hostname=c2, - usage="c2")) + parsed_result.http.append(MACOModel.Http(hostname=c2, usage="c2")) # Campaign Id if raw_config.get("Campaign Id"): @@ -33,6 +33,7 @@ def convert_to_MACO(raw_config: dict): return parsed_result + class Carbanak(Extractor): author = "kevoreilly" family = "Carbanak" diff --git a/modules/processing/parsers/MACO/ChChes.py b/modules/processing/parsers/MACO/ChChes.py index 464b9f2faa2..02977e00e33 100644 --- a/modules/processing/parsers/MACO/ChChes.py +++ b/modules/processing/parsers/MACO/ChChes.py @@ -1,7 +1,9 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.ChChes import extract_config, rule_source + def convert_to_MACO(raw_config: dict): if not raw_config: return None @@ -14,6 +16,7 @@ def convert_to_MACO(raw_config: dict): return parsed_result + class ChChes(Extractor): author = "kevoreilly" family = "ChChes" diff --git a/modules/processing/parsers/MACO/CobaltStrikeBeacon.py b/modules/processing/parsers/MACO/CobaltStrikeBeacon.py index 86aa4f29e92..f639cbb9cc8 100644 --- a/modules/processing/parsers/MACO/CobaltStrikeBeacon.py +++ b/modules/processing/parsers/MACO/CobaltStrikeBeacon.py @@ -1,8 +1,11 @@ import os -from maco.model import ExtractorModel as MACOModel + from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.CobaltStrikeBeacon import extract_config + def convert_to_MACO(raw_config: dict): if not raw_config: return None @@ -19,10 +22,12 @@ def convert_to_MACO(raw_config: dict): parsed_result.capability_disabled.append(capability) if "C2Server" in clean_config: - host, get_path = clean_config.pop("C2Server").split(',') + host, get_path = clean_config.pop("C2Server").split(",") port = clean_config.pop("Port") parsed_result.http.append(MACOModel.Http(hostname=host, port=port, method="GET", path=get_path, usage="c2")) - parsed_result.http.append(MACOModel.Http(hostname=host, port=port, method="POST", path=clean_config.pop("HttpPostUri"), usage="c2")) + parsed_result.http.append( + MACOModel.Http(hostname=host, port=port, method="POST", path=clean_config.pop("HttpPostUri"), usage="c2") + ) parsed_result.sleep_delay = clean_config.pop("SleepTime") parsed_result.sleep_delay_jitter = clean_config.pop("Jitter") @@ -33,6 +38,7 @@ def convert_to_MACO(raw_config: dict): return parsed_result + class CobaltStrikeBeacon(Extractor): author = "kevoreilly" family = "CobaltStrikeBeacon" diff --git a/modules/processing/parsers/MACO/CobaltStrikeStager.py b/modules/processing/parsers/MACO/CobaltStrikeStager.py index 9f88e95f0f8..3d3759a0503 100644 --- a/modules/processing/parsers/MACO/CobaltStrikeStager.py +++ b/modules/processing/parsers/MACO/CobaltStrikeStager.py @@ -1,8 +1,11 @@ import os -from maco.model import ExtractorModel as MACOModel + from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.CobaltStrikeStager import extract_config + def convert_to_MACO(raw_config: dict): if not raw_config: return None @@ -11,6 +14,7 @@ def convert_to_MACO(raw_config: dict): return parsed_result + class CobaltStrikeStager(Extractor): author = "kevoreilly" family = "CobaltStrikeStager" diff --git a/modules/processing/parsers/MACO/DCRat.py b/modules/processing/parsers/MACO/DCRat.py index 214b3cfb0de..fba00548801 100644 --- a/modules/processing/parsers/MACO/DCRat.py +++ b/modules/processing/parsers/MACO/DCRat.py @@ -1,9 +1,11 @@ import os -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.DCRat import extract_config + def convert_to_MACO(raw_config: dict): if not raw_config: return None @@ -13,6 +15,7 @@ def convert_to_MACO(raw_config: dict): return parsed_result + class DCRat(Extractor): author = "kevoreilly" family = "DCRat" diff --git a/modules/processing/parsers/MACO/DarkGate.py b/modules/processing/parsers/MACO/DarkGate.py index e4697b422da..6d382f80cd0 100644 --- a/modules/processing/parsers/MACO/DarkGate.py +++ b/modules/processing/parsers/MACO/DarkGate.py @@ -1,10 +1,12 @@ import os from copy import deepcopy -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.DarkGate import extract_config + def convert_to_MACO(raw_config: dict): if not raw_config: return None @@ -16,10 +18,10 @@ def convert_to_MACO(raw_config: dict): # Go through capabilities/settings that are boolean in nature for k, v in list(config.items()): - if v not in ['Yes', 'No']: + if v not in ["Yes", "No"]: continue - if v == 'Yes': + if v == "Yes": parsed_result.capability_enabled.append(k) else: parsed_result.capability_disabled.append(k) @@ -28,16 +30,17 @@ def convert_to_MACO(raw_config: dict): config.pop(k) # C2 - c2_port = config.pop('c2_port', None) + c2_port = config.pop("c2_port", None) for c2_url in config.pop("C2", []): parsed_result.http.append(MACOModel.Http(uri=c2_url, port=c2_port, usage="c2")) # Mutex - if config.get('internal_mutex'): - parsed_result.mutex.append(config.pop('internal_mutex')) + if config.get("internal_mutex"): + parsed_result.mutex.append(config.pop("internal_mutex")) return parsed_result + class DarkGate(Extractor): author = "kevoreilly" family = "DarkGate" diff --git a/modules/processing/parsers/MACO/DoppelPaymer.py b/modules/processing/parsers/MACO/DoppelPaymer.py index 78bb7e965eb..1e1d97a8b43 100644 --- a/modules/processing/parsers/MACO/DoppelPaymer.py +++ b/modules/processing/parsers/MACO/DoppelPaymer.py @@ -1,7 +1,9 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.DoppelPaymer import extract_config, rule_source + def convert_to_MACO(raw_config: dict): if not raw_config: return None @@ -16,6 +18,7 @@ def convert_to_MACO(raw_config: dict): return parsed_result + class DoppelPaymer(Extractor): author = "kevoreilly" family = "DoppelPaymer" diff --git a/modules/processing/parsers/MACO/DridexLoader.py b/modules/processing/parsers/MACO/DridexLoader.py index 3a165ee5641..7a1097ab71a 100644 --- a/modules/processing/parsers/MACO/DridexLoader.py +++ b/modules/processing/parsers/MACO/DridexLoader.py @@ -1,7 +1,9 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.DridexLoader import extract_config, rule_source + def convert_to_MACO(raw_config: dict): if not raw_config: return None @@ -19,6 +21,7 @@ def convert_to_MACO(raw_config: dict): return parsed_result + class DridexLoader(Extractor): author = "kevoreilly" family = "DridexLoader" diff --git a/modules/processing/parsers/MACO/Emotet.py b/modules/processing/parsers/MACO/Emotet.py index 960ce9e0270..6cc29da2b0b 100644 --- a/modules/processing/parsers/MACO/Emotet.py +++ b/modules/processing/parsers/MACO/Emotet.py @@ -1,7 +1,9 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Emotet import extract_config, rule_source + def convert_to_MACO(raw_config: dict): if not raw_config: return None @@ -14,10 +16,11 @@ def convert_to_MACO(raw_config: dict): if "RC4 public key" in raw_config: parsed_result.encryption.append(MACOModel.Encryption(algorithm="RC4", public_key=raw_config["RSA public key"])) - parsed_result.other = {k: raw_config[k] for k in raw_config.keys() if k not in ["address", "RSA public key"] } + parsed_result.other = {k: raw_config[k] for k in raw_config.keys() if k not in ["address", "RSA public key"]} return parsed_result + class Emotet(Extractor): author = "kevoreilly" family = "Emotet" diff --git a/modules/processing/parsers/MACO/Enfal.py b/modules/processing/parsers/MACO/Enfal.py index 5996968b4b3..8fe4d6f2ff6 100644 --- a/modules/processing/parsers/MACO/Enfal.py +++ b/modules/processing/parsers/MACO/Enfal.py @@ -1,7 +1,9 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Enfal import extract_config, rule_source + def convert_to_MACO(raw_config: dict): if not raw_config: return None @@ -11,6 +13,7 @@ def convert_to_MACO(raw_config: dict): return parsed_result + class Enfal(Extractor): author = "kevoreilly" family = "Enfal" diff --git a/modules/processing/parsers/MACO/EvilGrab.py b/modules/processing/parsers/MACO/EvilGrab.py index 69d5e19bd8e..e32975f06bc 100644 --- a/modules/processing/parsers/MACO/EvilGrab.py +++ b/modules/processing/parsers/MACO/EvilGrab.py @@ -1,5 +1,6 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.EvilGrab import extract_config, rule_source diff --git a/modules/processing/parsers/MACO/Fareit.py b/modules/processing/parsers/MACO/Fareit.py index 3f6ca981c82..d09c1492600 100644 --- a/modules/processing/parsers/MACO/Fareit.py +++ b/modules/processing/parsers/MACO/Fareit.py @@ -1,6 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel + from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Fareit import extract_config @@ -19,7 +21,7 @@ class Fareit(Extractor): family = "Fareit" last_modified = "2024-10-26" sharing = "TLP:CLEAR" - yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() def run(self, stream, matches): return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Formbook.py b/modules/processing/parsers/MACO/Formbook.py index 52fec228f90..73a2d4dae8c 100644 --- a/modules/processing/parsers/MACO/Formbook.py +++ b/modules/processing/parsers/MACO/Formbook.py @@ -1,6 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel + from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Formbook import extract_config @@ -24,7 +26,7 @@ class Formbook(Extractor): family = "Formbook" last_modified = "2024-10-26" sharing = "TLP:CLEAR" - yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() def run(self, stream, matches): return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Greame.py b/modules/processing/parsers/MACO/Greame.py index c2c82bb5de7..bb06c40646c 100644 --- a/modules/processing/parsers/MACO/Greame.py +++ b/modules/processing/parsers/MACO/Greame.py @@ -1,5 +1,6 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Greame import extract_config diff --git a/modules/processing/parsers/MACO/GuLoader.py b/modules/processing/parsers/MACO/GuLoader.py index d6cba02a4ee..e0a0ceae0e2 100644 --- a/modules/processing/parsers/MACO/GuLoader.py +++ b/modules/processing/parsers/MACO/GuLoader.py @@ -1,6 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel + from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.GuLoader import extract_config @@ -21,7 +23,7 @@ class GuLoader(Extractor): family = "GuLoader" last_modified = "2024-10-26" sharing = "TLP:CLEAR" - yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], "data/yara/CAPE/Guloader.yar")).read() + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], "data/yara/CAPE/Guloader.yar")).read() def run(self, stream, matches): return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Hancitor.py b/modules/processing/parsers/MACO/Hancitor.py index 8d45cb53ae6..1a9add97f8b 100644 --- a/modules/processing/parsers/MACO/Hancitor.py +++ b/modules/processing/parsers/MACO/Hancitor.py @@ -1,6 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel + from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Hancitor import extract_config @@ -24,7 +26,7 @@ class Hancitor(Extractor): family = "Hancitor" last_modified = "2024-10-26" sharing = "TLP:CLEAR" - yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() def run(self, stream, matches): return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/HttpBrowser.py b/modules/processing/parsers/MACO/HttpBrowser.py index 298997d5f81..6b851fd0178 100644 --- a/modules/processing/parsers/MACO/HttpBrowser.py +++ b/modules/processing/parsers/MACO/HttpBrowser.py @@ -1,5 +1,6 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.HttpBrowser import extract_config, rule_source diff --git a/modules/processing/parsers/MACO/IcedID.py b/modules/processing/parsers/MACO/IcedID.py index 1b355f78867..5ef0778118a 100644 --- a/modules/processing/parsers/MACO/IcedID.py +++ b/modules/processing/parsers/MACO/IcedID.py @@ -1,7 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.IcedID import extract_config @@ -17,7 +18,7 @@ class IcedID(Extractor): family = "IcedID" last_modified = "2024-10-26" sharing = "TLP:CLEAR" - yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() def run(self, stream, matches): return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/IcedIDLoader.py b/modules/processing/parsers/MACO/IcedIDLoader.py index ae85fbf8083..46c6ea4cad4 100644 --- a/modules/processing/parsers/MACO/IcedIDLoader.py +++ b/modules/processing/parsers/MACO/IcedIDLoader.py @@ -1,7 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.IcedIDLoader import extract_config @@ -25,7 +26,7 @@ class IcedIDLoader(Extractor): family = "IcedIDLoader" last_modified = "2024-10-26" sharing = "TLP:CLEAR" - yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() def run(self, stream, matches): return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/KoiLoader.py b/modules/processing/parsers/MACO/KoiLoader.py index 3841f4342fe..63c0c75134d 100644 --- a/modules/processing/parsers/MACO/KoiLoader.py +++ b/modules/processing/parsers/MACO/KoiLoader.py @@ -1,6 +1,7 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor -from modules.processing.parsers.CAPE.KoiLoader import extract_config, RULE_SOURCE +from maco.model import ExtractorModel as MACOModel + +from modules.processing.parsers.CAPE.KoiLoader import RULE_SOURCE, extract_config def convert_to_MACO(raw_config: dict): diff --git a/modules/processing/parsers/MACO/Latrodectus.py b/modules/processing/parsers/MACO/Latrodectus.py index d0483106858..4ad7cbd1515 100644 --- a/modules/processing/parsers/MACO/Latrodectus.py +++ b/modules/processing/parsers/MACO/Latrodectus.py @@ -1,7 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Latrodectus import extract_config @@ -37,7 +38,7 @@ class Latrodectus(Extractor): family = "Latrodectus" last_modified = "2024-10-26" sharing = "TLP:CLEAR" - yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() def run(self, stream, matches): return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/LokiBot.py b/modules/processing/parsers/MACO/LokiBot.py index 6a4f3196acf..01d36594953 100644 --- a/modules/processing/parsers/MACO/LokiBot.py +++ b/modules/processing/parsers/MACO/LokiBot.py @@ -1,6 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel + from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.LokiBot import extract_config @@ -21,7 +23,7 @@ class LokiBot(Extractor): family = "LokiBot" last_modified = "2024-10-26" sharing = "TLP:CLEAR" - yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() def run(self, stream, matches): return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Lumma.py b/modules/processing/parsers/MACO/Lumma.py index 16c8a37c056..5f5153c0b5c 100644 --- a/modules/processing/parsers/MACO/Lumma.py +++ b/modules/processing/parsers/MACO/Lumma.py @@ -1,6 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel + from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Lumma import extract_config @@ -21,7 +23,7 @@ class Lumma(Extractor): family = "Lumma" last_modified = "2024-10-26" sharing = "TLP:CLEAR" - yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() def run(self, stream, matches): return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/NanoCore.py b/modules/processing/parsers/MACO/NanoCore.py index 05c17620ee4..309f798de01 100644 --- a/modules/processing/parsers/MACO/NanoCore.py +++ b/modules/processing/parsers/MACO/NanoCore.py @@ -1,7 +1,8 @@ from copy import deepcopy -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.NanoCore import extract_config @@ -9,7 +10,6 @@ def convert_to_MACO(raw_config: dict): if not raw_config: return None - parsed_result = MACOModel(family="NanoCore", other=raw_config) config_copy = deepcopy(raw_config) @@ -28,7 +28,7 @@ def convert_to_MACO(raw_config: dict): parsed_result.capability_disabled.append(capability) for address in config_copy.pop("cncs", []): - host, port = address.split(':') + host, port = address.split(":") parsed_result.http.append(MACOModel.Http(hostname=host, port=port, usage="c2")) return parsed_result diff --git a/modules/processing/parsers/MACO/Nighthawk.py b/modules/processing/parsers/MACO/Nighthawk.py index 4d45e8de950..b1872886bed 100644 --- a/modules/processing/parsers/MACO/Nighthawk.py +++ b/modules/processing/parsers/MACO/Nighthawk.py @@ -1,7 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Nighthawk import extract_config @@ -9,7 +10,6 @@ def convert_to_MACO(raw_config: dict): if not raw_config: return None - parsed_result = MACOModel(family="Nighthawk", other=raw_config) return parsed_result @@ -20,7 +20,7 @@ class Nighthawk(Extractor): family = "Nighthawk" last_modified = "2024-10-26" sharing = "TLP:CLEAR" - yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() def run(self, stream, matches): return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Njrat.py b/modules/processing/parsers/MACO/Njrat.py index 404bf100599..f3f9b27de27 100644 --- a/modules/processing/parsers/MACO/Njrat.py +++ b/modules/processing/parsers/MACO/Njrat.py @@ -1,6 +1,6 @@ - -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Njrat import extract_config @@ -8,7 +8,6 @@ def convert_to_MACO(raw_config: dict): if not raw_config: return None - parsed_result = MACOModel(family="Njrat", other=raw_config) if "version" in raw_config: @@ -18,7 +17,7 @@ def convert_to_MACO(raw_config: dict): parsed_result.campaign_id.append(raw_config["campaign_id"]) for c2 in raw_config.get("cncs", []): - host, port = c2.split(':') + host, port = c2.split(":") parsed_result.http.append(MACOModel.Http(hostname=host, port=port, usage="c2")) return parsed_result diff --git a/modules/processing/parsers/MACO/Oyster.py b/modules/processing/parsers/MACO/Oyster.py index 7ff072ae745..4a80f038cbf 100644 --- a/modules/processing/parsers/MACO/Oyster.py +++ b/modules/processing/parsers/MACO/Oyster.py @@ -1,6 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel + from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Oyster import extract_config @@ -27,7 +29,7 @@ class Oyster(Extractor): family = "Oyster" last_modified = "2024-10-26" sharing = "TLP:CLEAR" - yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() def run(self, stream, matches): return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Pandora.py b/modules/processing/parsers/MACO/Pandora.py index cd745f75750..b82bad0c02c 100644 --- a/modules/processing/parsers/MACO/Pandora.py +++ b/modules/processing/parsers/MACO/Pandora.py @@ -1,8 +1,9 @@ import os from copy import deepcopy -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Pandora import extract_config @@ -17,7 +18,7 @@ def convert_to_MACO(raw_config: dict): campaign_id=[config_copy.pop("Campaign ID")], version=config_copy.pop("Version"), http=[dict(hostname=config_copy.pop("Domain"), port=config_copy.pop("Port"), password=config_copy.pop("Password"))], - other=raw_config + other=raw_config, ) parsed_result.paths.append( diff --git a/modules/processing/parsers/MACO/PhemedroneStealer.py b/modules/processing/parsers/MACO/PhemedroneStealer.py index b7797c7edb8..ef30b9032bf 100644 --- a/modules/processing/parsers/MACO/PhemedroneStealer.py +++ b/modules/processing/parsers/MACO/PhemedroneStealer.py @@ -1,5 +1,6 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.PhemedroneStealer import extract_config diff --git a/modules/processing/parsers/MACO/PikaBot.py b/modules/processing/parsers/MACO/PikaBot.py index ae8a423fb54..4409b7f6cab 100644 --- a/modules/processing/parsers/MACO/PikaBot.py +++ b/modules/processing/parsers/MACO/PikaBot.py @@ -1,5 +1,6 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.PikaBot import extract_config, rule_source @@ -17,7 +18,7 @@ def convert_to_MACO(raw_config: dict): parsed_result.campaign_id.append(raw_config["Campaign Name"]) parsed_result.registry.append(MACOModel.Registry(key=raw_config["Registry Key"])) for c2 in raw_config["C2s"]: - host, port = c2.split(':') + host, port = c2.split(":") parsed_result.http.append(MACOModel.Http(hostname=host, port=port, user_agent=raw_config["User Agent"])) return parsed_result diff --git a/modules/processing/parsers/MACO/PlugX.py b/modules/processing/parsers/MACO/PlugX.py index 87239f9e115..c2ae83ea952 100644 --- a/modules/processing/parsers/MACO/PlugX.py +++ b/modules/processing/parsers/MACO/PlugX.py @@ -1,5 +1,6 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.PlugX import extract_config diff --git a/modules/processing/parsers/MACO/PoisonIvy.py b/modules/processing/parsers/MACO/PoisonIvy.py index 079f526aac5..e18175fa42d 100644 --- a/modules/processing/parsers/MACO/PoisonIvy.py +++ b/modules/processing/parsers/MACO/PoisonIvy.py @@ -1,5 +1,6 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.PoisonIvy import extract_config @@ -14,8 +15,8 @@ def convert_to_MACO(raw_config: dict): if "Group ID" in raw_config: parsed_result.identifier.append(raw_config["Group ID"]) if "Domains" in raw_config: - for domain_port in raw_config["Domains"].split('|'): - host, port = domain_port.split(':') + for domain_port in raw_config["Domains"].split("|"): + host, port = domain_port.split(":") parsed_result.http.append(MACOModel.Http(hostname=host, port=port)) if "Password" in raw_config: parsed_result.password.append(raw_config["Password"]) diff --git a/modules/processing/parsers/MACO/Punisher.py b/modules/processing/parsers/MACO/Punisher.py index 2f32dccb34c..6bdfbb3c1be 100644 --- a/modules/processing/parsers/MACO/Punisher.py +++ b/modules/processing/parsers/MACO/Punisher.py @@ -1,8 +1,9 @@ import os from copy import deepcopy -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Punisher import extract_config @@ -18,7 +19,7 @@ def convert_to_MACO(raw_config: dict): registry=[MACOModel.Registry(key=config_copy["Registry Key"])], paths=[MACOModel.Path(path=os.path.join(config_copy["Install Path"], config_copy["Install Name"]))], http=[MACOModel.Http(hostname=config_copy["Domain"], port=config_copy["Port"])], - other=raw_config + other=raw_config, ) for field in raw_config.keys(): diff --git a/modules/processing/parsers/MACO/QakBot.py b/modules/processing/parsers/MACO/QakBot.py index c8f83926cb0..d8ee5c8c023 100644 --- a/modules/processing/parsers/MACO/QakBot.py +++ b/modules/processing/parsers/MACO/QakBot.py @@ -1,5 +1,6 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.QakBot import extract_config, rule_source @@ -10,7 +11,7 @@ def convert_to_MACO(raw_config: dict): parsed_result = MACOModel(family="QakBot", other=raw_config) for address in raw_config.get("address", []) + raw_config.get("C2s", []): - host, port = address.split(':') + host, port = address.split(":") parsed_result.http.append(MACOModel.Http(hostname=host, port=port, usage="c2")) return parsed_result diff --git a/modules/processing/parsers/MACO/QuasarRAT.py b/modules/processing/parsers/MACO/QuasarRAT.py index 50301847706..e7a0aadf5e9 100644 --- a/modules/processing/parsers/MACO/QuasarRAT.py +++ b/modules/processing/parsers/MACO/QuasarRAT.py @@ -1,7 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.QuasarRAT import extract_config @@ -19,7 +20,7 @@ class QuasarRAT(Extractor): family = "QuasarRAT" last_modified = "2024-10-26" sharing = "TLP:CLEAR" - yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() def run(self, stream, matches): return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Quickbind.py b/modules/processing/parsers/MACO/Quickbind.py index 49f8580320b..2a0b9101766 100644 --- a/modules/processing/parsers/MACO/Quickbind.py +++ b/modules/processing/parsers/MACO/Quickbind.py @@ -1,7 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Quickbind import extract_config @@ -28,7 +29,7 @@ class Quickbind(Extractor): family = "Quickbind" last_modified = "2024-10-26" sharing = "TLP:CLEAR" - yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() def run(self, stream, matches): return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/RCSession.py b/modules/processing/parsers/MACO/RCSession.py index 451d12b78ed..3c79bc89e32 100644 --- a/modules/processing/parsers/MACO/RCSession.py +++ b/modules/processing/parsers/MACO/RCSession.py @@ -1,5 +1,6 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.RCSession import extract_config, rule_source diff --git a/modules/processing/parsers/MACO/REvil.py b/modules/processing/parsers/MACO/REvil.py index d6268c2ef03..f05f9196733 100644 --- a/modules/processing/parsers/MACO/REvil.py +++ b/modules/processing/parsers/MACO/REvil.py @@ -1,5 +1,6 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.REvil import extract_config diff --git a/modules/processing/parsers/MACO/RedLeaf.py b/modules/processing/parsers/MACO/RedLeaf.py index 82537136a05..22038c489ab 100644 --- a/modules/processing/parsers/MACO/RedLeaf.py +++ b/modules/processing/parsers/MACO/RedLeaf.py @@ -1,5 +1,6 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.RedLeaf import extract_config, rule_source diff --git a/modules/processing/parsers/MACO/RedLine.py b/modules/processing/parsers/MACO/RedLine.py index d150529ca91..3db57707287 100644 --- a/modules/processing/parsers/MACO/RedLine.py +++ b/modules/processing/parsers/MACO/RedLine.py @@ -1,5 +1,6 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.RedLine import extract_config @@ -10,7 +11,7 @@ def convert_to_MACO(raw_config: dict): parsed_result = MACOModel(family="RedLine", other=raw_config) if "C2" in raw_config: - host, port = raw_config["C2"].split(':') + host, port = raw_config["C2"].split(":") parsed_result.http.append(MACOModel.Http(hostname=host, port=port, usage="c2")) return parsed_result diff --git a/modules/processing/parsers/MACO/Remcos.py b/modules/processing/parsers/MACO/Remcos.py index 6bd750006c9..739dd52b54f 100644 --- a/modules/processing/parsers/MACO/Remcos.py +++ b/modules/processing/parsers/MACO/Remcos.py @@ -1,7 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Remcos import extract_config @@ -19,7 +20,7 @@ class Remcos(Extractor): family = "Remcos" last_modified = "2024-10-26" sharing = "TLP:CLEAR" - yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() def run(self, stream, matches): return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Retefe.py b/modules/processing/parsers/MACO/Retefe.py index 6eb25cd834b..119d0af7c4c 100644 --- a/modules/processing/parsers/MACO/Retefe.py +++ b/modules/processing/parsers/MACO/Retefe.py @@ -1,5 +1,6 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Retefe import extract_config, rule_source diff --git a/modules/processing/parsers/MACO/Rhadamanthys.py b/modules/processing/parsers/MACO/Rhadamanthys.py index 05053168d03..d98b140a08e 100644 --- a/modules/processing/parsers/MACO/Rhadamanthys.py +++ b/modules/processing/parsers/MACO/Rhadamanthys.py @@ -1,7 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Rhadamanthys import extract_config @@ -20,7 +21,7 @@ class Rhadamanthys(Extractor): family = "Rhadamanthys" last_modified = "2024-10-26" sharing = "TLP:CLEAR" - yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() def run(self, stream, matches): return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/Rozena.py b/modules/processing/parsers/MACO/Rozena.py index 29a5e676d3a..ba019d79cd9 100644 --- a/modules/processing/parsers/MACO/Rozena.py +++ b/modules/processing/parsers/MACO/Rozena.py @@ -1,7 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Rozena import extract_config @@ -20,7 +21,7 @@ class Rozena(Extractor): family = "Rozena" last_modified = "2024-10-26" sharing = "TLP:CLEAR" - yara_rule = open(os.path.join(os.path.dirname(__file__).split('/modules', 1)[0], f"data/yara/CAPE/{family}.yar")).read() + yara_rule = open(os.path.join(os.path.dirname(__file__).split("/modules", 1)[0], f"data/yara/CAPE/{family}.yar")).read() def run(self, stream, matches): return convert_to_MACO(extract_config(stream.read())) diff --git a/modules/processing/parsers/MACO/SmallNet.py b/modules/processing/parsers/MACO/SmallNet.py index 8c3e5018fda..5b81de3f3af 100644 --- a/modules/processing/parsers/MACO/SmallNet.py +++ b/modules/processing/parsers/MACO/SmallNet.py @@ -1,6 +1,6 @@ - -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.SmallNet import extract_config diff --git a/modules/processing/parsers/MACO/SmokeLoader.py b/modules/processing/parsers/MACO/SmokeLoader.py index bdcc63768e2..ba61c9c08de 100644 --- a/modules/processing/parsers/MACO/SmokeLoader.py +++ b/modules/processing/parsers/MACO/SmokeLoader.py @@ -1,5 +1,6 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.SmokeLoader import extract_config, rule_source @@ -7,8 +8,9 @@ def convert_to_MACO(raw_config: dict): if not raw_config: return None - parsed_result = MACOModel(family="SmokeLoader", other=raw_config, - http=[MACOModel.Http(uri=c2, usage="c2") for c2 in raw_config["C2s"]]) + parsed_result = MACOModel( + family="SmokeLoader", other=raw_config, http=[MACOModel.Http(uri=c2, usage="c2") for c2 in raw_config["C2s"]] + ) return parsed_result diff --git a/modules/processing/parsers/MACO/Socks5Systemz.py b/modules/processing/parsers/MACO/Socks5Systemz.py index 7d3c2c0c6fc..9e6e2ab93a9 100644 --- a/modules/processing/parsers/MACO/Socks5Systemz.py +++ b/modules/processing/parsers/MACO/Socks5Systemz.py @@ -1,7 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Socks5Systemz import extract_config diff --git a/modules/processing/parsers/MACO/SparkRAT.py b/modules/processing/parsers/MACO/SparkRAT.py index 5140d3e2c38..deae637bd99 100644 --- a/modules/processing/parsers/MACO/SparkRAT.py +++ b/modules/processing/parsers/MACO/SparkRAT.py @@ -1,7 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.SparkRAT import extract_config @@ -13,7 +14,9 @@ def convert_to_MACO(raw_config: dict): url = f"http{'s' if raw_config['secure'] else ''}://{raw_config['host']}:{raw_config['port']}{raw_config['path']}" - parsed_result.http.append(MACOModel.Http(uri=url, hostname=raw_config["host"], port=raw_config["port"], path=raw_config["path"])) + parsed_result.http.append( + MACOModel.Http(uri=url, hostname=raw_config["host"], port=raw_config["port"], path=raw_config["path"]) + ) parsed_result.identifier.append(raw_config["uuid"]) diff --git a/modules/processing/parsers/MACO/SquirrelWaffle.py b/modules/processing/parsers/MACO/SquirrelWaffle.py index 8bede861803..0790a7b6653 100644 --- a/modules/processing/parsers/MACO/SquirrelWaffle.py +++ b/modules/processing/parsers/MACO/SquirrelWaffle.py @@ -1,5 +1,6 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.SquirrelWaffle import extract_config, rule_source @@ -7,8 +8,9 @@ def convert_to_MACO(raw_config: dict): if not raw_config: return None - parsed_result = MACOModel(family="SquirrelWaffle", other=raw_config, - http=[MACOModel.Http(uri=c2, usage="c2") for c2 in raw_config["URLs"]]) + parsed_result = MACOModel( + family="SquirrelWaffle", other=raw_config, http=[MACOModel.Http(uri=c2, usage="c2") for c2 in raw_config["URLs"]] + ) return parsed_result diff --git a/modules/processing/parsers/MACO/Stealc.py b/modules/processing/parsers/MACO/Stealc.py index 91916f77975..9cd38a935b7 100644 --- a/modules/processing/parsers/MACO/Stealc.py +++ b/modules/processing/parsers/MACO/Stealc.py @@ -1,14 +1,16 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor -from modules.processing.parsers.CAPE.Stealc import extract_config, RULE_SOURCE +from maco.model import ExtractorModel as MACOModel + +from modules.processing.parsers.CAPE.Stealc import RULE_SOURCE, extract_config def convert_to_MACO(raw_config: dict): if not raw_config: return None - parsed_result = MACOModel(family="Stealc", other=raw_config, - http=[MACOModel.Http(uri=c2, usage="c2") for c2 in raw_config["C2"]]) + parsed_result = MACOModel( + family="Stealc", other=raw_config, http=[MACOModel.Http(uri=c2, usage="c2") for c2 in raw_config["C2"]] + ) return parsed_result diff --git a/modules/processing/parsers/MACO/Strrat.py b/modules/processing/parsers/MACO/Strrat.py index 8c76bc83618..58a5d5f93d9 100644 --- a/modules/processing/parsers/MACO/Strrat.py +++ b/modules/processing/parsers/MACO/Strrat.py @@ -1,5 +1,6 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Strrat import extract_config diff --git a/modules/processing/parsers/MACO/TSCookie.py b/modules/processing/parsers/MACO/TSCookie.py index a71fe849a82..7344c47e381 100644 --- a/modules/processing/parsers/MACO/TSCookie.py +++ b/modules/processing/parsers/MACO/TSCookie.py @@ -1,7 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.TSCookie import extract_config diff --git a/modules/processing/parsers/MACO/TrickBot.py b/modules/processing/parsers/MACO/TrickBot.py index e227e38e76d..5962d7b46d7 100644 --- a/modules/processing/parsers/MACO/TrickBot.py +++ b/modules/processing/parsers/MACO/TrickBot.py @@ -1,5 +1,6 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.TrickBot import extract_config, rule_source diff --git a/modules/processing/parsers/MACO/UrsnifV3.py b/modules/processing/parsers/MACO/UrsnifV3.py index 999034bf8e6..2e8caefbdb0 100644 --- a/modules/processing/parsers/MACO/UrsnifV3.py +++ b/modules/processing/parsers/MACO/UrsnifV3.py @@ -1,7 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.UrsnifV3 import extract_config diff --git a/modules/processing/parsers/MACO/VenomRat.py b/modules/processing/parsers/MACO/VenomRat.py index 406a49b9aa4..de2f70ddd85 100644 --- a/modules/processing/parsers/MACO/VenomRat.py +++ b/modules/processing/parsers/MACO/VenomRat.py @@ -1,6 +1,6 @@ - -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.VenomRAT import extract_config diff --git a/modules/processing/parsers/MACO/WarzoneRAT.py b/modules/processing/parsers/MACO/WarzoneRAT.py index 548885ceada..186ed365448 100644 --- a/modules/processing/parsers/MACO/WarzoneRAT.py +++ b/modules/processing/parsers/MACO/WarzoneRAT.py @@ -1,6 +1,6 @@ - -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.WarzoneRAT import extract_config @@ -11,7 +11,7 @@ def convert_to_MACO(raw_config: dict): parsed_result = MACOModel(family="WarzoneRAT", other=raw_config) if "C2" in raw_config: - host, port = raw_config["C2"].split(':') + host, port = raw_config["C2"].split(":") parsed_result.http.append(MACOModel.Http(hostname=host, port=port, usage="c2")) return parsed_result diff --git a/modules/processing/parsers/MACO/XWorm.py b/modules/processing/parsers/MACO/XWorm.py index 27abc58c9c2..8d81f728c21 100644 --- a/modules/processing/parsers/MACO/XWorm.py +++ b/modules/processing/parsers/MACO/XWorm.py @@ -1,7 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.XWorm import extract_config diff --git a/modules/processing/parsers/MACO/XenoRAT.py b/modules/processing/parsers/MACO/XenoRAT.py index d4a93cc32e7..31fc541f702 100644 --- a/modules/processing/parsers/MACO/XenoRAT.py +++ b/modules/processing/parsers/MACO/XenoRAT.py @@ -1,7 +1,8 @@ import os -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.XenoRAT import extract_config diff --git a/modules/processing/parsers/MACO/Zloader.py b/modules/processing/parsers/MACO/Zloader.py index 43b12c15f92..a6e085f4ce0 100644 --- a/modules/processing/parsers/MACO/Zloader.py +++ b/modules/processing/parsers/MACO/Zloader.py @@ -1,5 +1,6 @@ -from maco.model import ExtractorModel as MACOModel from maco.extractor import Extractor +from maco.model import ExtractorModel as MACOModel + from modules.processing.parsers.CAPE.Zloader import extract_config, rule_source diff --git a/modules/processing/parsers/MACO/test_maco.py b/modules/processing/parsers/MACO/test_maco.py index b294bd5ba5e..d502c95b81c 100644 --- a/modules/processing/parsers/MACO/test_maco.py +++ b/modules/processing/parsers/MACO/test_maco.py @@ -1,5 +1,6 @@ from maco.extractor import Extractor + class Test(Extractor): author = "test" family = "test" From 6703b824a90a19c38d0a012d7b7ea56ee2462be1 Mon Sep 17 00:00:00 2001 From: enzo <7831008+enzok@users.noreply.github.com> Date: Tue, 29 Oct 2024 15:13:54 -0400 Subject: [PATCH 78/98] Bumblebee parser and yara update (#2378) * Bumblebee parser and yara update * remove unused import --- data/yara/CAPE/BumbleBee.yar | 18 +++ modules/processing/parsers/CAPE/BumbleBee.py | 118 ++++++++++++++++++- 2 files changed, 130 insertions(+), 6 deletions(-) diff --git a/data/yara/CAPE/BumbleBee.yar b/data/yara/CAPE/BumbleBee.yar index 43513157063..e65b80d92e6 100644 --- a/data/yara/CAPE/BumbleBee.yar +++ b/data/yara/CAPE/BumbleBee.yar @@ -48,3 +48,21 @@ rule BumbleBee condition: uint16(0) == 0x5A4D and (any of ($antivm*) or all of ($str_*)) } + +rule BumbleBee2024 +{ + meta: + author = "enzok" + description = "BumbleBee 2024" + cape_type = "BumbleBee Payload" + packed = "a20d56ab2e53b3a599af9904f163bb2e1b2bb7f2c98432519e1fbe87c3867e66" + strings: + $rc4key = {48 [6] 48 [6] E8 [4] 4C 89 AD [4] 4C 89 AD [4] 4C 89 B5 [4] 4C 89 AD [4] 44 88 AD [4] 48 8D 15 [4] 44 38 2D [4] 75} + $botidlgt = {4C 8B C1 B? 4F 00 00 00 48 8D 0D [4] E8 [4] 4C 8B C3 48 8D 0D [4] B? 4F 00 00 00 E8 [4] 4C 8B C3 48 8D 0D [4] B? FF 0F 00 00 E8} + $botid = {90 48 [6] E8 [4] 4C 89 AD [4] 4C 89 AD [4] 4C 89 B5 [4] 4C 89 AD [4] 44 88 AD [4] 48 8D 15 [4] 44 38 2D [4] 75} + $port = {4C 89 6D ?? 4C 89 6D ?? 4c 89 75 ?? 4C 89 6D ?? 44 88 6D ?? 48 8D 05 [4] 44 38 2D [4] 75} + $dga1 = {4C 89 75 ?? 4C 89 6D ?? 44 88 6D ?? 48 8B 1D [4] 48 8D 0D [4] E8 [4] 8B F8} + $dga2 = {48 8D 0D [4] E8 [4] 8B F0 4C 89 6D ?? 4C 89 6D ?? 4C 89 75 ?? 4C 89 6D ?? 44 88 6D ?? 48 8D 15 [4] 44 38 2D [4] 75} + condition: + $rc4key and all of ($botid*) and 2 of ($port, $port, $dga1, $dga2) +} \ No newline at end of file diff --git a/modules/processing/parsers/CAPE/BumbleBee.py b/modules/processing/parsers/CAPE/BumbleBee.py index 14425744a0a..526ea6a6a79 100644 --- a/modules/processing/parsers/CAPE/BumbleBee.py +++ b/modules/processing/parsers/CAPE/BumbleBee.py @@ -1,4 +1,5 @@ # Thanks to @MuziSec - https://github.com/MuziSec/malware_scripts/blob/main/bumblebee/extract_config.py +# 2024 updates by @enzok # import logging import traceback @@ -6,10 +7,31 @@ import pefile import regex as re +import yara from Cryptodome.Cipher import ARC4 log = logging.getLogger(__name__) -# log.setLevel(logging.DEBUG) +log.setLevel(logging.INFO) + +rule_source = """ +rule BumbleBee +{ + meta: + author = "enzok" + description = "BumbleBee 2024" + strings: + $rc4key = {48 [6] 48 [6] E8 [4] 4C 89 AD [4] 4C 89 AD [4] 4C 89 B5 [4] 4C 89 AD [4] 44 88 AD [4] 48 8D 15 [4] 44 38 2D [4] 75} + $botidlgt = {4C 8B C1 B? 4F 00 00 00 48 8D 0D [4] E8 [4] 4C 8B C3 48 8D 0D [4] B? 4F 00 00 00 E8 [4] 4C 8B C3 48 8D 0D [4] B? FF 0F 00 00 E8} + $botid = {90 48 [6] E8 [4] 4C 89 AD [4] 4C 89 AD [4] 4C 89 B5 [4] 4C 89 AD [4] 44 88 AD [4] 48 8D 15 [4] 44 38 2D [4] 75} + $port = {4C 89 6D ?? 4C 89 6D ?? 4c 89 75 ?? 4C 89 6D ?? 44 88 6D ?? 48 8D 05 [4] 44 38 2D [4] 75} + $dga1 = {4C 89 75 ?? 4C 89 6D ?? 44 88 6D ?? 48 8B 1D [4] 48 8D 0D [4] E8 [4] 8B F8} + $dga2 = {48 8D 0D [4] E8 [4] 8B F0 4C 89 6D ?? 4C 89 6D ?? 4C 89 75 ?? 4C 89 6D ?? 44 88 6D ?? 48 8D 15 [4] 44 38 2D [4] 75} + condition: + $rc4key and all of ($botid*) and 2 of ($port, $port, $dga1, $dga2) +} +""" + +yara_rules = yara.compile(source=rule_source) def extract_key_data(data, pe, key_match): @@ -22,7 +44,7 @@ def extract_key_data(data, pe, key_match): # Now that we have the relative rva, we need to get the file offset key_offset = pe.get_offset_from_rva(relative_rva + int.from_bytes(key_match.group("key"), byteorder="little")) # Read arbitrary number of byes from key offset and split on null bytes to extract key - key = data[key_offset : key_offset + 0x40].split(b"\x00")[0] + key = data[key_offset: key_offset + 0x40].split(b"\x00")[0] except Exception as e: log.debug(f"There was an exception extracting the key: {e}") log.debug(traceback.format_exc()) @@ -42,7 +64,7 @@ def extract_config_data(data, pe, config_match): campaign_id_offset = pe.get_offset_from_rva( campaign_id_rva + int.from_bytes(config_match.group("campaign_id"), byteorder="little") ) - campaign_id_ct = data[campaign_id_offset : campaign_id_offset + 0x10] + campaign_id_ct = data[campaign_id_offset: campaign_id_offset + 0x10] except Exception as e: log.debug(f"There was an exception extracting the campaign id: {e}") log.debug(traceback.format_exc()) @@ -51,12 +73,13 @@ def extract_config_data(data, pe, config_match): try: # Get botnet id ciphertext botnet_id_rva = pe.get_rva_from_offset( - config_match.start() + int(len(config_match.group("campaign_id_ins"))) + int(len(config_match.group("botnet_id_ins"))) + config_match.start() + int(len(config_match.group("campaign_id_ins"))) + int( + len(config_match.group("botnet_id_ins"))) ) botnet_id_offset = pe.get_offset_from_rva( botnet_id_rva + int.from_bytes(config_match.group("botnet_id"), byteorder="little") ) - botnet_id_ct = data[botnet_id_offset : botnet_id_offset + 0x10] + botnet_id_ct = data[botnet_id_offset: botnet_id_offset + 0x10] except Exception as e: log.debug(f"There was an exception extracting the botnet id: {e}") log.debug(traceback.format_exc()) @@ -71,7 +94,7 @@ def extract_config_data(data, pe, config_match): + int(len(config_match.group("c2s_ins"))) ) c2s_offset = pe.get_offset_from_rva(c2s_rva + int.from_bytes(config_match.group("c2s"), byteorder="little")) - c2s_ct = data[c2s_offset : c2s_offset + 0x400] + c2s_ct = data[c2s_offset: c2s_offset + 0x400] except Exception as e: log.debug(f"There was an exception extracting the C2s: {e}") log.debug(traceback.format_exc()) @@ -80,6 +103,84 @@ def extract_config_data(data, pe, config_match): return campaign_id_ct, botnet_id_ct, c2s_ct +def extract_2024(pe, filebuf): + cfg = {} + rc4key_init_offset = 0 + botid_init_offset = 0 + port_init_offset = 0 + dga1_init_offset = 0 + dga2_init_offset = 0 + botidlgt_init_offset = 0 + + matches = yara_rules.match(data=filebuf) + if not matches: + return + + for match in matches: + if match.rule != "BumbleBee": + continue + for item in match.strings: + for instance in item.instances: + if "$rc4key" in item.identifier: + rc4key_init_offset = int(instance.offset) + elif "$botidlgt" in item.identifier: + botidlgt_init_offset = int(instance.offset) + elif "$botid" in item.identifier: + botid_init_offset = int(instance.offset) + elif "$port" in item.identifier: + port_init_offset = int(instance.offset) + elif "$dga1" in item.identifier: + dga1_init_offset = int(instance.offset) + elif "$dga2" in item.identifier: + dga2_init_offset = int(instance.offset) + + if not rc4key_init_offset: + return + + key_offset = pe.get_dword_from_offset(rc4key_init_offset + 57) + key_rva = pe.get_rva_from_offset(rc4key_init_offset + 61) + key_offset + key = pe.get_string_at_rva(key_rva) + cfg["RC4 key"] = key.decode() + + botid_offset = pe.get_dword_from_offset(botid_init_offset + 51) + botid_rva = pe.get_rva_from_offset(botid_init_offset + 55) + botid_offset + botid_len_offset = pe.get_dword_from_offset(botidlgt_init_offset + 31) + botid_data = pe.get_data(botid_rva)[:botid_len_offset] + with suppress(Exception): + botid = ARC4.new(key).decrypt(botid_data).split(b"\x00")[0].decode() + cfg["Botid"] = botid + + port_offset = pe.get_dword_from_offset(port_init_offset + 23) + port_rva = pe.get_rva_from_offset(port_init_offset + 27) + port_offset + port_len_offset = pe.get_dword_from_offset(botidlgt_init_offset + 4) + port_data = pe.get_data(port_rva)[:port_len_offset] + with suppress(Exception): + port = ARC4.new(key).decrypt(port_data).split(b"\x00")[0].decode() + cfg["Port"] = port + + dgaseed_offset = pe.get_dword_from_offset(dga1_init_offset + 15) + dgaseed_rva = pe.get_rva_from_offset(dga1_init_offset + 19) + dgaseed_offset + dgaseed_data = pe.get_qword_at_rva(dgaseed_rva) + cfg["DGA seed"] = int(dgaseed_data) + + numdga_offset = pe.get_dword_from_offset(dga1_init_offset + 22) + numdga_rva = pe.get_rva_from_offset(dga1_init_offset + 26) + numdga_offset + numdga_data = pe.get_string_at_rva(numdga_rva) + cfg["Number DGA domains"] = numdga_data.decode() + + domainlen_offset = pe.get_dword_from_offset(dga2_init_offset + 3) + domainlen_rva = pe.get_rva_from_offset(dga2_init_offset + 7) + domainlen_offset + domainlen_data = pe.get_string_at_rva(domainlen_rva) + cfg["Domain length"] = domainlen_data.decode() + + tld_offset = pe.get_dword_from_offset(dga2_init_offset + 37) + tld_rva = pe.get_rva_from_offset(dga2_init_offset + 41) + tld_offset + tld_data = pe.get_string_at_rva(tld_rva).decode() + cfg["TLD"] = tld_data + + return cfg + + def extract_config(data): """ Extract key and config and decrypt @@ -92,6 +193,7 @@ def extract_config(data): if not pe: return cfg + key_regex = re.compile(rb"(\x48\x8D.(?P....)\x80\x3D....\x00)", re.DOTALL) regex = re.compile( rb"(?\x48\x8D.(?P....))(?P\x48\x8D.(?P....))(?P\x48\x8D.(?P....))", @@ -128,6 +230,10 @@ def extract_config(data): cfg["C2s"] = list(ARC4.new(key).decrypt(c2s).split(b"\x00")[0].decode().split(",")) except Exception as e: log.error("This is broken: %s", str(e), exc_info=True) + + if not cfg: + cfg = extract_2024(pe, data) + return cfg From 4da55ba7c48c8eaddf4eca6d56b65c4458692587 Mon Sep 17 00:00:00 2001 From: enzo <7831008+enzok@users.noreply.github.com> Date: Tue, 29 Oct 2024 15:14:13 -0400 Subject: [PATCH 79/98] Use correct rule (#2377) * NitrogenLoader yara and syscall bypass * Use correct rule --- data/yara/CAPE/NitrogenLoader.yar | 45 ++++++++----------------------- 1 file changed, 11 insertions(+), 34 deletions(-) diff --git a/data/yara/CAPE/NitrogenLoader.yar b/data/yara/CAPE/NitrogenLoader.yar index 0c37500494a..84b16bdf35e 100644 --- a/data/yara/CAPE/NitrogenLoader.yar +++ b/data/yara/CAPE/NitrogenLoader.yar @@ -1,41 +1,18 @@ -rule LoaderSyscall +rule NitrogenLoader { meta: author = "enzok" - description = "Loader Syscall" - cape_options = "sysbp=$syscall*-2,count=0" + description = "Nitrogen Loader" + cape_type = "NitrogenLoader Loader" + hash = "7b603d63a23201ff0b6ffa9acdd650df9caa1731837d559d93b3d8ce1d82a962" strings: - $makehashes = {48 89 4C 24 ?? 48 89 54 24 ?? 4? 89 44 24 ?? 4? 89 4C 24 ?? 4? 83 EC ?? B? [4] E8 [3] 00} - $number = {49 89 C3 B? [4] E8 [3] 00} + $stringaes1 = {63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76 ca 82 c9 7d fa} + $stringaes2 = {52 09 6a d5 30 36 a5 38 bf 40 a3 9e 81 f3 d7 fb 7c e3 39 82 9b} + $string1 = "BASS_GetEAXParameters" + $string2 = "LoadResource" + $syscallmakehashes = {48 89 4C 24 ?? 48 89 54 24 ?? 4? 89 44 24 ?? 4? 89 4C 24 ?? 4? 83 EC ?? B? [4] E8 [3] 00} + $syscallnumber = {49 89 C3 B? [4] E8 [3] 00} $syscall = {48 83 C4 ?? 4? 8B 4C 24 ?? 4? 8B 54 24 ?? 4? 8B 44 24 ?? 4? 8B 4C 24 ?? 4? 89 CA 4? FF E3} condition: - all of them + all of ($aes*) and all of ($string*) and any of ($syscall*) } - -rule NitrogenLoaderAES -{ - meta: - author = "enzok" - description = "NitrogenLoader AES and IV" - cape_options = "bp0=$keyiv0+8,action0=dump:ecx::64,hc0=1,bp1=$keyiv0*-4,action1=dump:ecx::32,hc1=1,count=0" - strings: - $keyiv0 = {48 8B 8C 24 [4] E8 [3] 00 4? 89 84 24 [4] 4? 8B 84 24 [4] 4? 89 84 24 [4] 4? 8B 8C 24 [4] E8 [3] 00} - $keyiv1 = {48 89 84 24 [4] 4? 8B 84 24 [4] 4? 8B 94 24 [4] 4? 8D 8C 24 [4] E8 [3] FF} - $keyiv2 = {48 63 84 24 [4] 4? 8B C0 4? 8B 94 24 [4] 4? 8D 8C 24 [4] E8 [3] FF 4? 8B 84 24} - condition: - all of them -} - -rule NitrogenLoaderBypass -{ - meta: - author = "enzok" - description = "Nitrogen Loader Exit Bypass" - cape_options = "bp2=$exit-2,action2=jmp,count=0" - strings: - $string1 = "LoadResource" - $syscall = {48 83 C4 ?? 4? 8B 4C 24 ?? 4? 8B 54 24 ?? 4? 8B 44 24 ?? 4? 8B 4C 24 ?? 4? 89 CA 4? FF E3} - $exit = {33 C9 E8 [4] E8 [4] 48 8D 84 24 [4] 48 89 44 24 ?? 4? B? E4 00 00 00 4? 8B 05 [4] B? 03 00 00 00 48 8D} - condition: - all of them -} \ No newline at end of file From 0636b8659feee64b749247c776584317bfd50c5c Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 29 Oct 2024 19:15:34 +0000 Subject: [PATCH 80/98] style: Automatic code formatting --- modules/processing/parsers/CAPE/BumbleBee.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/modules/processing/parsers/CAPE/BumbleBee.py b/modules/processing/parsers/CAPE/BumbleBee.py index 526ea6a6a79..b53fdfc722f 100644 --- a/modules/processing/parsers/CAPE/BumbleBee.py +++ b/modules/processing/parsers/CAPE/BumbleBee.py @@ -44,7 +44,7 @@ def extract_key_data(data, pe, key_match): # Now that we have the relative rva, we need to get the file offset key_offset = pe.get_offset_from_rva(relative_rva + int.from_bytes(key_match.group("key"), byteorder="little")) # Read arbitrary number of byes from key offset and split on null bytes to extract key - key = data[key_offset: key_offset + 0x40].split(b"\x00")[0] + key = data[key_offset : key_offset + 0x40].split(b"\x00")[0] except Exception as e: log.debug(f"There was an exception extracting the key: {e}") log.debug(traceback.format_exc()) @@ -64,7 +64,7 @@ def extract_config_data(data, pe, config_match): campaign_id_offset = pe.get_offset_from_rva( campaign_id_rva + int.from_bytes(config_match.group("campaign_id"), byteorder="little") ) - campaign_id_ct = data[campaign_id_offset: campaign_id_offset + 0x10] + campaign_id_ct = data[campaign_id_offset : campaign_id_offset + 0x10] except Exception as e: log.debug(f"There was an exception extracting the campaign id: {e}") log.debug(traceback.format_exc()) @@ -73,13 +73,12 @@ def extract_config_data(data, pe, config_match): try: # Get botnet id ciphertext botnet_id_rva = pe.get_rva_from_offset( - config_match.start() + int(len(config_match.group("campaign_id_ins"))) + int( - len(config_match.group("botnet_id_ins"))) + config_match.start() + int(len(config_match.group("campaign_id_ins"))) + int(len(config_match.group("botnet_id_ins"))) ) botnet_id_offset = pe.get_offset_from_rva( botnet_id_rva + int.from_bytes(config_match.group("botnet_id"), byteorder="little") ) - botnet_id_ct = data[botnet_id_offset: botnet_id_offset + 0x10] + botnet_id_ct = data[botnet_id_offset : botnet_id_offset + 0x10] except Exception as e: log.debug(f"There was an exception extracting the botnet id: {e}") log.debug(traceback.format_exc()) @@ -94,7 +93,7 @@ def extract_config_data(data, pe, config_match): + int(len(config_match.group("c2s_ins"))) ) c2s_offset = pe.get_offset_from_rva(c2s_rva + int.from_bytes(config_match.group("c2s"), byteorder="little")) - c2s_ct = data[c2s_offset: c2s_offset + 0x400] + c2s_ct = data[c2s_offset : c2s_offset + 0x400] except Exception as e: log.debug(f"There was an exception extracting the C2s: {e}") log.debug(traceback.format_exc()) From 970e3b80408386871876454f3e494fbfeb9fa837 Mon Sep 17 00:00:00 2001 From: cccs-mog <117194682+cccs-mog@users.noreply.github.com> Date: Tue, 29 Oct 2024 15:19:32 -0400 Subject: [PATCH 81/98] Create rdp.py (#2376) * Create rdp.py * Update rdp.py * Update rdp.py --- analyzer/windows/modules/packages/rdp.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 analyzer/windows/modules/packages/rdp.py diff --git a/analyzer/windows/modules/packages/rdp.py b/analyzer/windows/modules/packages/rdp.py new file mode 100644 index 00000000000..016df77bbf4 --- /dev/null +++ b/analyzer/windows/modules/packages/rdp.py @@ -0,0 +1,17 @@ +from lib.common.abstracts import Package +from lib.common.common import check_file_extension + + +class Exe(Package): + """RDP analysis package.""" + + PATHS = [ + ("SystemRoot", "system32", "mstsc.exe"), + ] + + def start(self, path): + args = self.options.get("arguments") + + path = check_file_extension(path, ".rdp") + mstsc = self.get_path_glob("mstsc.exe") + return self.execute(mstsc, f'"{path}" {args}', path) From a74bc584fa728c4bd2010aaf592b12c7b9fce45f Mon Sep 17 00:00:00 2001 From: doomedraven Date: Tue, 29 Oct 2024 21:45:33 +0100 Subject: [PATCH 82/98] Update python-package.yml --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 9c06706713d..d271e493800 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -34,7 +34,7 @@ jobs: - name: Install pyattck run: | - poetry run pip install pyattck==7.1.2 + poetry run pip install pyattck==7.1.2 maco - name: Run Ruff run: poetry run ruff . --line-length 132 --ignore E501,E402 From 112298ad2de927f5039f1d954c7991a756295060 Mon Sep 17 00:00:00 2001 From: doomedraven Date: Tue, 29 Oct 2024 21:48:41 +0100 Subject: [PATCH 83/98] Update NitrogenLoader.yar --- data/yara/CAPE/NitrogenLoader.yar | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/yara/CAPE/NitrogenLoader.yar b/data/yara/CAPE/NitrogenLoader.yar index 84b16bdf35e..b1131d9d59c 100644 --- a/data/yara/CAPE/NitrogenLoader.yar +++ b/data/yara/CAPE/NitrogenLoader.yar @@ -14,5 +14,5 @@ rule NitrogenLoader $syscallnumber = {49 89 C3 B? [4] E8 [3] 00} $syscall = {48 83 C4 ?? 4? 8B 4C 24 ?? 4? 8B 54 24 ?? 4? 8B 44 24 ?? 4? 8B 4C 24 ?? 4? 89 CA 4? FF E3} condition: - all of ($aes*) and all of ($string*) and any of ($syscall*) + all of ($stringaes*) and all of ($string*) and any of ($syscall*) } From bb49d9e1ae903acee185ec0a3c15bd98b06b004b Mon Sep 17 00:00:00 2001 From: doomedraven Date: Tue, 29 Oct 2024 22:00:58 +0100 Subject: [PATCH 84/98] Update NitrogenLoader.yar --- data/yara/CAPE/NitrogenLoader.yar | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/data/yara/CAPE/NitrogenLoader.yar b/data/yara/CAPE/NitrogenLoader.yar index b1131d9d59c..1939fc68e00 100644 --- a/data/yara/CAPE/NitrogenLoader.yar +++ b/data/yara/CAPE/NitrogenLoader.yar @@ -6,13 +6,13 @@ rule NitrogenLoader cape_type = "NitrogenLoader Loader" hash = "7b603d63a23201ff0b6ffa9acdd650df9caa1731837d559d93b3d8ce1d82a962" strings: - $stringaes1 = {63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76 ca 82 c9 7d fa} - $stringaes2 = {52 09 6a d5 30 36 a5 38 bf 40 a3 9e 81 f3 d7 fb 7c e3 39 82 9b} + $aes1 = {63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76 ca 82 c9 7d fa} + $aes2 = {52 09 6a d5 30 36 a5 38 bf 40 a3 9e 81 f3 d7 fb 7c e3 39 82 9b} $string1 = "BASS_GetEAXParameters" $string2 = "LoadResource" $syscallmakehashes = {48 89 4C 24 ?? 48 89 54 24 ?? 4? 89 44 24 ?? 4? 89 4C 24 ?? 4? 83 EC ?? B? [4] E8 [3] 00} $syscallnumber = {49 89 C3 B? [4] E8 [3] 00} $syscall = {48 83 C4 ?? 4? 8B 4C 24 ?? 4? 8B 54 24 ?? 4? 8B 44 24 ?? 4? 8B 4C 24 ?? 4? 89 CA 4? FF E3} condition: - all of ($stringaes*) and all of ($string*) and any of ($syscall*) + all of ($aes*) and all of ($string*) and any of ($syscall*) } From a386155ad8ebb145e3207f9699d4e9929d2f1373 Mon Sep 17 00:00:00 2001 From: YungBinary <93540406+YungBinary@users.noreply.github.com> Date: Wed, 30 Oct 2024 08:30:03 +0000 Subject: [PATCH 85/98] Add Snake Keylogger config extractor (#2379) * Snake Keylogger config extractor * Fix unused imports * Add test * Fix --- modules/processing/parsers/CAPE/Snake.py | 153 +++++++++++++++++++++++ tests_parsers/test_snake.py | 11 ++ 2 files changed, 164 insertions(+) create mode 100644 modules/processing/parsers/CAPE/Snake.py create mode 100644 tests_parsers/test_snake.py diff --git a/modules/processing/parsers/CAPE/Snake.py b/modules/processing/parsers/CAPE/Snake.py new file mode 100644 index 00000000000..8d7deb545a8 --- /dev/null +++ b/modules/processing/parsers/CAPE/Snake.py @@ -0,0 +1,153 @@ +import base64 +import re +import hashlib +import dnfile +import logging +import traceback + +try: + from Cryptodome.Cipher import DES + from Cryptodome.Util.Padding import unpad +except ModuleNotFoundError: + raise ModuleNotFoundError("Please run: pip3 install pycryptodomex") + +log = logging.getLogger(__name__) +log.setLevel(logging.INFO) + +def is_base64(s): + pattern = re.compile("^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$") + if not s or len(s) < 1: + return False + else: + return pattern.match(s) + +def pad(text): + n = len(text) % 8 + return text + (b' ' * n) + +def md5(string: bytes) -> bytes: + return bytes.fromhex(hashlib.md5(string).hexdigest()) + +def handle_plain(dotnet_file, c2_type, user_strings): + user_strings_list = list(user_strings.values()) + if c2_type == "Telegram": + token = dotnet_file.net.user_strings.get(user_strings_list[15]).value.__str__() + chat_id = dotnet_file.net.user_strings.get(user_strings_list[16]).value.__str__() + return {"Type": "Telegram", "C2": f"https://api.telegram.org/bot{token}/sendMessage?chat_id={chat_id}"} + elif c2_type == "SMTP": + smtp_from = dotnet_file.net.user_strings.get(user_strings_list[7]).value.__str__() + smtp_password = dotnet_file.net.user_strings.get(user_strings_list[8]).value.__str__() + smtp_host = dotnet_file.net.user_strings.get(user_strings_list[9]).value.__str__() + smtp_to = dotnet_file.net.user_strings.get(user_strings_list[10]).value.__str__() + smtp_port = dotnet_file.net.user_strings.get(user_strings_list[11]).value.__str__() + return {"Type": "SMTP", "Host": smtp_host, "Port": smtp_port, "From Address": smtp_from, "To Address": smtp_to, "Password": smtp_password} + elif c2_type == "FTP": + ftp_username = dotnet_file.net.user_strings.get(user_strings_list[12]).value.__str__() + ftp_password = dotnet_file.net.user_strings.get(user_strings_list[13]).value.__str__() + ftp_host = dotnet_file.net.user_strings.get(user_strings_list[14]).value.__str__() + return {"Type": "FTP", "Host": ftp_host, "Username": ftp_username, "Password": ftp_password} + +def handle_encrypted(dotnet_file, data, c2_type, user_strings): + # Match decrypt string pattern + decrypt_string_pattern = re.compile( + Rb"""(?x) + \x72(...)\x70 + \x7E(...)\x04 + \x28...\x06 + \x80...\x04 + """ + ) + + config_dict = None + decrypted_strings = [] + + matches2 = decrypt_string_pattern.findall(data) + for match in matches2: + string_index = int.from_bytes(match[0], "little") + user_string = dotnet_file.net.user_strings.get(string_index).value + # Skip user strings that are empty/not base64 + if user_string == "Yx74dJ0TP3M=" or not is_base64(user_string): + continue + field_row_index = int.from_bytes(match[1], "little") + field_name = dotnet_file.net.mdtables.Field.get_with_row_index(field_row_index).Name.__str__() + key_index = user_strings[field_name] + key_str = dotnet_file.net.user_strings.get(key_index).value.__str__() + key = md5(key_str.encode())[:8] + des = DES.new(key, DES.MODE_ECB) + + decoded_str = base64.b64decode(user_string) + padded_str = pad(decoded_str) + decrypted_text = des.decrypt(padded_str) + plaintext_bytes = unpad(decrypted_text, DES.block_size) + plaintext = plaintext_bytes.decode() + decrypted_strings.append(plaintext) + + if decrypted_strings: + if c2_type == "Telegram": + token, chat_id = decrypted_strings + config_dict = {"Type": "Telegram", "C2": f"https://api.telegram.org/bot{token}/sendMessage?chat_id={chat_id}"} + elif c2_type == "SMTP": + smtp_from, smtp_password, smtp_host, smtp_to, smtp_port = decrypted_strings + config_dict = {"Type": "SMTP", "Host": smtp_host, "Port": smtp_port, "From Address": smtp_from, "To Address": smtp_to, "Password": smtp_password} + elif c2_type == "FTP": + ftp_username, ftp_password, ftp_host = decrypted_strings + config_dict = {"Type": "FTP", "Host": ftp_host, "Username": ftp_username, "Password": ftp_password} + return config_dict + +def extract_config(data): + + try: + dotnet_file = dnfile.dnPE(data=data) + except Exception as e: + log.debug(f"Exception when attempting to parse .NET file: {e}") + log.debug(traceback.format_exc()) + + # ldstr, stsfld + static_strings = re.compile( + Rb"""(?x) + \x72(...)\x70 + \x80(...)\x04 + """ + ) + + # Get user strings and C2 type + user_strings = {} + c2_type = None + matches = static_strings.findall(data) + for match in matches: + try: + string_index = int.from_bytes(match[0], "little") + string_value = dotnet_file.net.user_strings.get(string_index).value.__str__() + field_index = int.from_bytes(match[1], "little") + field_name = dotnet_file.net.mdtables.Field.get_with_row_index(field_index).Name.__str__() + if string_value == '$%TelegramDv$': + c2_type = 'Telegram' + + elif string_value == '$%SMTPDV$': + c2_type = 'SMTP' + + elif string_value == '%FTPDV$': + c2_type = 'FTP' + else: + user_strings[field_name] = string_index + except Exception as e: + log.debug(f"There was an exception parsing user strings: {e}") + log.debug(traceback.format_exc()) + + if c2_type is None: + raise ValueError("Could not identify C2 type.") + + # Handle encrypted strings + config_dict = handle_encrypted(dotnet_file, data, c2_type, user_strings) + if config_dict is None: + # Handle plain strings + config_dict = handle_plain(dotnet_file, c2_type, user_strings) + + return config_dict + + +if __name__ == "__main__": + import sys + + with open(sys.argv[1], "rb") as f: + print(extract_config(f.read())) diff --git a/tests_parsers/test_snake.py b/tests_parsers/test_snake.py new file mode 100644 index 00000000000..9558d6d26a8 --- /dev/null +++ b/tests_parsers/test_snake.py @@ -0,0 +1,11 @@ +# Copyright (C) 2010-2015 Cuckoo Foundation. +# This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org +# See the file 'docs/LICENSE' for copying permission. + +from modules.processing.parsers.CAPE.Snake import extract_config + + +def test_snake(): + with open("tests/data/malware/7b81c12fb7db9f0c317f36022ecac9faa45f5efefe24085c339c43db8b963ae2", "rb") as data: + conf = extract_config(data.read()) + assert conf == {'Type': 'Telegram', 'C2': 'https://api.telegram.org/bot7952998151:AAFh98iY7kaOlHAR0qftD3ZcqGbQm0TXbBY/sendMessage?chat_id=5692813672'} From 986bd4feb6dd169922a1f716ba452c3472d64c60 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 30 Oct 2024 08:30:57 +0000 Subject: [PATCH 86/98] style: Automatic code formatting --- modules/processing/parsers/CAPE/Snake.py | 47 +++++++++++++++++------- tests_parsers/test_snake.py | 5 ++- 2 files changed, 38 insertions(+), 14 deletions(-) diff --git a/modules/processing/parsers/CAPE/Snake.py b/modules/processing/parsers/CAPE/Snake.py index 8d7deb545a8..50356034693 100644 --- a/modules/processing/parsers/CAPE/Snake.py +++ b/modules/processing/parsers/CAPE/Snake.py @@ -1,10 +1,11 @@ import base64 -import re import hashlib -import dnfile import logging +import re import traceback +import dnfile + try: from Cryptodome.Cipher import DES from Cryptodome.Util.Padding import unpad @@ -14,6 +15,7 @@ log = logging.getLogger(__name__) log.setLevel(logging.INFO) + def is_base64(s): pattern = re.compile("^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$") if not s or len(s) < 1: @@ -21,13 +23,16 @@ def is_base64(s): else: return pattern.match(s) + def pad(text): n = len(text) % 8 - return text + (b' ' * n) + return text + (b" " * n) + def md5(string: bytes) -> bytes: return bytes.fromhex(hashlib.md5(string).hexdigest()) + def handle_plain(dotnet_file, c2_type, user_strings): user_strings_list = list(user_strings.values()) if c2_type == "Telegram": @@ -40,13 +45,21 @@ def handle_plain(dotnet_file, c2_type, user_strings): smtp_host = dotnet_file.net.user_strings.get(user_strings_list[9]).value.__str__() smtp_to = dotnet_file.net.user_strings.get(user_strings_list[10]).value.__str__() smtp_port = dotnet_file.net.user_strings.get(user_strings_list[11]).value.__str__() - return {"Type": "SMTP", "Host": smtp_host, "Port": smtp_port, "From Address": smtp_from, "To Address": smtp_to, "Password": smtp_password} + return { + "Type": "SMTP", + "Host": smtp_host, + "Port": smtp_port, + "From Address": smtp_from, + "To Address": smtp_to, + "Password": smtp_password, + } elif c2_type == "FTP": ftp_username = dotnet_file.net.user_strings.get(user_strings_list[12]).value.__str__() ftp_password = dotnet_file.net.user_strings.get(user_strings_list[13]).value.__str__() ftp_host = dotnet_file.net.user_strings.get(user_strings_list[14]).value.__str__() return {"Type": "FTP", "Host": ftp_host, "Username": ftp_username, "Password": ftp_password} + def handle_encrypted(dotnet_file, data, c2_type, user_strings): # Match decrypt string pattern decrypt_string_pattern = re.compile( @@ -88,12 +101,20 @@ def handle_encrypted(dotnet_file, data, c2_type, user_strings): config_dict = {"Type": "Telegram", "C2": f"https://api.telegram.org/bot{token}/sendMessage?chat_id={chat_id}"} elif c2_type == "SMTP": smtp_from, smtp_password, smtp_host, smtp_to, smtp_port = decrypted_strings - config_dict = {"Type": "SMTP", "Host": smtp_host, "Port": smtp_port, "From Address": smtp_from, "To Address": smtp_to, "Password": smtp_password} + config_dict = { + "Type": "SMTP", + "Host": smtp_host, + "Port": smtp_port, + "From Address": smtp_from, + "To Address": smtp_to, + "Password": smtp_password, + } elif c2_type == "FTP": ftp_username, ftp_password, ftp_host = decrypted_strings config_dict = {"Type": "FTP", "Host": ftp_host, "Username": ftp_username, "Password": ftp_password} return config_dict + def extract_config(data): try: @@ -120,14 +141,14 @@ def extract_config(data): string_value = dotnet_file.net.user_strings.get(string_index).value.__str__() field_index = int.from_bytes(match[1], "little") field_name = dotnet_file.net.mdtables.Field.get_with_row_index(field_index).Name.__str__() - if string_value == '$%TelegramDv$': - c2_type = 'Telegram' - - elif string_value == '$%SMTPDV$': - c2_type = 'SMTP' - - elif string_value == '%FTPDV$': - c2_type = 'FTP' + if string_value == "$%TelegramDv$": + c2_type = "Telegram" + + elif string_value == "$%SMTPDV$": + c2_type = "SMTP" + + elif string_value == "%FTPDV$": + c2_type = "FTP" else: user_strings[field_name] = string_index except Exception as e: diff --git a/tests_parsers/test_snake.py b/tests_parsers/test_snake.py index 9558d6d26a8..489418eca86 100644 --- a/tests_parsers/test_snake.py +++ b/tests_parsers/test_snake.py @@ -8,4 +8,7 @@ def test_snake(): with open("tests/data/malware/7b81c12fb7db9f0c317f36022ecac9faa45f5efefe24085c339c43db8b963ae2", "rb") as data: conf = extract_config(data.read()) - assert conf == {'Type': 'Telegram', 'C2': 'https://api.telegram.org/bot7952998151:AAFh98iY7kaOlHAR0qftD3ZcqGbQm0TXbBY/sendMessage?chat_id=5692813672'} + assert conf == { + "Type": "Telegram", + "C2": "https://api.telegram.org/bot7952998151:AAFh98iY7kaOlHAR0qftD3ZcqGbQm0TXbBY/sendMessage?chat_id=5692813672", + } From c7a857bcfe17af3d372317e82b03adbfcb2c9890 Mon Sep 17 00:00:00 2001 From: doomedraven Date: Wed, 30 Oct 2024 09:32:51 +0100 Subject: [PATCH 87/98] Update cape2.sh --- installer/cape2.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/installer/cape2.sh b/installer/cape2.sh index c674fd4a3f1..f514aa899a4 100644 --- a/installer/cape2.sh +++ b/installer/cape2.sh @@ -931,7 +931,9 @@ function dependencies() { apt-get install uthash-dev libconfig-dev libarchive-dev libtool autoconf automake privoxy software-properties-common wkhtmltopdf xvfb xfonts-100dpi tcpdump libcap2-bin wireshark-common -y apt-get install python3-pil subversion uwsgi uwsgi-plugin-python3 python3-pyelftools git curl -y apt-get install openvpn wireguard -y - apt-get install python3-poetry crudini -y + apt-get install crudini -y + # APT poetry is ultra outdated + curl -sSL https://install.python-poetry.org | python3 - apt-get install locate # used by extra/libvirt_installer.sh # de4dot selfextraction From 9500546110faa57a1b6fadd3fced6d78b038851c Mon Sep 17 00:00:00 2001 From: David Santos <44490090+dsecuma@users.noreply.github.com> Date: Wed, 30 Oct 2024 09:35:34 +0100 Subject: [PATCH 88/98] get HAR from api (#2381) --- conf/default/api.conf.default | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/conf/default/api.conf.default b/conf/default/api.conf.default index f1a6828d768..96e249df910 100644 --- a/conf/default/api.conf.default +++ b/conf/default/api.conf.default @@ -252,6 +252,10 @@ compress = no rps = 1/s rpm = 2/m +# Pull a HAR file from a specific task with mitmdump enabled +[taskmitmdump] +enabled = no + # Download a sample from a specific Task ID. [sampledl] enabled = no From e112deb3b352576910e0e82be7b59486ffaafed2 Mon Sep 17 00:00:00 2001 From: doomedraven Date: Wed, 30 Oct 2024 14:08:51 +0100 Subject: [PATCH 89/98] maco optional (#2380) * maco optional * Update poetry.lock --- poetry.lock | 7 +- pyproject.toml | 2 + tests_parsers/test_agenttesla.py | 54 +++--- tests_parsers/test_asyncrat.py | 43 +++-- tests_parsers/test_aurorastealer.py | 33 ++-- tests_parsers/test_blackdropper.py | 30 ++-- tests_parsers/test_bumblebee.py | 23 ++- tests_parsers/test_carbanak.py | 17 +- tests_parsers/test_cobaltstrikebeacon.py | 126 +++++++------- tests_parsers/test_darkgate.py | 17 +- tests_parsers/test_icedid.py | 19 +- tests_parsers/test_koiloader.py | 24 +-- tests_parsers/test_latrodectus.py | 211 ++++++++++++----------- tests_parsers/test_lumma.py | 61 ++++--- tests_parsers/test_nanocore.py | 119 +++++++------ tests_parsers/test_njrat.py | 25 +-- tests_parsers/test_oyster.py | 29 ++-- tests_parsers/test_pikabot.py | 169 +++++++++--------- tests_parsers/test_quickbind.py | 30 ++-- tests_parsers/test_redline.py | 28 +-- tests_parsers/test_smokeloader.py | 18 +- tests_parsers/test_sparkrat.py | 33 ++-- tests_parsers/test_zloader.py | 30 ++-- 23 files changed, 630 insertions(+), 518 deletions(-) diff --git a/poetry.lock b/poetry.lock index c47b98b49da..9aeb10ad277 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. [[package]] name = "alembic" @@ -4609,7 +4609,10 @@ docs = ["Sphinx", "repoze.sphinx.autointerface", "sphinx-rtd-theme"] test = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] +[extras] +maco = ["maco"] + [metadata] lock-version = "2.0" python-versions = ">=3.10, <4.0" -content-hash = "d8e5cf52c678477800f15c8cbc7b3aa9a888a98e0cab0c8f4c3e18dd7b30e705" +content-hash = "ab3f807dcdc7fa1fb2098ee2222602ffde65894297ca6b4c3629f2528d584d09" diff --git a/pyproject.toml b/pyproject.toml index 418cbb9aff9..43be4a45a58 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -92,6 +92,8 @@ setproctitle = "1.3.2" # tmp dependency to fix vuln certifi = "2024.7.4" +[tool.poetry.extras] +maco = ["maco"] [tool.poetry.dev-dependencies] black = "^24.3.0" diff --git a/tests_parsers/test_agenttesla.py b/tests_parsers/test_agenttesla.py index 5390edb9b70..37050c3328e 100644 --- a/tests_parsers/test_agenttesla.py +++ b/tests_parsers/test_agenttesla.py @@ -1,5 +1,10 @@ from modules.processing.parsers.CAPE.AgentTesla import extract_config -from modules.processing.parsers.MACO.AgentTesla import convert_to_MACO + +from contextlib import suppress +HAVE_MACO = False +with suppress(ImportError): + from modules.processing.parsers.MACO.AgentTesla import convert_to_MACO + HAVE_MACO = True def test_agenttesla(): @@ -16,26 +21,27 @@ def test_agenttesla(): "ExternalIPCheckServices": ["http://ip-api.com/line/?fields=hosting"], } - assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { - "family": "AgentTesla", - "other": { - "Protocol": "SMTP", - "C2": "mail.guestequipment.com.au", - "Username": "sendlog@guestequipment.com.au", - "Password": "Clone89!", - "EmailTo": "info@marethon.com", - "Persistence_Filename": "newfile.exe", - "ExternalIPCheckServices": ["http://ip-api.com/line/?fields=hosting"], - }, - "smtp": [ - { - "username": "sendlog@guestequipment.com.au", - "password": "Clone89!", - "hostname": "mail.guestequipment.com.au", - "mail_to": ["info@marethon.com"], - "usage": "c2", - } - ], - "http": [{"uri": "http://ip-api.com/line/?fields=hosting", "usage": "other"}], - "paths": [{"path": "newfile.exe", "usage": "storage"}], - } + if HAVE_MACO: + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "AgentTesla", + "other": { + "Protocol": "SMTP", + "C2": "mail.guestequipment.com.au", + "Username": "sendlog@guestequipment.com.au", + "Password": "Clone89!", + "EmailTo": "info@marethon.com", + "Persistence_Filename": "newfile.exe", + "ExternalIPCheckServices": ["http://ip-api.com/line/?fields=hosting"], + }, + "smtp": [ + { + "username": "sendlog@guestequipment.com.au", + "password": "Clone89!", + "hostname": "mail.guestequipment.com.au", + "mail_to": ["info@marethon.com"], + "usage": "c2", + } + ], + "http": [{"uri": "http://ip-api.com/line/?fields=hosting", "usage": "other"}], + "paths": [{"path": "newfile.exe", "usage": "storage"}], + } diff --git a/tests_parsers/test_asyncrat.py b/tests_parsers/test_asyncrat.py index 376e711751b..8394d0af6d5 100644 --- a/tests_parsers/test_asyncrat.py +++ b/tests_parsers/test_asyncrat.py @@ -1,5 +1,9 @@ from modules.processing.parsers.CAPE.AsyncRAT import extract_config -from modules.processing.parsers.MACO.AsyncRAT import convert_to_MACO +from contextlib import suppress +HAVE_MACO = False +with suppress(ImportError): + from modules.processing.parsers.MACO.AsyncRAT import convert_to_MACO + HAVE_MACO = True def test_asyncrat(): @@ -16,21 +20,22 @@ def test_asyncrat(): "Pastebin": "null", } - assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { - "family": "AsyncRAT", - "version": "0.5.7B", - "capability_disabled": ["persistence"], - "mutex": ["AsyncMutex_6SI8OkPnk"], - "other": { - "C2s": ["todfg.duckdns.org"], - "Ports": "6745", - "Version": "0.5.7B", - "Folder": "%AppData%", - "Filename": "updateee.exe", - "Install": "false", - "Mutex": "AsyncMutex_6SI8OkPnk", - "Pastebin": "null", - }, - "http": [{"hostname": "todfg.duckdns.org", "port": 6, "usage": "c2"}], - "paths": [{"path": "%AppData%/updateee.exe", "usage": "install"}], - } + if HAVE_MACO: + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "AsyncRAT", + "version": "0.5.7B", + "capability_disabled": ["persistence"], + "mutex": ["AsyncMutex_6SI8OkPnk"], + "other": { + "C2s": ["todfg.duckdns.org"], + "Ports": "6745", + "Version": "0.5.7B", + "Folder": "%AppData%", + "Filename": "updateee.exe", + "Install": "false", + "Mutex": "AsyncMutex_6SI8OkPnk", + "Pastebin": "null", + }, + "http": [{"hostname": "todfg.duckdns.org", "port": 6, "usage": "c2"}], + "paths": [{"path": "%AppData%/updateee.exe", "usage": "install"}], + } diff --git a/tests_parsers/test_aurorastealer.py b/tests_parsers/test_aurorastealer.py index 53af23b3f8c..ddb2b157cb9 100644 --- a/tests_parsers/test_aurorastealer.py +++ b/tests_parsers/test_aurorastealer.py @@ -1,5 +1,9 @@ from modules.processing.parsers.CAPE.AuroraStealer import extract_config -from modules.processing.parsers.MACO.AuroraStealer import convert_to_MACO +from contextlib import suppress +HAVE_MACO = False +with suppress(ImportError): + from modules.processing.parsers.MACO.AuroraStealer import convert_to_MACO + HAVE_MACO = True def test_aurorastealer(): @@ -15,16 +19,17 @@ def test_aurorastealer(): "Date": "2023-04-06 19", } - assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { - "family": "AuroraStealer", - "other": { - "BuildID": "x64pump", - "MD5Hash": "f29f33b296b35ec5e7fc3ee784ef68ee", - "C2": "77.91.85.73", - "Architecture": "X64", - "BuildGroup": "x64pump", - "BuildAccept": "0", - "Date": "2023-04-06 19", - }, - "http": [{"hostname": "77.91.85.73", "usage": "c2"}], - } + if HAVE_MACO: + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "AuroraStealer", + "other": { + "BuildID": "x64pump", + "MD5Hash": "f29f33b296b35ec5e7fc3ee784ef68ee", + "C2": "77.91.85.73", + "Architecture": "X64", + "BuildGroup": "x64pump", + "BuildAccept": "0", + "Date": "2023-04-06 19", + }, + "http": [{"hostname": "77.91.85.73", "usage": "c2"}], + } diff --git a/tests_parsers/test_blackdropper.py b/tests_parsers/test_blackdropper.py index 7e4dc59d067..d773329c4dc 100644 --- a/tests_parsers/test_blackdropper.py +++ b/tests_parsers/test_blackdropper.py @@ -3,7 +3,12 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.BlackDropper import extract_config -from modules.processing.parsers.MACO.BlackDropper import convert_to_MACO +from contextlib import suppress +HAVE_MACO = False +with suppress(ImportError): + from modules.processing.parsers.MACO.BlackDropper import convert_to_MACO + HAVE_MACO = True + def test_blackdropper(): @@ -15,14 +20,15 @@ def test_blackdropper(): "campaign": "oFwQ0aQ3v", } - assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { - "family": "BlackDropper", - "campaign_id": ["oFwQ0aQ3v"], - "other": { - "urls": ["http://72.5.42.222:8568/api/dll/", "http://72.5.42.222:8568/api/fileZip"], - "directories": ["\\Music\\dkcydqtwjv"], - "campaign": "oFwQ0aQ3v", - }, - "http": [{"uri": "http://72.5.42.222:8568/api/dll/"}, {"uri": "http://72.5.42.222:8568/api/fileZip"}], - "paths": [{"path": "\\Music\\dkcydqtwjv"}], - } + if HAVE_MACO: + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "BlackDropper", + "campaign_id": ["oFwQ0aQ3v"], + "other": { + "urls": ["http://72.5.42.222:8568/api/dll/", "http://72.5.42.222:8568/api/fileZip"], + "directories": ["\\Music\\dkcydqtwjv"], + "campaign": "oFwQ0aQ3v", + }, + "http": [{"uri": "http://72.5.42.222:8568/api/dll/"}, {"uri": "http://72.5.42.222:8568/api/fileZip"}], + "paths": [{"path": "\\Music\\dkcydqtwjv"}], + } diff --git a/tests_parsers/test_bumblebee.py b/tests_parsers/test_bumblebee.py index fd06f12ee10..3ac5f6b57c7 100644 --- a/tests_parsers/test_bumblebee.py +++ b/tests_parsers/test_bumblebee.py @@ -3,18 +3,23 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.BumbleBee import extract_config -from modules.processing.parsers.MACO.BumbleBee import convert_to_MACO +from contextlib import suppress +HAVE_MACO = False +with suppress(ImportError): + from modules.processing.parsers.MACO.BumbleBee import convert_to_MACO + HAVE_MACO = True def test_bumblebee(): with open("tests/data/malware/f8a6eddcec59934c42ea254cdd942fb62917b5898f71f0feeae6826ba4f3470d", "rb") as data: conf = extract_config(data.read()) assert conf == {"Botnet ID": "YTBSBbNTWU", "Campaign ID": "1904r", "Data": "XNgHUGLrCD", "C2s": ["444"]} - assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { - "family": "BumbleBee", - "campaign_id": ["1904r"], - "identifier": ["YTBSBbNTWU"], - "other": {"Botnet ID": "YTBSBbNTWU", "Campaign ID": "1904r", "Data": "XNgHUGLrCD", "C2s": ["444"]}, - "binaries": [{"data": "XNgHUGLrCD"}], - "http": [{"hostname": "444", "usage": "c2"}], - } + if HAVE_MACO: + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "BumbleBee", + "campaign_id": ["1904r"], + "identifier": ["YTBSBbNTWU"], + "other": {"Botnet ID": "YTBSBbNTWU", "Campaign ID": "1904r", "Data": "XNgHUGLrCD", "C2s": ["444"]}, + "binaries": [{"data": "XNgHUGLrCD"}], + "http": [{"hostname": "444", "usage": "c2"}], + } diff --git a/tests_parsers/test_carbanak.py b/tests_parsers/test_carbanak.py index 8d5169fea96..cb93c32bd58 100644 --- a/tests_parsers/test_carbanak.py +++ b/tests_parsers/test_carbanak.py @@ -1,13 +1,18 @@ from modules.processing.parsers.CAPE.Carbanak import extract_config -from modules.processing.parsers.MACO.Carbanak import convert_to_MACO +from contextlib import suppress +HAVE_MACO = False +with suppress(ImportError): + from modules.processing.parsers.MACO.Carbanak import convert_to_MACO + HAVE_MACO = True def test_carbanak(): with open("tests/data/malware/c9c1b06cb9c9bd6fc4451f5e2847a1f9524bb2870d7bb6f0ee09b9dd4e3e4c84", "rb") as data: conf = extract_config(data.read()) assert conf["C2"] == ["5.161.223.210:443", "207.174.30.226:443"] - assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { - "family": "Carbanak", - "other": {"C2": ["5.161.223.210:443", "207.174.30.226:443"]}, - "http": [{"hostname": "5.161.223.210:443", "usage": "c2"}, {"hostname": "207.174.30.226:443", "usage": "c2"}], - } + if HAVE_MACO: + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "Carbanak", + "other": {"C2": ["5.161.223.210:443", "207.174.30.226:443"]}, + "http": [{"hostname": "5.161.223.210:443", "usage": "c2"}, {"hostname": "207.174.30.226:443", "usage": "c2"}], + } diff --git a/tests_parsers/test_cobaltstrikebeacon.py b/tests_parsers/test_cobaltstrikebeacon.py index 47c26163b54..1c6451afec6 100644 --- a/tests_parsers/test_cobaltstrikebeacon.py +++ b/tests_parsers/test_cobaltstrikebeacon.py @@ -3,7 +3,12 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.CobaltStrikeBeacon import extract_config -from modules.processing.parsers.MACO.CobaltStrikeBeacon import convert_to_MACO +from contextlib import suppress +HAVE_MACO = False +with suppress(ImportError): + from modules.processing.parsers.MACO.CobaltStrikeBeacon import convert_to_MACO + HAVE_MACO = True + def test_csb(): @@ -56,62 +61,63 @@ def test_csb(): "bUsesCookies": "True", "HostHeader": "", } - assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { - "family": "CobaltStrikeBeacon", - "capability_enabled": ["ProcInject_StartRWX", "ProcInject_UseRWX", "UsesCookies"], - "capability_disabled": ["StageCleanup", "CFGCaution"], - "sleep_delay": 60000, - "sleep_delay_jitter": 0, - "other": { - "BeaconType": ["HTTP"], - "Port": 4848, - "SleepTime": 60000, - "MaxGetSize": 1048576, - "Jitter": 0, - "MaxDNS": "Not Found", - "PublicKey": "30819f300d06092a864886f70d010101050003818d0030818902818100bebe41805d3c15a738caf3e308a992d4d507ce827996a8c9d783c766963e7e73083111729ae0abc1b49af0bcf803efdcaf83ac694fb53d043a88e9333f169e026a3c4e63cc6d4cd1aa5e199cb95eec500f948ac472c0ab2eda385d35fb8592d74b1154a1c671afb310eccb0b139ee1100907bfcdd8dfbf3385803a11bc252995020301000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "C2Server": "192.144.206.100,/load", - "UserAgent": "Not Found", - "HttpPostUri": "/submit.php", - "Malleable_C2_Instructions": [], - "HttpGet_Metadata": "Not Found", - "HttpPost_Metadata": "Not Found", - "SpawnTo": "d7a9ca15a07f82bfd3b63020da38aa16", - "PipeName": "Not Found", - "DNS_Idle": "Not Found", - "DNS_Sleep": "Not Found", - "SSH_Host": "Not Found", - "SSH_Port": "Not Found", - "SSH_Username": "Not Found", - "SSH_Password_Plaintext": "Not Found", - "SSH_Password_Pubkey": "Not Found", - "HttpGet_Verb": "GET", - "HttpPost_Verb": "POST", - "HttpPostChunk": 0, - "Spawnto_x86": "%windir%\\syswow64\\rundll32.exe", - "Spawnto_x64": "%windir%\\sysnative\\rundll32.exe", - "CryptoScheme": 0, - "Proxy_Config": "Not Found", - "Proxy_User": "Not Found", - "Proxy_Password": "Not Found", - "Proxy_Behavior": "Use IE settings", - "Watermark": 391144938, - "bStageCleanup": "False", - "bCFGCaution": "False", - "KillDate": 0, - "bProcInject_StartRWX": "True", - "bProcInject_UseRWX": "True", - "bProcInject_MinAllocSize": 0, - "ProcInject_PrependAppend_x86": "Empty", - "ProcInject_PrependAppend_x64": "Empty", - "ProcInject_Execute": ["CreateThread", "SetThreadContext", "CreateRemoteThread", "RtlCreateUserThread"], - "ProcInject_AllocationMethod": "VirtualAllocEx", - "bUsesCookies": "True", - "HostHeader": "", - }, - "http": [ - {"hostname": "192.144.206.100", "port": 4848, "path": "/load", "method": "GET", "usage": "c2"}, - {"hostname": "192.144.206.100", "port": 4848, "path": "/submit.php", "method": "POST", "usage": "c2"}, - ], - "paths": [{"path": "%windir%\\syswow64\\rundll32.exe"}, {"path": "%windir%\\sysnative\\rundll32.exe"}], - } + if HAVE_MACO: + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "CobaltStrikeBeacon", + "capability_enabled": ["ProcInject_StartRWX", "ProcInject_UseRWX", "UsesCookies"], + "capability_disabled": ["StageCleanup", "CFGCaution"], + "sleep_delay": 60000, + "sleep_delay_jitter": 0, + "other": { + "BeaconType": ["HTTP"], + "Port": 4848, + "SleepTime": 60000, + "MaxGetSize": 1048576, + "Jitter": 0, + "MaxDNS": "Not Found", + "PublicKey": "30819f300d06092a864886f70d010101050003818d0030818902818100bebe41805d3c15a738caf3e308a992d4d507ce827996a8c9d783c766963e7e73083111729ae0abc1b49af0bcf803efdcaf83ac694fb53d043a88e9333f169e026a3c4e63cc6d4cd1aa5e199cb95eec500f948ac472c0ab2eda385d35fb8592d74b1154a1c671afb310eccb0b139ee1100907bfcdd8dfbf3385803a11bc252995020301000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "C2Server": "192.144.206.100,/load", + "UserAgent": "Not Found", + "HttpPostUri": "/submit.php", + "Malleable_C2_Instructions": [], + "HttpGet_Metadata": "Not Found", + "HttpPost_Metadata": "Not Found", + "SpawnTo": "d7a9ca15a07f82bfd3b63020da38aa16", + "PipeName": "Not Found", + "DNS_Idle": "Not Found", + "DNS_Sleep": "Not Found", + "SSH_Host": "Not Found", + "SSH_Port": "Not Found", + "SSH_Username": "Not Found", + "SSH_Password_Plaintext": "Not Found", + "SSH_Password_Pubkey": "Not Found", + "HttpGet_Verb": "GET", + "HttpPost_Verb": "POST", + "HttpPostChunk": 0, + "Spawnto_x86": "%windir%\\syswow64\\rundll32.exe", + "Spawnto_x64": "%windir%\\sysnative\\rundll32.exe", + "CryptoScheme": 0, + "Proxy_Config": "Not Found", + "Proxy_User": "Not Found", + "Proxy_Password": "Not Found", + "Proxy_Behavior": "Use IE settings", + "Watermark": 391144938, + "bStageCleanup": "False", + "bCFGCaution": "False", + "KillDate": 0, + "bProcInject_StartRWX": "True", + "bProcInject_UseRWX": "True", + "bProcInject_MinAllocSize": 0, + "ProcInject_PrependAppend_x86": "Empty", + "ProcInject_PrependAppend_x64": "Empty", + "ProcInject_Execute": ["CreateThread", "SetThreadContext", "CreateRemoteThread", "RtlCreateUserThread"], + "ProcInject_AllocationMethod": "VirtualAllocEx", + "bUsesCookies": "True", + "HostHeader": "", + }, + "http": [ + {"hostname": "192.144.206.100", "port": 4848, "path": "/load", "method": "GET", "usage": "c2"}, + {"hostname": "192.144.206.100", "port": 4848, "path": "/submit.php", "method": "POST", "usage": "c2"}, + ], + "paths": [{"path": "%windir%\\syswow64\\rundll32.exe"}, {"path": "%windir%\\sysnative\\rundll32.exe"}], + } diff --git a/tests_parsers/test_darkgate.py b/tests_parsers/test_darkgate.py index 9a32a515a5a..7a46843a84e 100644 --- a/tests_parsers/test_darkgate.py +++ b/tests_parsers/test_darkgate.py @@ -1,13 +1,18 @@ from modules.processing.parsers.CAPE.DarkGate import extract_config -from modules.processing.parsers.MACO.DarkGate import convert_to_MACO +from contextlib import suppress +HAVE_MACO = False +with suppress(ImportError): + from modules.processing.parsers.MACO.DarkGate import convert_to_MACO + HAVE_MACO = True def test_darkgate(): with open("tests/data/malware/1c3ae64795b61034080be00601b947819fe071efd69d7fc791a99ec666c2043d", "rb") as data: conf = extract_config(data.read()) assert conf["C2"] == ["http://80.66.88.145"] - assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { - "family": "DarkGate", - "other": {"C2": ["http://80.66.88.145"]}, - "http": [{"uri": "http://80.66.88.145", "usage": "c2"}], - } + if HAVE_MACO: + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "DarkGate", + "other": {"C2": ["http://80.66.88.145"]}, + "http": [{"uri": "http://80.66.88.145", "usage": "c2"}], + } diff --git a/tests_parsers/test_icedid.py b/tests_parsers/test_icedid.py index 590591c2701..4a8c93fc529 100644 --- a/tests_parsers/test_icedid.py +++ b/tests_parsers/test_icedid.py @@ -1,14 +1,19 @@ from modules.processing.parsers.CAPE.IcedIDLoader import extract_config -from modules.processing.parsers.MACO.IcedIDLoader import convert_to_MACO +from contextlib import suppress +HAVE_MACO = False +with suppress(ImportError): + from modules.processing.parsers.MACO.IcedIDLoader import convert_to_MACO + HAVE_MACO = True def test_icedid(): with open("tests/data/malware/7aaf80eb1436b946b2bd710ab57d2dcbaad2b1553d45602f2f3af6f2cfca5212", "rb") as data: conf = extract_config(data.read()) assert conf == {"C2": "anscowerbrut.com", "Campaign": 2738000827} - assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { - "family": "IcedIDLoader", - "campaign_id": ["2738000827"], - "other": {"C2": "anscowerbrut.com", "Campaign": 2738000827}, - "http": [{"hostname": "anscowerbrut.com", "usage": "c2"}], - } + if HAVE_MACO: + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "IcedIDLoader", + "campaign_id": ["2738000827"], + "other": {"C2": "anscowerbrut.com", "Campaign": 2738000827}, + "http": [{"hostname": "anscowerbrut.com", "usage": "c2"}], + } diff --git a/tests_parsers/test_koiloader.py b/tests_parsers/test_koiloader.py index 8844a08acef..0e9a3a01020 100644 --- a/tests_parsers/test_koiloader.py +++ b/tests_parsers/test_koiloader.py @@ -3,18 +3,22 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.KoiLoader import extract_config -from modules.processing.parsers.MACO.KoiLoader import convert_to_MACO - +from contextlib import suppress +HAVE_MACO = False +with suppress(ImportError): + from modules.processing.parsers.MACO.KoiLoader import convert_to_MACO + HAVE_MACO = True def test_koiloader(): with open("tests/data/malware/b462e3235c7578450b2b56a8aff875a3d99d22f6970a01db3ba98f7ecb6b01a0", "rb") as data: conf = extract_config(data.read()) assert conf == {"C2": ["http://91.202.233.209/hypermetropia.php", "https://admiralpub.ca/wp-content/uploads/2017"]} - assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { - "family": "KoiLoader", - "other": {"C2": ["http://91.202.233.209/hypermetropia.php", "https://admiralpub.ca/wp-content/uploads/2017"]}, - "http": [ - {"uri": "http://91.202.233.209/hypermetropia.php", "usage": "c2"}, - {"uri": "https://admiralpub.ca/wp-content/uploads/2017", "usage": "c2"}, - ], - } + if HAVE_MACO: + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "KoiLoader", + "other": {"C2": ["http://91.202.233.209/hypermetropia.php", "https://admiralpub.ca/wp-content/uploads/2017"]}, + "http": [ + {"uri": "http://91.202.233.209/hypermetropia.php", "usage": "c2"}, + {"uri": "https://admiralpub.ca/wp-content/uploads/2017", "usage": "c2"}, + ], + } diff --git a/tests_parsers/test_latrodectus.py b/tests_parsers/test_latrodectus.py index d71d20a4977..31aab069bad 100644 --- a/tests_parsers/test_latrodectus.py +++ b/tests_parsers/test_latrodectus.py @@ -3,7 +3,11 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.Latrodectus import extract_config -from modules.processing.parsers.MACO.Latrodectus import convert_to_MACO +from contextlib import suppress +HAVE_MACO = False +with suppress(ImportError): + from modules.processing.parsers.MACO.Latrodectus import convert_to_MACO + HAVE_MACO = True def test_latrodectus(): @@ -99,101 +103,13 @@ def test_latrodectus(): "URLS|%d|%s\r\n", ], } - assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { - "family": "Latrodectus", - "version": "1.1", - "campaign_id": ["1053565364"], - "identifier": ["Novik"], - "decoded_strings": [ - "/c ipconfig /all", - "C:\\Windows\\System32\\cmd.exe", - "/c systeminfo", - "C:\\Windows\\System32\\cmd.exe", - "/c nltest /domain_trusts", - "C:\\Windows\\System32\\cmd.exe", - "/c nltest /domain_trusts /all_trusts", - "C:\\Windows\\System32\\cmd.exe", - "/c net view /all /domain", - "C:\\Windows\\System32\\cmd.exe", - "/c net view /all", - "C:\\Windows\\System32\\cmd.exe", - '/c net group "Domain Admins" /domain', - "C:\\Windows\\System32\\cmd.exe", - "/Node:localhost /Namespace:\\\\root\\SecurityCenter2 Path AntiVirusProduct Get * /Format:List", - "C:\\Windows\\System32\\wbem\\wmic.exe", - "/c net config workstation", - "C:\\Windows\\System32\\cmd.exe", - "/c wmic.exe /node:localhost /namespace:\\\\root\\SecurityCenter2 path AntiVirusProduct Get DisplayName | findstr /V /B /C:displayName || echo No Antivirus installed", - "C:\\Windows\\System32\\cmd.exe", - "/c whoami /groups", - "C:\\Windows\\System32\\cmd.exe", - ".dll", - ".exe", - '"%s"', - "rundll32.exe", - '"%s", %s %s', - "runnung", - ":wtfbbq", - "%s%s", - "%s\\%d.dll", - "%d.dat", - "%s\\%s", - 'init -zzzz="%s\\%s"', - "front", - "/files/", - "Novik", - ".exe", - "Content-Type: application/x-www-form-urlencoded", - "POST", - "GET", - "curl/7.88.1", - "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Tob 1.1)", - "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Tob 1.1)", - "CLEARURL", - "URLS", - "COMMAND", - "ERROR", - "12345", - "counter=%d&type=%d&guid=%s&os=%d&arch=%d&username=%s&group=%lu&ver=%d.%d&up=%d&direction=%s", - "counter=%d&type=%d&guid=%s&os=%d&arch=%d&username=%s&group=%lu&ver=%d.%d&up=%d&direction=%s", - "counter=%d&type=%d&guid=%s&os=%d&arch=%d&username=%s&group=%lu&ver=%d.%d&up=%d&direction=%s", - "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Tob 1.1)", - "%s%d.dll", - "%s%d.exe", - "LogonTrigger", - "%x%x", - "TimeTrigger", - "PT1H%02dM", - "&mac=", - "%04d-%02d-%02dT%02d:%02d:%02d", - "%02x", - ":%02x", - "PT0S", - "&computername=%s", - "&domain=%s", - "\\*.dll", - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", - "%04X%04X%04X%04X%08X%04X", - "%04X%04X%04X%04X%08X%04X", - "\\Registry\\Machine\\", - "AppData", - "Desktop", - "Startup", - "Personal", - "Local AppData", - "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", - "C:\\WINDOWS\\SYSTEM32\\rundll32.exe %s,%s", - "C:\\WINDOWS\\SYSTEM32\\rundll32.exe %s", - "URLS", - "URLS|%d|%s\r\n", - ], - "other": { - "C2": ["https://arsimonopa.com/live/", "https://lemonimonakio.com/live/"], - "Group name": "Novik", - "Campaign ID": 1053565364, - "Version": "1.1", - "RC4 key": "12345", - "Strings": [ + if HAVE_MACO: + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "Latrodectus", + "version": "1.1", + "campaign_id": ["1053565364"], + "identifier": ["Novik"], + "decoded_strings": [ "/c ipconfig /all", "C:\\Windows\\System32\\cmd.exe", "/c systeminfo", @@ -276,10 +192,99 @@ def test_latrodectus(): "URLS", "URLS|%d|%s\r\n", ], - }, - "http": [ - {"uri": "https://arsimonopa.com/live/", "usage": "c2"}, - {"uri": "https://lemonimonakio.com/live/", "usage": "c2"}, - ], - "encryption": [{"algorithm": "RC4", "key": "12345"}], - } + "other": { + "C2": ["https://arsimonopa.com/live/", "https://lemonimonakio.com/live/"], + "Group name": "Novik", + "Campaign ID": 1053565364, + "Version": "1.1", + "RC4 key": "12345", + "Strings": [ + "/c ipconfig /all", + "C:\\Windows\\System32\\cmd.exe", + "/c systeminfo", + "C:\\Windows\\System32\\cmd.exe", + "/c nltest /domain_trusts", + "C:\\Windows\\System32\\cmd.exe", + "/c nltest /domain_trusts /all_trusts", + "C:\\Windows\\System32\\cmd.exe", + "/c net view /all /domain", + "C:\\Windows\\System32\\cmd.exe", + "/c net view /all", + "C:\\Windows\\System32\\cmd.exe", + '/c net group "Domain Admins" /domain', + "C:\\Windows\\System32\\cmd.exe", + "/Node:localhost /Namespace:\\\\root\\SecurityCenter2 Path AntiVirusProduct Get * /Format:List", + "C:\\Windows\\System32\\wbem\\wmic.exe", + "/c net config workstation", + "C:\\Windows\\System32\\cmd.exe", + "/c wmic.exe /node:localhost /namespace:\\\\root\\SecurityCenter2 path AntiVirusProduct Get DisplayName | findstr /V /B /C:displayName || echo No Antivirus installed", + "C:\\Windows\\System32\\cmd.exe", + "/c whoami /groups", + "C:\\Windows\\System32\\cmd.exe", + ".dll", + ".exe", + '"%s"', + "rundll32.exe", + '"%s", %s %s', + "runnung", + ":wtfbbq", + "%s%s", + "%s\\%d.dll", + "%d.dat", + "%s\\%s", + 'init -zzzz="%s\\%s"', + "front", + "/files/", + "Novik", + ".exe", + "Content-Type: application/x-www-form-urlencoded", + "POST", + "GET", + "curl/7.88.1", + "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Tob 1.1)", + "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Tob 1.1)", + "CLEARURL", + "URLS", + "COMMAND", + "ERROR", + "12345", + "counter=%d&type=%d&guid=%s&os=%d&arch=%d&username=%s&group=%lu&ver=%d.%d&up=%d&direction=%s", + "counter=%d&type=%d&guid=%s&os=%d&arch=%d&username=%s&group=%lu&ver=%d.%d&up=%d&direction=%s", + "counter=%d&type=%d&guid=%s&os=%d&arch=%d&username=%s&group=%lu&ver=%d.%d&up=%d&direction=%s", + "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Tob 1.1)", + "%s%d.dll", + "%s%d.exe", + "LogonTrigger", + "%x%x", + "TimeTrigger", + "PT1H%02dM", + "&mac=", + "%04d-%02d-%02dT%02d:%02d:%02d", + "%02x", + ":%02x", + "PT0S", + "&computername=%s", + "&domain=%s", + "\\*.dll", + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", + "%04X%04X%04X%04X%08X%04X", + "%04X%04X%04X%04X%08X%04X", + "\\Registry\\Machine\\", + "AppData", + "Desktop", + "Startup", + "Personal", + "Local AppData", + "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", + "C:\\WINDOWS\\SYSTEM32\\rundll32.exe %s,%s", + "C:\\WINDOWS\\SYSTEM32\\rundll32.exe %s", + "URLS", + "URLS|%d|%s\r\n", + ], + }, + "http": [ + {"uri": "https://arsimonopa.com/live/", "usage": "c2"}, + {"uri": "https://lemonimonakio.com/live/", "usage": "c2"}, + ], + "encryption": [{"algorithm": "RC4", "key": "12345"}], + } diff --git a/tests_parsers/test_lumma.py b/tests_parsers/test_lumma.py index 6f13eb15f3e..c681636e01b 100644 --- a/tests_parsers/test_lumma.py +++ b/tests_parsers/test_lumma.py @@ -3,7 +3,11 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.Lumma import extract_config -from modules.processing.parsers.MACO.Lumma import convert_to_MACO +from contextlib import suppress +HAVE_MACO = False +with suppress(ImportError): + from modules.processing.parsers.MACO.Lumma import convert_to_MACO + HAVE_MACO = True def test_lumma(): @@ -22,30 +26,31 @@ def test_lumma(): "agentyanlark.site", ] } - assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { - "family": "Lumma", - "other": { - "C2": [ - "delaylacedmn.site", - "writekdmsnu.site", - "agentyanlark.site", - "bellykmrebk.site", - "underlinemdsj.site", - "commandejorsk.site", - "possiwreeste.site", - "famikyjdiag.site", - "agentyanlark.site", - ] - }, - "http": [ - {"hostname": "delaylacedmn.site", "usage": "c2"}, - {"hostname": "writekdmsnu.site", "usage": "c2"}, - {"hostname": "agentyanlark.site", "usage": "c2"}, - {"hostname": "bellykmrebk.site", "usage": "c2"}, - {"hostname": "underlinemdsj.site", "usage": "c2"}, - {"hostname": "commandejorsk.site", "usage": "c2"}, - {"hostname": "possiwreeste.site", "usage": "c2"}, - {"hostname": "famikyjdiag.site", "usage": "c2"}, - {"hostname": "agentyanlark.site", "usage": "c2"}, - ], - } + if HAVE_MACO: + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "Lumma", + "other": { + "C2": [ + "delaylacedmn.site", + "writekdmsnu.site", + "agentyanlark.site", + "bellykmrebk.site", + "underlinemdsj.site", + "commandejorsk.site", + "possiwreeste.site", + "famikyjdiag.site", + "agentyanlark.site", + ] + }, + "http": [ + {"hostname": "delaylacedmn.site", "usage": "c2"}, + {"hostname": "writekdmsnu.site", "usage": "c2"}, + {"hostname": "agentyanlark.site", "usage": "c2"}, + {"hostname": "bellykmrebk.site", "usage": "c2"}, + {"hostname": "underlinemdsj.site", "usage": "c2"}, + {"hostname": "commandejorsk.site", "usage": "c2"}, + {"hostname": "possiwreeste.site", "usage": "c2"}, + {"hostname": "famikyjdiag.site", "usage": "c2"}, + {"hostname": "agentyanlark.site", "usage": "c2"}, + ], + } diff --git a/tests_parsers/test_nanocore.py b/tests_parsers/test_nanocore.py index 445f2127e82..c0aeba7a3a4 100644 --- a/tests_parsers/test_nanocore.py +++ b/tests_parsers/test_nanocore.py @@ -3,7 +3,11 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.NanoCore import extract_config -from modules.processing.parsers.MACO.NanoCore import convert_to_MACO +from contextlib import suppress +HAVE_MACO = False +with suppress(ImportError): + from modules.processing.parsers.MACO.NanoCore import convert_to_MACO + HAVE_MACO = True def test_nanocore(): @@ -42,59 +46,60 @@ def test_nanocore(): "BackupDnsServer": "8.8.4.4", "cncs": ["6coinc.zapto.org:6696", "127.0.0.1:6696"], } - assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { - "family": "NanoCore", - "version": "1.2.2.0", - "capability_enabled": [ - "RunOnStartup", - "BypassUserAccountControl", - "ClearZoneIdentifier", - "PreventSystemSleep", - "UseCustomDnsServer", - ], - "capability_disabled": [ - "RequestElevation", - "ClearAccessControl", - "SetCriticalProcess", - "ActivateAwayMode", - "EnableDebugMode", - ], - "mutex": ["dc5ce709-95b6-4a26-9175-16a1a8446828"], - "other": { - "BuildTime": "2023-11-22 00:25:26.569697", - "Version": "1.2.2.0", - "Mutex": "dc5ce709-95b6-4a26-9175-16a1a8446828", - "DefaultGroup": "6coinc", - "PrimaryConnectionHost": "6coinc.zapto.org", - "BackupConnectionHost": "127.0.0.1", - "ConnectionPort": "6696", - "RunOnStartup": "True", - "RequestElevation": "False", - "BypassUserAccountControl": "True", - "ClearZoneIdentifier": "True", - "ClearAccessControl": "False", - "SetCriticalProcess": "False", - "PreventSystemSleep": "True", - "ActivateAwayMode": "False", - "EnableDebugMode": "False", - "RunDelay": "0", - "ConnectDelay": "4000", - "RestartDelay": "5000", - "TimeoutInterval": "5000", - "KeepAliveTimeout": "30000", - "MutexTimeout": "5000", - "LanTimeout": "2500", - "WanTimeout": "8000", - "BufferSize": "65535", - "MaxPacketSize": "10485760", - "GCThreshold": "10485760", - "UseCustomDnsServer": "True", - "PrimaryDnsServer": "8.8.8.8", - "BackupDnsServer": "8.8.4.4", - "cncs": ["6coinc.zapto.org:6696", "127.0.0.1:6696"], - }, - "http": [ - {"hostname": "6coinc.zapto.org", "port": 6696, "usage": "c2"}, - {"hostname": "127.0.0.1", "port": 6696, "usage": "c2"}, - ], - } + if HAVE_MACO: + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "NanoCore", + "version": "1.2.2.0", + "capability_enabled": [ + "RunOnStartup", + "BypassUserAccountControl", + "ClearZoneIdentifier", + "PreventSystemSleep", + "UseCustomDnsServer", + ], + "capability_disabled": [ + "RequestElevation", + "ClearAccessControl", + "SetCriticalProcess", + "ActivateAwayMode", + "EnableDebugMode", + ], + "mutex": ["dc5ce709-95b6-4a26-9175-16a1a8446828"], + "other": { + "BuildTime": "2023-11-22 00:25:26.569697", + "Version": "1.2.2.0", + "Mutex": "dc5ce709-95b6-4a26-9175-16a1a8446828", + "DefaultGroup": "6coinc", + "PrimaryConnectionHost": "6coinc.zapto.org", + "BackupConnectionHost": "127.0.0.1", + "ConnectionPort": "6696", + "RunOnStartup": "True", + "RequestElevation": "False", + "BypassUserAccountControl": "True", + "ClearZoneIdentifier": "True", + "ClearAccessControl": "False", + "SetCriticalProcess": "False", + "PreventSystemSleep": "True", + "ActivateAwayMode": "False", + "EnableDebugMode": "False", + "RunDelay": "0", + "ConnectDelay": "4000", + "RestartDelay": "5000", + "TimeoutInterval": "5000", + "KeepAliveTimeout": "30000", + "MutexTimeout": "5000", + "LanTimeout": "2500", + "WanTimeout": "8000", + "BufferSize": "65535", + "MaxPacketSize": "10485760", + "GCThreshold": "10485760", + "UseCustomDnsServer": "True", + "PrimaryDnsServer": "8.8.8.8", + "BackupDnsServer": "8.8.4.4", + "cncs": ["6coinc.zapto.org:6696", "127.0.0.1:6696"], + }, + "http": [ + {"hostname": "6coinc.zapto.org", "port": 6696, "usage": "c2"}, + {"hostname": "127.0.0.1", "port": 6696, "usage": "c2"}, + ], + } diff --git a/tests_parsers/test_njrat.py b/tests_parsers/test_njrat.py index 5fb816a30a1..17729a6d9c1 100644 --- a/tests_parsers/test_njrat.py +++ b/tests_parsers/test_njrat.py @@ -3,7 +3,11 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.Njrat import extract_config -from modules.processing.parsers.MACO.Njrat import convert_to_MACO +from contextlib import suppress +HAVE_MACO = False +with suppress(ImportError): + from modules.processing.parsers.MACO.Njrat import convert_to_MACO + HAVE_MACO = True def test_njrat(): @@ -14,16 +18,17 @@ def test_njrat(): "campaign id": "HacKed", "version": "Njrat 0.7 Golden By Hassan Amiri", } - assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { - "family": "Njrat", - "version": "Njrat 0.7 Golden By Hassan Amiri", - "other": { - "cncs": ["peter-bikini.gl.at.ply.gg:64215"], - "campaign id": "HacKed", + if HAVE_MACO: + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "Njrat", "version": "Njrat 0.7 Golden By Hassan Amiri", - }, - "http": [{"hostname": "peter-bikini.gl.at.ply.gg", "port": 64215, "usage": "c2"}], - } + "other": { + "cncs": ["peter-bikini.gl.at.ply.gg:64215"], + "campaign id": "HacKed", + "version": "Njrat 0.7 Golden By Hassan Amiri", + }, + "http": [{"hostname": "peter-bikini.gl.at.ply.gg", "port": 64215, "usage": "c2"}], + } """ diff --git a/tests_parsers/test_oyster.py b/tests_parsers/test_oyster.py index ed758e42362..d831764f686 100644 --- a/tests_parsers/test_oyster.py +++ b/tests_parsers/test_oyster.py @@ -3,7 +3,11 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.Oyster import extract_config -from modules.processing.parsers.MACO.Oyster import convert_to_MACO +from contextlib import suppress +HAVE_MACO = False +with suppress(ImportError): + from modules.processing.parsers.MACO.Oyster import convert_to_MACO + HAVE_MACO = True def test_oyster(): @@ -14,14 +18,15 @@ def test_oyster(): "Dll Version": "v1.0 #ads 2", "Strings": ["api/connect", "Content-Type: application/json", "api/session"], } - assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { - "family": "Oyster", - "version": "v1.0 #ads 2", - "decoded_strings": ["api/connect", "Content-Type: application/json", "api/session"], - "other": { - "C2": ["https://connectivity-check.linkpc.net/"], - "Dll Version": "v1.0 #ads 2", - "Strings": ["api/connect", "Content-Type: application/json", "api/session"], - }, - "http": [{"uri": "https://connectivity-check.linkpc.net/", "usage": "c2"}], - } + if HAVE_MACO: + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "Oyster", + "version": "v1.0 #ads 2", + "decoded_strings": ["api/connect", "Content-Type: application/json", "api/session"], + "other": { + "C2": ["https://connectivity-check.linkpc.net/"], + "Dll Version": "v1.0 #ads 2", + "Strings": ["api/connect", "Content-Type: application/json", "api/session"], + }, + "http": [{"uri": "https://connectivity-check.linkpc.net/", "usage": "c2"}], + } diff --git a/tests_parsers/test_pikabot.py b/tests_parsers/test_pikabot.py index 18bc7018f06..318b9f17a06 100644 --- a/tests_parsers/test_pikabot.py +++ b/tests_parsers/test_pikabot.py @@ -3,7 +3,11 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.PikaBot import extract_config -from modules.processing.parsers.MACO.PikaBot import convert_to_MACO +from contextlib import suppress +HAVE_MACO = False +with suppress(ImportError): + from modules.processing.parsers.MACO.PikaBot import convert_to_MACO + HAVE_MACO = True def test_pikabot(): @@ -28,85 +32,86 @@ def test_pikabot(): "Campaign Name": "GG24_T@T@f0adda360d2b4ccda11468e026526576", "Registry Key": "MWnkl", } - assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { - "family": "PikaBot", - "version": "1.8.32-beta", - "campaign_id": ["GG24_T@T@f0adda360d2b4ccda11468e026526576"], - "other": { - "C2s": [ - "154.53.55.165:13783", - "158.247.240.58:5632", - "70.34.223.164:5000", - "70.34.199.64:9785", - "45.77.63.237:5632", - "198.38.94.213:2224", - "94.72.104.80:5000", - "84.46.240.42:2083", - "154.12.236.248:13786", - "94.72.104.77:13724", - "209.126.86.48:1194", - ], - "Version": "1.8.32-beta", - "User Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", - "Campaign Name": "GG24_T@T@f0adda360d2b4ccda11468e026526576", - "Registry Key": "MWnkl", - }, - "http": [ - { - "hostname": "154.53.55.165", - "port": 13783, - "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", - }, - { - "hostname": "158.247.240.58", - "port": 5632, - "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", - }, - { - "hostname": "70.34.223.164", - "port": 5000, - "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", - }, - { - "hostname": "70.34.199.64", - "port": 9785, - "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", - }, - { - "hostname": "45.77.63.237", - "port": 5632, - "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", - }, - { - "hostname": "198.38.94.213", - "port": 2224, - "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", - }, - { - "hostname": "94.72.104.80", - "port": 5000, - "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + if HAVE_MACO: + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "PikaBot", + "version": "1.8.32-beta", + "campaign_id": ["GG24_T@T@f0adda360d2b4ccda11468e026526576"], + "other": { + "C2s": [ + "154.53.55.165:13783", + "158.247.240.58:5632", + "70.34.223.164:5000", + "70.34.199.64:9785", + "45.77.63.237:5632", + "198.38.94.213:2224", + "94.72.104.80:5000", + "84.46.240.42:2083", + "154.12.236.248:13786", + "94.72.104.77:13724", + "209.126.86.48:1194", + ], + "Version": "1.8.32-beta", + "User Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + "Campaign Name": "GG24_T@T@f0adda360d2b4ccda11468e026526576", + "Registry Key": "MWnkl", }, - { - "hostname": "84.46.240.42", - "port": 2083, - "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", - }, - { - "hostname": "154.12.236.248", - "port": 13786, - "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", - }, - { - "hostname": "94.72.104.77", - "port": 13724, - "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", - }, - { - "hostname": "209.126.86.48", - "port": 1194, - "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", - }, - ], - "registry": [{"key": "MWnkl"}], - } + "http": [ + { + "hostname": "154.53.55.165", + "port": 13783, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + { + "hostname": "158.247.240.58", + "port": 5632, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + { + "hostname": "70.34.223.164", + "port": 5000, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + { + "hostname": "70.34.199.64", + "port": 9785, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + { + "hostname": "45.77.63.237", + "port": 5632, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + { + "hostname": "198.38.94.213", + "port": 2224, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + { + "hostname": "94.72.104.80", + "port": 5000, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + { + "hostname": "84.46.240.42", + "port": 2083, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + { + "hostname": "154.12.236.248", + "port": 13786, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + { + "hostname": "94.72.104.77", + "port": 13724, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + { + "hostname": "209.126.86.48", + "port": 1194, + "user_agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; A7F; BRI/2; Tablet PC 2.0; wbx 1.0.0; Microsoft Outlook 14.0.7233; ms-office;", + }, + ], + "registry": [{"key": "MWnkl"}], + } diff --git a/tests_parsers/test_quickbind.py b/tests_parsers/test_quickbind.py index 91a2248dd70..19dac107ae0 100644 --- a/tests_parsers/test_quickbind.py +++ b/tests_parsers/test_quickbind.py @@ -3,8 +3,11 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.Quickbind import extract_config -from modules.processing.parsers.MACO.Quickbind import convert_to_MACO - +from contextlib import suppress +HAVE_MACO = False +with suppress(ImportError): + from modules.processing.parsers.MACO.Quickbind import convert_to_MACO + HAVE_MACO = True def test_quickbind(): with open("tests/data/malware/bfcb215f86fc4f8b4829f6ddd5acb118e80fb5bd977453fc7e8ef10a52fc83b7", "rb") as data: @@ -14,14 +17,15 @@ def test_quickbind(): "Mutex": ["15432a4d-34ca-4d0d-a4ac-04df9a373862"], "C2": ["185.49.69.41"], } - assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { - "family": "Quickbind", - "mutex": ["15432a4d-34ca-4d0d-a4ac-04df9a373862"], - "other": { - "Encryption Key": "24de21a8dc08434c", - "Mutex": ["15432a4d-34ca-4d0d-a4ac-04df9a373862"], - "C2": ["185.49.69.41"], - }, - "http": [{"hostname": "185.49.69.41", "usage": "c2"}], - "encryption": [{"key": "24de21a8dc08434c"}], - } + if HAVE_MACO: + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "Quickbind", + "mutex": ["15432a4d-34ca-4d0d-a4ac-04df9a373862"], + "other": { + "Encryption Key": "24de21a8dc08434c", + "Mutex": ["15432a4d-34ca-4d0d-a4ac-04df9a373862"], + "C2": ["185.49.69.41"], + }, + "http": [{"hostname": "185.49.69.41", "usage": "c2"}], + "encryption": [{"key": "24de21a8dc08434c"}], + } diff --git a/tests_parsers/test_redline.py b/tests_parsers/test_redline.py index 17ffaaa20cf..6e7712dde23 100644 --- a/tests_parsers/test_redline.py +++ b/tests_parsers/test_redline.py @@ -3,7 +3,12 @@ # See the file "docs/LICENSE" for copying permission. from modules.processing.parsers.CAPE.RedLine import extract_config -from modules.processing.parsers.MACO.RedLine import convert_to_MACO +from contextlib import suppress +HAVE_MACO = False +with suppress(ImportError): + from modules.processing.parsers.MACO.RedLine import convert_to_MACO + HAVE_MACO = True + def test_redline(): @@ -15,13 +20,14 @@ def test_redline(): "Botnet": "krast", "Key": "Formative", } - assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { - "family": "RedLine", - "other": { - "Authorization": "9059ea331e4599de3746df73ccb24514", - "C2": "77.91.68.68:19071", - "Botnet": "krast", - "Key": "Formative", - }, - "http": [{"hostname": "77.91.68.68", "port": 19071, "usage": "c2"}], - } + if HAVE_MACO: + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "RedLine", + "other": { + "Authorization": "9059ea331e4599de3746df73ccb24514", + "C2": "77.91.68.68:19071", + "Botnet": "krast", + "Key": "Formative", + }, + "http": [{"hostname": "77.91.68.68", "port": 19071, "usage": "c2"}], + } diff --git a/tests_parsers/test_smokeloader.py b/tests_parsers/test_smokeloader.py index cb7f4085a4e..52359c1dedf 100644 --- a/tests_parsers/test_smokeloader.py +++ b/tests_parsers/test_smokeloader.py @@ -1,13 +1,17 @@ from modules.processing.parsers.CAPE.SmokeLoader import extract_config -from modules.processing.parsers.MACO.SmokeLoader import convert_to_MACO - +from contextlib import suppress +HAVE_MACO = False +with suppress(ImportError): + from modules.processing.parsers.MACO.SmokeLoader import convert_to_MACO + HAVE_MACO = True def test_smokeloader(): with open("tests/data/malware/6929fff132c05ae7d348867f4ea77ba18f84fb8fae17d45dde3571c9e33f01f8", "rb") as data: conf = extract_config(data.read()) assert conf == {"C2s": ["http://host-file-host6.com/", "http://host-host-file8.com/"]} - assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { - "family": "SmokeLoader", - "other": {"C2s": ["http://host-file-host6.com/", "http://host-host-file8.com/"]}, - "http": [{"uri": "http://host-file-host6.com/", "usage": "c2"}, {"uri": "http://host-host-file8.com/", "usage": "c2"}], - } + if HAVE_MACO: + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "SmokeLoader", + "other": {"C2s": ["http://host-file-host6.com/", "http://host-host-file8.com/"]}, + "http": [{"uri": "http://host-file-host6.com/", "usage": "c2"}, {"uri": "http://host-host-file8.com/", "usage": "c2"}], + } diff --git a/tests_parsers/test_sparkrat.py b/tests_parsers/test_sparkrat.py index ba60ca225be..f655bf60132 100644 --- a/tests_parsers/test_sparkrat.py +++ b/tests_parsers/test_sparkrat.py @@ -1,5 +1,9 @@ from modules.processing.parsers.CAPE.SparkRAT import extract_config -from modules.processing.parsers.MACO.SparkRAT import convert_to_MACO +from contextlib import suppress +HAVE_MACO = False +with suppress(ImportError): + from modules.processing.parsers.MACO.SparkRAT import convert_to_MACO + HAVE_MACO = True def test_sparkrat(): @@ -13,16 +17,17 @@ def test_sparkrat(): "uuid": "8dc7e7d8f8576f3e55a00850b72887db", "key": "a1348fb8969ad7a9f85ac173c2027622135e52e0e6d94d10e6a81916a29648ac", } - assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { - "family": "SparkRAT", - "identifier": ["8dc7e7d8f8576f3e55a00850b72887db"], - "other": { - "secure": False, - "host": "67.217.62.106", - "port": 4443, - "path": "/", - "uuid": "8dc7e7d8f8576f3e55a00850b72887db", - "key": "a1348fb8969ad7a9f85ac173c2027622135e52e0e6d94d10e6a81916a29648ac", - }, - "http": [{"uri": "http://67.217.62.106:4443/", "hostname": "67.217.62.106", "port": 4443, "path": "/"}], - } + if HAVE_MACO: + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "SparkRAT", + "identifier": ["8dc7e7d8f8576f3e55a00850b72887db"], + "other": { + "secure": False, + "host": "67.217.62.106", + "port": 4443, + "path": "/", + "uuid": "8dc7e7d8f8576f3e55a00850b72887db", + "key": "a1348fb8969ad7a9f85ac173c2027622135e52e0e6d94d10e6a81916a29648ac", + }, + "http": [{"uri": "http://67.217.62.106:4443/", "hostname": "67.217.62.106", "port": 4443, "path": "/"}], + } diff --git a/tests_parsers/test_zloader.py b/tests_parsers/test_zloader.py index d9c0ef1f174..3c60247db86 100644 --- a/tests_parsers/test_zloader.py +++ b/tests_parsers/test_zloader.py @@ -3,7 +3,12 @@ # See the file 'docs/LICENSE' for copying permission. from modules.processing.parsers.CAPE.Zloader import extract_config -from modules.processing.parsers.MACO.Zloader import convert_to_MACO +from contextlib import suppress +HAVE_MACO = False +with suppress(ImportError): + from modules.processing.parsers.MACO.AgentTesla import convert_to_MACO + HAVE_MACO = True + def test_zloader(): @@ -15,14 +20,15 @@ def test_zloader(): "address": ["https://dem.businessdeep.com"], "Public key": "-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDKGAOWVkikqE7TyKIMtWI8dFsaleTaJNXMJNIPnRE/fGCzqrV+rtY3+ex4MCHEtq2Vwppthf0Rglv8OiWgKlerIN5P6NEyCfIsFYUMDfldQTF03VES8GBIvHq5SjlIz7lawuwfdjdEkaHfOmmu9srraftkI9gZO8WRQgY1uNdsXwIDAQAB-----END PUBLIC KEY-----", } - assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { - "family": "Zloader", - "campaign_id": ["M1"], - "other": { - "Botnet name": "Bing_Mod5", - "Campaign ID": "M1", - "address": ["https://dem.businessdeep.com"], - "Public key": "-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDKGAOWVkikqE7TyKIMtWI8dFsaleTaJNXMJNIPnRE/fGCzqrV+rtY3+ex4MCHEtq2Vwppthf0Rglv8OiWgKlerIN5P6NEyCfIsFYUMDfldQTF03VES8GBIvHq5SjlIz7lawuwfdjdEkaHfOmmu9srraftkI9gZO8WRQgY1uNdsXwIDAQAB-----END PUBLIC KEY-----", - }, - "http": [{"uri": "https://dem.businessdeep.com"}], - } + if HAVE_MACO: + assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { + "family": "Zloader", + "campaign_id": ["M1"], + "other": { + "Botnet name": "Bing_Mod5", + "Campaign ID": "M1", + "address": ["https://dem.businessdeep.com"], + "Public key": "-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDKGAOWVkikqE7TyKIMtWI8dFsaleTaJNXMJNIPnRE/fGCzqrV+rtY3+ex4MCHEtq2Vwppthf0Rglv8OiWgKlerIN5P6NEyCfIsFYUMDfldQTF03VES8GBIvHq5SjlIz7lawuwfdjdEkaHfOmmu9srraftkI9gZO8WRQgY1uNdsXwIDAQAB-----END PUBLIC KEY-----", + }, + "http": [{"uri": "https://dem.businessdeep.com"}], + } From eb1c4f46176b721b28f14e992cd196542bd62c56 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 30 Oct 2024 13:10:16 +0000 Subject: [PATCH 90/98] style: Automatic code formatting --- tests_parsers/test_agenttesla.py | 4 +++- tests_parsers/test_asyncrat.py | 5 ++++- tests_parsers/test_aurorastealer.py | 5 ++++- tests_parsers/test_blackdropper.py | 6 ++++-- tests_parsers/test_bumblebee.py | 5 ++++- tests_parsers/test_carbanak.py | 5 ++++- tests_parsers/test_cobaltstrikebeacon.py | 6 ++++-- tests_parsers/test_darkgate.py | 5 ++++- tests_parsers/test_icedid.py | 5 ++++- tests_parsers/test_koiloader.py | 6 +++++- tests_parsers/test_latrodectus.py | 5 ++++- tests_parsers/test_lumma.py | 5 ++++- tests_parsers/test_nanocore.py | 5 ++++- tests_parsers/test_njrat.py | 5 ++++- tests_parsers/test_oyster.py | 5 ++++- tests_parsers/test_pikabot.py | 5 ++++- tests_parsers/test_quickbind.py | 6 +++++- tests_parsers/test_redline.py | 6 ++++-- tests_parsers/test_smokeloader.py | 11 +++++++++-- tests_parsers/test_sparkrat.py | 5 ++++- tests_parsers/test_zloader.py | 6 ++++-- 21 files changed, 90 insertions(+), 26 deletions(-) diff --git a/tests_parsers/test_agenttesla.py b/tests_parsers/test_agenttesla.py index 37050c3328e..b52cd064ce6 100644 --- a/tests_parsers/test_agenttesla.py +++ b/tests_parsers/test_agenttesla.py @@ -1,9 +1,11 @@ +from contextlib import suppress + from modules.processing.parsers.CAPE.AgentTesla import extract_config -from contextlib import suppress HAVE_MACO = False with suppress(ImportError): from modules.processing.parsers.MACO.AgentTesla import convert_to_MACO + HAVE_MACO = True diff --git a/tests_parsers/test_asyncrat.py b/tests_parsers/test_asyncrat.py index 8394d0af6d5..ee49867d95d 100644 --- a/tests_parsers/test_asyncrat.py +++ b/tests_parsers/test_asyncrat.py @@ -1,8 +1,11 @@ -from modules.processing.parsers.CAPE.AsyncRAT import extract_config from contextlib import suppress + +from modules.processing.parsers.CAPE.AsyncRAT import extract_config + HAVE_MACO = False with suppress(ImportError): from modules.processing.parsers.MACO.AsyncRAT import convert_to_MACO + HAVE_MACO = True diff --git a/tests_parsers/test_aurorastealer.py b/tests_parsers/test_aurorastealer.py index ddb2b157cb9..a09cc324614 100644 --- a/tests_parsers/test_aurorastealer.py +++ b/tests_parsers/test_aurorastealer.py @@ -1,8 +1,11 @@ -from modules.processing.parsers.CAPE.AuroraStealer import extract_config from contextlib import suppress + +from modules.processing.parsers.CAPE.AuroraStealer import extract_config + HAVE_MACO = False with suppress(ImportError): from modules.processing.parsers.MACO.AuroraStealer import convert_to_MACO + HAVE_MACO = True diff --git a/tests_parsers/test_blackdropper.py b/tests_parsers/test_blackdropper.py index d773329c4dc..cf8326f56cd 100644 --- a/tests_parsers/test_blackdropper.py +++ b/tests_parsers/test_blackdropper.py @@ -2,13 +2,15 @@ # This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org # See the file 'docs/LICENSE' for copying permission. -from modules.processing.parsers.CAPE.BlackDropper import extract_config from contextlib import suppress + +from modules.processing.parsers.CAPE.BlackDropper import extract_config + HAVE_MACO = False with suppress(ImportError): from modules.processing.parsers.MACO.BlackDropper import convert_to_MACO - HAVE_MACO = True + HAVE_MACO = True def test_blackdropper(): diff --git a/tests_parsers/test_bumblebee.py b/tests_parsers/test_bumblebee.py index 3ac5f6b57c7..c26509687a4 100644 --- a/tests_parsers/test_bumblebee.py +++ b/tests_parsers/test_bumblebee.py @@ -2,11 +2,14 @@ # This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org # See the file 'docs/LICENSE' for copying permission. -from modules.processing.parsers.CAPE.BumbleBee import extract_config from contextlib import suppress + +from modules.processing.parsers.CAPE.BumbleBee import extract_config + HAVE_MACO = False with suppress(ImportError): from modules.processing.parsers.MACO.BumbleBee import convert_to_MACO + HAVE_MACO = True diff --git a/tests_parsers/test_carbanak.py b/tests_parsers/test_carbanak.py index cb93c32bd58..bb0d512bccf 100644 --- a/tests_parsers/test_carbanak.py +++ b/tests_parsers/test_carbanak.py @@ -1,8 +1,11 @@ -from modules.processing.parsers.CAPE.Carbanak import extract_config from contextlib import suppress + +from modules.processing.parsers.CAPE.Carbanak import extract_config + HAVE_MACO = False with suppress(ImportError): from modules.processing.parsers.MACO.Carbanak import convert_to_MACO + HAVE_MACO = True diff --git a/tests_parsers/test_cobaltstrikebeacon.py b/tests_parsers/test_cobaltstrikebeacon.py index 1c6451afec6..12afcdd3677 100644 --- a/tests_parsers/test_cobaltstrikebeacon.py +++ b/tests_parsers/test_cobaltstrikebeacon.py @@ -2,13 +2,15 @@ # This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org # See the file 'docs/LICENSE' for copying permission. -from modules.processing.parsers.CAPE.CobaltStrikeBeacon import extract_config from contextlib import suppress + +from modules.processing.parsers.CAPE.CobaltStrikeBeacon import extract_config + HAVE_MACO = False with suppress(ImportError): from modules.processing.parsers.MACO.CobaltStrikeBeacon import convert_to_MACO - HAVE_MACO = True + HAVE_MACO = True def test_csb(): diff --git a/tests_parsers/test_darkgate.py b/tests_parsers/test_darkgate.py index 7a46843a84e..7040df6f51f 100644 --- a/tests_parsers/test_darkgate.py +++ b/tests_parsers/test_darkgate.py @@ -1,8 +1,11 @@ -from modules.processing.parsers.CAPE.DarkGate import extract_config from contextlib import suppress + +from modules.processing.parsers.CAPE.DarkGate import extract_config + HAVE_MACO = False with suppress(ImportError): from modules.processing.parsers.MACO.DarkGate import convert_to_MACO + HAVE_MACO = True diff --git a/tests_parsers/test_icedid.py b/tests_parsers/test_icedid.py index 4a8c93fc529..8b8b389a15d 100644 --- a/tests_parsers/test_icedid.py +++ b/tests_parsers/test_icedid.py @@ -1,8 +1,11 @@ -from modules.processing.parsers.CAPE.IcedIDLoader import extract_config from contextlib import suppress + +from modules.processing.parsers.CAPE.IcedIDLoader import extract_config + HAVE_MACO = False with suppress(ImportError): from modules.processing.parsers.MACO.IcedIDLoader import convert_to_MACO + HAVE_MACO = True diff --git a/tests_parsers/test_koiloader.py b/tests_parsers/test_koiloader.py index 0e9a3a01020..38a74bf700a 100644 --- a/tests_parsers/test_koiloader.py +++ b/tests_parsers/test_koiloader.py @@ -2,13 +2,17 @@ # This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org # See the file 'docs/LICENSE' for copying permission. -from modules.processing.parsers.CAPE.KoiLoader import extract_config from contextlib import suppress + +from modules.processing.parsers.CAPE.KoiLoader import extract_config + HAVE_MACO = False with suppress(ImportError): from modules.processing.parsers.MACO.KoiLoader import convert_to_MACO + HAVE_MACO = True + def test_koiloader(): with open("tests/data/malware/b462e3235c7578450b2b56a8aff875a3d99d22f6970a01db3ba98f7ecb6b01a0", "rb") as data: conf = extract_config(data.read()) diff --git a/tests_parsers/test_latrodectus.py b/tests_parsers/test_latrodectus.py index 31aab069bad..410bac0a9e2 100644 --- a/tests_parsers/test_latrodectus.py +++ b/tests_parsers/test_latrodectus.py @@ -2,11 +2,14 @@ # This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org # See the file 'docs/LICENSE' for copying permission. -from modules.processing.parsers.CAPE.Latrodectus import extract_config from contextlib import suppress + +from modules.processing.parsers.CAPE.Latrodectus import extract_config + HAVE_MACO = False with suppress(ImportError): from modules.processing.parsers.MACO.Latrodectus import convert_to_MACO + HAVE_MACO = True diff --git a/tests_parsers/test_lumma.py b/tests_parsers/test_lumma.py index c681636e01b..e341169bcdd 100644 --- a/tests_parsers/test_lumma.py +++ b/tests_parsers/test_lumma.py @@ -2,11 +2,14 @@ # This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org # See the file 'docs/LICENSE' for copying permission. -from modules.processing.parsers.CAPE.Lumma import extract_config from contextlib import suppress + +from modules.processing.parsers.CAPE.Lumma import extract_config + HAVE_MACO = False with suppress(ImportError): from modules.processing.parsers.MACO.Lumma import convert_to_MACO + HAVE_MACO = True diff --git a/tests_parsers/test_nanocore.py b/tests_parsers/test_nanocore.py index c0aeba7a3a4..af28b87d8ae 100644 --- a/tests_parsers/test_nanocore.py +++ b/tests_parsers/test_nanocore.py @@ -2,11 +2,14 @@ # This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org # See the file 'docs/LICENSE' for copying permission. -from modules.processing.parsers.CAPE.NanoCore import extract_config from contextlib import suppress + +from modules.processing.parsers.CAPE.NanoCore import extract_config + HAVE_MACO = False with suppress(ImportError): from modules.processing.parsers.MACO.NanoCore import convert_to_MACO + HAVE_MACO = True diff --git a/tests_parsers/test_njrat.py b/tests_parsers/test_njrat.py index 17729a6d9c1..106d9dd1662 100644 --- a/tests_parsers/test_njrat.py +++ b/tests_parsers/test_njrat.py @@ -2,11 +2,14 @@ # This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org # See the file 'docs/LICENSE' for copying permission. -from modules.processing.parsers.CAPE.Njrat import extract_config from contextlib import suppress + +from modules.processing.parsers.CAPE.Njrat import extract_config + HAVE_MACO = False with suppress(ImportError): from modules.processing.parsers.MACO.Njrat import convert_to_MACO + HAVE_MACO = True diff --git a/tests_parsers/test_oyster.py b/tests_parsers/test_oyster.py index d831764f686..85811e2f80e 100644 --- a/tests_parsers/test_oyster.py +++ b/tests_parsers/test_oyster.py @@ -2,11 +2,14 @@ # This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org # See the file 'docs/LICENSE' for copying permission. -from modules.processing.parsers.CAPE.Oyster import extract_config from contextlib import suppress + +from modules.processing.parsers.CAPE.Oyster import extract_config + HAVE_MACO = False with suppress(ImportError): from modules.processing.parsers.MACO.Oyster import convert_to_MACO + HAVE_MACO = True diff --git a/tests_parsers/test_pikabot.py b/tests_parsers/test_pikabot.py index 318b9f17a06..52d38194e55 100644 --- a/tests_parsers/test_pikabot.py +++ b/tests_parsers/test_pikabot.py @@ -2,11 +2,14 @@ # This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org # See the file 'docs/LICENSE' for copying permission. -from modules.processing.parsers.CAPE.PikaBot import extract_config from contextlib import suppress + +from modules.processing.parsers.CAPE.PikaBot import extract_config + HAVE_MACO = False with suppress(ImportError): from modules.processing.parsers.MACO.PikaBot import convert_to_MACO + HAVE_MACO = True diff --git a/tests_parsers/test_quickbind.py b/tests_parsers/test_quickbind.py index 19dac107ae0..094790ff831 100644 --- a/tests_parsers/test_quickbind.py +++ b/tests_parsers/test_quickbind.py @@ -2,13 +2,17 @@ # This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org # See the file 'docs/LICENSE' for copying permission. -from modules.processing.parsers.CAPE.Quickbind import extract_config from contextlib import suppress + +from modules.processing.parsers.CAPE.Quickbind import extract_config + HAVE_MACO = False with suppress(ImportError): from modules.processing.parsers.MACO.Quickbind import convert_to_MACO + HAVE_MACO = True + def test_quickbind(): with open("tests/data/malware/bfcb215f86fc4f8b4829f6ddd5acb118e80fb5bd977453fc7e8ef10a52fc83b7", "rb") as data: conf = extract_config(data.read()) diff --git a/tests_parsers/test_redline.py b/tests_parsers/test_redline.py index 6e7712dde23..8c455d06bac 100644 --- a/tests_parsers/test_redline.py +++ b/tests_parsers/test_redline.py @@ -2,13 +2,15 @@ # This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org # See the file "docs/LICENSE" for copying permission. -from modules.processing.parsers.CAPE.RedLine import extract_config from contextlib import suppress + +from modules.processing.parsers.CAPE.RedLine import extract_config + HAVE_MACO = False with suppress(ImportError): from modules.processing.parsers.MACO.RedLine import convert_to_MACO - HAVE_MACO = True + HAVE_MACO = True def test_redline(): diff --git a/tests_parsers/test_smokeloader.py b/tests_parsers/test_smokeloader.py index 52359c1dedf..216829dcd94 100644 --- a/tests_parsers/test_smokeloader.py +++ b/tests_parsers/test_smokeloader.py @@ -1,10 +1,14 @@ -from modules.processing.parsers.CAPE.SmokeLoader import extract_config from contextlib import suppress + +from modules.processing.parsers.CAPE.SmokeLoader import extract_config + HAVE_MACO = False with suppress(ImportError): from modules.processing.parsers.MACO.SmokeLoader import convert_to_MACO + HAVE_MACO = True + def test_smokeloader(): with open("tests/data/malware/6929fff132c05ae7d348867f4ea77ba18f84fb8fae17d45dde3571c9e33f01f8", "rb") as data: conf = extract_config(data.read()) @@ -13,5 +17,8 @@ def test_smokeloader(): assert convert_to_MACO(conf).model_dump(exclude_defaults=True, exclude_none=True) == { "family": "SmokeLoader", "other": {"C2s": ["http://host-file-host6.com/", "http://host-host-file8.com/"]}, - "http": [{"uri": "http://host-file-host6.com/", "usage": "c2"}, {"uri": "http://host-host-file8.com/", "usage": "c2"}], + "http": [ + {"uri": "http://host-file-host6.com/", "usage": "c2"}, + {"uri": "http://host-host-file8.com/", "usage": "c2"}, + ], } diff --git a/tests_parsers/test_sparkrat.py b/tests_parsers/test_sparkrat.py index f655bf60132..9e681b8efab 100644 --- a/tests_parsers/test_sparkrat.py +++ b/tests_parsers/test_sparkrat.py @@ -1,8 +1,11 @@ -from modules.processing.parsers.CAPE.SparkRAT import extract_config from contextlib import suppress + +from modules.processing.parsers.CAPE.SparkRAT import extract_config + HAVE_MACO = False with suppress(ImportError): from modules.processing.parsers.MACO.SparkRAT import convert_to_MACO + HAVE_MACO = True diff --git a/tests_parsers/test_zloader.py b/tests_parsers/test_zloader.py index 3c60247db86..dda237b9ef0 100644 --- a/tests_parsers/test_zloader.py +++ b/tests_parsers/test_zloader.py @@ -2,13 +2,15 @@ # This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org # See the file 'docs/LICENSE' for copying permission. -from modules.processing.parsers.CAPE.Zloader import extract_config from contextlib import suppress + +from modules.processing.parsers.CAPE.Zloader import extract_config + HAVE_MACO = False with suppress(ImportError): from modules.processing.parsers.MACO.AgentTesla import convert_to_MACO - HAVE_MACO = True + HAVE_MACO = True def test_zloader(): From 8c559dc83c52a34dca16dc540d4ef4c5185da079 Mon Sep 17 00:00:00 2001 From: doomedraven Date: Wed, 30 Oct 2024 16:09:09 +0100 Subject: [PATCH 91/98] Update human.py --- analyzer/windows/modules/auxiliary/human.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/analyzer/windows/modules/auxiliary/human.py b/analyzer/windows/modules/auxiliary/human.py index 095226251b2..c7fb4c8c519 100644 --- a/analyzer/windows/modules/auxiliary/human.py +++ b/analyzer/windows/modules/auxiliary/human.py @@ -71,6 +71,7 @@ "don't send", "don't save", "continue", + "connect", "unzip", "open", "close the program", @@ -115,6 +116,7 @@ DONT_CLICK_BUTTONS = ( # english "check online for a solution", + "don't ask me again for remote connections from this publisher", "don't run", "do not ask again until the next update is available", "cancel", From ebbc1fa6d678223e3226678cc5ffb2e8cb85a30b Mon Sep 17 00:00:00 2001 From: doomedraven Date: Wed, 30 Oct 2024 16:31:32 +0100 Subject: [PATCH 92/98] RKP as package --- lib/parsers_aux/__init__.py | 0 lib/parsers_aux/ratking/__init__.py | 211 ------------- .../ratking/config_parser_exception.py | 31 -- lib/parsers_aux/ratking/readme.md | 35 --- lib/parsers_aux/ratking/utils/__init__.py | 25 -- lib/parsers_aux/ratking/utils/config_item.py | 149 --------- lib/parsers_aux/ratking/utils/data_utils.py | 62 ---- .../ratking/utils/decryptors/__init__.py | 50 --- .../utils/decryptors/config_decryptor.py | 53 ---- .../decryptors/config_decryptor_aes_cbc.py | 290 ------------------ .../decryptors/config_decryptor_aes_ecb.py | 152 --------- .../config_decryptor_decrypt_xor.py | 121 -------- .../decryptors/config_decryptor_plaintext.py | 124 -------- .../config_decryptor_random_hardcoded.py | 96 ------ .../ratking/utils/dotnet_constants.py | 86 ------ .../ratking/utils/dotnetpe_payload.py | 199 ------------ modules/processing/parsers/CAPE/AsyncRAT.py | 2 +- modules/processing/parsers/CAPE/DCRat.py | 2 +- modules/processing/parsers/CAPE/QuasarRAT.py | 2 +- modules/processing/parsers/CAPE/VenomRAT.py | 2 +- modules/processing/parsers/CAPE/XWorm.py | 2 +- modules/processing/parsers/CAPE/XenoRAT.py | 2 +- poetry.lock | 25 +- pyproject.toml | 2 + 24 files changed, 32 insertions(+), 1691 deletions(-) delete mode 100644 lib/parsers_aux/__init__.py delete mode 100644 lib/parsers_aux/ratking/__init__.py delete mode 100644 lib/parsers_aux/ratking/config_parser_exception.py delete mode 100644 lib/parsers_aux/ratking/readme.md delete mode 100644 lib/parsers_aux/ratking/utils/__init__.py delete mode 100644 lib/parsers_aux/ratking/utils/config_item.py delete mode 100644 lib/parsers_aux/ratking/utils/data_utils.py delete mode 100644 lib/parsers_aux/ratking/utils/decryptors/__init__.py delete mode 100644 lib/parsers_aux/ratking/utils/decryptors/config_decryptor.py delete mode 100644 lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_cbc.py delete mode 100644 lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_ecb.py delete mode 100644 lib/parsers_aux/ratking/utils/decryptors/config_decryptor_decrypt_xor.py delete mode 100644 lib/parsers_aux/ratking/utils/decryptors/config_decryptor_plaintext.py delete mode 100644 lib/parsers_aux/ratking/utils/decryptors/config_decryptor_random_hardcoded.py delete mode 100644 lib/parsers_aux/ratking/utils/dotnet_constants.py delete mode 100644 lib/parsers_aux/ratking/utils/dotnetpe_payload.py diff --git a/lib/parsers_aux/__init__.py b/lib/parsers_aux/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/lib/parsers_aux/ratking/__init__.py b/lib/parsers_aux/ratking/__init__.py deleted file mode 100644 index a73ff2deaa7..00000000000 --- a/lib/parsers_aux/ratking/__init__.py +++ /dev/null @@ -1,211 +0,0 @@ -#!/usr/bin/env python3 -# -# rat_config_parser.py -# -# Author: jeFF0Falltrades -# -# Provides the primary functionality for parsing configurations from the -# AsyncRAT, DcRAT, QuasarRAT, VenomRAT, XWorm, XenoRAT, etc. RAT families -# -# MIT License -# -# Copyright (c) 2024 Jeff Archer -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -from logging import getLogger - -# from os.path import isfile -from re import DOTALL, compile, search -from typing import Any, Tuple - -from .config_parser_exception import ConfigParserException -from .utils import config_item -from .utils.decryptors import SUPPORTED_DECRYPTORS, ConfigDecryptor, IncompatibleDecryptorException -from .utils.dotnetpe_payload import DotNetPEPayload - -# from yara import Rules - - -logger = getLogger(__name__) - - -class RATConfigParser: - # Min and max number of items in a potential config section - _MIN_CONFIG_LEN_FLOOR = 5 - _MIN_CONFIG_LEN_CEILING = 9 - - # Pattern to find the VerifyHash() method - _PATTERN_VERIFY_HASH = compile(rb"\x7e.{3}\x04(?:\x6f.{3}\x0a){2}\x74.{3}\x01", DOTALL) - - # def __init__(self, file_path: str, yara_rule: Rules = None) -> None: - def __init__(self, file_data: bytes = None) -> None: - self.report = { - "config": {}, - } - try: - # Filled in _decrypt_and_decode_config() - self._incompatible_decryptors: list[int] = [] - try: - self._dnpp = DotNetPEPayload(file_data) - except Exception as e: - raise e - # self.report["sha256"] = self._dnpp.sha256 - # self.report["yara_possible_family"] = self._dnpp.yara_match - - # Assigned in _decrypt_and_decode_config() - self._decryptor: ConfigDecryptor = None - self.report["config"] = self._get_config() - self.report["key"] = ( - self._decryptor.key.hex() if self._decryptor is not None and self._decryptor.key is not None else "None" - ) - self.report["salt"] = ( - self._decryptor.salt.hex() if self._decryptor is not None and self._decryptor.salt is not None else "None" - ) - except Exception as e: - # self.report["config"] = f"Exception encountered for {file_path}: {e}" - self.report["config"] = f"Exception encountered: {e}" - - # Decrypts/decodes values from an encrypted config and returns the - # decrypted/decoded config - def _decrypt_and_decode_config(self, encrypted_config: bytes, min_config_len: int) -> dict[str, Any]: - decoded_config = {} - - for item_class in config_item.SUPPORTED_CONFIG_ITEMS: - item = item_class() - # Translate config Field RVAs to Field names - item_data = {self._dnpp.field_name_from_rva(k): v for k, v in item.parse_from(encrypted_config).items()} - - if len(item_data) > 0: - if type(item) is config_item.EncryptedStringConfigItem: - # Translate config value RVAs to string values - for k in item_data: - item_data[k] = self._dnpp.user_string_from_rva(item_data[k]) - - # Attempt to decrypt encrypted values - for decryptor in SUPPORTED_DECRYPTORS: - if decryptor in self._incompatible_decryptors: - continue - - if self._decryptor is None: - # Try to instantiate the selected decryptor - # Add to incompatible list and move on upon failure - try: - self._decryptor = decryptor(self._dnpp) - except IncompatibleDecryptorException as ide: - logger.debug(f"Decryptor incompatible {decryptor} : {ide}") - self._incompatible_decryptors.append(decryptor) - continue - try: - # Try to decrypt the encrypted strings - # Continue to next compatible decryptor on failure - item_data = self._decryptor.decrypt_encrypted_strings(item_data) - break - except Exception as e: - logger.debug(f"Decryption failed with decryptor {decryptor} : {e}") - self._decryptor = None - - if self._decryptor is None: - raise ConfigParserException("All decryptors failed") - - elif type(item) is config_item.ByteArrayConfigItem: - for k in item_data: - arr_size, arr_rva = item_data[k] - item_data[k] = self._dnpp.byte_array_from_size_and_rva(arr_size, arr_rva).hex() - - decoded_config.update(item_data) - - if len(decoded_config) < min_config_len: - raise ConfigParserException(f"Minimum threshold of config items not met: {len(decoded_config)}/{min_config_len}") - return decoded_config - - # Searches for the RAT configuration section, using the VerifyHash() marker - # or brute-force, returning the decrypted config on success - def _get_config(self) -> dict[str, Any]: - logger.debug("Extracting config...") - try: - config_start, decrypted_config = self._get_config_verify_hash_method() - except Exception: - logger.debug("VerifyHash() method failed; Attempting .cctor brute force...") - # If the VerifyHash() method does not work, move to brute-forcing - # static constructors - try: - config_start, decrypted_config = self._get_config_cctor_brute_force() - except Exception as e: - raise ConfigParserException(f"Could not identify config: {e}") - logger.debug(f"Config found at RVA {hex(config_start)}...") - return decrypted_config - - # Attempts to retrieve the config via brute-force, looking through every - # static constructor (.cctor) and attempting to decode/decrypt a valid - # config from that constructor, returning the config RVA and decrypted - # config on success - def _get_config_cctor_brute_force(self) -> Tuple[int, dict[str, Any]]: - candidates = self._dnpp.methods_from_name(".cctor") - if len(candidates) == 0: - raise ConfigParserException("No .cctor method could be found") - - # For each .cctor method, map its RVA and body (in raw bytes) - candidate_cctor_data = {method.rva: self._dnpp.method_body_from_method(method) for method in candidates} - - config_start, decrypted_config = None, None - # Start at our ceiling value for number of config items - min_config_len = self._MIN_CONFIG_LEN_CEILING - - while decrypted_config is None and min_config_len >= self._MIN_CONFIG_LEN_FLOOR: - for method_rva, method_body in candidate_cctor_data.items(): - logger.debug(f"Attempting brute force at .cctor method at {hex(method_rva)}") - try: - config_start, decrypted_config = ( - method_rva, - self._decrypt_and_decode_config(method_body, min_config_len), - ) - break - except Exception as e: - logger.debug(f"Brute force failed for method at {hex(method_rva)}: {e}") - continue - # Reduce the minimum config length until we reach our floor - min_config_len -= 1 - - if decrypted_config is None: - raise ConfigParserException("No valid configuration could be parsed from any .cctor methods") - return config_start, decrypted_config - - # Attempts to retrieve the config via looking for a config section preceded - # by the VerifyHash() method typically found in a Settings module, - # returning the config RVA and decrypted config on success - def _get_config_verify_hash_method(self) -> Tuple[int, dict[str, Any]]: - # Identify the VerifyHash() Method code - verify_hash_hit = search(self._PATTERN_VERIFY_HASH, self._dnpp.data) - if verify_hash_hit is None: - raise ConfigParserException("Could not identify VerifyHash() marker") - - # Reverse the hit to find the VerifyHash() method, then grab the - # subsequent function - config_method = self._dnpp.method_from_instruction_offset(verify_hash_hit.start(), 1) - encrypted_config = self._dnpp.method_body_from_method(config_method) - min_config_len = self._MIN_CONFIG_LEN_CEILING - while True: - try: - decrypted_config = self._decrypt_and_decode_config(encrypted_config, min_config_len) - return config_method.rva, decrypted_config - except Exception as e: - # Reduce the minimum config length until we reach our floor - if min_config_len < self._MIN_CONFIG_LEN_FLOOR: - raise e - min_config_len -= 1 diff --git a/lib/parsers_aux/ratking/config_parser_exception.py b/lib/parsers_aux/ratking/config_parser_exception.py deleted file mode 100644 index 2b8c1b06282..00000000000 --- a/lib/parsers_aux/ratking/config_parser_exception.py +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env python3 -# -# config_parser_exception.py -# -# Author: jeFF0Falltrades -# -# A simple custom Exception class for use with configuration parsing actions -# -# MIT License -# -# Copyright (c) 2024 Jeff Archer -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -class ConfigParserException(Exception): - pass diff --git a/lib/parsers_aux/ratking/readme.md b/lib/parsers_aux/ratking/readme.md deleted file mode 100644 index 28fc18ea444..00000000000 --- a/lib/parsers_aux/ratking/readme.md +++ /dev/null @@ -1,35 +0,0 @@ -All works here is done by https://github.com/jeFF0Falltrades/rat_king_parser - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/parsers_aux/ratking/utils/__init__.py b/lib/parsers_aux/ratking/utils/__init__.py deleted file mode 100644 index 716cb99880a..00000000000 --- a/lib/parsers_aux/ratking/utils/__init__.py +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env python3 -# -# __init__.py -# -# Author: jeFF0Falltrades -# -# Copyright (c) 2024 Jeff Archer -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. diff --git a/lib/parsers_aux/ratking/utils/config_item.py b/lib/parsers_aux/ratking/utils/config_item.py deleted file mode 100644 index e466c018b5e..00000000000 --- a/lib/parsers_aux/ratking/utils/config_item.py +++ /dev/null @@ -1,149 +0,0 @@ -#!/usr/bin/env python3 -# -# config_item.py -# -# Author: jeFF0Falltrades -# -# Provides a utility class for parsing field names and values of various types -# from raw RAT config data -# -# MIT License -# -# Copyright (c) 2024 Jeff Archer -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -from abc import ABC, abstractmethod -from logging import getLogger -from re import DOTALL, compile, findall -from typing import Any, Tuple - -from .data_utils import bytes_to_int -from .dotnet_constants import OPCODE_LDC_I4_0, SpecialFolder - -logger = getLogger(__name__) - - -# Provides an abstract class for config items -class ConfigItem(ABC): - def __init__(self, label: str, pattern: bytes) -> None: - self._label = label - self._pattern = compile(pattern, flags=DOTALL) - - # Should be overridden by children to provide a meaningful value - @abstractmethod - def _derive_item_value(self) -> Any: - pass - - # Derives config Field RVAs and values from data using the specified - # ConfigItem's pattern - def parse_from(self, data: bytes) -> dict[int, Any]: - logger.debug(f"Parsing {self._label} values from data...") - fields = {} - raw_data = findall(self._pattern, data) - found_items = 0 - for obj, bytes_rva in raw_data: - try: - field_value = self._derive_item_value(obj) - field_rva = bytes_to_int(bytes_rva) - except Exception: - logger.debug(f"Could not parse value from {obj} at {hex(bytes_rva)}") - continue - if field_rva not in fields: - fields[field_rva] = field_value - found_items += 1 - else: - logger.debug(f"Overlapping Field RVAs detected in config at {hex(field_rva)}") - logger.debug(f"Parsed {found_items} {self._label} values") - return fields - - -class BoolConfigItem(ConfigItem): - def __init__(self) -> None: - super().__init__("boolean", b"(\x16|\x17)\x80(.{3}\x04)") - - # Boolean values are derived by examing if the opcode is "ldc.i4.0" (False) - # or "ldc.i4.1" (True) - def _derive_item_value(self, opcode: bytes) -> bool: - return bool(bytes_to_int(opcode) - bytes_to_int(OPCODE_LDC_I4_0)) - - -class ByteArrayConfigItem(ConfigItem): - def __init__(self) -> None: - super().__init__( - "byte array", - rb"\x1f(.\x8d.{3}\x01\x25\xd0.{3}\x04)\x28.{3}\x0a\x80(.{3}\x04)", - ) - - # Byte array size and RVA are returned, as these are needed to - # extract the value of the bytes from the payload - def _derive_item_value(self, byte_data: bytes) -> Tuple[int, int]: - arr_size = byte_data[0] - arr_rva = bytes_to_int(byte_data[-4:]) - return (arr_size, arr_rva) - - -class IntConfigItem(ConfigItem): - def __init__(self) -> None: - super().__init__("int", b"(\x20.{4}|[\x18-\x1e])\x80(.{3}\x04)") - - def _derive_item_value(self, int_bytes: bytes) -> int: - # If single byte, must be value 2-8, represented by opcodes 0x18-0x1e - # Subtract 0x16 to get the int value, e.g.: - # ldc.i4.8 == 0x1e - 0x16 == 8 - if len(int_bytes) == 1: - return bytes_to_int(int_bytes) - 0x16 - # Else, look for which int was loaded by "ldc.i4" - return bytes_to_int(int_bytes[1:]) - - -class NullConfigItem(ConfigItem): - def __init__(self) -> None: - super().__init__("null", b"(\x14\x80)(.{3}\x04)") - - # If "ldnull" is being used, simply return "null" - def _derive_item_value(self, _: bytes) -> str: - return "null" - - -class SpecialFolderConfigItem(ConfigItem): - def __init__(self) -> None: - super().__init__("special folder", b"\x1f(.)\x80(.{3}\x04)") - - # Translates SpecialFolder ID to name - def _derive_item_value(self, folder_id: bytes) -> str: - return SpecialFolder(bytes_to_int(folder_id)).name - - -class EncryptedStringConfigItem(ConfigItem): - def __init__(self) -> None: - super().__init__("encrypted string", b"\x72(.{3}\x70)\x80(.{3}\x04)") - - # Returns the encrypted string's RVA - def _derive_item_value(self, enc_str_rva: bytes) -> int: - return bytes_to_int(enc_str_rva) - - -SUPPORTED_CONFIG_ITEMS = [ - BoolConfigItem, - ByteArrayConfigItem, - IntConfigItem, - NullConfigItem, - SpecialFolderConfigItem, - EncryptedStringConfigItem, -] diff --git a/lib/parsers_aux/ratking/utils/data_utils.py b/lib/parsers_aux/ratking/utils/data_utils.py deleted file mode 100644 index 1f0ec88cd02..00000000000 --- a/lib/parsers_aux/ratking/utils/data_utils.py +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env python3 -# -# data_utils.py -# -# Author: jeFF0Falltrades -# -# Provides various utility functions for working with binary data -# -# MIT License -# -# Copyright (c) 2024 Jeff Archer -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -from ..config_parser_exception import ConfigParserException - - -# Converts a bytes object to an int object using the specified byte order -def bytes_to_int(bytes: bytes, order: str = "little") -> int: - try: - return int.from_bytes(bytes, byteorder=order) - except Exception: - raise ConfigParserException(f"Error parsing int from value: {bytes}") - - -# Decodes a bytes object to a Unicode string, using UTF-16LE for byte values -# with null bytes still embedded in them, and UTF-8 for all other values -def decode_bytes(byte_str: bytes | str) -> str: - if isinstance(byte_str, str): - return byte_str.strip() - result = None - try: - if b"\x00" in byte_str: - result = byte_str.decode("utf-16le") - else: - result = byte_str.decode("utf-8") - except Exception: - raise ConfigParserException(f"Error decoding bytes object to Unicode: {byte_str}") - return result - - -# Converts an int to a bytes object, with the specified length and order -def int_to_bytes(int: int, length: int = 4, order: str = "little") -> bytes: - try: - return int.to_bytes(length, order) - except Exception: - raise ConfigParserException(f"Error parsing bytes from value: {int}") diff --git a/lib/parsers_aux/ratking/utils/decryptors/__init__.py b/lib/parsers_aux/ratking/utils/decryptors/__init__.py deleted file mode 100644 index a340a598f31..00000000000 --- a/lib/parsers_aux/ratking/utils/decryptors/__init__.py +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env python3 -# -# __init__.py -# -# Author: jeFF0Falltrades -# -# Copyright (c) 2024 Jeff Archer -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -from .config_decryptor import ConfigDecryptor, IncompatibleDecryptorException -from .config_decryptor_aes_cbc import ConfigDecryptorAESCBC -from .config_decryptor_aes_ecb import ConfigDecryptorAESECB -from .config_decryptor_decrypt_xor import ConfigDecryptorDecryptXOR -from .config_decryptor_plaintext import ConfigDecryptorPlaintext -from .config_decryptor_random_hardcoded import ConfigDecryptorRandomHardcoded - -__all__ = [ - ConfigDecryptor, - IncompatibleDecryptorException, - ConfigDecryptorAESCBC, - ConfigDecryptorAESECB, - ConfigDecryptorDecryptXOR, - ConfigDecryptorRandomHardcoded, - ConfigDecryptorPlaintext, -] - -# ConfigDecryptorPlaintext should always be the last fallthrough case -SUPPORTED_DECRYPTORS = [ - ConfigDecryptorAESCBC, - ConfigDecryptorAESECB, - ConfigDecryptorDecryptXOR, - ConfigDecryptorRandomHardcoded, - ConfigDecryptorPlaintext, -] diff --git a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor.py b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor.py deleted file mode 100644 index 8b4827d38b3..00000000000 --- a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor.py +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/env python3 -# -# config_decryptor.py -# -# Author: jeFF0Falltrades -# -# Provides a simple abstract base class for different types of config decryptors -# -# MIT License -# -# Copyright (c) 2024 Jeff Archer -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -from abc import ABC, abstractmethod -from logging import getLogger - -from ..dotnetpe_payload import DotNetPEPayload - -logger = getLogger(__name__) - - -# Custom Exception to denote that a decryptor is incompatible with a payload -class IncompatibleDecryptorException(Exception): - pass - - -class ConfigDecryptor(ABC): - def __init__(self, payload: DotNetPEPayload) -> None: - self.key: bytes | str = None - self._payload = payload - self.salt: bytes = None - - # Abstract method to take in a map representing a configuration of config - # Field names and values and return a decoded/decrypted configuration - @abstractmethod - def decrypt_encrypted_strings(self, encrypted_strings: dict[str, str]) -> dict[str, list[str] | str]: - pass diff --git a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_cbc.py b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_cbc.py deleted file mode 100644 index 886a804eb68..00000000000 --- a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_cbc.py +++ /dev/null @@ -1,290 +0,0 @@ -#!/usr/bin/env python3 -# -# config_decryptor_aes_cbc.py -# -# Author: jeFF0Falltrades -# -# Provides a custom AES decryptor for RAT payloads utilizing CBC mode -# -# Example Hash: 6b99acfa5961591c39b3f889cf29970c1dd48ddb0e274f14317940cf279a4412 -# -# MIT License -# -# Copyright (c) 2024 Jeff Archer -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -from base64 import b64decode -from logging import getLogger -from re import DOTALL, compile, escape, search -from typing import Tuple - -from cryptography.hazmat.backends import default_backend -from cryptography.hazmat.primitives.ciphers import Cipher -from cryptography.hazmat.primitives.ciphers.algorithms import AES -from cryptography.hazmat.primitives.ciphers.modes import CBC -from cryptography.hazmat.primitives.hashes import SHA1 -from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC -from cryptography.hazmat.primitives.padding import PKCS7 - -from ...config_parser_exception import ConfigParserException -from ..data_utils import bytes_to_int, decode_bytes, int_to_bytes -from ..dotnet_constants import OPCODE_LDSTR, OPCODE_LDTOKEN -from ..dotnetpe_payload import DotNetPEPayload -from .config_decryptor import ConfigDecryptor, IncompatibleDecryptorException - -logger = getLogger(__name__) - - -class ConfigDecryptorAESCBC(ConfigDecryptor): - # Minimum length of valid ciphertext - _MIN_CIPHERTEXT_LEN = 48 - - # Patterns for identifying AES metadata - _PATTERN_AES_KEY_AND_BLOCK_SIZE = compile(b"[\x06-\x09]\x20(.{4})\x6f.{4}[\x06-\x09]\x20(.{4})", DOTALL) - # Do not compile in-line replacement patterns - _PATTERN_AES_KEY_BASE = b"(.{3}\x04).%b" - _PATTERN_AES_SALT_INIT = b"\x80%b\x2a" - _PATTERN_AES_SALT_ITER = compile(b"[\x02-\x05]\x7e(.{4})\x20(.{4})\x73", DOTALL) - - def __init__(self, payload: DotNetPEPayload) -> None: - super().__init__(payload) - self._block_size: int = None - self._iterations: int = None - self._key_candidates: list[bytes] = None - self._key_size: int = None - self._key_rva: int = None - try: - self._get_aes_metadata() - except Exception as e: - raise IncompatibleDecryptorException(e) - - # Given an initialization vector and ciphertext, creates a Cipher - # object with the AES key and specified IV and decrypts the ciphertext - def _decrypt(self, iv: bytes, ciphertext: bytes) -> bytes: - logger.debug(f"Decrypting {ciphertext} with key {self.key.hex()} and IV {iv.hex()}...") - aes_cipher = Cipher(AES(self.key), CBC(iv), backend=default_backend()) - decryptor = aes_cipher.decryptor() - # Use a PKCS7 unpadder to remove padding from decrypted value - # https://cryptography.io/en/latest/hazmat/primitives/padding/ - unpadder = PKCS7(self._block_size).unpadder() - - try: - padded_text = decryptor.update(ciphertext) + decryptor.finalize() - unpadded_text = unpadder.update(padded_text) + unpadder.finalize() - except Exception as e: - raise ConfigParserException( - f"Error decrypting ciphertext {ciphertext} with IV {iv.hex()} and key {self.key.hex()} : {e}" - ) - - logger.debug(f"Decryption result: {unpadded_text}") - return unpadded_text - - # Derives AES passphrase candidates from a config - # - # If a passphrase is base64-encoded, both its raw value and decoded value - # will be added as candidates - def _derive_aes_passphrase_candidates(self, key_val: str) -> list[bytes]: - passphrase_candidates = [key_val.encode()] - try: - passphrase_candidates.append(b64decode(key_val)) - except Exception: - pass - logger.debug(f"AES passphrase candidates found: {passphrase_candidates}") - return passphrase_candidates - - # Decrypts encrypted config values with the provided cipher data - def decrypt_encrypted_strings(self, encrypted_strings: dict[str, str]) -> dict[str, str]: - logger.debug("Decrypting encrypted strings...") - if self._key_candidates is None: - self._key_candidates = self._get_aes_key_candidates(encrypted_strings) - - decrypted_config_strings = {} - for k, v in encrypted_strings.items(): - # Leave empty strings as they are - if len(v) == 0: - logger.debug(f"Key: {k}, Value: {v}") - decrypted_config_strings[k] = v - continue - - # Check if base64-encoded string - b64_exception = False - try: - decoded_val = b64decode(v) - except Exception: - b64_exception = True - # If it was not base64-encoded, or if it is less than our min length - # for ciphertext, leave the value as it is - if b64_exception or len(decoded_val) < self._MIN_CIPHERTEXT_LEN: - logger.debug(f"Key: {k}, Value: {v}") - decrypted_config_strings[k] = v - continue - - # Otherwise, extract the IV from the 16 bytes after the HMAC - # (first 32 bytes) and the ciphertext from the rest of the data - # after the IV, and run the decryption - iv, ciphertext = decoded_val[32:48], decoded_val[48:] - result, last_exc = None, None - key_idx = 0 - # Run through key candidates until suitable one found or failure - while result is None and key_idx < len(self._key_candidates): - try: - self.key = self._key_candidates[key_idx] - key_idx += 1 - result = decode_bytes(self._decrypt(iv, ciphertext)) - except ConfigParserException as e: - last_exc = e - - if result is None: - logger.debug(f"Decryption failed for item {v}: {last_exc}; Leaving as original value...") - result = v - - logger.debug(f"Key: {k}, Value: {result}") - decrypted_config_strings[k] = result - - logger.debug("Successfully decrypted strings") - return decrypted_config_strings - - # Extracts AES key candidates from the payload - def _get_aes_key_candidates(self, encrypted_strings: dict[str, str]) -> list[bytes]: - logger.debug("Extracting AES key candidates...") - keys = [] - - # Use the key Field name to index into our existing config - key_raw_value = encrypted_strings[self._payload.field_name_from_rva(self._key_rva)] - passphrase_candidates = self._derive_aes_passphrase_candidates(key_raw_value) - - for candidate in passphrase_candidates: - try: - # The backend parameter is optional in newer versions of the - # cryptography library, but we keep it here for compatibility - kdf = PBKDF2HMAC( - SHA1(), - length=self._key_size, - salt=self.salt, - iterations=self._iterations, - backend=default_backend(), - ) - keys.append(kdf.derive(candidate)) - logger.debug(f"AES key derived: {keys[-1]}") - except Exception: - continue - - if len(keys) == 0: - raise ConfigParserException(f"Could not derive key from passphrase candidates: {passphrase_candidates}") - return keys - - # Extracts the AES key and block size from the payload - def _get_aes_key_and_block_size(self) -> Tuple[int, int]: - logger.debug("Extracting AES key and block size...") - hit = search(self._PATTERN_AES_KEY_AND_BLOCK_SIZE, self._payload.data) - if hit is None: - raise ConfigParserException("Could not extract AES key or block size") - - # Convert key size from bits to bytes by dividing by 8 - # Note use of // instead of / to ensure integer output, not float - key_size = bytes_to_int(hit.groups()[0]) // 8 - block_size = bytes_to_int(hit.groups()[1]) - - logger.debug(f"Found key size {key_size} and block size {block_size}") - return key_size, block_size - - # Given an offset to an instruction within the Method that sets up the - # Cipher, extracts the AES key RVA from the payload - def _get_aes_key_rva(self, metadata_ins_offset: int) -> int: - logger.debug("Extracting AES key RVA...") - - # Get the RVA of the method that sets up AES256 metadata - metadata_method_token = self._payload.method_from_instruction_offset(metadata_ins_offset, by_token=True).token - - # Insert this RVA into the KEY_BASE pattern to find where the AES key - # is initialized - key_hit = search( - self._PATTERN_AES_KEY_BASE % escape(int_to_bytes(metadata_method_token)), - self._payload.data, - DOTALL, - ) - if key_hit is None: - raise ConfigParserException("Could not find AES key pattern") - - key_rva = bytes_to_int(key_hit.groups()[0]) - logger.debug(f"AES key RVA: {hex(key_rva)}") - return key_rva - - # Identifies the initialization of the AES256 object in the payload and - # sets the necessary values needed for decryption - def _get_aes_metadata(self) -> None: - logger.debug("Extracting AES metadata...") - metadata = search(self._PATTERN_AES_SALT_ITER, self._payload.data) - if metadata is None: - raise ConfigParserException("Could not identify AES metadata") - logger.debug(f"AES metadata found at offset {hex(metadata.start())}") - - self._key_size, self._block_size = self._get_aes_key_and_block_size() - - logger.debug("Extracting AES iterations...") - self._iterations = bytes_to_int(metadata.groups()[1]) - logger.debug(f"Found AES iteration number of {self._iterations}") - - self.salt = self._get_aes_salt(metadata.groups()[0]) - self._key_rva = self._get_aes_key_rva(metadata.start()) - - # Extracts the AES salt from the payload, accounting for both hardcoded - # salt byte arrays, and salts derived from hardcoded strings - def _get_aes_salt(self, salt_rva: int) -> bytes: - logger.debug("Extracting AES salt value...") - - # Use % to insert our salt RVA into our match pattern - # This pattern will then find the salt initialization ops, - # specifically: - # - # stsfld uint8[] Client.Algorithm.Aes256::Salt - # ret - aes_salt_initialization = self._payload.data.find(self._PATTERN_AES_SALT_INIT % escape(salt_rva)) - if aes_salt_initialization == -1: - raise ConfigParserException("Could not identify AES salt initialization") - - # Look at the opcode used to initialize the salt to decide how to - # proceed with extracting the salt value (start of pattern - 10 bytes) - salt_op_offset = aes_salt_initialization - 10 - # Need to use bytes([int]) here to properly convert from int to byte - # string for our comparison below - salt_op = bytes([self._payload.data[salt_op_offset]]) - - # Get the salt RVA from the 4 bytes following the initialization op - salt_strings_rva_packed = self._payload.data[salt_op_offset + 1 : salt_op_offset + 5] - salt_strings_rva = bytes_to_int(salt_strings_rva_packed) - - # If the op is a ldstr op, just get the bytes value of the string being - # used to initialize the salt - if salt_op == OPCODE_LDSTR: - salt_encoded = self._payload.user_string_from_rva(salt_strings_rva) - # We use decode_bytes() here to get the salt string without any - # null bytes (because it's stored as UTF-16LE), then convert it - # back to bytes - salt = decode_bytes(salt_encoded).encode() - # If the op is a ldtoken (0xd0) operation, we need to get the salt - # byte array value from the FieldRVA table - elif salt_op == OPCODE_LDTOKEN: - salt_size = self._payload.data[salt_op_offset - 7] - salt = self._payload.byte_array_from_size_and_rva(salt_size, salt_strings_rva) - else: - raise ConfigParserException(f"Unknown salt opcode found: {salt_op.hex()}") - - logger.debug(f"Found salt value: {salt.hex()}") - return salt diff --git a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_ecb.py b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_ecb.py deleted file mode 100644 index 668c18de4e6..00000000000 --- a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_aes_ecb.py +++ /dev/null @@ -1,152 +0,0 @@ -#!/usr/bin/env python3 -# -# config_decryptor_aes_ecb.py -# -# Author: jeFF0Falltrades -# -# Provides a custom AES decryptor for RAT payloads utilizing ECB mode -# -# Example Hash: d5028e10a756f2df677f32ebde105d7de8df37e253c431837c8f810260f4428e -# -# MIT License -# -# Copyright (c) 2024 Jeff Archer -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -from base64 import b64decode -from hashlib import md5 -from logging import getLogger -from re import DOTALL, compile, search - -from cryptography.hazmat.backends import default_backend -from cryptography.hazmat.primitives.ciphers import Cipher -from cryptography.hazmat.primitives.ciphers.algorithms import AES -from cryptography.hazmat.primitives.ciphers.modes import ECB -from cryptography.hazmat.primitives.padding import PKCS7 - -from ...config_parser_exception import ConfigParserException -from ..data_utils import bytes_to_int, decode_bytes -from ..dotnetpe_payload import DotNetPEPayload -from .config_decryptor import ConfigDecryptor, IncompatibleDecryptorException - -logger = getLogger(__name__) - - -class ConfigDecryptorAESECB(ConfigDecryptor): - # MD5 hash pattern used to detect AES key - _PATTERN_MD5_HASH = compile(rb"\x7e(.{3}\x04)\x28.{3}\x06\x6f", DOTALL) - - def __init__(self, payload: DotNetPEPayload) -> None: - super().__init__(payload) - try: - self._aes_key_rva = self._get_aes_key_rva() - except Exception as e: - raise IncompatibleDecryptorException(e) - - # Given ciphertext, creates a Cipher object with the AES key and decrypts - # the ciphertext - def _decrypt(self, ciphertext: bytes) -> bytes: - logger.debug(f"Decrypting {ciphertext} with key {self.key.hex()}...") - aes_cipher = Cipher(AES(self.key), ECB(), backend=default_backend()) - decryptor = aes_cipher.decryptor() - unpadder = PKCS7(AES.block_size).unpadder() - # Use a PKCS7 unpadder to remove padding from decrypted value - # https://cryptography.io/en/latest/hazmat/primitives/padding/ - unpadder = PKCS7(AES.block_size).unpadder() - - try: - padded_text = decryptor.update(ciphertext) + decryptor.finalize() - unpadded_text = unpadder.update(padded_text) + unpadder.finalize() - except Exception as e: - raise ConfigParserException(f"Error decrypting ciphertext {ciphertext} with key {self.key.hex()}: {e}") - - logger.debug(f"Decryption result: {unpadded_text}") - return unpadded_text - - # Decrypts encrypted config values with the provided cipher data - def decrypt_encrypted_strings(self, encrypted_strings: dict[str, str]) -> dict[str, str]: - logger.debug("Decrypting encrypted strings...") - - if self.key is None: - try: - raw_key_field = self._payload.field_name_from_rva(self._aes_key_rva) - self.key = self._derive_aes_key(encrypted_strings[raw_key_field]) - except Exception as e: - raise ConfigParserException(f"Failed to derive AES key: {e}") - - decrypted_config_strings = {} - for k, v in encrypted_strings.items(): - # Leave empty strings as they are - if len(v) == 0: - logger.debug(f"Key: {k}, Value: {v}") - decrypted_config_strings[k] = v - continue - - # Check if base64-encoded string - b64_exception = False - try: - decoded_val = b64decode(v) - except Exception: - b64_exception = True - # If it was not base64-encoded, leave the value as it is - if b64_exception: - logger.debug(f"Key: {k}, Value: {v}") - decrypted_config_strings[k] = v - continue - - ciphertext = decoded_val - result, last_exc = None, None - try: - result = decode_bytes(self._decrypt(ciphertext)) - except ConfigParserException as e: - last_exc = e - - if result is None: - logger.debug(f"Decryption failed for item {v}: {last_exc}") - result = v - - logger.debug(f"Key: {k}, Value: {result}") - decrypted_config_strings[k] = result - - logger.debug("Successfully decrypted strings") - return decrypted_config_strings - - # Given the raw bytes that will become the key value, derives the AES key - def _derive_aes_key(self, key_unhashed: str) -> bytes: - # Generate the MD5 hash - md5_hash = md5() - md5_hash.update(key_unhashed.encode("utf-8")) - md5_digest = md5_hash.digest() - - # Key is a 32-byte value made up of the MD5 hash overlaying itself, - # tailed with one null byte - key = md5_digest[:15] + md5_digest[:16] + b"\x00" - logger.debug(f"AES key derived: {key}") - return key - - # Extracts the AES key RVA from the payload - def _get_aes_key_rva(self) -> int: - logger.debug("Extracting AES key value...") - key_hit = search(self._PATTERN_MD5_HASH, self._payload.data) - if key_hit is None: - raise ConfigParserException("Could not find AES key pattern") - - key_rva = bytes_to_int(key_hit.groups()[0]) - logger.debug(f"AES key RVA: {hex(key_rva)}") - return key_rva diff --git a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_decrypt_xor.py b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_decrypt_xor.py deleted file mode 100644 index 7ea52618ceb..00000000000 --- a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_decrypt_xor.py +++ /dev/null @@ -1,121 +0,0 @@ -#!/usr/bin/env python3 -# -# config_decryptor_decrypt_xor.py -# -# Author: jeFF0Falltrades -# -# Provides a custom decryptor for RAT payloads utilizing the DecryptXOR -# method of embeddeding config strings -# -# Example Hash: 6e5671dec52db7f64557ba8ef70caf53cf0c782795236b03655623640f9e6a83 -# -# MIT License -# -# Copyright (c) 2024 Jeff Archer -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -from logging import getLogger -from re import DOTALL, compile, findall, search - -from ...config_parser_exception import ConfigParserException -from ..data_utils import bytes_to_int, decode_bytes -from ..dotnet_constants import PATTERN_LDSTR_OP -from ..dotnetpe_payload import DotNetPEPayload -from .config_decryptor import ConfigDecryptor, IncompatibleDecryptorException -from .config_decryptor_plaintext import ConfigDecryptorPlaintext - -logger = getLogger(__name__) - - -class ConfigDecryptorDecryptXOR(ConfigDecryptor): - _KEY_XOR_DECODED_STRINGS = "xor_decoded_strings" - - # Pattern to detect usage of DecryptXOR Method - _PATTERN_DECRYPT_XOR_BLOCK = compile( - rb"(\x2d.\x72.{3}\x70\x28.{3}\x06\x2a(?:\x02[\x16-\x1f].?\x33.\x72.{3}\x70\x28.{3}\x06\x2a){7,}.+?\x72.{3}\x70)", - flags=DOTALL, - ) - - def __init__(self, payload: DotNetPEPayload) -> None: - super().__init__(payload) - # Filled in _get_xor_metadata() - self._xor_strings: list[str] = [] - try: - self._get_xor_metadata() - except Exception as e: - raise IncompatibleDecryptorException(e) - - # Returns a list of decoded XOR-encoded strings found in the payload - def _decode_encoded_strings(self) -> list[str]: - decoded_strings = [] - - for string in self._xor_strings: - decoded = [] - # Do not modify unencoded strings - if ":" not in string: - decoded_strings.append(string) - continue - - # Split encoded string by ':' and run XOR decoding - arr, arr2 = (bytes.fromhex(arr) for arr in string.split(":")) - for idx, byte in enumerate(arr2): - decoded.append(byte ^ self.key[idx % len(self.key)] ^ arr[idx]) - decoded_strings.append(decode_bytes(bytes(decoded))) - - logger.debug(f"Decoded {len(decoded_strings)} strings") - return decoded_strings - - # Parses the config, adds decoded XOR strings, and returns the decoded - # config - def decrypt_encrypted_strings(self, encrypted_strings: dict[str, str]) -> dict[str, list[str] | str]: - config = {} - # Pass off plaintext config to a ConfigDecryptorPlaintext - ptcd = ConfigDecryptorPlaintext(self._payload) - config.update(ptcd.decrypt_encrypted_strings(encrypted_strings)) - config[self._KEY_XOR_DECODED_STRINGS] = self._decode_encoded_strings() - return config - - # Gathers XOR metadata from the payload - def _get_xor_metadata(self): - dxor_block = search(self._PATTERN_DECRYPT_XOR_BLOCK, self._payload.data) - if dxor_block is None: - raise ConfigParserException("Could not identify DecryptXOR block") - logger.debug(f"DecryptXOR block found at offset {hex(dxor_block.start())}") - - # Derive all XOR-encoded string references in the DecryptXOR block - xor_string_rvas = findall(PATTERN_LDSTR_OP, dxor_block.groups()[0]) - self._xor_strings = list( - filter( - None, - [self._payload.user_string_from_rva(bytes_to_int(rva)) for rva in xor_string_rvas], - ) - ) - logger.debug(f"{len(self._xor_strings)} XOR strings found") - - # Get the static constructor containing the XOR key - xor_key_cctor = self._payload.method_from_instruction_offset(dxor_block.start(), step=1, by_token=True) - xor_key_cctor_body = self._payload.method_body_from_method(xor_key_cctor) - - # Derive the XOR key RVA and value - xor_rva = search(PATTERN_LDSTR_OP, xor_key_cctor_body) - if xor_rva is None: - raise ConfigParserException("Could not identify XOR key RVA") - xor_rva = bytes_to_int(xor_rva.groups()[0]) - self.key = bytes(self._payload.user_string_from_rva(xor_rva), encoding="utf-8") - logger.debug(f"XOR key found at {hex(xor_rva)} : {self.key}") diff --git a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_plaintext.py b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_plaintext.py deleted file mode 100644 index b24d2b387fd..00000000000 --- a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_plaintext.py +++ /dev/null @@ -1,124 +0,0 @@ -#!/usr/bin/env python3 -# -# config_decryptor_plaintext.py -# -# Author: jeFF0Falltrades -# -# Provides a fall-through decryptor that will attempt to return the plaintext -# values of a found config when all other decryptors fail by matching known -# config field names from supported RAT families -# -# MIT License -# -# Copyright (c) 2024 Jeff Archer -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -from logging import getLogger - -from ...config_parser_exception import ConfigParserException -from ..dotnetpe_payload import DotNetPEPayload -from .config_decryptor import ConfigDecryptor - -logger = getLogger(__name__) - -KNOWN_CONFIG_FIELD_NAMES = set( - [ - "AUTHKEY", - "An_ti", - "Anti", - "Anti_Process", - "BDOS", - "BS_OD", - "Certifi_cate", - "Certificate", - "DIRECTORY", - "De_lay", - "Delay", - "DoStartup", - "ENABLELOGGER", - "EncryptionKey", - "Groub", - "Group", - "HIDEFILE", - "HIDEINSTALLSUBDIRECTORY", - "HIDELOGDIRECTORY", - "HOSTS", - "Hos_ts", - "Hosts", - "Hw_id", - "Hwid", - "INSTALL", - "INSTALLNAME", - "In_stall", - "Install", - "InstallDir", - "InstallFile", - "InstallFolder", - "InstallStr", - "Install_File", - "Install_Folder", - "Install_path", - "KEY", - "Key", - "LOGDIRECTORYNAME", - "MTX", - "MUTEX", - "Mutex", - "Paste_bin", - "Pastebin", - "Por_ts", - "Port", - "Ports", - "RECONNECTDELAY", - "SPL", - "STARTUP", - "STARTUPKEY", - "SUBDIRECTORY", - "ServerIp", - "ServerPort", - "Server_signa_ture", - "Serversignature", - "Sleep", - "TAG", - "USBNM", - "VERSION", - "Ver_sion", - "Version", - "delay", - "mutex_string", - "startup_name", - ] -) - - -class ConfigDecryptorPlaintext(ConfigDecryptor): - # Minimum threshold for matching Field names - MIN_THRESHOLD_MATCH = 3 - - def __init__(self, payload: DotNetPEPayload) -> None: - super().__init__(payload) - - # Calculates whether the config meets the minimum threshold for known Field - # Names and returns it if it does - def decrypt_encrypted_strings(self, encrypted_strings: dict[str, str]) -> dict[str, str]: - field_names = set(encrypted_strings.keys()) - num_overlapping_field_names = len(KNOWN_CONFIG_FIELD_NAMES & field_names) - if num_overlapping_field_names < self.MIN_THRESHOLD_MATCH: - raise ConfigParserException("Plaintext threshold of known config items not met") - return encrypted_strings diff --git a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_random_hardcoded.py b/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_random_hardcoded.py deleted file mode 100644 index e5d598f47b7..00000000000 --- a/lib/parsers_aux/ratking/utils/decryptors/config_decryptor_random_hardcoded.py +++ /dev/null @@ -1,96 +0,0 @@ -#!/usr/bin/env python3 -# -# config_decryptor_random_hardcoded.py -# -# Author: jeFF0Falltrades -# -# Provides a custom decryptor for RAT payloads utilizing the method of -# randomly selecting from an embedded list of C2 domains/supradomains -# -# Example hash: a2817702fecb280069f0723cd2d0bfdca63763b9cdc833941c4f33bbe383d93e -# -# MIT License -# -# Copyright (c) 2024 Jeff Archer -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -from logging import getLogger -from re import DOTALL, compile, findall, search - -from ...config_parser_exception import ConfigParserException -from ..data_utils import bytes_to_int -from ..dotnet_constants import PATTERN_LDSTR_OP -from ..dotnetpe_payload import DotNetPEMethod, DotNetPEPayload -from .config_decryptor import ConfigDecryptor, IncompatibleDecryptorException -from .config_decryptor_plaintext import ConfigDecryptorPlaintext - -logger = getLogger(__name__) - - -class ConfigDecryptorRandomHardcoded(ConfigDecryptor): - _KEY_HARDCODED_HOSTS = "hardcoded_hosts" - - # Pattern to find the Method that retrieves a random domain - _PATTERN_RANDOM_DOMAIN = compile(rb"(?:\x73.{3}\x0a){2}\x25.+?\x0a\x06(?:\x6f.{3}\x0a){2}\x0b", flags=DOTALL) - - def __init__(self, payload: DotNetPEPayload) -> None: - super().__init__(payload) - try: - self._random_domain_method = self._get_random_domain_method() - except Exception as e: - raise IncompatibleDecryptorException(e) - - # Returns a combined config containing config fields + hardcoded hosts - def decrypt_encrypted_strings(self, encrypted_strings: dict[str, str]) -> dict[str, list[str] | str]: - config = {} - # Pass off plaintext config to a ConfigDecryptorPlaintext - ptcd = ConfigDecryptorPlaintext(self._payload) - config.update(ptcd.decrypt_encrypted_strings(encrypted_strings)) - config[self._KEY_HARDCODED_HOSTS] = self._get_hardcoded_hosts() - return config - - # Retrieves and returns a list of hardcoded hosts - def _get_hardcoded_hosts(self) -> list[str]: - random_domain_method_body = self._payload.method_body_from_method(self._random_domain_method) - hardcoded_host_rvas = findall(PATTERN_LDSTR_OP, random_domain_method_body) - - hardcoded_hosts = [] - for rva in hardcoded_host_rvas: - try: - harcoded_host = self._payload.user_string_from_rva(bytes_to_int(rva)) - if harcoded_host != ".": - hardcoded_hosts.append(harcoded_host) - except Exception as e: - logger.error(f"Error translating hardcoded host at {hex(rva)}: {e}") - continue - - logger.debug(f"Hardcoded hosts found: {hardcoded_hosts}") - return hardcoded_hosts - - # Retrieves the Method that randomly selects from a list of embedded hosts - def _get_random_domain_method(self) -> DotNetPEMethod: - logger.debug("Searching for random domain method") - random_domain_marker = search(self._PATTERN_RANDOM_DOMAIN, self._payload.data) - if random_domain_marker is None: - raise ConfigParserException("Could not identify random domain generator method") - - random_domain_method = self._payload.method_from_instruction_offset(random_domain_marker.start()) - - logger.debug(f"Random domain generator found at offset {hex(random_domain_method.offset)}") - return random_domain_method diff --git a/lib/parsers_aux/ratking/utils/dotnet_constants.py b/lib/parsers_aux/ratking/utils/dotnet_constants.py deleted file mode 100644 index 84f82e14619..00000000000 --- a/lib/parsers_aux/ratking/utils/dotnet_constants.py +++ /dev/null @@ -1,86 +0,0 @@ -#!/usr/bin/env python3 -# -# dotnet_constants.py -# -# Author: jeFF0Falltrades -# -# Useful .NET constants and enums -# -# MIT License -# -# Copyright (c) 2024 Jeff Archer -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -from enum import IntEnum -from re import DOTALL, compile - -# Notable CIL Opcodes and Tokens -OPCODE_LDC_I4_0 = b"\x16" -OPCODE_LDSTR = b"\x72" -OPCODE_LDTOKEN = b"\xd0" -MDT_FIELD_DEF = 0x04000000 -MDT_METHOD_DEF = 0x06000000 -MDT_STRING = 0x70000000 -PATTERN_LDSTR_OP = compile( - rb"\x72(.{3}\x70)", - flags=DOTALL, -) - - -# IntEnum derivative used for translating a SpecialFolder ID to its name -class SpecialFolder(IntEnum): - ADMINTOOLS = 48 - APPLICATIONDATA = 26 - CDBURNING = 59 - COMMONADMINTOOLS = 47 - COMMONAPPLICATIONDATA = 35 - COMMONDESKTOPDIRECTORY = 25 - COMMONDOCUMENTS = 46 - COMMONMUSIC = 53 - COMMONOEMLINKS = 58 - COMMONPICTURES = 54 - COMMONPROGRAMFILES = 43 - COMMONPROGRAMFILESX86 = 44 - COMMONPROGRAMS = 23 - COMMONSTARTMENU = 22 - COMMONSTARTUP = 24 - COMMONTEMPLATES = 45 - COMMONVIDEOS = 55 - COOKIES = 33 - DESKTOPDIRECTORY = 16 - FONTS = 20 - HISTORY = 34 - INTERNETCACHE = 32 - LOCALAPPLICATIONDATA = 28 - LOCALIZEDRESOURCES = 57 - MYCOMPUTER = 17 - MYMUSIC = 13 - MYPICTURES = 39 - MYVIDEOS = 14 - NETWORKSHORTCUTS = 19 - PRINTERSHORTCUTS = 27 - PROGRAMFILES = 38 - PROGRAMFILESX86 = 42 - RESOURCES = 56 - STARTMENU = 11 - SYSTEM = 37 - SYSTEMX86 = 41 - TEMPLATES = 21 - USERPROFILE = 40 - WINDOWS = 36 diff --git a/lib/parsers_aux/ratking/utils/dotnetpe_payload.py b/lib/parsers_aux/ratking/utils/dotnetpe_payload.py deleted file mode 100644 index d2d9d3f60f3..00000000000 --- a/lib/parsers_aux/ratking/utils/dotnetpe_payload.py +++ /dev/null @@ -1,199 +0,0 @@ -#!/usr/bin/env python3 -# -# dotnetpe_payload.py -# -# Author: jeFF0Falltrades -# -# Provides a wrapper class for accessing metadata from a DotNetPE object and -# performing data conversions -# -# MIT License -# -# Copyright (c) 2024 Jeff Archer -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -from dataclasses import dataclass -from hashlib import sha256 -from logging import getLogger - -from dnfile import dnPE -from yara import Rules - -from ..config_parser_exception import ConfigParserException -from .data_utils import bytes_to_int -from .dotnet_constants import MDT_FIELD_DEF, MDT_METHOD_DEF, MDT_STRING - -logger = getLogger(__name__) - - -# Helper class representing a single Method -@dataclass -class DotNetPEMethod: - name: str - offset: int - rva: int - size: int - token: int - - -class DotNetPEPayload: - # def __init__(self, file_path: str, yara_rule: Rules = None) -> None: - def __init__(self, file_data: bytes, yara_rule: Rules = None) -> None: - # self.file_path = file_path - self.data = file_data # self._get_file_data() - - # Calculate SHA256 - sha256_obj = sha256() - sha256_obj.update(self.data) - self.sha256 = sha256_obj.hexdigest() - - self.dotnetpe: dnPE = None - try: - # self.dotnetpe = dnPE(self.file_path, clr_lazy_load=True) - self.dotnetpe = dnPE(data=file_data, clr_lazy_load=True) - except Exception: - raise ConfigParserException("Failed to load project as dotnet executable") - - self.yara_match = "" - if yara_rule is not None: - self.yara_match = self._match_yara(yara_rule) - - # Pre-sort Method table for efficient lookups - self._methods = self._generate_method_list() - self._methods_by_offset = sorted(self._methods, key=lambda m: m.offset) - self._methods_by_token = sorted(self._methods, key=lambda m: m.token) - - # Given a byte array's size and RVA, translates the RVA to the offset of - # the byte array and returns the bytes of the array as a byte string - def byte_array_from_size_and_rva(self, arr_size: int, arr_rva: int) -> bytes: - arr_field_rva = self.fieldrva_from_rva(arr_rva) - arr_offset = self.offset_from_rva(arr_field_rva) - return self.data[arr_offset : arr_offset + arr_size] - - # Given an offset, and either a terminating offset or delimiter, extracts - # the byte string - def byte_string_from_offset(self, offset_start: int, offstart_end: int = -1, delimiter: bytes = b"\0") -> bytes: - if offstart_end != -1: - try: - return self.data[offset_start:offstart_end] - except Exception: - raise ConfigParserException( - f"Could not extract string value from offset range [{hex(offset_start)}:{offstart_end}]" - ) - try: - return self.data[offset_start:].partition(delimiter)[0] - except Exception: - raise ConfigParserException( - f"Could not extract string value from offset {hex(offset_start)} with delimiter {delimiter}" - ) - - # Given an RVA, derives the corresponding Field name - def field_name_from_rva(self, rva: int) -> str: - try: - return self.dotnetpe.net.mdtables.Field.rows[(rva ^ MDT_FIELD_DEF) - 1].Name.value - except Exception: - raise ConfigParserException(f"Could not find Field for RVA {rva}") - - # Given an RVA, derives the corresponding FieldRVA value - def fieldrva_from_rva(self, rva: int) -> int: - field_id = rva ^ MDT_FIELD_DEF - for row in self.dotnetpe.net.mdtables.FieldRva: - if row.struct.Field_Index == field_id: - return row.struct.Rva - raise ConfigParserException(f"Could not find FieldRVA for RVA {rva}") - - # Generates a list of DotNetPEMethod objects for efficient lookups of method - # metadata in other operations - def _generate_method_list( - self, - ) -> list[DotNetPEMethod]: - method_objs = [] - - for idx, method in enumerate(self.dotnetpe.net.mdtables.MethodDef.rows): - method_offset = self.offset_from_rva(method.Rva) - - # Parse size from flags - flags = self.data[method_offset] - method_size = 0 - if flags & 3 == 2: # Tiny format - method_size = flags >> 2 - elif flags & 3 == 3: # Fat format (add 12-byte header) - method_size = 12 + bytes_to_int(self.data[method_offset + 4 : method_offset + 8]) - - method_objs.append( - DotNetPEMethod( - method.Name.value, - method_offset, - method.Rva, - method_size, - (MDT_METHOD_DEF ^ idx) + 1, - ) - ) - return method_objs - - # Returns payload binary content - def _get_file_data(self) -> bytes: - logger.debug(f"Reading contents from: {self.file_path}") - try: - with open(self.file_path, "rb") as fp: - data = fp.read() - except Exception: - raise ConfigParserException(f"Error reading from path: {self.file_path}") - logger.debug(f"Successfully read {len(data)} bytes") - return data - - # Tests a given YARA rule object against the file at self.file_path, - # returning the matching rule's name, or "No match" - def _match_yara(self, rule: Rules) -> str: - try: - match = rule.match(self.file_path) - return str(match[0]) if len(match) > 0 else "No match" - except Exception as e: - logger.exception(e) - return f"Exception encountered: {e}" - - # Given a DotNetPEMethod, returns its body as raw bytes - def method_body_from_method(self, method: DotNetPEMethod) -> bytes: - return self.byte_string_from_offset(method.offset, method.offset + method.size) - - # Given a Method name, returns a list of DotNetPEMethods matching that name - def methods_from_name(self, name: str) -> list[DotNetPEMethod]: - return [method for method in self._methods if method.name == name] - - # Given the offset to an instruction, reverses the instruction to its - # parent Method, optionally returning an adjacent Method using step to - # signify the direction of adjacency, and using by_token to determine - # whether to calculate adjacency by token or offset - def method_from_instruction_offset(self, ins_offset: int, step: int = 0, by_token: bool = False) -> DotNetPEMethod: - for idx, method in enumerate(self._methods_by_offset): - if method.offset <= ins_offset < method.offset + method.size: - return ( - self._methods_by_token[self._methods_by_token.index(method) + step] - if by_token - else self._methods_by_offset[idx + step] - ) - raise ConfigParserException(f"Could not find method from instruction offset {hex(ins_offset)}") - - # Given an RVA, returns a data/file offset - def offset_from_rva(self, rva: int) -> int: - return self.dotnetpe.get_offset_from_rva(rva) - - # Given an RVA, derives the corresponding User String - def user_string_from_rva(self, rva: int) -> str: - return self.dotnetpe.net.user_strings.get(rva ^ MDT_STRING).value diff --git a/modules/processing/parsers/CAPE/AsyncRAT.py b/modules/processing/parsers/CAPE/AsyncRAT.py index 29c59a04fa2..1220071ea7d 100644 --- a/modules/processing/parsers/CAPE/AsyncRAT.py +++ b/modules/processing/parsers/CAPE/AsyncRAT.py @@ -1,4 +1,4 @@ -from lib.parsers_aux.ratking import RATConfigParser +from rat_king_parser.rkp import RATConfigParser def extract_config(data: bytes): diff --git a/modules/processing/parsers/CAPE/DCRat.py b/modules/processing/parsers/CAPE/DCRat.py index 29c59a04fa2..1220071ea7d 100644 --- a/modules/processing/parsers/CAPE/DCRat.py +++ b/modules/processing/parsers/CAPE/DCRat.py @@ -1,4 +1,4 @@ -from lib.parsers_aux.ratking import RATConfigParser +from rat_king_parser.rkp import RATConfigParser def extract_config(data: bytes): diff --git a/modules/processing/parsers/CAPE/QuasarRAT.py b/modules/processing/parsers/CAPE/QuasarRAT.py index 29c59a04fa2..1220071ea7d 100644 --- a/modules/processing/parsers/CAPE/QuasarRAT.py +++ b/modules/processing/parsers/CAPE/QuasarRAT.py @@ -1,4 +1,4 @@ -from lib.parsers_aux.ratking import RATConfigParser +from rat_king_parser.rkp import RATConfigParser def extract_config(data: bytes): diff --git a/modules/processing/parsers/CAPE/VenomRAT.py b/modules/processing/parsers/CAPE/VenomRAT.py index 29c59a04fa2..1220071ea7d 100644 --- a/modules/processing/parsers/CAPE/VenomRAT.py +++ b/modules/processing/parsers/CAPE/VenomRAT.py @@ -1,4 +1,4 @@ -from lib.parsers_aux.ratking import RATConfigParser +from rat_king_parser.rkp import RATConfigParser def extract_config(data: bytes): diff --git a/modules/processing/parsers/CAPE/XWorm.py b/modules/processing/parsers/CAPE/XWorm.py index 29c59a04fa2..1220071ea7d 100644 --- a/modules/processing/parsers/CAPE/XWorm.py +++ b/modules/processing/parsers/CAPE/XWorm.py @@ -1,4 +1,4 @@ -from lib.parsers_aux.ratking import RATConfigParser +from rat_king_parser.rkp import RATConfigParser def extract_config(data: bytes): diff --git a/modules/processing/parsers/CAPE/XenoRAT.py b/modules/processing/parsers/CAPE/XenoRAT.py index 29c59a04fa2..1220071ea7d 100644 --- a/modules/processing/parsers/CAPE/XenoRAT.py +++ b/modules/processing/parsers/CAPE/XenoRAT.py @@ -1,4 +1,4 @@ -from lib.parsers_aux.ratking import RATConfigParser +from rat_king_parser.rkp import RATConfigParser def extract_config(data: bytes): diff --git a/poetry.lock b/poetry.lock index 9aeb10ad277..26063d23dd1 100644 --- a/poetry.lock +++ b/poetry.lock @@ -3303,6 +3303,29 @@ files = [ [package.dependencies] pycryptodomex = "*" +[[package]] +name = "rat-king-parser" +version = "3.0.0" +description = "A robust, multiprocessing-capable, multi-family RAT config parser/config extractor for AsyncRAT, DcRAT, VenomRAT, QuasarRAT, XWorm, Xeno RAT, and cloned/derivative RAT families." +optional = false +python-versions = ">=3.10" +files = [] +develop = false + +[package.dependencies] +cryptography = "*" +dnfile = "*" +yara-python = "*" + +[package.extras] +maco = ["maco", "validators"] + +[package.source] +type = "git" +url = "https://github.com/jeFF0Falltrades/rat_king_parser" +reference = "ab849ec8face38c8dac3f803ae5fe7cf8be26583" +resolved_reference = "ab849ec8face38c8dac3f803ae5fe7cf8be26583" + [[package]] name = "regex" version = "2021.7.6" @@ -4615,4 +4638,4 @@ maco = ["maco"] [metadata] lock-version = "2.0" python-versions = ">=3.10, <4.0" -content-hash = "ab3f807dcdc7fa1fb2098ee2222602ffde65894297ca6b4c3629f2528d584d09" +content-hash = "ab65373ef8c8244e2d8237cb6208783a0276fa62f52545098cb12170c1cd7d76" diff --git a/pyproject.toml b/pyproject.toml index 43be4a45a58..2d50b19820a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -91,6 +91,8 @@ setproctitle = "1.3.2" # tmp dependency to fix vuln certifi = "2024.7.4" +rat_king_parser = {git = "https://github.com/jeFF0Falltrades/rat_king_parser", rev = "ab849ec8face38c8dac3f803ae5fe7cf8be26583"} + [tool.poetry.extras] maco = ["maco"] From ff0af74edb813d77ae384f7fae4d0631f882ed37 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 30 Oct 2024 15:32:19 +0000 Subject: [PATCH 93/98] ci: Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 41e5505d9a5..4b920a5528a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1448,6 +1448,7 @@ pyyaml==6.0.2 ; python_version >= "3.10" and python_version < "4.0" \ pyzipper==0.3.5 ; python_version >= "3.10" and python_version < "4.0" \ --hash=sha256:6040069654dad040cf8708d4db78ce5829238e2091ad8006a47d97d6ffe275d6 \ --hash=sha256:e696e9d306427400e23e13a766c7614b64d9fc3316bdc71bbcc8f0070a14f150 +rat-king-parser @ git+https://github.com/jeFF0Falltrades/rat_king_parser@ab849ec8face38c8dac3f803ae5fe7cf8be26583 ; python_version >= "3.10" and python_version < "4.0" regex==2021.7.6 ; python_version >= "3.10" and python_version < "4.0" \ --hash=sha256:0eb2c6e0fcec5e0f1d3bcc1133556563222a2ffd2211945d7b1480c1b1a42a6f \ --hash=sha256:15dddb19823f5147e7517bb12635b3c82e6f2a3a6b696cc3e321522e8b9308ad \ From 09c7d13ed37e60ba5194598388410931833bbcf4 Mon Sep 17 00:00:00 2001 From: doomedraven Date: Thu, 31 Oct 2024 12:47:12 +0100 Subject: [PATCH 94/98] add poetry-plugin-export --- .github/actions/python-setup/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/python-setup/action.yml b/.github/actions/python-setup/action.yml index 4608efbbd9c..d547756a877 100644 --- a/.github/actions/python-setup/action.yml +++ b/.github/actions/python-setup/action.yml @@ -16,7 +16,7 @@ runs: - name: Install poetry shell: bash - run: PIP_BREAK_SYSTEM_PACKAGES=1 pip install poetry + run: PIP_BREAK_SYSTEM_PACKAGES=1 pip install poetry poetry-plugin-export - name: Set up Python ${{ inputs.python-version }} uses: actions/setup-python@v5 From 0eb355348a4c596e1f25328bdaf3faf4eefd5540 Mon Sep 17 00:00:00 2001 From: ClaudioWayne <35531629+ClaudioWayne@users.noreply.github.com> Date: Thu, 31 Oct 2024 14:00:24 +0100 Subject: [PATCH 95/98] toggle advanced options and tooltips (#2384) * button to toggle the visibility of the "Advanced Options" section * Add tooltips to advanced options --- web/templates/submission/index.html | 183 +++++++++++++++------------- 1 file changed, 96 insertions(+), 87 deletions(-) diff --git a/web/templates/submission/index.html b/web/templates/submission/index.html index 0efd0579f21..91947c0aee2 100644 --- a/web/templates/submission/index.html +++ b/web/templates/submission/index.html @@ -60,6 +60,8 @@ let title = $('option:selected', this).attr('title'); $("#package_description").text(title); }); + // tooltips + $('[data-toggle="tooltip"]').tooltip(); });
@@ -606,93 +608,100 @@
-
- -
- {% if config.procmemory %} -
- -
- {% endif %} - {% if config.amsidump %} -
- -
- {% endif %} -
- -
- {% if config.memory %} -
- -
- {% endif %} -
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
- {% if config.kernel %} -
- -
- {% endif %} -
- -
-
- + + + +
+
+ +
+ {% if config.procmemory %} +
+ +
+ {% endif %} + {% if config.amsidump %} +
+ +
+ {% endif %} +
+ +
+ {% if config.memory %} +
+ +
+ {% endif %} +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ {% if config.kernel %} +
+ +
+ {% endif %} +
+ +
+
+ +
From 9c25c80ec0533beb8088e8df896f8e9b2e1927e1 Mon Sep 17 00:00:00 2001 From: YungBinary <93540406+YungBinary@users.noreply.github.com> Date: Thu, 31 Oct 2024 14:21:53 -0600 Subject: [PATCH 96/98] Fix/improve parsers (#2385) --- modules/processing/parsers/CAPE/Lumma.py | 10 +++------ modules/processing/parsers/CAPE/Stealc.py | 25 +++++++++++------------ 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/modules/processing/parsers/CAPE/Lumma.py b/modules/processing/parsers/CAPE/Lumma.py index 05a50025994..62819eb6011 100644 --- a/modules/processing/parsers/CAPE/Lumma.py +++ b/modules/processing/parsers/CAPE/Lumma.py @@ -1,6 +1,5 @@ import base64 import re - import pefile @@ -41,11 +40,8 @@ def get_rdata(data): def xor_data(data, key): decoded = bytearray() - key_len = len(key) for i in range(len(data)): - if i >= key_len: - break - decoded.append(data[i] ^ key[i]) + decoded.append(data[i] ^ key[i % len(data)]) return decoded @@ -82,8 +78,8 @@ def extract_config(data): for base64_str in base64_strings: try: decoded_bytes = base64.b64decode(base64_str, validate=True) - encoded_c2 = decoded_bytes[:32] - xor_key = decoded_bytes[32:] + encoded_c2 = decoded_bytes[32:] + xor_key = decoded_bytes[:32] decoded_c2 = xor_data(encoded_c2, xor_key) if not contains_non_printable(decoded_c2): diff --git a/modules/processing/parsers/CAPE/Stealc.py b/modules/processing/parsers/CAPE/Stealc.py index 0d2f5a35025..1e11fd1c597 100644 --- a/modules/processing/parsers/CAPE/Stealc.py +++ b/modules/processing/parsers/CAPE/Stealc.py @@ -4,8 +4,6 @@ import pefile import yara -MAX_STRING_SIZE = 100 - # Hash = 619751f5ed0a9716318092998f2e4561f27f7f429fe6103406ecf16e33837470 RULE_SOURCE = """rule StealC @@ -45,10 +43,6 @@ def xor_data(data, key): return decoded -def string_from_offset(data, offset): - return data[offset : offset + MAX_STRING_SIZE].split(b"\0", 1)[0] - - def extract_config(data): config_dict = {} @@ -73,7 +67,8 @@ def extract_config(data): # config_dict["Strings"] = [] pe = pefile.PE(data=data, fast_load=False) image_base = pe.OPTIONAL_HEADER.ImageBase - + domain = "" + uri = "" for str_decode_offset in yara_scan(data): str_size = int(data[str_decode_offset + 1]) # Ignore size 0 strings @@ -88,15 +83,19 @@ def extract_config(data): encoded_str_offset = pe.get_offset_from_rva(struct.unpack("i", encoded_str_rva)[0] - image_base) # dword_offset = hex(struct.unpack("i", dword_rva)[0])[2:] - key = string_from_offset(data, key_offset) - encoded_str = string_from_offset(data, encoded_str_offset) - + key = data[key_offset : key_offset + str_size] + encoded_str = data[encoded_str_offset : encoded_str_offset + str_size] decoded_str = xor_data(encoded_str, key).decode() - if ("http://" in decoded_str or "https://" in decoded_str) and len(decoded_str) > 11: - config_dict.setdefault("C2", []).append(decoded_str) - # else: + if decoded_str.startswith("http") and "://" in decoded_str: + domain = decoded_str + elif decoded_str.startswith("/") and decoded_str[-4] == ".": + uri = decoded_str + #else: # config_dict["Strings"].append({f"dword_{dword_offset}" : decoded_str}) + if domain and uri: + config_dict.setdefault("C2", []).append(f"{domain}{uri}") + return config_dict From a443fbc2a5049b08cc7ee6faf356aceb12b63ecf Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Thu, 31 Oct 2024 20:23:02 +0000 Subject: [PATCH 97/98] style: Automatic code formatting --- modules/processing/parsers/CAPE/Lumma.py | 1 + modules/processing/parsers/CAPE/Stealc.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/processing/parsers/CAPE/Lumma.py b/modules/processing/parsers/CAPE/Lumma.py index 62819eb6011..85a84c6839a 100644 --- a/modules/processing/parsers/CAPE/Lumma.py +++ b/modules/processing/parsers/CAPE/Lumma.py @@ -1,5 +1,6 @@ import base64 import re + import pefile diff --git a/modules/processing/parsers/CAPE/Stealc.py b/modules/processing/parsers/CAPE/Stealc.py index 1e11fd1c597..b9259f3d9ac 100644 --- a/modules/processing/parsers/CAPE/Stealc.py +++ b/modules/processing/parsers/CAPE/Stealc.py @@ -90,7 +90,7 @@ def extract_config(data): domain = decoded_str elif decoded_str.startswith("/") and decoded_str[-4] == ".": uri = decoded_str - #else: + # else: # config_dict["Strings"].append({f"dword_{dword_offset}" : decoded_str}) if domain and uri: From bdbc19d3772be247717bce01b6f5581b5e0da2d6 Mon Sep 17 00:00:00 2001 From: YungBinary <93540406+YungBinary@users.noreply.github.com> Date: Thu, 31 Oct 2024 17:01:16 -0600 Subject: [PATCH 98/98] Update stealc test (#2386) --- tests_parsers/test_stealc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests_parsers/test_stealc.py b/tests_parsers/test_stealc.py index 79b238dd3e8..12a98def5df 100644 --- a/tests_parsers/test_stealc.py +++ b/tests_parsers/test_stealc.py @@ -9,5 +9,5 @@ def test_stealc(): with open("tests/data/malware/619751f5ed0a9716318092998f2e4561f27f7f429fe6103406ecf16e33837470", "rb") as data: conf = extract_config(data.read()) assert conf == { - "C2": ["http://95.217.125.57"], + "C2": ["http://95.217.125.57/2f571d994666c8cb.php"], }

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