“白象”2023年迭代武器“badnews”通讯流量检测–Suricata6.0

APT 7个月前 admin
56 0 0

0|前

前文对木马样本运行流程做了分析,有兴趣可以移步看一看。提取通讯特征相关IOC是木马逆向的主要目的之一,域名、IP等、hash等IOC信息可以放入黑名单库中,而通讯特征可以编写检测规则在流量中匹配。

文章使用suricata6.0检测引擎,编写配套规则匹配“badnews”木马通讯特征。

1|背景

Suricata是一个强大的、开源的网络入侵检测系统(IDS)和网络安全监控工具,它的检测引擎用于检测网络流量中的恶意活动和安全事件,Suricata的检测引擎基于规则和模式匹配技术,它可以分析网络流量,检测各种安全威胁,包括病毒、蠕虫、恶意软件、入侵尝试、DoS(拒绝服务)攻击等等。

诸位师傅们在护网行动、重保见过多数厂商的流量设备,其“流量捕获”“检测引擎”两大模块都改自Suricata。

2|检测规则编写

检测规则编写两个关键点,一是正确匹配,二是精度匹配,正确告警和降低误报都很重要。

首先特征提取,不同通讯协议的木马采用不同的优化匹配顺序,“badnews”木马使用http协议通讯,该类数据包通常先匹配应用层议固定字段(即http头),再匹配用户定义字段(http主体)。若该层协议特征不明显或者密文,再下到传输层匹配(例如外连端口、标志位、载荷长度等),网络层IP、TTL值等。

过前文逆向调试分析该样本如下表格字段都是硬编码写在木马程序中的,都可以作为特征匹配(字段比较多,特征还是很明显的,这里列举部分关键的)。

字段名称 值(说明) 通讯阶段

http.method

POST
全阶段
http.url /vwnykzjzy2si478c7a2w/terncpx8yr2ufvisgd2j/x8jb9g97kkexor5ihnbq/d91ng62l00hc4vgaxkf.php 全阶段
http.content-type
application/x-www-form-urlencoded; charset=utf-8 全阶段
http.host bingoplant.live 全阶段
qadc= uuid,动态密文 全阶段
jsve= 受害主机用户名,动态密文 心跳包
SL= 受害者网络出口IP,动态密文 心跳包
edcaa= ZG9uZQ==,base64编码固定字段 上线结束包
olmn= huik,固定字段 上线结束包

规则详细字段就不赘述了,若感兴趣可以访问suricata官方文档。

https://docs.suricata.io/en/suricata-6.0.0/index.html

这里直接给到规则,若有需求自便。

#上线数据包alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"APT白象 武器-badnews-2023 上线"; flow:established,to_server;  content:"POST"; http_method; content:"/vwnykzjzy2si478c7a2w/terncpx8yr2ufvisgd2j/x8jb9g97kkexor5ihnbq/d91ng62l00hc4vgaxkf.php";http_uri; http.content_type; content:"application/x-www-form-urlencoded; charset=utf-8"; http.request_body;pcre:"/qadc=/";pcre:"/olmn=puik/"; sid:12003120; )#上线结束数据包alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"APT白象 武器-badnews-2023 上线结束"; flow:established,to_server;  content:"POST"; http_method; content:"/vwnykzjzy2si478c7a2w/terncpx8yr2ufvisgd2j/x8jb9g97kkexor5ihnbq/d91ng62l00hc4vgaxkf.php";http_uri; http.content_type; content:"application/x-www-form-urlencoded; charset=utf-8";http.request_body; pcre:"/edcaa=ZG9uZQ==/";pcre:"/olmn=/"; sid:12003121; )#心跳包alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"APT白象 武器-badnews-2023 心跳"; flow:established,to_server;  content:"POST"; http_method; content:"/vwnykzjzy2si478c7a2w/terncpx8yr2ufvisgd2j/x8jb9g97kkexor5ihnbq/d91ng62l00hc4vgaxkf.php";http_uri; http.content_type; content:"application/x-www-form-urlencoded; charset=utf-8"; http.request_body;pcre:"/jsve=/";pcre:"/SL=/"; sid:1200312; )

通常会去除域名、url匹配,保留通讯细则特征再写一套规则,因为目标可能会更换外联地址为别的域名,若木马使用相同的通讯结构,这样还可能发现新的外链地址。

3|告警信息输出

在调试木马时我抓取了数据包。

“白象”2023年迭代武器“badnews”通讯流量检测--Suricata6.0

直接导入配置好的检测引擎。

“白象”2023年迭代武器“badnews”通讯流量检测--Suricata6.0

suicata的原生告警输出如下。

09/18/2023-15:04:30.794206  [1:12003120:0] APT白象 武器-badnews-2023 上线 [高危] [Classification: APT事件] [Priority: 3] {TCP} 169.254.216.11:52046 -> 169.254.144.149:8009/18/2023-15:46:36.779496  [1:12003121:0] APT白象 武器-badnews-2023 上线结束 [高危] [Classification: APT事件] [Priority: 3] {TCP} 169.254.216.11:52457 -> 169.254.144.149:8009/19/2023-14:03:03.283421  [1:1200312:0] APT白象 武器-badnews-2023 心跳 [高危] [Classification: APT事件] [Priority: 3] {TCP} 169.254.216.11:53284 -> 169.254.144.149:80#告警数据包通讯时间  [?] 告警信息 [威胁等级] [告警分类] [优先级信息] 五元组信息

这样在其他网络环境中能有此告警,匹配到就是一个APT事件了,蓝队上大分。

原文始发于微信公众号(帅仔回忆录):“白象”2023年迭代武器“badnews”通讯流量检测–Suricata6.0

版权声明:admin 发表于 2023年9月20日 下午6:30。
转载请注明:“白象”2023年迭代武器“badnews”通讯流量检测–Suricata6.0 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...