
Расширение Burp Suite, улучшающее Collaborator за счет захвата контекста, истории опросов и необязательной аутентификации с AES-шифрованием для развертываний на частных серверах.
Выпущен как open source компанией NCC Group Plc - http://www.nccgroup.com/
Разработано Corey Arthur, [email protected]
http://www.github.com/nccgroup/CollaboratorPlusPlus
Этот проект выпущен под лицензией AGPL, см. LICENSE для получения дополнительной информации
Скачать из релизов здесь.
Этот инструмент предназначен для расширения существующей функциональности Collaborator, предоставляемой Burp Suite, добавляя ряд функций, улучшающих удобство использования, и реализацию механизма аутентификации для защиты частных развертываний collaborator, оставаясь при этом совместимым со всеми существующими расширениями, которые генерируют и опрашивают контексты Collaborator.
CollaboratorPlusPlus выступает в качестве прокси между Burp и настроенным сервером Collaborator, позволяя перехватывать контексты Collaborator, используемые клиентом. Затем CollaboratorPlusPlus может хранить и отображать наблюдаемые контексты и полученные для них взаимодействия в центральном интерфейсе. Кроме того, старые контексты можно опрашивать вручную, что позволяет получать взаимодействия даже после закрытия окна клиента Collaborator.

Помимо расширения Burp, проект Collaborator++ также включает опциональный серверный компонент аутентификации для аутентификации входящих запросов опроса перед их передачей на сервер Collaborator. Этот компонент может быть развернут владельцами частных серверов Burp Collaborator, чтобы ограничить опрос только теми, кто знает общий секрет.
Когда Burp запрашивает список взаимодействий, полученных сервером Collaborator, расширение шифрует запросы опроса с помощью схемы шифрования AES256-CBC, используя общий секрет для генерации ключа шифрования. Если общий секрет верен, сервер аутентификации может расшифровать запрос и переслать его на сервер Collaborator для получения взаимодействий для данного экземпляра Collaborator. Ответ затем шифруется с использованием общего секрета перед отправкой обратно клиенту Burp.
Благодаря использованию общего секрета для шифрования передачи между клиентом Burp и сервером аутентификации, общий секрет не нужно передавать вместе с запросом, что позволяет сохранять конфиденциальность даже в тех случаях, когда между клиентом и сервером должна использоваться HTTP-связь.
Для удобства в Collaborator Auth добавлено несколько дополнительных настроек.
Использовать SSL: Переключает использование SSL между клиентом и сервером. Убедитесь, что ваш сервер также настроен на использование SSL на целевом порту.
Игнорировать ошибки сертификата: Отключает проверки действительности сертификата. Позволяет использовать самозаверенные / просроченные сертификаты.
Включить проверку имени хоста SSL: Не проверять, что имя хоста сертификата соответствует целевому домену.
Блокировать публичный сервер Collaborator: Предотвращает случайное использование публичного сервера Burp Collaborator. Добавляет DNS-запись для "burpcollaborator.net" на 127.0.0.1 в конфигурацию разрешения имен Burp.
java -jar CollaboratorPlusPlus.jar, чтобы создать конфигурацию по умолчанию.
java -jar CollaboratorPlusPlus.jar YOURCONFIGFILE.propertiesПримечание: чтобы разрешить HTTP и HTTPS запросы к серверу Collaborator++ Auth, создайте две копии файла конфигурации, настроив одну для HTTP и одну для HTTPS, и запустите два экземпляра сервера Collaborator++ Auth.
Чтобы включить использование SSL, сгенерируйте сертификат для сервера и используйте один из приведенных ниже способов для его настройки.
Для обоих способов убедитесь, что enable_ssl имеет значение true в файле конфигурации.
openssl req -newkey rsa:2048 -nodes -keyout privatekey.pem -x509 -days 365 -out certificate.pemssl_private_key_path в путь к вашему закрытому ключу.ssl_certificate_path в путь к вашему сертификату.ssl_intermediate_certificate_path в путь к вашему промежуточному сертификату.Этот метод был добавлен исключительно из соображений совместимости. Я настоятельно рекомендую использовать простую конфигурацию, если нет причин поступать иначе.
ssl_private_key_path пустую строку "".
openssl req -newkey rsa:2048 -nodes -keyout privatekey.pem -x509 -days 365 -out certificate.pemopenssl pkcs12 -export -in certificate.pem -inkey privatekey.pem -out polling.p12 -name pollingkeytool -importkeystore -deststorepass NEW_PASSWORD_FOR_KEYSTORE -destkeypass NEW_PASSWORD_FOR_PRIVATE_KEY \
-destkeystore polling.jks -srckeystore polling.p12 -srcstoretype PKCS12 \
-srcstorepass PASS_FROM_PREVIOUS_STEP -alias pollingЧтобы предотвратить опрос сервера Collaborator без использования Collaborator Auth, необходимо ограничить местоположение опроса Burp Collaborator.
Это можно сделать с помощью межсетевого экрана или изменив интерфейс прослушивания для событий опроса.
Вариант 1 — всегда требовать использования Collaborator Auth.
Если вы хотите заставить пользователей вашего экземпляра Burp Collaborator проходить аутентификацию независимо от их сети, Burp Collaborator можно настроить на прослушивание событий опроса только на локальной машине (т.е. от Collaborator Auth).
Это можно сделать, изменив адрес прослушивания Burp Collaborator для событий опроса на интерфейс loopback (127.0.0.1) или используя что-то вроде iptables для отбрасывания входящих запросов.
Вариант 2 — требовать использования Collaborator Auth только во внешних сетях.
Чтобы разрешить использование Burp Collaborator как обычно, когда клиент находится в той же сети, что и сервер, но требовать использования Collaborator Auth при работе из внешней сети, Burp Collaborator можно настроить на прослушивание событий опроса с внутренних адресов.
Это можно сделать, изменив адрес прослушивания Burp Collaborator для событий опроса на внутренний адрес сервера (192.168.x.x, 10.x.x.x и т.д.).
Чтобы гарантировать, что внешние события опроса не обрабатываются Burp Collaborator, порт опроса должен быть заблокирован на межсетевом экране, обращенном к Интернету. В качестве альтернативы используйте iptables для отбрасывания входящего трафика из внешних сетей.
java -jar CollaboratorAuth-SERVER.jar CollaboratorServer.properties