Cobalt Strike : 转发重定向

admin 2024年10月22日22:36:38评论31 views字数 4004阅读13分20秒阅读模式

扫码领资料

获黑客教程

免费&进群

Cobalt Strike : 转发重定向
Cobalt Strike : 转发重定向

介绍

在部署Cobalt Strike服务器时,我们可能需要前置代理服务器来帮助我们隐藏真实服务器,又或者是进行流量分离防止扫描或主动式的恶意软件探测服务器,再或者是根据目标的不同将其转发到不同的服务器上。

Cobalt Strike : 转发重定向

首先我会一次介绍几种重定向的方法

socat

实验环境linux1 C2(192.168.1.215),linux2 转发(192.168.1.91),windows目标机

socat转发非常简单只需一条命令

socat TCP4-LISTEN:80,fork TCP4:C2ip:80

一些有用选项

-lh将主机名添加到日志消息-v详细数据流量,文本-x详细数据流量,十六进制-d增加详细程度(最多使用4次;建议使用2次)-lf <logfile>记录到文件

Cobalt Strike : 转发重定向

HTTP Hosts和HTTP Host(Stager)填写转发服务器ip 

HTTP Port(C2)填写转发服务器要监听的端口 

HTTP Port(Bind)填写C2服务器要监听的端口

转发服务器执行命令

socat -d -d -d -d -lh -v -lf /var/log/socat.log TCP4-LISTEN:80,fork TCP4:C2服务器ip:C2服务器监听Port

Cobalt Strike : 转发重定向

将本机80端口的流量直接转发到C2服务器(192.168.1.215)的80端口

Cobalt Strike : 转发重定向

socat转发会存在一个问题,就是外部ip会显示为转发服务器的ip,因为socat是原方不动的转发流量

iptables -I INPUT -p tcp -m tcp --dport 转发机监听端口 -j ACCEPTiptables -t nat -A PREROUTING -p tcp --dport 转发机监听端口 -j DNAT --to-destination c2 ip:c2 portiptables -t nat -A POSTROUTING -j MASQUERADEiptables -I FORWARD -j ACCEPTiptables -P FORWARD ACCEPTsysctl net.ipv4.ip_forward=1iptables -I INPUT -p tcp -m tcp --dport 转发机监听端口 -j ACCEPTiptables -t nat -A PREROUTING -p tcp --dport 转发机监听端口 -j DNAT --to-destination c2 ip:c2 portiptables -t nat -A POSTROUTING -j MASQUERADEiptables -I FORWARD -j ACCEPTiptables -P FORWARD ACCEPTsysctl net.ipv4.ip_forward=1

效果与socat一样不做演示

命令详细使用https://wangchujiang.com/linux-command/c/iptables.html

Apache

实验环境linux1 C2(192.168.1.215),linux2 转发(mywbg.com),windows目标机

apt-get install apache2a2enmod rewrite headers proxy proxy_http ssl cachea2dismod -f deflatea2ensite default-ssla2dissite 000-defaultservice apache2 reload

配置/etc/apache2/sites-enabled/default-ssl.conf 添加如下内容

<Directory "/var/www/html">  Options +Indexes +FollowSymLinks +ExecCGI  AllowOverride All  Order allow,deny  Allow from all  Require all granted</Directory>LogLevel alert rewrite:trace5# Enable SSLSSLEngine On# Enable SSL ProxySSLProxyEngine On# Trust Self-Signed Certificates generated by CobaltStrikeSSLProxyVerify noneSSLProxyCheckPeerCN offSSLProxyCheckPeerName offSSLProxyCheckPeerExpire off

修改/etc/apache2/ports.conf,注释80端口监听,然后执行以下命令

git clone https://github.com/threatexpress/cs2modrewritecd cs2modrewritepython3 cs2modrewrite.py -i default.profile -c https://192.168.1.215:8080 -r https://www.baidu.com > /var/www/html/.htaccess-i 表示所使用的c2配置文件-c 根据监听器配置设置-r 表示非法访问重定向url

Cobalt Strike配置的时候在C2文件里加入如下选项

http-config {    set trust_x_forwarded_for "true";}

trust_x_forwarded_for 选项决定Cobalt Strike是否使用X-Forwarded-For HTTP头来确定外部ip。使用HTTP重定向器开启此选项,可以让CS显示外部ip的时候不再显示为代理服务器的

以上配置完成后重启apache2访问一下看看是否会自动重定向到百度。

然后启动CS新建监听器,配置如下https hosts和https host(stager)都填写代理服务器ip或域名

Cobalt Strike : 转发重定向

其他

如果你需要自定义apache ssl证书则需要修改/etc/apache2/sites-enabled/default-ssl.conf

SSLCertificateFile  /etc/ssl/certs/ssl-cert-snakeoil.pemSSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key#请尽量使用真实的ssl证书

以上配置中如果你需要使用http服务来转发你可以不关闭80端口

如果需要修改相关规则可以自行修改/var/www/html/.htaccess

Nginx

实验环境linux1 C2(192.168.1.215),linux2 转发(mywbg.com),windows目标机

apt-get install nginx nginx-extrasgit clone https://github.com/threatexpress/cs2modrewritecd cs2modrewritepython3 ./cs2nginx.py -i default.profile -c https://192.168.1.215:8080 -r https://www.baidu.com -H mywbg.com >/etc/nginx/nginx.conf-i 表示所使用的c2配置文件-c 根据监听器配置设置-r 表示非法访问重定向url-H 指向代理主机的域名

改/etc/nginx/nginx.conf

#将80端口注释关闭http#listen 80;#listen [::]:80;#取消443端口注释开启httpslisten 443 ssl;listen [::]:443 ssl;#取消ssl证书设置注释配置ssl证书ssl_certificate /root/server.crt;ssl_certificate_key /root/server.key;

配置完成后重启nginx,开始配置CS

CS配置C2文件的时候在C2文件里加入如下选项

http-config {    set trust_x_forwarded_for "true";}

trust_x_forwarded_for 选项决定Cobalt Strike是否使用X-Forwarded-For HTTP头来确定外部ip。使用HTTP重定向器开启此选项,可以让CS显示外部ip的时候不再显示为代理服务器的

Cobalt Strike监听器配置和上面一样不在做演示了

其他

如果你需要使用http服务来转发你可以不关闭80端口,配置证书的时候尽量使用真实的ssl证书

相关规则修改请查看/etc/nginx/nginx.conf

Nginx和apache2细节处理

上面的配置都是基本配置并未处理其他web服务

要处理其他web服务请先在配置apache或nginx时使用真实的SSL以免出现一些因SSL验证导致的错误

Cobalt Strike : 转发重定向

使用Scripted Web Delivery (S)时请注意修改nginx.conf或.htaccess

Cobalt Strike : 转发重定向

nginx配置里添加对所有以a开头url都进行转发

Cobalt Strike : 转发重定向

.htaccess配置里添加对所有以a开头url都进行转发

配置Scripted Web Delivery (S)时我为了方便local Port直接使用和HTTPS监听器相同的端口这样比较方便(注:使用相同的端口需要确保服务相同,HTTPS监听器是Https服务,那么配置Scripted Web Delivery时就必须勾选Enable SSL使用Https,开启Enable SSL必须要先在CS配置文件里配置https-certificate

Cobalt Strike : 转发重定向

因为配置原因使用时把命令行的中的端口删掉即可

cs其他web服务配置参照上面即可

原文地址:https://wbglil.gitbook.io/cobalt-strike/cobalt-strikekuo-zhan/dai-xie

声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。

原文始发于微信公众号(白帽子左一):Cobalt Strike : 转发重定向

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月22日22:36:38
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Cobalt Strike : 转发重定向https://cn-sec.com/archives/1848765.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息