
boko.py 是一款 macOS 应用程序扫描器,用于搜索和识别应用可执行文件中潜在的 dylib 劫持和弱 dylib 漏洞,以及应用可能使用的、有被植入后门风险的脚本。该工具还会标记出有趣的文件并列出它们,无需手动浏览文件系统进行分析。借助主动发现功能,无需再猜测某个可执行文件是否容易受到 dylib 劫持攻击!
创建此工具的原因是,我希望对 Dylib Hijack Scanner 发现的数据有更多控制。大多数公开可用的扫描器在发现第一个易受攻击的 dylib 后就会停止,而不会展开其余的 rpath。由于有时第一个结果是在 SIP 保护区域内的一个不存在的文件中展开的,我希望获得其余那些展开的路径。正因如此,会产生误报,所以该工具为每个项目分配了一个确定性字段。
| 确定性 | 描述 |
|---|---|
| 确定 | 该漏洞 100% 可利用 |
| 高 | 如果漏洞与主可执行文件相关,且 rpath 在加载顺序中排第二,则漏洞很可能可利用 |
| 可能 | 此状态分配给 dylib 和可后门化的脚本,值得调查但可能不可利用 |
| 低 | 由于加载顺序靠后,可利用的可能性较低,但了解情况总比不知道好 |
该工具的核心基于 Patrick Wardle(@synack)的 DylibHijack 中的 scan.py。
查看 Wiki 了解更多关于如何使用 boko 以及如何将其作为类用于自定义用途的信息。
boko.py [-h] (-r | -i | -p /path/to/app) (-A | -P | -b) [-oS outputfile | -oC outputfile | -oA outputfile] [-s] [-v]
建议仅在使用 -p 标志选择特定程序时使用主动模式(-A)。另外,除非你只寻找确定性的漏洞,否则最好将 -v 与 -oS 或 -oA 结合使用。
警告:
强烈不建议使用 -i 与(-A 或 -b)标志组合运行此工具。这种组合会每隔 3 秒打开系统上的每个可执行文件。如果你的系统因运行此工具而崩溃或变慢,我不承担任何责任。此外,如果你的系统上存在休眠的恶意软件,此操作将执行它。我还建议,如果安装了 Xcode,不要扫描整个 /Applications 目录,因为这将花费很长时间。
python -m pip install psutil| 参数 | 描述 |
|---|
| -h, --help | 显示此帮助信息并退出 |
| -r, --running | 检查当前正在运行的进程 |
| -i, --installed | 检查所有已安装的应用程序 |
| -p /file.app | 检查特定应用程序,例如 /Application/Safari.app |
| -A, --active | 执行发现的可执行二进制文件,以主动识别可劫持的 dylib |
| -P, --passive | 仅通过查看文件头执行检查(默认) |
| -b, --both | 执行两种漏洞测试方法 |
| -oS outputfile | 将标准输出输出到 .log 文件 |
| -oC outputfile | 将结果输出到 .csv 文件 |
| -oA outputfile | 将结果输出到 .csv 文件并记录标准日志 |
| -s, --sipdisabled | 如果系统禁用了 SIP,请使用此选项以搜索通常为只读的路径 |
| -v, --verbose | 在脚本运行时以详细模式输出所有结果,不启用此选项时,仅向控制台显示“确定”确定性级别的漏洞 |