1、前言
在使用cobaltstrike过程中,其web服务经常遭到各种扫描探测,就比如下图我的tomcat遭到的扫描,当天的日志达到了117MB:
所以想试试反向代理,也看过一些文章讲的,我是觉得看了做了才等于会了。
这里试着在Windows下使用nginx反向代理来隐藏C2服务器,降低性能消耗,做一些简单的流量处理,进行一些实践测试。
2、端口配置
然后就是Cobaltstrike的端口配置,配置c2端口为nginx的端口(代理),Bind端口为实际c2监听端口:
3、启动nginx
下载nginx,命令行下使用nginx -c conf/nginx.conf执行后,修改配置文件,再使用nginx –s reload进行重载使配置生效,访问测试:
4、配置Nginx
配置nginx,主要就是要把信标流量给cs服务器,这里由于我们使用
jquery-c2.4.0.profile (https://github.com/rsmudge/Malleable-C2-Profiles)
来进行流量伪装,
可以在这个配置文件中看到对http-get的配置信息,所以payload会请求伪装的uri来进行通信:
所以在nginx中配置,匹配jquery开头的url进行反向代理,匹配成功后转发给我们的cs 8089:
location ~*/jquery { #start with jquery proxy_pass http://127.0.0.1:8089; }
先访问一下看看:
好了,测试一下上线后发现外部地址显示为127.0.0.1:
这里需要给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中看到设置:
然后再进行测试,命令执行正常:
5、配置防火墙
很关键的一步,配置防火墙,拦截外部访问~:
成功:
端口开放情况:
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)