CERT-Polska/karton-archive-extractor
GitHub: CERT-Polska/karton-archive-extractor
Karton 框架的归档解包服务,自动提取各类压缩包和邮件附件中的原始文件以供恶意软件分析流水线进一步处理。
Stars: 5 | Forks: 6
# Extractor karton 服务
执行已知归档类型和电子邮件附件的提取。生成“原始” artifacts 以供进一步分类。
**作者**:CERT.pl
**维护者**:psrok1, nazywam
**消费:**
```
{
"type": "sample",
"stage": "recognized",
"kind": "archive"
"payload": {
"sample": ,
"extraction_level": ,
"password": ,
}
}
```
**生产:**
```
{
"type": "sample",
"kind": "raw",
"payload": {
"sample": ,
"parent": ,
"extraction_level":
}
}
```
## 用法
首先,请确保你已经设置了核心系统:https://github.com/CERT-Polska/karton
为了解包所有可用的格式,你还需要一些 sflock 依赖的原生组件,sflock 推荐的安装方式是:
```
RUN sed -i 's/ main/ main non-free/' /etc/apt/sources.list \
&& apt-get update && apt-get install -y \
p7zip-full \
rar \
unace \
cabextract \
lzip
```
然后从 PyPi 安装 karton-archive-extractor:
```
$ pip install karton-archive-extractor
$ karton-archive-extractor
```
### 配置
有几个配置选项你可以根据自己的喜好进行调整。
```
[archive-extractor]
# 最大嵌套提取层级数
max_depth = 5
# 最大解压子文件大小,超过此大小的文件不会被报告
max_size = 26214400
# 用于进一步分析的子文件最大数量
max_children = 1000
```
要了解有关配置 karton 服务的更多信息,请查看 [karton 配置文档](https://karton-core.readthedocs.io/en/latest/service_configuration.html)
## 在 Docker 中运行
Sflock 使用 [ZipJail](https://github.com/hatching/tracy/tree/master/src/zipjail) 作为用户态 syscall 过滤机制。因此,根据我们的经验,运行 karton 服务的容器必须具备 `SYS_PTRACE` capability,才能让 ptrace 正确执行。如果在提取某些归档类型时遇到问题,请确保已启用此功能。
## 支持的归档/压缩格式*
```
.7z
.ace
.bup
.cab
.daa
.eml
.gz
.gzip
.iso
.lha
.lz
.lzh
.msg
.mso
.pdf
.rar
.tar
.tar.bz2
.tar.gz
.udf
.vhd
.vhdx
.xz
.zip
```
\* 假设你正在运行 Linux,更多信息请查看 [sflock 的 readme](https://github.com/doomedraven/sflock/blob/master/README.md)
## PE 文件去重
一些恶意的 PE 文件包含故意添加的垃圾数据,使其过大而无法处理。从 v1.4.0 版本开始,archive extractor
支持使用 [Squiblydoo 制作的去重工具](https://github.com/Squiblydoo/debloat) 对这些文件进行可选的去重处理。
`certpl/karton-archive-extractor` Docker 镜像默认对 PE 文件进行去重。要在从 PyPI 安装的
karton-archive-extractor 中启用去重,你需要安装额外的依赖:
```
pip install karton-archive-extractor[debloat]
```

标签:DAST, Karton框架, Python, 恶意软件分析, 文件解压缩, 无后门, 沙箱辅助工具, 请求拦截, 逆向工具