CybercentreCanada/assemblyline-service-frankenstrings

GitHub: CybercentreCanada/assemblyline-service-frankenstrings

Assemblyline 平台的字符串与 IOC 提取服务,通过模式匹配、编码解码和 XOR 去混淆来自动化恶意软件静态分析。

Stars: 3 | Forks: 6

[![Discord](https://img.shields.io/badge/chat-on%20discord-7289da.svg?sanitize=true)](https://discord.gg/GUAy9wErNu) [![](https://img.shields.io/discord/908084610158714900)](https://discord.gg/GUAy9wErNu) [![Static Badge](https://img.shields.io/badge/github-assemblyline-blue?logo=github)](https://github.com/CybercentreCanada/assemblyline) [![Static Badge](https://img.shields.io/badge/github-assemblyline\_service\_frankenstrings-blue?logo=github)](https://github.com/CybercentreCanada/assemblyline-service-frankenstrings) [![GitHub Issues or Pull Requests by label](https://img.shields.io/github/issues/CybercentreCanada/assemblyline/service-frankenstrings)](https://github.com/CybercentreCanada/assemblyline/issues?q=is:issue+is:open+label:service-frankenstrings) [![License](https://img.shields.io/github/license/CybercentreCanada/assemblyline-service-frankenstrings)](./LICENSE) # FrankenStrings 服务 该服务使用模式匹配、简单的编码解码器和脚本去混淆器来执行文件和 IOC 提取。 BALBUZARD:BSD 2-Clause 许可证,参见 balbuzard 代码文件顶部 ## 服务详情 1. 字符串提取: * ASCII 和 unicode 字符串 IOC 检查。(参见 patterns.py) * Balbuzard 的 bbcrack 级别 1(*深度扫描时为级别 2*)XOR 转换模块。仅匹配特定的 IOC(参见 patterns.py, bbcrack.py) * Base64 字符串提取 2. 文件提取: * Balbuzard 的 bbcrack 级别 1(*深度扫描时为级别 2*)XOR 转换模块。(仅搜索 PE 文件) * Base64 模块搜索感兴趣的文件类型(参见 frankenstrings.py) * 嵌入式 PE 文件提取 * Unicode, Hex, Ascii-Hex 提取模块(用于可能的 shellcode) **当不处于深度扫描模式时,此 AL 服务将根据提交文件的大小跳过检测模块 (以防止服务积压和超时)。默认值特意设置在较小的尺寸。可以根据您的 AL 实例运行的流量/硬件量在服务配置中轻松更改过滤器。** ### 服务配置 - max_size:提交给此服务的文件的最大大小 - max_length:字符串最大长度。用于基本的 ASCII 和 UNICODE 模块 - st_max_size:字符串列表最大大小。由基本的 ASCII 和 UNICODE 模块结果生成的列表,并将决定 patterns.py 是否仅评估网络 IOC 模式 - bb_max_size:运行该模块时提交给 BBcrack 的文件的最大大小 ### 结果输出 1. 静态字符串 (ASCII, UNICODE, BASE64): * 标记与感兴趣的 IOC 模式匹配的字符串 * 解码 BASE64。提取超过 200 字节的内容,否则将所有解码的内容合并并提取到单个文本文件中 2. 嵌入式 PE 文件: * 提取文件中嵌入的 PE 文件 * 提取文件中嵌入的反向 PE 文件 3. ASCII 十六进制字符串: * 成功解码的 ascii 十六进制数据的内容提取(任何超过 500 字节的数据) * 为任何成功解码的数据标记 IOC 模式匹配 * 在自定义暴力破解 xor 模块之后标记 URI 模式匹配(有关添加的模块,请参见 bbcrack.py) 4. BBCrack XOR 字符串: * 标记所有与感兴趣的 IOC 模式匹配的字符串 * 提取解码后的 XOR PE 文件 ## 镜像版本和标签 Assemblyline 服务构建自 [Assemblyline 服务基础镜像](https://hub.docker.com/r/cccs/assemblyline-v4-service-base), 该镜像基于 Debian 11 和 Python 3.11。 Assemblyline 服务使用以下标签定义: | **标签类型** | **描述** | **示例标签** | | :----------: | :----------------------------------------------------------------------------------------------- | :------------------------: | | latest | 最近的构建版本(可能不稳定)。 | `latest` | | build_type | 使用的构建类型。`dev` 是最新的不稳定构建。`stable` 是最新的稳定构建。 | `stable` 或 `dev` | | series | 完整的构建详细信息,包括版本和构建类型:`version.buildType`。 | `4.5.stable`, `4.5.1.dev3` | ## 运行此服务 这是一个 Assemblyline 服务。它被设计为 Assemblyline 框架的一部分运行。 如果您想在本地测试此服务,您可以直接从 shell 运行 Docker 镜像: ``` docker run \ --name FrankenStrings \ --env SERVICE_API_HOST=http://`ip addr show docker0 | grep "inet " | awk '{print $2}' | cut -f1 -d"/"`:5003 \ --network=host \ cccs/assemblyline-service-frankenstrings ``` 要将此服务添加到您的 Assemblyline 部署中,请按照此 [指南](https://cybercentrecanada.github.io/assemblyline4_docs/developer_manual/services/run_your_service/#add-the-container-to-your-deployment)操作。 ## 文档 可以在以下网址找到 Assemblyline 的常规文档:https://cybercentrecanada.github.io/assemblyline4_docs/ # Service FrankenStrings 该服务使用模式匹配、简单的编码解码器和脚本去混淆器来执行文件和 IOC 提取。 ## 服务详情 1. 字符串提取: * ASCII 和 unicode 字符串 IOC 检查。(参见 patterns.py) * Balbuzard 的 bbcrack 级别 1(*深度扫描时为级别 2*)XOR 转换模块。仅匹配特定的 IOC(参见 patterns.py, bbcrack.py) * Base64 字符串提取 2. 文件提取: * Balbuzard 的 bbcrack 级别 1(*深度扫描时为级别 2*)XOR 转换模块。(仅搜索 PE 文件) * Base64 模块搜索感兴趣的文件类型(参见 frankenstrings.py) * 嵌入式 PE 文件提取 * Unicode, Hex, Ascii-Hex 提取模块(用于可能的 shellcode) **当不处于深度扫描模式时,此 AL 服务将根据提交文件的大小跳过检测模块 (以防止服务积压和超时)。默认值特意设置在较小的尺寸。可以根据您的 AL 实例运行的流量/硬件量在服务配置中轻松更改过滤器。** ### 服务配置 - max_size:提交给此服务的文件的最大大小 - max_length:字符串最大长度。用于基本的 ASCII 和 UNICODE 模块 - st_max_size:字符串列表最大大小。由基本的 ASCII 和 UNICODE 模块结果生成的列表,并将决定 patterns.py 是否仅评估网络 IOC 模式 - bb_max_size:运行该模块时提交给 BBcrack 的文件的最大大小 ### 结果输出 1. 静态字符串 (ASCII, UNICODE, BASE64): * 标记与感兴趣的 IOC 模式匹配的字符串 * 解码 BASE64。提取超过 200 字节的内容,否则将所有解码的内容合并并提取到单个文本文件中 2. 嵌入式 PE 文件: * 提取文件中嵌入的 PE 文件 * 提取文件中嵌入的反向 PE 文件 3. ASCII 十六进制字符串: * 成功解码的 ascii 十六进制数据的内容提取(任何超过 500 字节的数据) * 为任何成功解码的数据标记 IOC 模式匹配 * 在自定义暴力破解 xor 模块之后标记 URI 模式匹配(有关添加的模块,请参见 bbcrack.py) 4. BBCrack XOR 字符串: * 标记所有与感兴趣的 IOC 模式匹配的字符串 * 提取解码后的 XOR PE 文件 ## 镜像版本和标签 Assemblyline 服务构建自 [Assemblyline 服务基础镜像](https://hub.docker.com/r/cccs/assemblyline-v4-service-base), 该镜像基于 Debian 11 和 Python 3.11。 Assemblyline 服务使用以下标签定义: | **标签类型** | **描述** | **示例标签** | | :------------------: | :------------------------------------------------------------------------------------------------------------- | :------------------------: | | 最新版本 | 最近的构建版本(可能不稳定)。 | `latest` | | build_type | 使用的构建类型。`dev` 是最新的不稳定构建。`stable` 是最新的稳定构建。 | `stable` 或 `dev` | | 版本系列 | 完整的构建详细信息,包括版本和构建类型:`version.buildType`。 | `4.5.stable`, `4.5.1.dev3` | ## 运行此服务 该服务经过专门优化,可作为 Assemblyline 部署的一部分运行。 如果您想在本地测试此服务,您可以直接从终端运行 Docker 镜像: ``` docker run \ --name FrankenStrings \ --env SERVICE_API_HOST=http://`ip addr show docker0 | grep "inet " | awk '{print $2}' | cut -f1 -d"/"`:5003 \ --network=host \ cccs/assemblyline-service-frankenstrings ``` 要将此服务添加到您的 Assemblyline 部署中,请按照此 [指南](https://cybercentrecanada.github.io/assemblyline4_docs/fr/developer_manual/services/run_your_service/#add-the-container-to-your-deployment)操作。 ## 文档 可以在以下网址查看有关 Assemblyline 的常规文档:https://cybercentrecanada.github.io/assemblyline4_docs/
标签:Assemblyline, DAST, DNS 反向解析, 字符串提取, 恶意软件分析, 特征提取, 请求拦截, 逆向工具