Paladin
24.12.2023, 15:40
https://forum.antichat.xyz/attachments/4932259/img_ad6618426f.png
Привет всем!
Продолжаем разбирать актуальные вопросы студентов курса WAPT. Несмотря на полный запрет использования средств автоматизации в ходе обучения, ученики нет-нет, да задают вопрос, а можно ли использовать, например, sqlmap, если решил таск вручную. В принципе, такой вариант вполне допустим. Но тогда у них возникает куча вопросов или проблем с запуском какого-либо инструмента. Сегодня поверхностно рассмотрим несколько программ для автоматизации эксплуатации таких уязвимостей, как SQL, CMD, SSTI. Начнем с простого и наиболее популярного инструмента – SQLMAP.
SQLMAP
Про него в сети можно найти большое количество различных мануалов и статей, поэтому не будем на нем сильно заморачиваться, тем более, что на нашем форуме уже есть хорошая статья по sqlmap (https://forum.antichat.xyz/threads/567238/). Мы с вами рассмотрим только несколько важных моментов.
Для растерзания возьмем первую задачу из темы, которую мы пытали в статье Автоматизация эксплуатации слепой Time-based SQL-инъекции при помощи Burp Suite и WFUZZ (https://forum.antichat.xyz/threads/582522/).
Прежде всего глянем, как упростить написание команды, чтобы нам не пришлось задавать кучу аргументов: url, cookie, параметры и т.д. Для этого мы перехватываем запрос, где по нашему предположению может находится уязвимость и сохраняем его в файл.
https://forum.antichat.xyz/attachments/4932259/1703414770330.png
И запускаем простую команду на извлечение списка баз данных:
sqlmap -r /home/CODEBY/request --dbs
https://forum.antichat.xyz/attachments/4932259/1703415531688.png
Продолжаем извлекать информацию:
sqlmap -r /home/paladin/CODEBY/request --tables -D sql_first_db
https://forum.antichat.xyz/attachments/4932259/1703415573338.png
Аналогичным способом получаем столбцы и, наконец, дампим содержимое.
Если текущий пользователь базы данных имеет права на чтение и запись файлов, имеется возможность получить шелл. Пробуем.
Для демонстрации этой функции будем использовать один из тасков с платформы античат (дай Бог здоровья разработчикам этого чуда). Как и в предыдущем случае, отправляем запрос с предполагаемой инъекцией в файл и запускаем следующую команду:
sqlmap -r /home/request -D mysql --tables --random-agent --tamper=space2comment --os-shell
https://forum.antichat.xyz/attachments/4932259/1703415651629.png
И мы получили шелл. Кроме того, sqlmap записал несколько файлов, посмотрим, что это такое?
https://forum.antichat.xyz/attachments/4932259/1703415718963.png
Ба, да это же загрузчик файлов. Загрузим через него какой-нибудь файл.
https://forum.antichat.xyz/attachments/4932259/1703415765975.png
Вот, мы загрузили веб-шелл. В общем, интересная опция. Думаю, на этом рассмотрение инструмента можно закончить. Как я уже говорил, по нему и так полно информации. Хочу только добавить, что для этой программы есть неплохой ремейк для windows, который называется sqlbox, правда он платный:
https://forum.antichat.xyz/attachments/4932259/1703415814486.png
https://forum.antichat.xyz/attachments/4932259/1703415829822.png
Но это уже тема для отдельной статьи.
JSQL INJECTION
Рассмотрим еще один инструмент для автоматизации эксплуатации SQL инъекций – jSQL injection. Он кроссплатформенный и работает под управлением Windows, Linux и MacOS. Для его установки в Kali Linux введем команду: sudo apt install -f jsql, а для запуска наберем в терминале jsql. Приложение имеет оконный интерфейс и удобно в использовании, но по мне так слабее, чем sqlmap. Протестируем его по традиции на первой задаче из темы. Вводим тестируемый URL, выбираем Database auto и Strategy auto и нажимаем стрелку:
https://forum.antichat.xyz/attachments/4932259/1703415906328.png
И получаем в окне дерево с базами данных, таблицами и столбцами. Для получения дампа, выделяем требуемые столбцы, кликаем правой кнопкой мыши на названии таблицы и выбираем команду НАЧАТЬ:
https://forum.antichat.xyz/attachments/4932259/1703415965911.png
В правом окне получаем содержимое выбранных столбцов:
https://forum.antichat.xyz/attachments/4932259/1703415999841.png
В общем программа не сложная, а я не ставлю своей целью разобрать весь ее функционал. Думаю, дальше сами разберетесь.
TPLMAP
Хороший инструмент для эксплуатации SSTI-уязвимости. Устанавливаем его с Github. Выполним следующие команды:
# Клонируем репозиторий с исходниками с гитхаба
git clone GitHub - epinna/tplmap: Server-Side Template Injection and Code Injection Detection and Exploitation Tool
# Переходим в скачанную папку
cd tplmap
# Устанавливаем необходимые пакеты зависимостей
sudo pip3 install -r requirements.txt
Всё! Программа установлена. Попробуем ее на одном из тасков с платформы античат . Надеюсь, разработчики меня не побьют. На всем сайте находим место, где мы предполагаем находится SSTI-инъекция, но к сожалению, не получается ее проэксплуатировать. Используем tplmap и сталкиваемся с такой проблемой:
https://forum.antichat.xyz/attachments/4932259/1703416103262.png
Инъекция есть, но эксплуатироваться она не хочет. Погуглим ошибку. Оказывается, она возникает из-за неправильного импорта в файле /core/plagin.py, который находится в директории с программой.
https://forum.antichat.xyz/attachments/4932259/1703416169606.pngВсе дело в том, что, начиная с версии 3.3, этот метод устарел и его импортирование должно производится следующим образом:
fromcollections.abc importMapping
Внесем изменения в файл, заменив также в 21 и 22 строках collections.Mapping на Mapping:
https://forum.antichat.xyz/attachments/4932259/1703416219971.png
Запустим скрипт еще раз:
https://forum.antichat.xyz/attachments/4932259/1703416260203.png
На этот раз все отработало штатно. У нас тут слепая SSTI. Внизу видим список того, что мы можем сделать, а также способы получения шелла.
https://forum.antichat.xyz/attachments/4932259/1703416329386.png
Пробуем его получить.
https://forum.antichat.xyz/attachments/4932259/1703416360782.png
Упс! Какая-то непонятка. Шелл мы получили, но на введенную команду он отреагировал только словом True. Команда выполнилась с некоторой задержкой, но результата ее выполнения мы не видим. Пробуем ввести другие команды:
https://forum.antichat.xyz/attachments/4932259/1703416407519.png
Все тоже самое. Отсюда становится понятно то, что, если команда может выполняться в системе, то появится задержка и отобразится сообщение True, если нет – задержки не будет и мы увидим False. Что если получить реверс-шелл через bash?
Запускаем у себя на сервере слушалку, а в командной строке os-shell введем следующее (ip адрес моей машины замазан):
https://forum.antichat.xyz/attachments/4932259/1703416469801.png
И получаем обратное соединение
https://forum.antichat.xyz/attachments/4932259/1703431604603.png
SSTIMAP
Еще один инструмент для работы с SSTI. Его будем тестить на том же таске. Сразу скажу, у меня не возникло никаких проблем ни с его установкой, ни с запуском.
https://forum.antichat.xyz/attachments/4932259/1703416548396.png
Выглядит красивее. По функционалу очень похож на tplmap. Список возможных шеллов значительно больше, можно получить прямое и обратное соединения, а также загружать файлы.
https://forum.antichat.xyz/attachments/4932259/1703416583674.png
Разберем некоторые возможности:
--os-shell – аналог шелла из tplmap
--os-cmd – выполняет отдельные команды системы. Разумеется, для нашей слепой SSTI вывод будет аналогичен os-shell
https://forum.antichat.xyz/attachments/4932259/1703416645255.png
https://forum.antichat.xyz/attachments/4932259/1703416660462.png
--reverse-shell – самая интересная опция, позволяет нам сразу поднять обратное соединение
https://forum.antichat.xyz/attachments/4932259/1703416745663.png
https://forum.antichat.xyz/attachments/4932259/1703416987358.png
--upload – позволяет загружать файлы на сервер. При эксплуатации слепой SSTI мне это не удалось
https://forum.antichat.xyz/attachments/4932259/1703417066852.png
COMMIX
Инструмент для автоматизации эксплуатации Command Injection. Входит в стандартный пакет Kali Linux. Довольно несложная программа, с кучей опций. По традиции протестируем ее на одном из тасков с платформы античат . У нас есть сайт с предположительно уязвимым POST-параметром.
Наберем в терминале такую команду:
commix -u http://test_site/ --method=POST --data="cmd=
https://forum.antichat.xyz/attachments/4932259/1703417135979.png
Как видим, мы особо ничего не вводили, а сразу получили командную строку терминала, где выполнили системную команду. Если нам нужно только прочитать какой-то файл в целевой системе, мы можем сделать так:
https://forum.antichat.xyz/attachments/4932259/1703417179237.png
В общем ничего сложного, но инструмент прекрасно справляется с раскруткой уязвимостей, при этом обладает обширным функционалом по обходу WAF. Инструкцию по его использованию можно легко найти в сети. Различные примеры использования можно найти здесь.
Вот в принципе и все, что я хотел сегодня рассмотреть. Для других типов веб-уязвимостей также существуют средства автоматизации, например, для эксплуатации XXE есть XXEinjector, а для SSRF – SSRFmap, autoSSRF, SSRFire и т.д. Поэтому сейчас я хочу объявить конкурс для студентов WAPT. Первый, кто напишет мне в личку (https://forum.antichat.xyz/members/731398/) решение одной или нескольких задач курса при помощи этих инструментов получит приз в размере 100 BIT, а его решение я вставлю в эту статью. В комментариях к статье я объявлю о завершении конкурса и назову победителей.
На этом все. Всем удачи и спасибо за внимание!!!
Привет всем!
Продолжаем разбирать актуальные вопросы студентов курса WAPT. Несмотря на полный запрет использования средств автоматизации в ходе обучения, ученики нет-нет, да задают вопрос, а можно ли использовать, например, sqlmap, если решил таск вручную. В принципе, такой вариант вполне допустим. Но тогда у них возникает куча вопросов или проблем с запуском какого-либо инструмента. Сегодня поверхностно рассмотрим несколько программ для автоматизации эксплуатации таких уязвимостей, как SQL, CMD, SSTI. Начнем с простого и наиболее популярного инструмента – SQLMAP.
SQLMAP
Про него в сети можно найти большое количество различных мануалов и статей, поэтому не будем на нем сильно заморачиваться, тем более, что на нашем форуме уже есть хорошая статья по sqlmap (https://forum.antichat.xyz/threads/567238/). Мы с вами рассмотрим только несколько важных моментов.
Для растерзания возьмем первую задачу из темы, которую мы пытали в статье Автоматизация эксплуатации слепой Time-based SQL-инъекции при помощи Burp Suite и WFUZZ (https://forum.antichat.xyz/threads/582522/).
Прежде всего глянем, как упростить написание команды, чтобы нам не пришлось задавать кучу аргументов: url, cookie, параметры и т.д. Для этого мы перехватываем запрос, где по нашему предположению может находится уязвимость и сохраняем его в файл.
https://forum.antichat.xyz/attachments/4932259/1703414770330.png
И запускаем простую команду на извлечение списка баз данных:
sqlmap -r /home/CODEBY/request --dbs
https://forum.antichat.xyz/attachments/4932259/1703415531688.png
Продолжаем извлекать информацию:
sqlmap -r /home/paladin/CODEBY/request --tables -D sql_first_db
https://forum.antichat.xyz/attachments/4932259/1703415573338.png
Аналогичным способом получаем столбцы и, наконец, дампим содержимое.
Если текущий пользователь базы данных имеет права на чтение и запись файлов, имеется возможность получить шелл. Пробуем.
Для демонстрации этой функции будем использовать один из тасков с платформы античат (дай Бог здоровья разработчикам этого чуда). Как и в предыдущем случае, отправляем запрос с предполагаемой инъекцией в файл и запускаем следующую команду:
sqlmap -r /home/request -D mysql --tables --random-agent --tamper=space2comment --os-shell
https://forum.antichat.xyz/attachments/4932259/1703415651629.png
И мы получили шелл. Кроме того, sqlmap записал несколько файлов, посмотрим, что это такое?
https://forum.antichat.xyz/attachments/4932259/1703415718963.png
Ба, да это же загрузчик файлов. Загрузим через него какой-нибудь файл.
https://forum.antichat.xyz/attachments/4932259/1703415765975.png
Вот, мы загрузили веб-шелл. В общем, интересная опция. Думаю, на этом рассмотрение инструмента можно закончить. Как я уже говорил, по нему и так полно информации. Хочу только добавить, что для этой программы есть неплохой ремейк для windows, который называется sqlbox, правда он платный:
https://forum.antichat.xyz/attachments/4932259/1703415814486.png
https://forum.antichat.xyz/attachments/4932259/1703415829822.png
Но это уже тема для отдельной статьи.
JSQL INJECTION
Рассмотрим еще один инструмент для автоматизации эксплуатации SQL инъекций – jSQL injection. Он кроссплатформенный и работает под управлением Windows, Linux и MacOS. Для его установки в Kali Linux введем команду: sudo apt install -f jsql, а для запуска наберем в терминале jsql. Приложение имеет оконный интерфейс и удобно в использовании, но по мне так слабее, чем sqlmap. Протестируем его по традиции на первой задаче из темы. Вводим тестируемый URL, выбираем Database auto и Strategy auto и нажимаем стрелку:
https://forum.antichat.xyz/attachments/4932259/1703415906328.png
И получаем в окне дерево с базами данных, таблицами и столбцами. Для получения дампа, выделяем требуемые столбцы, кликаем правой кнопкой мыши на названии таблицы и выбираем команду НАЧАТЬ:
https://forum.antichat.xyz/attachments/4932259/1703415965911.png
В правом окне получаем содержимое выбранных столбцов:
https://forum.antichat.xyz/attachments/4932259/1703415999841.png
В общем программа не сложная, а я не ставлю своей целью разобрать весь ее функционал. Думаю, дальше сами разберетесь.
TPLMAP
Хороший инструмент для эксплуатации SSTI-уязвимости. Устанавливаем его с Github. Выполним следующие команды:
# Клонируем репозиторий с исходниками с гитхаба
git clone GitHub - epinna/tplmap: Server-Side Template Injection and Code Injection Detection and Exploitation Tool
# Переходим в скачанную папку
cd tplmap
# Устанавливаем необходимые пакеты зависимостей
sudo pip3 install -r requirements.txt
Всё! Программа установлена. Попробуем ее на одном из тасков с платформы античат . Надеюсь, разработчики меня не побьют. На всем сайте находим место, где мы предполагаем находится SSTI-инъекция, но к сожалению, не получается ее проэксплуатировать. Используем tplmap и сталкиваемся с такой проблемой:
https://forum.antichat.xyz/attachments/4932259/1703416103262.png
Инъекция есть, но эксплуатироваться она не хочет. Погуглим ошибку. Оказывается, она возникает из-за неправильного импорта в файле /core/plagin.py, который находится в директории с программой.
https://forum.antichat.xyz/attachments/4932259/1703416169606.pngВсе дело в том, что, начиная с версии 3.3, этот метод устарел и его импортирование должно производится следующим образом:
fromcollections.abc importMapping
Внесем изменения в файл, заменив также в 21 и 22 строках collections.Mapping на Mapping:
https://forum.antichat.xyz/attachments/4932259/1703416219971.png
Запустим скрипт еще раз:
https://forum.antichat.xyz/attachments/4932259/1703416260203.png
На этот раз все отработало штатно. У нас тут слепая SSTI. Внизу видим список того, что мы можем сделать, а также способы получения шелла.
https://forum.antichat.xyz/attachments/4932259/1703416329386.png
Пробуем его получить.
https://forum.antichat.xyz/attachments/4932259/1703416360782.png
Упс! Какая-то непонятка. Шелл мы получили, но на введенную команду он отреагировал только словом True. Команда выполнилась с некоторой задержкой, но результата ее выполнения мы не видим. Пробуем ввести другие команды:
https://forum.antichat.xyz/attachments/4932259/1703416407519.png
Все тоже самое. Отсюда становится понятно то, что, если команда может выполняться в системе, то появится задержка и отобразится сообщение True, если нет – задержки не будет и мы увидим False. Что если получить реверс-шелл через bash?
Запускаем у себя на сервере слушалку, а в командной строке os-shell введем следующее (ip адрес моей машины замазан):
https://forum.antichat.xyz/attachments/4932259/1703416469801.png
И получаем обратное соединение
https://forum.antichat.xyz/attachments/4932259/1703431604603.png
SSTIMAP
Еще один инструмент для работы с SSTI. Его будем тестить на том же таске. Сразу скажу, у меня не возникло никаких проблем ни с его установкой, ни с запуском.
https://forum.antichat.xyz/attachments/4932259/1703416548396.png
Выглядит красивее. По функционалу очень похож на tplmap. Список возможных шеллов значительно больше, можно получить прямое и обратное соединения, а также загружать файлы.
https://forum.antichat.xyz/attachments/4932259/1703416583674.png
Разберем некоторые возможности:
--os-shell – аналог шелла из tplmap
--os-cmd – выполняет отдельные команды системы. Разумеется, для нашей слепой SSTI вывод будет аналогичен os-shell
https://forum.antichat.xyz/attachments/4932259/1703416645255.png
https://forum.antichat.xyz/attachments/4932259/1703416660462.png
--reverse-shell – самая интересная опция, позволяет нам сразу поднять обратное соединение
https://forum.antichat.xyz/attachments/4932259/1703416745663.png
https://forum.antichat.xyz/attachments/4932259/1703416987358.png
--upload – позволяет загружать файлы на сервер. При эксплуатации слепой SSTI мне это не удалось
https://forum.antichat.xyz/attachments/4932259/1703417066852.png
COMMIX
Инструмент для автоматизации эксплуатации Command Injection. Входит в стандартный пакет Kali Linux. Довольно несложная программа, с кучей опций. По традиции протестируем ее на одном из тасков с платформы античат . У нас есть сайт с предположительно уязвимым POST-параметром.
Наберем в терминале такую команду:
commix -u http://test_site/ --method=POST --data="cmd=
https://forum.antichat.xyz/attachments/4932259/1703417135979.png
Как видим, мы особо ничего не вводили, а сразу получили командную строку терминала, где выполнили системную команду. Если нам нужно только прочитать какой-то файл в целевой системе, мы можем сделать так:
https://forum.antichat.xyz/attachments/4932259/1703417179237.png
В общем ничего сложного, но инструмент прекрасно справляется с раскруткой уязвимостей, при этом обладает обширным функционалом по обходу WAF. Инструкцию по его использованию можно легко найти в сети. Различные примеры использования можно найти здесь.
Вот в принципе и все, что я хотел сегодня рассмотреть. Для других типов веб-уязвимостей также существуют средства автоматизации, например, для эксплуатации XXE есть XXEinjector, а для SSRF – SSRFmap, autoSSRF, SSRFire и т.д. Поэтому сейчас я хочу объявить конкурс для студентов WAPT. Первый, кто напишет мне в личку (https://forum.antichat.xyz/members/731398/) решение одной или нескольких задач курса при помощи этих инструментов получит приз в размере 100 BIT, а его решение я вставлю в эту статью. В комментариях к статье я объявлю о завершении конкурса и назову победителей.
На этом все. Всем удачи и спасибо за внимание!!!