文章目录
- CDN隐藏C2地址
- 环境搭建
- 上传至威胁感知平台直接分析
- 使用DNSQuerySniffer和Process Monitor定位进程
- 网络流量分析
- 文件属性(IDAPro Ollydbg)
- 域前置隐藏
- 环境搭建
- 威胁感知
- 流量分析
- 云服务API网关/云函数
- 云函数使用HTTP
- cs的流量可以简单的分为三个阶段
- 云函数使用HTTPS
- 总结
- 参考
CDN隐藏C2地址
使用CDN内容分发网络的多节点分布式技术,通过“加速、代理、缓存”隐藏在后面的静态文件或服务;最终实现对外暴露的是CDN多节点的公网域名IP,很难甚至无法溯源真实后端服务器的域名或IP
环境搭建
直接搭建环境模拟环境(未免杀)
先上传至奇安信与微步在线,全程CS正常开启
上传至威胁感知平台直接分析
微步在线
这里的api/x路径是我在CS配置文件profile中做的混淆(可以自定义,不算是特征)
使用DNSQuerySniffer和Process Monitor定位进程
网络流量分析
一个一个数据包翻找确实难受,再加上是HTTPS流量,配合HIDS等设备导入数据包分析起来可能更好一些
文件属性(IDAPro Ollydbg)
……
缺点
1、受控主机通过我们自己的域名进行回连,对外还是可以看到连接域名(下一步就是找到CDN后的真实IP),域名会暴露
子域名、IP历史记录解析查询、网站订阅邮件、网站订阅邮件、国外超级ping、https证书……
如果使用国内CDN服务,域名必须ICP备案(被溯源的可能性就会更大),关键是使用一个不备案的域名,否则这个方式毫无用处
2、受控主机还是通过我们自己的域名进行回连,对外还是能看到连接域名;且如果使用国内CDN的服务(增加了风险),域名就必须完成ICP备案(增加了风险);而且还有一些方法可能溯源到真实IP
这种技术对http与https没有强制要求,都可以使用,而域前置技术要求是https
域前置隐藏
底层技术还是CDN,但是我们使用了其他正规可靠的域名进行连接(比如:www.baidu.com),通过设置HOST=zh.wikisoft.tk修改host头的原理,让CDN将连接指向我们期望的C2服务器;最终实现受控主机通过回连!如果使用https的话,除非逆向程序获取host头信息,否则无法获取到真实连接域名
环境搭建
搭建小插曲:把433端口看成了443 emmm
威胁感知
这里简单进行执行命令,配合一下沙盒动态调试,实战情况下对木马进行反沙盒反调试(免杀)操作之后,威胁感知平台是很难分析出来的,这里只对域前置进行研究,排查其他因素干扰
奇安信:
直接只看到了伪造的域名,不过有经验的话可以通过w.kunlunaq.com后缀名可以知道这是阿里云cdn CNAME配置后缀
微步在线
微步NB!这里测试了几种样本,差不多都可以找到最终的CS服务器域名
这里做了命令交互所以很快就找到了真实CS服务器地址
流量分析
这里可以看到,连外联域名也发生了更改
优点:本方案使用高信誉域名进行连接,通常安全设备很难检测,也很难封堵;
缺点:配置和准备条件较多步骤比较复杂,国内好像只有阿里云支持域前置,建议还是使用国外的cdn服务,不需要备案,再加上免杀的话效果可能更好一些
云服务API网关/云函数
api网关透明转发代理后端服务!;云函数底层使用的就是api网关,只是云函数的功能更高级一点,当client调用网关接口时,通过编程进行修改输入参数;同理api网关接受到代理的后台服务返回的内容是可以再次修改返回内容,最终将信息返回给client;
云函数使用HTTP
使用科来工具抓包
为了方便分析,这里可以看到我是使用http上线的。稍后使用https协议上线
cs的流量可以简单的分为三个阶段
1、stage下载(具体看你怎么生成的后门)
对比服务端配置的profile文件,以及返回包的乱码数据
这里的返回header部分具有一些云函数特征
X-Api-RequestId: xxx
X-Api-ID: xxx
Date: Wed, 19 Apr 2023 04:16:48 GMT
X-Request-Id: xxx
X-Api-FuncName: helloworld-xxx #函数名 建议伪装成熟悉的业务名
X-Api-AppId: xxx
X-Api-ServiceId: service-ausqwb41
X-Api-HttpHost: xxx
X-Api-Status: 200
X-Api-UpstreamStatus: 200
2、beacon的心跳包阶段
3、执行C2服务器的命令并将结果回传阶段
……
云函数使用HTTPS
好像真没有特别好的应对措施……
批量上线消耗对方云函数调用资源
关于溯源如果可以的话,可以联系腾讯云客服配合调查
优点:本方案使用高信誉域名进行连接,通常安全设备很难检测,也很难封堵;
总结
1、不备案的域名+禁用不必要的域名解析记录(防止被溯源收集到更多信息)
2、使用HTTPS通讯
3、C2服务器混淆基础特征-修改profile配置文件,修改ssl证书
4、CS服务端防火墙做策略,仅允许目标主机网段连接,防止其他网段主机对其进行扫描,防溯源
5、加跳板、代理等,当然最重要的是免杀了……
参考
https://www.freebuf.com/sectool/270669.html
https://xz.aliyun.com/t/11625