利用apache mod_rewrite模块实现重定向技术来隐藏CS的teamserver的原理与实现

参考资料

apache mod_rewrite模块详解
CS的profile文件编写指南

原理

通过编写apache的.htaccess文件中的mod_rewrite模块,以达到对访问流量进行判断,并作出具体指令。
当有指定特征的流量访问apache服务器的时候,服务器将流量转发到指定的C2上,也就是teamserver上。如果是非指定特征的流量,则进行重定向到一个合法的域名上,例如百度等(也可以选择不进行跳转直接返回apache上的网页)。

具体实现


在apache服务器上的操作

安装apache2服务

apt-get install apache2
a2enmod ssl rewrite proxy proxy_http #启动mod_rewrite模块
a2ensite default-ssl.conf #使用指定ssl配置文件
a2dismod -f deflate #不对流量进行压缩处理
#mod_rewrite 是 Apache 的一个模块。此模块提供了一个基于正则表达式分析器的重写引擎来实时重写 URL 请求。但是一般 mod_rewrite 默认是不启动的,需要我们手动去启用它。

更改配置文件

改配置文件/etc/apache2/apache2.conf

<Directory /var/www/>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all

改配置文件/etc/apache2/sites-available/default-ssl.conf配置ssl
#Enable SSL
SSLEngine On
#Enable SSL Proxy
SSLProxyEngine On
#Trust Self-Signed Certificates generated by CobaltStrike
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
配置ssl站点的文件etc/apache2/sites-enabled/default-ssl.conf,配置内容跟上面的sites-available中的default-ssl.conf一致。(我在做这个实验的时候,发现这两个文件好像自动同步了,自动就相同了不过还是查看一下比较准确。)

使用openssl生成证书,这里提供两种方法。

第一种方法
1.生成私钥
openssl genrsa -out client.key 4096
2.生成签名请求
openssl req -new -key client.key -out client.csr
3.签发证书
openssl x509 -req -days 365 -in client.csr -signkey client.key -out client.crt

第二种方法一步到位
openssl req -new -x509 -newkey rsa:4096 -keyout client.key -out client.crt

申请完证书跟密钥后接着修改文件

vim etc/apache2/sites-enabled/default-ssl.conf
修改如下两个参数:
SSLCertificateFile [crt path] #含证书与公钥信息文件
SSLCertificateKeyFile [private key path] #含私钥信息的文件

tips:后缀为key的文件为私钥文件,后缀为crt的文件为证书文件。

利用python脚本根据指定的cs的profile文件来输出一个.htaccess文件。

python3 cs2modrewrite.py -i zeus.profile -c https://172.16.99.183 -r https://www.baidu.com > /var/www/html/.htaccess

  • 这个文件已经根据profile的配置做了基础的apache mod_rewrite的规则,如果希望改动其中的一些数值,可以看我的另一篇文章apache mod_rewrite模块详解

在C2上的操作


接着开启teamserver
./teamserver 172.16.99.183 12345 zeus.profile


给大家看看实验结果:

web_interference 172.16.99.182
real_C2 172.16.99.183
apache服务器的ip最后三位为182,C2为183。
创建一个https的listener,listener的中填写的监听ip为apache服务器的ip而不是真正的C2的ip,如图中的172.16.99.182。然后生成木马在目标主机上运行后CS上成功上线。
在这里插入图片描述
这时候目标主机连接的其实只是我们的apache服务器,根本不会出现直接连接我们teamserver的流量。这时候任意非特征流量访问172.16.99.182,都会直接跳转到百度的主页。

本来想上传个视频发现传不了,所以就把视频传到了网盘,大家可以下载看看最终的验证结果。
链接: https://pan.baidu.com/s/1oBzN63gBZbq-oJwwnw6P_Q 密码: mgbv


补充

当你设置一个 HTTP 或 HTTPS Beacon 监听器的时候,简单的指定你的重定向器 IP (在 Host 字段填入)。Cobalt Strike 不会验证这个信息。如果你提供的 host 不隶属于当前主机(不是团队服务器的 IP),那么 Cobalt Strike 就假设它是重定向器。
一种把服务器转变为重定向器的简单方法是使用 socat。
下面是一句 socat 语法,作用是:将80端口上的所有连接转发到位于192.168.12.100的团队服务器的
80端口:
socat TCP4-LISTEN:80,fork TCP4:192.168.12.100:80

补充2

今天做了一下centos上面的这种c2隐藏方式的实现,发现跟ubuntu的完全不同,在这边做个小结。

yum install httpd #安装apache
systemctl start httpd.service #启动apache
systemctl enable httpd.service #设置apache开机启动
httpd -M 查看已启动模块
在这里插入图片描述
centos7以上都会自动启动rewrite模块。
yum install mod_ssl #安装ssl模块

/etc/httpd/conf.d/ssl.conf #mod_ssl的配置文件存放位置

centos的配置文件放在: /etc/httpd/conf/httpd.conf
配置rewrite模块,只需要将httpd.conf中所有的AllowOverride None的None改为All即可。

下来需要更改ssl配置文件:
另外,将以下代码添加到VirtualHost标记内的同一文件中:

#Enable SSL
SSLEngine On
#Enable Proxy
SSLProxyEngine On
#Trust Self-Signed Certificates generated by Cobalt Strike
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off

配置证书:
预备工作
一般把.crt格式的放到/etc/pki/tls/certs/下,把.key格式的放到/etc/pki/tls/private/下。

整合apache和ssl
1)配置ssl.conf文件中证书路径。

SSLCertificateFile /etc/pki/tls/certs/www.domain.com.cer
SSLCertificateKeyFile /etc/pki/tls/private/www.domain.com.key
SSLCACertificateFile /etc/pki/tls/certs/www.domain.com_ca.crt

参考:
apache在centos7下的安装
HTTPS payload和C2重定向器
centos安装apache与ssl

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shanfenglan7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值