
Convertire i profili Cobalt Strike in script modrewrite
Questo progetto converte un profilo Cobalt Strike in un file di configurazione mod_rewrite
.htaccess o Nginx funzionante per supportare il reindirizzamento HTTP tramite reverse proxy verso un teamserver Cobalt Strike. L'uso dei reverse proxy fornisce protezione ai server C2 backend da profilazione, indagini e radiazione di fondo generale di Internet.
Nota: dovresti testare e ottimizzare l'output come necessario prima della distribuzione, ma questi script dovrebbero occuparsi del lavoro pesante.
.htaccess con le corrispondenti regole mod_rewriteL'esempio havex.profile è incluso per un test rapido.
.htaccess o /etc/nginx/nginx.conf sul tuo redirectorpython3 cs2modrewrite.py -i havex.profile -c https://TEAMSERVER -r https://GOHERE -o /etc/apache2/redirect.rules
Configurazione Apache di esempio
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
RemoteIPHeader X-Forwarded-For
ErrorLog /var/log/apache2/redirector_error.log
CustomLog /var/log/apache2/redirector_access.log combined
ErrorDocument 401 " "
ErrorDocument 403 " "
ErrorDocument 404 " "
ErrorDocument 500 " "
ErrorDocument 503 " "
# Include redirect.rules
Include /etc/apache2/redirect.rules
</VirtualHost>
Valuta di aggiornare l'header del server Apache, ServerTokens e il logging con qualcosa di simile al seguente.
## Update Apached Server Header, ServerTokens, and logging
echo "Update Update Apached Server Header, ServerTokens, and logging"
sed -i -e 's/\(ServerTokens\s\+\)OS/\1Prod/g' /etc/apache2/conf-enabled/security.conf
sed -i -e 's/\(ServerSignature\s\+\)On/\1Off/g' /etc/apache2/conf-enabled/security.conf
echo "SecServerSignature Server" >> /etc/apache2/conf-enabled/security.conf
echo "LogLevel alert rewrite:trace2" >> /etc/apache2/conf-enabled/security.conf
## Update Apached remoteip.conf
echo "Update Apached remoteip.conf"
echo "RemoteIPHeader X-Forwarded-For" >> /etc/apache2/conf-enabled/remoteip.conf
## Restart apache server
echo "Restart apache server"
systemctl restart apache2
python3 cs2modrewrite.py -i havex.profile -c https://TEAMSERVER -r https://GOHERE -o /var/www/html/.htaccess
apt-get install apache2
a2enmod rewrite headers proxy proxy_http ssl cache
a2dismod -f deflate
service apache2 reload
Nota: https://bluescreenofjeff.com/2016-06-28-cobalt-strike-http-c2-redirectors-with-apache-mod_rewrite/ "e0x70i ha sottolineato nei commenti qui sotto che se il tuo profilo Malleable C2 di Cobalt Strike contiene un header Accept-Encoding per gzip, la tua installazione Apache potrebbe comprimere quel traffico per impostazione predefinita e causare un Beacon non reattivo o con funzionamento errato. Per superare questo problema, disabilita mod_deflate (tramite a2dismod deflate) e aggiungi il flag No Encode ([NE]) alle tue regole di riscrittura. (Grazie, e0x70i!)"
Assicurati che le seguenti voci siano presenti nella configurazione del sito (es. /etc/apache2/available-sites/*.conf)
# Enable SSL
SSLEngine On
# Enable SSL Proxy
SSLProxyEngine On
# Trust Self-Signed Certificates generated by CobaltStrike
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
Se hai intenzione di usare mod_rewrite nei file .htaccess (invece che nel file di configurazione del sito), devi anche abilitare l'uso dei file .htaccess cambiando AllowOverride None in AllowOverride All. Per tutti i siti web, modifica /etc/apache2/apache.conf
<Directory /var/www/>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
Infine, riavvia Apache ancora una volta per sicurezza.
service apache2 restart
Se devi diagnosticare il comportamento delle regole di reindirizzamento, abilita il tracciamento dettagliato degli errori nel file di configurazione del tuo sito aggiungendo la seguente riga.
LogLevel alert rewrite:trace5
Quindi, ricarica Apache e monitora /var/log/access.log /var/log/error.log per vedere quali regole corrispondono.
apt-get install nginx nginx-extras
Nota: nginx-extras è necessario per gli header server personalizzati. Se non riesci a ottenere questo pacchetto, commenta la riga dell'header server nel file di configurazione risultante.
Salva l'output di cs2nginx.py in /etc/nginx/nginx.conf e modificalo come necessario (parametri SSL).
python3 ./cs2nginx.py -i havex.profile -c https://127.0.0.1 -r https://www.google.com -H mydomain.local >/etc/nginx/nginx.conf
Infine, riavvia nginx dopo aver modificato il file di configurazione del server.
service nginx restart
Una volta configurato e funzionante il reindirizzamento, assicurati che i tuoi server C2 consentano l'ingresso solo dal redirector e dai tuoi IP fidati (VPN, range dell'ufficio, ecc.).
Prendi in considerazione l'aggiunta di ulteriori protezioni per il redirector utilizzando restrizioni GeoIP (mod_maxmind) e blacklist di user agent e intervalli IP dannosi. Grazie a @curi0usJack per le idee.