megaDED

Сержант
Модератор
Сообщения
34
Реакции
5
Одна из наиболее распространенных задач, которые мы выполняем, – создание пользовательских списков слов на основе целевых данных, что увеличивает шансы на успех, но делать это несколько утомительно. Сценарий можно написать с помощью какого-нибудь языка вроде Python, но почему бы не сделать это напрямую в Burp?
Еще одна распространенная задача, которую вы выполняете, – запуск sqlmap-атак на определенный URL-адрес в приложении. Аутентифицированные атаки с использованием SQL-инъекций требуют, чтобы мы отправляли сеансовые куки-файлы в командной строке, а для атак через POST-запросы создание командной строки sqlmap может превратиться в трудоемкий процесс. CO2 – это плагин для Burp Suite, предоставляющий ряд улучшений для перехватывающего прокси-сервера, которые хорошо интегрируются с остальной частью пользовательского интерфейса и могут отлично управлять обменом данными между другими инструментами и Burp Suite.
Я уже говорил об этом раньше и еще скажу. Будучи специалистами, выполняющими тесты на проникновение, и членами Красной команды, мы знаем, что время – это не роскошь, которой мы делимся с плохими парнями. Наши задачи часто зависят от времени, а ресурсы на пределе. Копирование и вставка заголовка Cookie из Burp в терминал для запуска sqlmap-атаки кажется небольшой проблемой, но ее нужно учитывать. Что, если приложение, являющееся объектом атаки, имеет несколько потенциальных точек SQL-инъекций? Что, если вы тестируете три или четыре разных приложения, которые не используют одни и те же учетные данные для входа? Автоматизация делает жизнь проще, позволяя нам действовать эффективнее.
Плагин CO2 можно скачать в BApp Store или на GitHub: https://github.com/portswigger/co2.
Установить CO2 так же просто, как и любой другой плагин BApp Store. Он добавляет несколько опций в контекстное меню в Target, Proxy, Scanner и в других модулях. Многие запросы, сделанные через Burp, можно отправлять напрямую нескольким компонентам CO2. Это позволит заполнить большинство необходимых параметров, сэкономить время и снизить вероятность ошибки.

SQLMpper

CO2 предоставляет упаковку sqlmap в пользовательском интерфейсе Burp с метким названием SQLMapper. Если мы обнаружим потенциальную точку инъекции или, возможно, активный сканер Burp уведомит нас об уязвимости, где можно использовать SQL-инъекцию, мы можем отправить запрос прямо в SQLMapper с помощью контекстного меню.
На вкладке CO2 Extension раздел SQLMapper должен быть предварительно заполнен значениями из выбранного URL-адреса.
На данном этапе можно настроить SQLMapper таким образом, чтобы он указывал на соответствующий сценарий sqlmap и двоичный файл python.
Дистрибутив Kali поставляется с уже установленной версией sqlmap, но самую последнюю и лучшую версию можно клонировать из GitHub: https://github.com/sqlmapproject/sqlmap.

Отправка запроса в контекстное меню SQLMapper из CO2
Кнопка Config позволит нам указать CO2 на нужные двоичные файлы для запуска sqlmap из пользовательского интерфейса. С помощью кнопки Run будет запущен новый терминал с sqlmap и всеми переданными опциями.


Всплывающее окно настройки SQLMap в CO2​

В Kali утилита sqlmap находится в папке /usr/bin и не имеет расширения .py. Если вы работаете с новейшей версией из репозитория GitHub, то можете указать полный путь.
Во-первых, мы можем клонировать самую последнюю версию sqlmap из GitHub, используя команду git clone.

remote: Counting objects: 60295, done.
remote: Compressing objects: 100% (22/22), done.
remote: Total 60295 (delta 26), reused 33 (delta 22), pack-reused
Receiving objects: 100% (60295/60295), 59.88 MiB | 14.63 MiB/s,
Resolving deltas: 100% (47012/47012), done.
Сценарий sqlmap.py будет находиться в созданном каталоге sqlmap.
-rwxr-xr-x 1 root root 16K Jun 1 15:35 sqlmap.py
sqlmap – это полнофункциональный инструмент со множеством опций для модификации чего угодно – от user-agent до инъекций и даже уровня агрессии каждого зонда.
Как правило, необходимо просмотреть документацию по утилите, чтобы найти нужную нам опцию, но с помощью плагина SQLMapper от CO2 можно быстро найти то, что нужно.

Плагин SQLMapper​

Когда мы выбираем соответствующие опции и заполняем пробелы, CO2 создает команду sqlmap, которую можно запустить через пользовательский интерфейс либо скопировать и запустить непосредственно в терминале, который вам нравится.

Запуск sqlmap с выбранными параметрами
Используя кнопку Run, мы открываем новое окно терминала и запускаем sqlmap с выбранными параметрами.
sqlmap будет сохранять сеанс каждой атаки в папке в домашнем каталоге: ~/.sqlmap/output/[target].
Веб-оболочки
CO2 также обеспечивает простой способ создания веб-оболочек для определенного числа серверных языков. Если нам удастся загрузить оболочку в один из этих блоков, понадобится простая безопасная оболочка, чтобы повысить привилегии и достичь цели.
Laudanum – это коллекция базовых веб-оболочек для различных бэкендов, поддерживающих ASP, JSP, ASPX, Java и PHP. Laudanum также позволяет указать случайный токен соединения и ограничить доступ по IP. Эти оболочки дают возможность выполнять код удаленно, и имеет смысл защищать их, пока не будет установлена более надежная реверсная оболочка.
В Laudanum можно указать тип оболочки, которую нам нужно настроить, IP-адреса, с которых будет разрешено подключение, и случайный токен, используемый для дополнительной защиты.
Процесс создания оболочки прост. Его шаги таковы:
1. Открываем вкладку Laudanum в CO2. Выбираем тип оболочки. В нашем случае это PHP Shell.
2.Разделяем запятыми список IP-адресов без пробелов: 127.0.0.1,192.168.1.123.
3.Нажимаем кнопку Gen New Token, чтобы сгенерировать случайный токен.

Плагин Laudanum
Чтобы сохранить файл где-нибудь на диске, нажмите кнопку Generate File (Сгенерировать файл). Содержимое сгенерированной оболочки будет выглядеть как на рис.
После ее загрузки в объект атаки, чтобы получить доступ к оболочке, нужно убедиться, что наш внешний IP-адрес совпадает с одним из IP-адресов в белом списке, а также указать произвольно сгенерированный токен для каждого запроса.
Мы можем передать этот токен, используя параметр URL-адреса laudtoken и команду для выполнения через laudcmd. Значения этих параметров также можно передать через метод POST.
Следует отметить, что даже с правильным токеном в URL-адресе запрос от неизвестного IP будет отклонен с ответом 404.
На рис. мы тестируем простой веб-запрос с компьютера с Windows с помощью командлета PowerShell Invoke-WebRequest. Поскольку запрос не идет с какого-либо известного IP-адреса (которые мы указали при создании оболочки), запрос отклоняется.

Исходный код оболочки Laudanum

Отклоненный запрос к оболочке с неизвестного IP-адреса
Наш клиент оценит дополнительную проверку безопасности. В конце концов, мы здесь занимаемся поиском уязвимостей, а не создаем новые. Это должно быть совершенно очевидно, но это ненадежно. Данный файл должен быть удален при очистке, как и любой другой артефакт, который мы помещаем в объект атаки.
Имея надлежащий внешний IP-адрес и токен, можно получить контроль над оболочкой с помощью модуля Repeater.
Для запроса заполняем минимальные заголовки GET-запроса, как показано на скриншоте. Нам нужно настроить параметр Target (Цель) в правом верхнем углу вкладки Repeater, URL-адрес, запрашиваемый через метод GET, и значения для laudtoken и laudcmd.

Успешное получение доступа к защищенной оболочке Laudanum​