
Автоматизированный скрипт для настройки редиректоров CobaltStrike (nginx обратный прокси, letsencrypt)
Автоматизированная настройка редиректора, совместимая с HTTP-троянами (CobaltStrike Beacon, meterpreter и т.д.) и CobaltStrike DNS Beacon. Скрипт может настроить либо обратный прокси на nginx, либо DNS-прокси/форвардер с помощью dnsmasq. Если выбран HTTPS, он автоматически настроит letsencrypt certbot и получит действующие SSL-сертификаты Letsencrypt для вашего домена редиректора, после чего запустит nginx с сгенерированной конфигурацией.
Метод обратного прокси позволяет настроить несколько редиректоров, каждый со своим действующим сертификатом, и все они будут указывать на один и тот же HTTPS-стигер/листенер CobaltStrike, даже если CobaltStrike использует самоподписанный/недоверенный сертификат.
Также можно изменить конфигурацию nginx, созданную скриптом, чтобы добавить дополнительные возможности. Например, можно проксировать только тот трафик, который соответствует вашему malleable c2 профилю CobaltStrike, а в остальных случаях отдавать статическую страницу или использовать другой прокси. Конфигурация изменяет заголовок user-agent, добавляя исходный IP-адрес, чтобы вы могли видеть его прямо в веб-логах CobaltStrike (см. рисунок ниже).
При некоторой настройке конфигурации вы даже можете выполнить SSL offload HTTPS-трафика бикона на HTTP-листенер teamserver'а!

git clone https://github.com/taherio/redi.git
cd redi
chmod u+x redi.sh
./redi.sh <домен редиректора> <ip/домен teamserver> <http/https>
#альтернативно для DNS-редиректора
./redi.sh <ip teamserver> dns
./redi.sh first.myredirector.ca,second.myredirector.ca,third.myredirector.ca myteamserver.com https
./redi.sh myredirector.ca myteamserver.com https
./redi.sh 192.0.0.1 dns
server {
listen 443 ssl;
server_name myredirector.ca;
ssl on;
ssl_certificate /etc/letsencrypt/live/myredirector.ca/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/myredirector.ca/privkey.pem;
location / {
proxy_pass https://myteamserver.com:443/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header "User-Agent" "${http_user_agent} - Original IP ${remote_addr}";
}
}