作者: 2022 - 至今, Rezilion
描述: 漏洞验证
开发: 2022年1月 - 至今
文档: 参见网站、README
‘Am I Exploitable?’ 是一个 Python 开源项目,旨在满足验证你的系统是否容易受到特定漏洞攻击的需求。 该项目可以帮助你了解自己是否容易受到某个特定漏洞的攻击,并说明系统中哪个组件存在漏洞、哪个组件不存在漏洞。 该项目可以根据我们执行的漏洞检查生成一张展示验证流程的图。 MI-X 支持机器可读输出。结果可以导出为三种不同的文件格式:json、csv 和 text。 执行该工具后,你将看到验证流程——它会打印在主机/容器上执行了哪些检查,随后给出修复和缓解建议。 我们希望创建一个由研究人员和程序员组成的社区,他们可以为新漏洞、严重漏洞或知名漏洞添加漏洞检查。每当出现新漏洞时,我们都可以提供这项服务,帮助人们验证自己是否可被利用。 此外,我们目前已编写的漏洞检查还可以通过我们可能遗漏的一些检查进行扩展。
CVE-2021-4034(又名 PwnKit)的示例流程图:
任何人都可以在 AGPL-3.0 许可证条款下自由使用 'Am I Exploitable?'(参见 LICENSE 文件)。
am_i_exploitable.py - 处理用户输入和 CVE 调用的主文件。cves - Python 包,包含当前支持的每个漏洞对应的一个 Python 文件。modules - Python 包,包含模块。
模块是用于不同 CVE 文件中的代码实现。该工具支持以下 Linux 发行版:
Ubuntu, Debian, Red Hat, Centos, Fedora, SUSE, SLES, Amazon
对 Alpine 提供部分支持
对 Windows 提供部分支持
在安装 MI-X 之前,请确保你的机器具备以下条件:
openjdk10 时需要)要安装这些依赖:
检查你的操作系统发行版,可以使用以下命令:
cat /etc/os-release
了解你的操作系统发行版使用的是哪个包管理器:
apt - Ubuntu, Debian
yum - Red Hat, CentOS, Fedora, SUSE, SLES, Amazon
apk - Alpine
使用你的操作系统发行版的包管理器安装相关软件包
为了正确运行 MI-X,你需要使用 pip 安装 graphviz 和 packaging Python 模块依赖:
pip install -r requirements.txt
最新的开发版本可通过 git 获取。
git clone https://github.com/Rezilion/mi-x.git
cd mi-x && python3 am_i_exploitable.py
扫描命令模板
python3 am_i_exploitable.py -v cve_yyyy_xxxx -c True -g True -f json
扫描运行容器的主机以检查 log4shell。
python3 am_i_exploitable.py -v log4shell -c True -f json

指定将被检查的漏洞(默认未设置)。
语法:
如果未设置该参数,将显示一个菜单消息,列出当前支持的漏洞。
扫描主机上所有正在运行的容器(默认为 False)。
通过输入以空格分隔的正在运行的容器名称来扫描主机上的特定容器(默认未设置)。
将结果导出为三种可能的输出格式之一:json、csv、text
指定是否查看漏洞描述(默认为 True)。
指定是否查看验证流程图(默认为 False)。
帮助了解如何运行代码
发现问题,或者有好的想法?告诉我们:
欢迎通过 GitHub 贡献。
有关如何提交贡献的更多信息,请参阅 CONTRIBUTING.md。
'Am I Exploitable?' 已在 Windows 和大多数常见 Linux 操作系统上测试。文档(README)和调试 信息(将 debug 参数设置为 'True')应能覆盖大多数问题和疑难。
可以通过 GitHub 报告缺陷,或发送电子邮件至上述邮箱。
感谢社区使用和支持开源软件。
大量的评论、缺陷/补丁和问题,是开发此类工具取得成功和持续获得动力的关键。