这里试着在Windows下使用nginx反向代理来隐藏C2服务器,降低性能消耗,做一些简单的流量处理,进行一些实践测试。

1.端口配置

然后就是Cobaltstrike的端口配置,配置c2端口为nginx的端口(代理),Bind端口为实际c2监听端口:

1.png

2.启动nginx

下载nginx,命令行下使用nginx -c conf/nginx.conf执行后,修改配置文件,再使用nginx –s reload进行重载使配置生效,访问测试:

2.png

3.配置Nginx

配置nginx,主要就是要把信标流量给cs服务器,这里由于我们使用

jquery-c2.4.0.profile

https://github.com/rsmudge/Malleable-C2-Profiles

来进行流量伪装,

可以在这个配置文件中看到对http-get的配置信息,所以payload会请求伪装的uri来进行通信:

3.png

所以在nginx中配置,匹配jquery开头的url进行反向代理,匹配成功后转发给我们的cs 8089:

location ~*/jquery {

                 #start with jquery

                 proxy_pass  http://127.0.0.1:8089;

    }

先访问一下看看:

4.png

好了,测试一下上线后发现外部地址显示为127.0.0.1:

5.png

这里需要给nginx配置一下源IP,加入配置项:

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

配置如下:

location ~*/jquery {

                 #start with jquery

                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                 proxy_pass  http://127.0.0.1:8089;

    }

         

           location / {

         proxy_pass  http://www.qq.com/;

    }

配置好后还需要到profile中设置真实IP获取,这里是用的 X-Forwarded-For,可以在profile中看到设置:

6.png

然后再进行测试,命令执行正常:

7.png

4.配置防火墙

很关键的一步,配置防火墙,拦截外部访问~:

8.png

成功:

9.png

端口开放情况:

80/tcp    open  http (nginx)
3389/tcp  open  ms-wbt-server (远程桌面)
5985/tcp  open wsman   (防火墙拦截)
33890/tcp  open unknown  (CS服务端)
33891/tcp  open unknown  (CS https监听器)
47001/tcp  open winrm (禁用Windows Remote Management)

标签: Cobaltstrike配置nginx反向代理

添加新评论