fox-it/dissect.target

GitHub: fox-it/dissect.target

Dissect 框架核心模块,提供统一 API 和命令行工具,用于高效访问和分析磁盘镜像与文件集合中的各类数据源。

Stars: 80 | Forks: 81

# dissect.target Dissect 模块将所有其他 Dissect 模块连接在一起。它提供了编程 API 和命令行工具,允许轻松访问磁盘镜像或文件集合(也称为 targets)内的各种数据源。欲了解更多信息,请参阅[文档](https://docs.dissect.tools/en/latest/projects/dissect.target/index.html)。 ## 要求 本项目是 Dissect 框架的一部分,需要 Python。 有关支持的 Python 版本的信息,请参阅[文档](https://docs.dissect.tools/en/latest/index.html#getting-started)的“入门”部分。 ## 安装 `dissect.target` 可在 [PyPI](https://pypi.org/project/dissect.target/) 上获取。 ``` pip install dissect.target ``` 如果您安装 `dissect` 包,此模块也会自动安装。 如果您希望使用 YARA 插件(`target-query -f yara`),可以安装 `dissect.target[yara]` 以自动安装 `yara-python` 依赖项。 ## 项目中的工具 ### target-query `target-query` 是一个用于查询一个或多个 target 内特定数据的工具。 这些查询以函数的形式提供,位于[插件](https://docs.dissect.tools/en/latest/advanced/plugins.html)中。 每个插件都专注于提供特定的功能。 这些功能范围广泛,从解析日志源(例如命令历史日志,如 bash 历史、PowerShell 历史等)到返回主机名和操作系统版本。 `target-query` 最基本的用法是在 target 上执行一个函数: ``` target-query -f /example_path/target.vmdk ``` 您还可以使用基本的路径扩展来对多个 target 执行函数。例如,要对目录中的所有 ``.vmdk`` 文件执行函数: ``` target-query -f /example_path/*.vmdk ``` 并非每个 target 插件都能在每个 target 上运行,它们是特定于操作系统的。 有关如何使用 `target-query` 的更多信息,请参阅[文档](https://docs.dissect.tools/en/latest/tools/target-query.html)。 ### target-shell `target-shell` 让您能够使用虚拟 shell 环境访问 target。一旦在 target 上打开了 shell,输入 `help` 即可列出可用命令。要查看每个命令的文档,可以使用 `help [COMMAND]`。 在 target 上打开 shell 非常简单。您可以通过指定 target 的路径来实现,如下所示: ``` target-shell targets/EXAMPLE.vmx WIN-EXAMPLE:/$ help Documented commands (type help ): ======================================== attr cls enter find info man registry volumes cat cyber exit hash less pwd save zcat cd debug file help ll python stat zless clear disks filesystems hexdump ls readlink tree WIN-EXAMPLE:/$ ls $fs$ c: efi sysvol ``` 可以使用上面列出的命令进一步与 target 进行交互。 您可以通过运行 `exit` 或按 `CTRL+D` 退出 shell。 有关如何使用 `target-shell` 的更多信息,请参阅[文档](https://docs.dissect.tools/en/latest/tools/target-shell.html)。 ### target-fs 使用 `target-fs`,您可以使用一组熟悉的 Unix 命令与 target 的文件系统进行交互。 `target-fs` 命令的基本结构如下: ``` target-fs ``` **注意:** 与任何 shell 命令一样,您必须正确转义反斜杠和空格。除非您使用单引号或双引号(`'`, `"`)。 有关如何使用 `target-fs` 的更多信息,请参阅[文档](https://docs.dissect.tools/en/latest/tools/target-fs.html)。 ### target-reg 使用 `target-reg`,您可以轻松查询 Windows target 的注册表并以树状结构打印结果。`+` 符号表示它是一个注册表键(即可能有子键)。`-` 符号表示一个注册表值。 ``` user@dissect~$ target-reg targets/EXAMPLE.E01 -k "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft" + 'Microsoft' (last-modified-date-shows-here) + '.NETFramework' (last-modified-date-shows-here) - 'Enable64Bit' value-shows-here [...] ``` 有关如何使用 `target-reg` 的更多信息,请参阅[文档](https://docs.dissect.tools/en/latest/tools/target-reg.html)。 ### target-dump 使用 `target-dump`,您可以将 target-query 中使用的特定 `function` 的记录导出到文件。 `target-dump` 命令的基本结构如下: ``` target-dump -f ``` 此外,该工具可以对转储应用某些压缩算法,以创建输出的小型归档文件。 有关如何使用 `target-dump` 的更多信息,请参阅[文档](https://docs.dissect.tools/en/latest/tools/target-dump.html)。 ### target-dd 使用 `target-dd`,您可以将 target(或其一部分)导出到文件或 stdout。目前,`target-dd` 可用于只有一个磁盘的 target。 `target-dd` 命令的基本结构如下: ``` target-dd --write --offset --bytes ``` 有关如何使用 `target-dd` 的更多信息,请参阅[文档](https://docs.dissect.tools/en/latest/tools/target-dd.html)。 ### target-mount 使用 `target-mount`,您可以将 target 的文件系统挂载到分析机器上的任意目录,类似于 Unix 系统上的 `mount` 命令。 为了执行此功能,我们使用 `fusepy` 在 Linux 和 Mac 上挂载文件系统。 它与 `fuselib` 交互以在 Linux 用户空间挂载磁盘镜像,因此不需要管理员权限。 `target-mount` 有两个必需的位置参数: * `TARGET` - 要挂载的 Target * `MOUNT` - 挂载 target 文件系统的目录 以下示例命令可用于将 target 挂载到目录 ``mnt``: ``` user@dissect~$ target-mount targets/EXAMPLE.vmx ~/mnt/EXAMPLE user@dissect~$ ls ~/mnt/EXAMPLE/ disks fs volumes ``` 使用 `target-mount` 挂载 target 时,进程保持在前台运行。这将占用您当前的终端会话。建议打开第二个终端,通过在命令后附加 `&` 让此命令在后台运行,或者使用像 `tmux` 这样的终端复用器来启动第二个会话。使用这些方法之一可以让您与挂载点进行交互。 有关如何使用 `target-mount` 的更多信息,请参阅[文档](https://docs.dissect.tools/en/latest/tools/target-mount.html)。 ## 构建和测试说明 本项目使用 `tox` 构建源码和 wheel 分发包。从根文件夹运行以下命令来构建它们: ``` tox -e build ``` 构建产物可以在 `dist/` 目录中找到。 `tox` 也用于在自包含的环境中运行代码检查和单元测试。要使用默认安装的 Python 版本运行代码检查和单元测试,请运行: ``` tox ``` 有关如何构建和测试项目的更详细说明,请参阅[文档](https://docs.dissect.tools/en/latest/contributing/tooling.html)。 ## 贡献 Dissect 项目欢迎对代码库的任何贡献。为了使您的贡献符合项目要求,请参阅[开发指南](https://docs.dissect.tools/en/latest/contributing/developing.html)。 ## 版权和许可 Dissect 由 NCC Group Plc () 旗下的 Fox-IT () 作为开源发布。 由 Dissect 团队 () 开发,并在 上提供。 许可条款:AGPL3 ()。有关更多信息,请参阅 LICENSE 文件。
标签:DAST, Dissect框架, PyPI, Python, SecList, Shell历史, YARA, 云资产可视化, 内存取证, 安全决策支持, 库, 应急响应, 恶意软件分析, 数字取证, 数据解析, 无后门, 磁盘镜像分析, 网络安全审计, 自动化分析, 自动化脚本, 虚拟磁盘, 调试插件, 跨站脚本, 逆向工具