
Script automatisé pour configurer des redirecteurs CobaltStrike (proxy inverse nginx, letsencrypt)
Configuration automatisée de redirector compatible avec les RAT HTTP (CobaltStrike Beacon, meterpreter, etc.) et CobaltStrike DNS Beacon. Le script peut configurer soit un reverse proxy nginx, soit un proxy/forwarder DNS utilisant dnsmasq. Si HTTPS est sélectionné, il configurera automatiquement letsencrypt certbot et obtiendra des certificats SSL letsencrypt valides pour votre nom de domaine de redirector, puis démarrera nginx en utilisant la configuration générée.
La méthode du reverse proxy permet de configurer plus d'un redirector, chacun avec son propre certificat valide, pointant tous vers le même stager/listener HTTPS CobaltStrike, même si CobaltStrike utilise un certificat auto-signé/non fiable.
Il est également possible de modifier la configuration nginx générée par le script pour ajouter des fonctionnalités supplémentaires. Par exemple, vous pouvez choisir de proxifier uniquement le trafic correspondant à votre profil malleable C2 de CobaltStrike et de servir une page statique ou un proxy différent dans les autres cas. La configuration modifie l'en-tête user-agent pour ajouter l'IP source d'origine afin que vous puissiez la voir directement dans vos journaux web CobaltStrike (voir l'image ci-dessous).
Avec quelques ajustements de configuration, vous pouvez même décharger le trafic HTTPS du beacon vers un listener HTTP du teamserver !.

git clone https://github.com/taherio/redi.git
cd redi
chmod u+x redi.sh
./redi.sh <redirector domain> <teamserver ip/domain> <http/https>
#alternatively for dns redirector
./redi.sh <teamserver ip> 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}";
}
}