
Автоматизированный универсальный инструмент для эксплуатации инъекций команд ОС.
Commix (сокращение от [comm]and [i]njection e[x]ploiter) — это инструмент для тестирования на проникновение с открытым исходным кодом, написанный Анастасиосом Стасинопулосом (@ancst), который автоматизирует обнаружение и эксплуатацию уязвимостей инъекции команд (и кода).

Вы можете посмотреть коллекцию скриншотов, демонстрирующих некоторые возможности, в вики.
[!IMPORTANT] Этот проект активно развивается. Ожидайте несовместимых изменений между ревизиями. Ознакомьтесь с журналом изменений перед обновлением.
Commix в первую очередь создан для использования в качестве автономного инструмента CLI, и он выполняет команды операционной системы на тестируемых целях. Запуск commix в качестве сервиса может создавать угрозы безопасности.
Рекомендуется использовать его с осторожностью и только против систем, которыми вы владеете или на тестирование которых у вас есть явное разрешение.
--technique или по типу, который они сообщают с --type — см. techniques, чтобы узнать, что каждая из них требует от цели.--oob доказывает выполнение и передаёт вывод команды по HTTP/S или DNS, достигая сервера через тот клиент, который случайно есть у цели — см. out-of-band client, чтобы узнать, какие из них он пробует и как закрепить один.--eval проверяет, что цель вычисляет как код, на PHP, Python, Ruby, JavaScript, PowerShell, Perl или Lua, с использованием тех же техник.shellshock для CGI-целей.--os-shell, встроенные reverse_tcp и bind_tcp с возможностью обновления до полноценного PTY, передача файлов, чтение/запись реестра Windows и перечисление вплоть до хешей паролей с предложением атаки по словарю против них.stdin — см. target options.--proof, который заново доказывает любую находку собственным экспериментом, и REST API для управления сканированиями извне.Вы можете скачать commix на любой платформе, клонировав официальный Git-репозиторий:
$ git clone https://github.com/commixproject/commix.git commix
В качестве альтернативы вы можете скачать последний tarball или zipball.
[!NOTE] Для запуска commix требуется Python (версия 3.7 или новее). Все остальные зависимости включены, поэтому дополнительный шаг установки не нужен.
Чтобы получить список всех опций и ключей, используйте:
$ python3 commix.py -h
Проверьте один инъектируемый параметр, затем перейдите в шелл на цели:
$ python3 commix.py --url="http://commix-testbed/scenarios/regular/GET/classic.php?addr=127.0.0.1" --os-shell
Докажите выполнение out-of-band, когда ответ ничего не возвращает:
$ python3 commix.py --url="http://commix-testbed/scenarios/regular/POST/blind.php" --data="addr=127.0.0.1" --oob
[!NOTE] Клиент выбирается по тому, что есть у цели, поэтому хост, лишённый обычных HTTP-клиентов, всё равно остаётся достижимым — закрепите один с помощью
--oob-transport, если его исходящий трафик уже известен. По умолчанию--oobиспользует публичный interactsh-серверoast.fun, поэтому метаданные взаимодействия для вашей цели покидают вашу сеть; укажите--oob-serverна самостоятельно размещённый экземпляр, чтобы держать их внутри. Подробное руководство см. наout-of-band-oob-channelстранице wiki.
Сканируйте список целей в автоматическом режиме и записывайте результаты в файл:
$ python3 commix.py -m targets.txt --batch --report-json=results.json