Commix 全攻略:开源自动化命令注入检测与利用工具实战指南(基于 doc/translations/README-fr-FR.md)
Commix 全攻略开源自动化命令注入检测与利用工具实战指南基于 doc/translations/README-fr-FR.md【免费下载链接】commixAutomated Αll-in-One OS command injection exploitation tool.项目地址: https://gitcode.com/GitHub_Trending/co/commixCommix全称commandinjection exploiter是由 Anastasios Stasinopoulos 编写的一款开源渗透测试工具用于自动化检测与利用 Web 应用中的命令注入 为主体结合 commix.py、命令行解析器 与 OOB 交互模块 等源码实现系统讲解其四种注入技术、安装方式、核心用法与高级参数帮助你完成从单目标检测到批量无监督扫描、再到反弹 Shell 与文件读写的完整实战流程。重要提示Commix 本质是一个命令行独立工具会在被测目标上执行操作系统命令。将其作为服务对外运行存在安全风险建议仅在自有系统或已获明确授权的目标上谨慎使用。一、功能总览四大注入技术与九大能力Commix 的核心设计围绕检测并利用注入点展开从源码目录结构看其能力被组织为多个独立模块techniques注入技术、tamper载荷混淆、shells交互式 Shell、oob带外通信与 modulesCGI 专用模块构成一条完整的检测 → 利用 → 后渗透链路。其功能亮点如下四种注入技术classic经典基于回显通过响应内容中的命令输出直接判定注入成立time-based时间型盲注利用延迟判定适用于响应不回显的场景file-based文件型半盲注将命令结果写入目标文件再读取另有tempfile-based变体用于目标写权限受限、只能写入临时目录的情况out-of-bandOAST 带外通过 HTTP/S 与 DNS 通道证明命令执行适用于完全无回显的场景。代码注入--eval选项可针对 PHP 或 Python 等后端语言测试代码注入同样覆盖上述四种技术。广泛的注入面GET/POST 参数、HTTP 头、Cookie、JSON/XML 请求体均可注入另有shellshock模块专门针对 CGI 目标。交互式 Shell可在目标上获得os_shell内置reverse_tcp反向连接与bind_tcp绑定监听两种模式并支持通过已建立的 Shell 进行文件download/upload传输。枚举与文件访问可获取当前用户、主机名、权限、系统信息、用户列表与密码散列支持读写目标主机上的文件。过滤器与 WAF 绕过提供多个可组合的 tamper 混淆脚本按确定性顺序依次应用。灵活的瞄准方式支持单一 URL、站点爬取、HTML 表单、sitemap、代理日志、多目标文件、原始 HTTP 请求文件以及通过管道传入的stdin输入。可恢复的扫描结果按目标存入会话文件并支持导出为 JSON。广泛的后端支持PHP、Python、Perl、Ruby、ASP.NET、JSP 与 CGI。从源码可以印证这一分层设计cmdline.py 将全部参数划分为 General / Target / Request / Enumeration / File access / Modules / Optimization / Injection / Detection / Miscellaneous 共十个选项组见 L760-L769与上述能力一一对应。二、安装与运行环境Commix 可在任意平台运行最直接的方式是克隆官方 Git 仓库$ git clone https://github.com/commixproject/commix.git commix也可以下载最新的 tarball 或 zipball 归档包解压使用。运行前提只有一个Python 3.7 或更高版本。其余所有依赖均随程序捆绑提供无需额外安装步骤。这一点可从 commix.py 的启动逻辑得到印证程序入口首先尝试__import__(src.utils.version)并调用version.python_version()做版本与依赖的启动自检缺失模块时会给出Wrong installation detected的明确报错见 commix.py。在仓库根目录下执行即可启动$ python3 commix.py -h该命令会列出所有可用选项与开关。若想一次性掌握全部参数也可以直接阅读 cmdline.py 中各个add_option的定义。三、核心用法与实战示例3.1 测试单个可注入参数并打开 Shell$ python3 commix.py --urlhttp://www.target.com/vuln.php?addr127.0.0.1 --os-shell--url等价于-u指定目标 URL对应 cmdline.py 中的 Target 选项组--os-shell检测成功后直接进入目标系统的交互式命令 Shell对应 cmdline.py。这是最典型的检测 利用一步到位用法。检测到注入点后Commix 会尝试在目标上建立一个交互式 Shell源码层面由 src/core/shells/ 目录下的modes.py、reverse_tcp.py、bind_tcp.py与session_relay.py提供支撑。3.2 带外OAST证明命令执行当目标响应不回显任何内容时可用--oob通过带外通道证明命令已被执行$ python3 commix.py --urlhttp://www.target.com/vuln.php --dataaddr127.0.0.1 --oob--data等价于-d指定通过 POST 发送的数据字符串对应 cmdline.py--oob启用基于 HTTP(S) 的带外OAST通道对应 cmdline.py。⚠️ 隐私注意事项--oob默认使用公网 interactsh 服务器oast.fun这意味着目标与服务器之间的交互元数据会离开你的网络。如需将数据保留在内网应使用--oob-server指向自建实例--oob-server https://your-self-hosted-interactsh.example相关参数在源码中都有完整定义参数说明源码位置--oob-server自建 interactsh 服务器地址cmdline.py--oob-token带外服务器的认证令牌cmdline.py--oob-transport目标访问带外服务器所用的客户端如dns、curlcmdline.py--oob-scheme目标访问带外服务器所用的协议http或httpscmdline.py--oob-poll两次轮询带外服务器的间隔秒数cmdline.py--oob-timeout等待一次交互的超时秒数cmdline.py从 interactsh.py 的实现看Commix 内置了一个完整的 interactsh 客户端实现了 register / poll / deregister 协议它会为每次会话生成 20 位随机 correlation ID 与 UUID 密钥见 interactsh.py并通过加密通道与服务器交互——这也是oast.fun公网服务器之所以需要--oob-token认证的原因。3.3 批量无监督扫描并导出 JSON 报告$ python3 commix.py -m targets.txt --batch --report-jsonresults.json-m从文本文件读取多个目标进行批量扫描对应 cmdline.py--batch全程不询问用户输入使用默认行为适合无人值守场景对应 cmdline.py--report-json将运行结果写入 JSON 文件对应 cmdline.py。配合会话机制-s加载.sqlite会话、--flush-session清除会话、--ignore-session忽略会话结果批量扫描可随时中断、恢复实现可续跑的安全测试流水线。四、注入面与目标瞄准从 URL 到原始请求除--url外Commix 支持多种瞄准方式全部定义在 cmdline.py 的 Target 选项组中选项作用源码位置-l从 HTTP 代理日志文件解析目标cmdline.py-r从文件加载原始 HTTP 请求cmdline.py--crawl从目标 URL 开始爬取网站默认深度 1cmdline.py--crawl-exclude用正则排除爬取页面如logoutcmdline.py--forms解析并测试目标 URL 上的表单需配合--crawlcmdline.py-x从远程 sitemap(.xml) 文件解析目标cmdline.py--scope用正则过滤目标cmdline.py--method强制使用指定 HTTP 方法如PUTcmdline.py同时通过 Request 选项组可以精细控制探测请求的构造--cookie携带会话 Cookie、--user-agent/--random-agent/--mobile控制 UA 伪装、--host与--referer设置请求头、--param-del与--cookie-del自定义参数与 Cookie 的分隔符详见 cmdline.py。五、深入利用代码注入、文件访问与枚举5.1 代码注入--eval当目标后端将输入作为代码求值如 PHP 的eval()、Python 的exec()时可用--eval指定语言进行代码注入测试覆盖与命令注入相同的四种技术--eval php # 测试 PHP 代码注入 --eval python # 测试 Python 代码注入对应源码cmdline.py。其载荷体系可在 src/core/eval/payloads/ 目录下找到classic.py、file_based.py、tempfile_based.py、time_based.py与命令注入的载荷结构一一对应。5.2 文件读写File access 选项组提供目标文件读写能力--file-read /etc/passwd # 读取目标主机文件 --file-write shell.php --file-dest /var/www/html/shell.php # 写入目标主机文件--file-read读取目标文件对应 cmdline.py--file-write写入目标文件对应 cmdline.py--file-dest目标主机上的绝对写入路径对应 cmdline.py。相关载荷实现在 src/core/techniques/file_based/ 与 src/core/techniques/tempfile_based/ 目录中。当目标写权限受限时可结合--tmp-path指定 Web 服务器的临时目录路径见 cmdline.py从而启用 tempfile-based 变体。5.3 系统枚举Enumeration 选项组提供了丰富的目标信息收集能力见 cmdline.py选项获取内容--current-user当前用户名称--hostname当前主机名--is-root/--is-admin当前用户是否具备 root / admin 权限--sys-info系统信息--users系统用户列表--passwords系统用户密码散列--privileges系统用户权限--ps-versionPowerShell 版本号--all一次性获取以上全部信息六、检测与注入参数调优6.1 指定/跳过注入技术--technique可指定使用哪些注入技术--skip-technique则跳过某些技术cmdline.py、L549-L552。技术标识对应 src/core/techniques/ 下的五个实现目录classic、time_based、file_based、tempfile_based与oob。6.2 检测强度与启发式--level测试强度等级1-3级别越高测试的组合越多对应 cmdline.py--smart仅在启发式判定为阳性时才执行深入测试提高效率L685-L689--skip-calc跳过检测阶段的数学计算验证L663-L667--skip-waf跳过 WAF/IPS 防护的启发式探测L724-L728。6.3 载荷定制针对特殊场景可自定义载荷形态--prefix/--suffix为注入载荷附加前缀/后缀字符串用于闭合目标上下文cmdline.py--time-sec指定延迟秒数时间型盲注用L598-L603--interpreter改用替代解释器如 Python构造载荷而非原生 Shell 语法L617-L621--os强制指定后端操作系统Windows或Unix-likeL635-L639。6.4 优化开关-o一次性打开全部优化开关cmdline.py--threads并发 HTTP 请求数上限默认 1最大 10L505-L510--no-keep-alive禁用 HTTP(S) 持久连接L499-L503。七、过滤器与 WAF 绕过Tamper 脚本体系Commix 内置多种 tamper 混淆脚本可组合使用、按确定性顺序应用用于绕过输入过滤与 WAF 规则。脚本全部位于 src/tamper/ 目录从文件清单可确认共 25 个按功能可分为几类空白符绕过space2htab.pyTab 替换空格、space2vtab.py垂直 Tab、space2plus.py加号、space2ifs.py${IFS}、space2brace.py花括号、multiplespaces.py多空格引号与转义singlequotes.py、doublequotes.py、backslashes.py、backticks.py、caret.py编码混淆base64encode.py、hexencode.py、rev.py反转、randomcase.py随机大小写命令变形printf2echo.py、cmd2loop.py、cmd2wildcard.py、sleep2timeout.py、sleep2usleep.py、slash2env.py、uninitializedvariable.py未初始化变量、nested.py嵌套、dollaratsigns.py、dollarstars.py、ansiquote.py、xforwardedfor.py伪造 X-Forwarded-For。使用方式--tamperspace2htab,base64encode # 组合多个脚本按给定顺序应用 --list-tampers # 列出全部可用 tamper 脚本--tamper参数定义于 cmdline.py--list-tampers定义于 L700-L704。八、CGI 目标与 Shellshock 模块针对 CGI 目标Commix 内置shellshock注入模块对应 src/core/modules/shellshock/shellshock.py用于检测并利用 Bash 的 ShellshockCVE-2014-6271 系列漏洞--shellshock该选项定义于 cmdline.py。仓库 src/txt/shocker-cgi_list.txt 中随附了常见易受攻击的 CGI 脚本清单可供参考使用。九、会话、日志与杂项管理Commix 的会话与日志机制让测试过程可复现、可追溯-s从存储的.sqlite会话文件加载状态实现断点续跑cmdline.py--flush-session/--ignore-session清除或忽略当前目标的会话结果L89-L99-t将所有 HTTP 流量记录到文本文件L101-L105--no-logging禁用文件日志L712-L716--output-dir设置自定义输出目录L78-L81--time-limit设定运行时间上限秒L107-L110。其他实用开关还包括--install安装到系统、--update检查并应用更新、--version显示版本号、--purge安全清空 commix 数据目录、--alert发现注入点时在本地执行命令告警、--wizard面向初学者的向导界面、--disable-coloring关闭彩色输出、--offline离线模式以及--ignore-dependencies忽略第三方依赖检查详见 cmdline.py。十、进一步学习完整用户手册仓库根目录下的 README.md 及其多语言版本位于 doc/translations/含希腊语、西班牙语、法语、波斯语、印尼语、土耳其语变更记录doc/CHANGELOG.md更新前务必查看项目处于活跃开发期版本间可能存在不兼容变更贡献者名单doc/THANKS.md开源协议LICENSE.txtGPLv3依赖与安装脚本src/utils/requirements.py 与 src/utils/install.py。Commix 将命令注入检测、利用、后渗透整合为一条自动化流水线无论是对单参数目标做快速验证还是对批量资产做无人值守巡检都能在保持检测深度的同时显著提升效率。请始终在授权范围内使用并牢记带外检测默认经公网 interactsh 服务器中转这一隐私边界。【免费下载链接】commixAutomated Αll-in-One OS command injection exploitation tool.项目地址: https://gitcode.com/GitHub_Trending/co/commix创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考