转发重定向
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
在部署Cobalt Strike服务器时,我们可能需要前置代理服务器来帮助我们隐藏真实服务器,又或者是进行流量分离防止扫描或主动式的恶意软件探测服务器,再或者是根据目标的不同将其转发到不同的服务器上。
首先我会一次介绍几种重定向的方法
实验环境linux1 C2(192.168.1.215),linux2 转发(192.168.1.91),windows目标机
socat转发非常简单只需一条命令
socat TCP4-LISTEN:80,fork TCP4:C2ip:80
一些有用选项
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
将本机80端口的流量直接转发到C2服务器(192.168.1.215)的80端口
socat转发会存在一个问题,就是外部ip会显示为转发服务器的ip,因为socat是原方不动的转发流量
效果与socat一样不做演示
命令详细使用 https://wangchujiang.com/linux-command/c/iptables.html
实验环境linux1 C2(192.168.1.215),linux2 转发(mywbg.com),windows目标机
配置/etc/apache2/sites-enabled/default-ssl.conf 添加如下内容
修改/etc/apache2/ports.conf,注释80端口监听,然后执行以下命令
Cobalt Strike配置的时候在C2文件里加入如下选项
trust_x_forwarded_for 选项决定Cobalt Strike是否使用X-Forwarded-For HTTP头来确定外部ip。使用HTTP重定向器开启此选项,可以让CS显示外部ip的时候不再显示为代理服务器的
以上配置完成后重启apache2访问一下看看是否会自动重定向到百度。
然后启动CS新建监听器,配置如下https hosts和https host(stager)都填写代理服务器ip或域名
如果你需要自定义apache ssl证书则需要修改/etc/apache2/sites-enabled/default-ssl.conf
以上配置中如果你需要使用http服务来转发你可以不关闭80端口
如果需要修改相关规则可以自行修改/var/www/html/.htaccess
实验环境linux1 C2(192.168.1.215),linux2 转发(mywbg.com),windows目标机
修改/etc/nginx/nginx.conf
配置完成后重启nginx,开始配置CS
CS配置C2文件的时候在C2文件里加入如下选项
trust_x_forwarded_for 选项决定Cobalt Strike是否使用X-Forwarded-For HTTP头来确定外部ip。使用HTTP重定向器开启此选项,可以让CS显示外部ip的时候不再显示为代理服务器的
Cobalt Strike监听器配置和上面一样不在做演示了
如果你需要使用http服务来转发你可以不关闭80端口,配置证书的时候尽量使用真实的ssl证书
相关规则修改请查看/etc/nginx/nginx.conf
上面的配置都是基本配置并未处理其他web服务
要处理其他web服务请先在配置apache或nginx时使用真实的SSL以免出现一些因SSL验证导致的错误
使用Scripted Web Delivery (S)时请注意修改nginx.conf或.htaccess
nginx配置里添加对所有以a开头url都进行转发
.htaccess配置里添加对所有以a开头url都进行转发
配置Scripted Web Delivery (S)时我为了方便local Port直接使用和HTTPS监听器相同的端口这样比较方便(注:使用相同的端口需要确保服务相同,HTTPS监听器是Https服务,那么配置Scripted Web Delivery时就必须勾选Enable SSL使用Https,开启Enable SSL必须要先在CS配置文件里配置https-certificate
)
因为配置原因使用时把命令行的中的端口删掉即可
cs其他web服务配置参照上面即可
备忘录:待写
具体怎么设计自己看着来吧我也就随便写写