
Расширение Burp Suite для выявления недостатков внедрения (LFI, RCE, SQLi), проблем аутентификации/авторизации и нарушений доступа HTTP 403. Оно поддерживает динамическую генерацию полезных нагрузок, включая синтаксис BCheck, и может автоматически создавать скрипты Bambdas. Кроме того, оно предлагает функцию "Copy as JavaScript" для преобразования HTTP-запросов с целью улучшенного тестирования XSS.
Agartha специализируется на продвинутой генерации полезных нагрузок и оценке управления доступом. Он умело выявляет уязвимости, связанные с атаками внедрения, и проблемы аутентификации/авторизации. Динамический генератор полезных нагрузок создает обширные словари для различных векторов внедрения, включая SQL-инъекции, локальное включение файлов (LFI) и удаленное выполнение кода (RCE). Кроме того, расширение строит всеобъемлющую матрицу доступа пользователей, выявляя потенциальные нарушения доступа и пути повышения привилегий. Оно также помогает выполнять проверки обхода HTTP 403, проливая свет на неправильные настройки аутентификации. Дополнительно, оно может преобразовывать HTTP-запросы в код JavaScript, чтобы помочь в поиске XSS-уязвимостей.
Вкратце:
Вот небольшой учебник по использованию.
Вы должны загрузить файл 'Jython' и сначала настроить среду:
Вы можете установить Agartha через официальный магазин:
Или для ручной установки:
После этого вы увидите вкладку 'Agartha' в главном окне, и она также будет зарегистрирована в контекстном меню, в разделе:
'Матрица аутентификации'
'Обход 403'
'Копировать как JavaScript'
Он поддерживает как синтаксисы файлов Unix, так и Windows, обеспечивая динамическую генерацию словарей для любого желаемого пути. Кроме того, он может пытаться обойти реализации Web Application Firewall (WAF) с помощью различных кодировок и других техник.

Он генерирует динамические словари для выполнения команд на основе предоставленной команды. Он комбинирует различные разделители и терминаторы для сред Unix и Windows.

Он генерирует полезные нагрузки для различных типов SQL-инъекций, включая Stacked Queries, Boolean-Based, Union-Based и Time-Based. Он не требует ввода данных от пользователя; вы просто выбираете желаемые типы SQL-атак и базы данных, и он генерирует словарь с различными комбинациями.

BCheck — это фреймворк Burp Suite для создания и импорта пользовательских проверок сканирования. Эти определенные пользователем проверки выполняются вместе со встроенными процедурами Burp Scanner, позволяя адаптировать сканирование под конкретные уязвимости или потребности тестирования. Используя BChecks, вы можете расширить возможности сканирования Burp и оптимизировать рабочий процесс для более целенаправленных и эффективных оценок. Теперь вы можете генерировать код автоматически:
Пожалуйста, имейте в виду, что по мере увеличения размера скрипта Bambdas могут возникнуть проблемы с производительностью, особенно во время сканирования. Более крупные скрипты могут замедлить отклик, увеличить использование памяти и привести к задержкам выполнения задач.
После нажатия кнопки "Generate payloads for BCheck" код BCheck будет автоматически скопирован в ваш буфер обмена.
Затем перейдите в 'Extensions > BChecks > New > Blank' в меню Burp Suite и просто вставьте сгенерированный код.
Ваши полезные нагрузки теперь интегрированы в BCheck. Вы можете либо вручную отправлять или сканировать HTTP-запросы, либо инициировать сканирование Burp, которое включает элементы управления BCheck для автоматического тестирования сгенерированных инструментом полезных нагрузок.
Советы по тонкой настройке: Сгенерированный код служит шаблоном и может потребовать некоторых корректировок, так как поведение может различаться в разных приложениях и на разных серверах.
Уточнение фильтров — например, указание кодов HTTP-ответов или ключевых слов в ответах — может помочь уменьшить количество ложных срабатываний и сделать результаты более точными и менее зашумленными.
Эта часть посвящена анализу сессий пользователей и отношений URL для выявления нарушений доступа. Инструмент систематически посещает все URL, связанные с предопределенными сессиями пользователей, и заполняет таблицу HTTP-ответами. По сути, он создает матрицу доступа, которая помогает выявлять проблемы аутентификации и авторизации. В конечном итоге этот процесс показывает, какие пользователи могут получить доступ к содержимому определенных страниц.
Немного больше деталей:
Обратите внимание, что потенциальные завершители сессии (такие как logoff, sign-out и т.д.) и определенные типы файлов (такие как CSS, изображения, JavaScript и т.д.) будут отфильтрованы как из 'Spider', так и из списка URL пользователя.
После нажатия 'RUN' инструмент заполнит матрицу пользователей и URL разными цветами. В дополнение к цветам, специфичным для пользователей, вы увидите красные, оранжевые и желтые ячейки, указывающие на возможные проблемы с доступом.
Задача включает пакетный процесс, и стоит упомянуть, какие методы HTTP-запросов будут использоваться. Инструмент предоставляет три различных варианта для выполнения HTTP-вызовов:
HTTP-статус 403 Forbidden указывает, что сервер понимает запрос, но отказывается его авторизовать. По сути, это означает: «Я узнаю, кто вы, но у вас нет разрешения на доступ к этому ресурсу». Этот статус часто указывает на такие проблемы, как «недостаточные разрешения», «требуется аутентификация», «ограничения по IP» и т.д.
Инструмент решает распространенную ошибку запрета доступа, применяя различные техники, такие как манипуляция URL и изменение заголовков запроса. Эти стратегии направлены на обход ограничений доступа и получение желаемого содержимого.
Стоит упомянуть два различных варианта использования:
Существует 2 способа отправки HTTP-запросов в инструмент.
Страница, к которой мы стремимся получить доступ, принадлежит привилегированной группе пользователей, и мы сохраняем наши идентификаторы сессии, чтобы проверить, возможно ли повышение привилегий.
Простое нажатие кнопки 'RUN' выполнит задачу.
Рисунок ниже иллюстрирует, что URL может иметь проблему с доступом, при этом красный цвет указывает на предупреждение.
Обратите внимание, что количество попыток зависит от конкретного целевого URL.
Эта функция позволяет преобразовывать HTTP-запросы в код JavaScript, что может быть особенно полезно для выхода за рамки XSS-уязвимостей и обхода ограничений заголовков.
Чтобы использовать эту функцию, просто щелкните правой кнопкой мыши по любому HTTP-запросу и выберите 'Extensions > Agartha > Copy as JavaScript'.
Он автоматически сохранится в ваш буфер обмена, включая некоторые дополнительные замечания для справки. Например:``` Http request with minimal parameters:
Http request with header fields:
Обратите внимание, что JavaScript-код будет выполняться в рамках исходной пользовательской сессии, при этом многие поля заголовков автоматически заполняются браузером. Однако в некоторых случаях сервер может требовать определённые обязательные поля заголовков. Например, некоторые запросы могут завершиться неудачей, если 'Content-Type' указан неверно. Поэтому вам может потребоваться скорректировать код для обеспечения совместимости с требованиями сервера.
<br/><br/>
## Генератор кода Bambdas
Bambdas — это легковесные скрипты, работающие непосредственно в Burp Suite, позволяющие пользователям быстро настраивать и автоматизировать различные задачи. Они могут использоваться для определения пользовательских правил поиска и замены, добавления динамических столбцов таблиц, применения фильтров и адаптации интерфейса под конкретные сценарии тестирования.
<img width="1000" alt="Генератор кода Bambdas" src="https://assets.kitploit.com/production/public/readmes/5162/1f24e30531216aea02630b65422c79753e12e44148338735a51450ba4d42be03.png">
Пояснения, немного подробнее:
1. Касательно графического интерфейса создания скрипта, здесь можно выбрать общие настройки. Например:
- Обработка только адресов в области видимости или всех адресов доменов.
- Скрытие определённых расширений файлов или нет.
- Цвета для URL, определённых в разделе области видимости, расположенном в первой части Группы 3.
- Цвета для URL, которые уже были протестированы, расположенном во второй части Группы 3.
- Цвета для фильтров, определённых в основном в Группе 2.
- Количество прошлых дней для отображения.
- Количество прошлых дней, которое должно быть обработано скриптом.
2. Опции во втором разделе в основном связаны с обработкой HTTP-запросов и ответов:
- Предоставляет опции для указания, должны ли критерии поиска применяться к URL, запросу или ответу. Выбор любого из них активирует соответствующие опции ниже. Например, если вы хотите искать 'Уязвимые функции JavaScript', это будет возможно только в HTTP-ответах.
- Опция скрытия определённых HTTP-методов.
- "Поиск HTML-комментариев", "Расширения загружаемых файлов" и "Уязвимые функции JS" обычно ищутся в HTTP-ответах.
- Поиск "Ценные ключевые слова" может применяться к URL, запросам и ответам.
- "Идентификаторы, подозрительные на SQLi, XSS, LFI, SSRF, Open Redirect и RCE" могут быть найдены в URL или запросах. В отличие от "Ценные ключевые слова", которые ищут произвольный текст, эти опции определяют конкретные параметры.
3. Опции в третьем разделе в основном предназначены для определения области видимости, уже протестированных URL и URL, которые вы хотите скрыть.
- Вы можете определить URL для тестирования в разделе "Определение области тестирования". Если вы введете /, всё приложение будет считаться в области видимости; если вы добавите конкретный путь, например /users, только этот каталог и его содержимое будут в области видимости. Опция "Цвет для области тестирования" применяется к этому разделу.
- Раздел "Уже протестированные URL" содержит список URL, которые уже были протестированы. Опция "Цвет для протестированных элементов" применяется здесь.
- Раздел "Чёрный список URL" содержит URL, которые вы хотите скрыть из истории прокси.
**Примеры определений**:
- /
- Корневой путь — включает всё.
Примечание: В дополнение к определениям области тестирования и протестированных, его также можно применить в разделе "Чёрный список URL", где он исключает всё, если не задан критерий соответствия.
- /portal/users
- Включает конкретно этот путь и его подпути, например:
- /portal/users?id=1
- /portal/users/?id=1
- /portal/users/dashboard
- /admin/\*/users/\*/class
- Звёздочка (*) действует как заполнитель для ID, UUID и т.д., а остальная часть пути будет включена.
- /api/v\*/user
- Звёздочка (*) действует как подстановочный знак, который соответствует любой последовательности символов после **v** до следующего '/', например:
- /api/v1/user
- /api/v2/user
- /health-check
- Включает конкретно этот путь и его подпути, например:
- /health-check
- /health-check/Monitor
- /health-check/?Level=Info
4. Наконец, в четвёртом разделе отображается скрипт, сгенерированный нажатием кнопки 'Run', и скрипт готов к использованию. В целом, этот скрипт можно добавить двумя разными способами:
- Временный (на уровне проекта): В меню приложения перейдите Proxy > HTTP History > Bambda Mode > Apply & Close.
- Постоянный (на уровне приложения): В меню приложения перейдите Extensions > Bambda Library > New > Blank > View filter + HTTP history > Save & Close.
**Обратите внимание**: Включение всех опций, особенно для крупных проектов, может привести к значительному использованию системных ресурсов и увеличению времени обработки. Если созданный вами скрипт не завершается за разумное время, возможно, стоит его пересмотреть.
<img width="1000" alt="Генератор кода Bambdas" src="https://assets.kitploit.com/production/public/readmes/5162/cb116ad18bc53ebf770b5bc1cb2b920cc9ef3a4569fab9b12d5fb9979823a58c.png">
**Приоритет опций**: Наивысший приоритет имеет 'Цвет для протестированных элементов', затем 'Цвет для области тестирования' и, наконец, 'Цвет для параметров/ключевых слов'.
Рисунок выше иллюстрирует следующее:
- **Розовый** указывает на область тестирования (первая часть группы 3).
- **Жёлтый** представляет протестированную область (вторая часть группы 3).
- **Голубой** выделяет совпадения с критериями поиска (Группа 2). Кроме того, вы можете увидеть, какой критерий совпал, в разделе 'Notes' каждого HTTP-вызова.
Если вы позже обновляете или изменяете уже созданный скрипт, следует учесть несколько важных моментов:
- Если вы установили свой скрипт как Постоянный (на уровне приложения), вам потребуется перезагрузить его, выполнив следующие действия:
Bambda Script mode > Load
<img width="800" alt="Генератор кода Bambdas" src="https://assets.kitploit.com/production/public/readmes/5162/5a840779ef9b2df5ac22e94d8ebf6771a677d5d45d49f35cae6f4b3a2e820cd2.png">
- Если вы используете свой скрипт как Временный (на уровне проекта), у вас обычно есть два варианта:
1. Если вы хотите, чтобы изменённый скрипт был активен с этого момента, дополнительных действий не требуется — просто нажмите Apply.
2. Если вы хотите, чтобы изменённый скрипт обработал всю историю прокси, вы должны либо повторно включить Bambda Mode, либо переключить логический параметр resetScreen внутри скрипта:
```
// 'true' очищает цвета/заметки
// 'false' выполняет скрипт
boolean resetScreen = false; // или true
```
<img width="800" alt="Генератор кода Bambdas" src="https://assets.kitploit.com/production/public/readmes/5162/cf2dac03f0dd6f1db5d8950b0162eda9e18862b1fb9da7a57f4cc119ec233c57.png">
<br/><br/>
[Ещё одна ссылка на учебник](https://www.linkedin.com/pulse/agartha-lfi-rce-auth-sqli-http-js-volkan-dindar)