megaDED

Сержант
Модератор
Сообщения
34
Реакции
5
Выделенный сервер Collaborator

У запуска выделенного экземпляра Collaborator есть свои преимущества. Отдельный экземпляр полезен для тестов, когда у объекта атаки нет выхода в интернет, или для крайне параноидального клиента, который предпочел бы вывести третьих лиц из уравнения.
Также следует сказать пару слов об анонимности: исходящие соединения с доменом burpcollaborator.net могут несколько озадачить. Для некоторых заданий лучше подойдет менее заметный домен. Я понимаю, что домен, который мы собираемся использовать для нашего отдельного экземпляра, c2.spider.ml, не намного лучше, но мы оставим все как есть, поскольку используем его в демонстрационных целях.
Мы уже делегировали домен c2.spider.ml своей машине в облаке, где будет работать сервер Collaborator. Служба DNS должна иметь возможность отвечать на все входящие DNS-запросы для любого поддомена, принадлежащего c2.spider.ml.
Collaborator может требовать много памяти, и облачного микроэкземпляра может быть недостаточно для развертывания в эксплуатационных целях.
При первом запуске сервера Collaborator вам будет предложено ввести лицензионный ключ, чтобы выполнить активацию. Это значение хранится в ~/.java/.userPrefs/burp/prefs.xml, поэтому убедитесь, что файл должным образом защищен и не доступен для чтения.
Сервер Collaborator фактически встроен в Burp Suite. Мы можем скопировать JAR-файл Burp Suite Professional и запустить его из командной строки с помощью опции --collaborator-server.

This version of Burp requires a license key. To continue, please
paste your license key below.
VGhlcmUgYXJlIHRoZXNlIHR3byB5b3VuZyBmaXNoIHN3aW1taW5nIGFsb25nLCBhbmQgd
GhleSBoYXBwZW4gdG8gbWVldCBhbiBvbGRlciBmaXNoIHN3aW1taW5nIHRoZSBvdGhlci
B3YXksIHdobyBub2RzIGF0IHRoZW0gYW5kIHNheXMsICJNb3JuaW5nLCBib3lzLCBob3c
ncyB0aGUgd2F0ZXI/IiBBbmQgdGhlIHR3byB5b3VuZyBmaXNoIHN3aW0gb24gZm9yIGEg
Yml0LCBhbmQgdGhlbiBldmVudHVhbGx5IG9uZSBvZiB0aGVtIGxvb2tzIG92ZXIgYXQgd
GhlIG90aGVyIGFuZCBnb2VzLCAiV2hhdCB0aGUgaGVsbCBpcyB3YXRlcj8i
Burp will now attempt to contact the license server and activate
your license. This will require Internet access.
NOTE: license activations are monitored. If you perform too many
activations, further activations for this license may be
Enter preferred activation method (o=online activation; m=manual
activation; r=re-enter license key)
Your license is successfully installed and activated.
На данном этапе сервер Collaborator работает с настройками по умолчанию. Нам нужно будет указать некоторые пользовательские параметры, чтобы получить максимальную отдачу от своего экземпляра. Файл конфигурации представляет собой простой текстовый файл в формате JSON с опциями для указания портов прослушивания, доверенных DNS-зон и опций конфигурации SSL. Можно создать этот файл в любом месте на диске и вернуться к нему позже.

"serverDomain": "c2.spider.ml",
"hostname": "c2.spider.ml"
"publicAddress" : "35.196.100.89"
"publicAddress" : "35.196.100.89",
"hostname" : "polling.c2.spider.ml"
"localAddress": "0.0.0.0",
"publicAddress": "35.196.100.89"
Вы обратили внимание, что нам пришлось указать домен, который будем использовать вместе с нашим общедоступным IP-адресом? Уровень ведения журнала устанавливается на DEBUG, пока мы не подтвердим, что сервер работает как надо.

[email protected]:~/collab# java -jar Burp Suite_pro.jar
--collaborator-server --collaborator-config=config.json
[...] : Using configuration file config.json
[...] : Listening for DNS on 0.0.0.0:53
[...] : Listening for SMTP on 25
[...] : Listening for HTTP on 80
[...] : Listening for SMTP on 587
[...] : Listening for HTTPS on 443
[...] : Listening for SMTPS on 465
Рекомендуется фильтровать входящий трафик, поступающий на эти порты, и вносить в белый список только свои внешние IP-адреса и адреса объекта атаки.
Теперь, когда сервер подключен к сети, мы можем изменить параметры проекта и указать свой отдельный сервер c2.spider.ml.

Настройка закрытого сервера Collaborator
Используя кнопку Run health check..., мы можем вызвать взаимодействие с новым сервером Collaborator.

Проверка работоспособности Collaborator
Журнал консоли сервера будет отображать наши попытки подключения.

[email protected]:~/collab# java -jar Burp Suite_pro.jar
--collaborator-server --collaborator-config=config.json
[...] : Using configuration file config.json
[...] : Listening for DNS on 0.0.0.0:53
[...] : Listening for SMTP on 25
[...] : Listening for HTTP on 80
[...] : Listening for SMTP on 587
[...] : Listening for HTTPS on 443
[...] : Listening for SMTPS on 465
[...] : Received DNS query from [74.125.19.6] for
[t0u55lee1aba8o6jwbm4kkgfm6sj62qkunj.c2.spider.ml] containing
interaction IDs: t0u55lee1aba8o6jwbm4kkgfm6sj62qkunj
[...] : Received HTTP request from [173.239.208.17] for [/]
containing interaction IDs: t0u55lee1aba8o6jwbm4kkgfm6sj62qkunj
[...] : Received HTTPS request from [173.239.208.17] for [/]
containing interaction IDs: t0u55lee1aba8o6jwbm4kkgfm6sj62qkunj
Проверка SMTP и SMTPS может завершиться неудачно в зависимости от брандмауэра вашего интернет-провайдера, но корпоративные клиенты должны пройти проверку. Важной частью является настройка DNS. Если жертва может разрезолвить случайно сгенерированный поддомен для c2.spider.ml, должна быть возможность установить исходящее соединение, если никакая другая выходная фильтрация не выполняется.
Вы также заметите, что принудительно установить HTTPS-соединение не удалось. Это связано с тем, что по умолчанию Collaborator использует самоподписанный wildcard-сертификат для обработки зашифрованных HTTP-соединений.
Чтобы обойти эту проблему, когда речь идет об объектах атаки, чьи доверенные корневые центры сертификации мы не контролируем, нужно установить сертификат, подписанный общедоступным центром сертификации.
Файл config.json будет слегка изменен, чтобы указать Collaborator на этот сертификат и его закрытый ключ.

"serverDomain": "c2.spider.ml",
"hostname": "c2.spider.ml"
"publicAddress" : "35.196.100.89",
"keys/wildcard.c2.spider.ml.key.pkcs8",
"keys/wildcard.c2.spider.ml.crt",
"publicAddress" : "35.196.100.89",
"hostname" : "polling.c2.spider.ml"
"localAddress": "0.0.0.0",
"publicAddress": "35.196.100.89"
В подкаталоге keys можно поместить закрытый ключ, зашифрованный в формате PKCS#8, соответствующий сертификат и любые промежуточные сертификаты, которые нам, возможно, понадобятся для проверки цепочки сертификатов. В предыдущих статьях нам удалось сгенерировать сертификаты для нашего домена командно-контрольного сервера, которые мы можем использовать и здесь, чтобы поэкспериментировать с ними.
 
  • Like
Реакции: lukeone