西工大遭网袭细节起底:网安技术武器化分析
2022-9-21 11:14:28 Author: 瑞不可当(查看原文) 阅读量:43 收藏

0X01事件背景

2016年,名为The Shadow Broker(影子经纪人)的黑客组织泄露了部分美国国家安全局(NSA)方程式组织(Equation Group)的工具,具备在当时的互联网上为所欲为的水平。今年2月,中国的研究人员报出了”电幕行动”的存在。其使用的Bvp47作为顶级后门,已入侵多国的基础设施。同年9月西工大被攻击事件,我国网络安全人员在失陷机器上发现的“饮茶”(suctionchar_agent)嗅探窃密器正是Bvp47的核心组件。巧合的是,在2016年泄露的方程式组织工具包中发现了“饮茶”的踪迹。又佐以其他分析,可以确切的说正是方程式组织所为。这么一来,可谓是抓了一个美国国家安全局一个现行。说明我国的网络安全技术,应急响应水平正在不断提升中,初见成效。
着我国对APT和更多黑客组织的认知深入,据三六零公司发布的国家级黑客组织攻击能力象限图显示,NSA的黑客组织在世界范围内依旧是顶级的。

今年的两次安全事件中比较活跃的Bvp47,隶属于NSA方程式组织的顶级后门工具,它的命名由来是基于样本中最常见的字符串Bvp和加密算法中使用数值0x47。

0x02后门初探

静态分析

Bvp47文件基本信息(https://www.joesandbox.com/analysis/577431/0/html)

NAME

Blnbq7jwT6.bin

MD5

58b6696496450f254b1423ea018716dc

SHA1

ad0197db424b35314a479552875e18893a4ba95a

SHA256

7989032a5a2baece889100c4cfeca81f1da1241ab47365dad89107e417ce7bac

      Mitre ATT&CK图谱显示,这个样本涉及APT攻击的多个阶段,并且具备极强的隐蔽性。

它由Bvp47_loaderBvp47_payload组成。loader 主要负责 payload 的解密和内核模块加载,启动payload中隐藏的DewdropSuctionchar_Agentpayload 是经过压缩,加密处理的18个分片。

Bvp47_loader

Bvp47_payload

Payload 18个分片:

动态分析,payload攻击示意图:

  1. 运行于内核层的sum会辅助“饮茶”嗅探木马(Suctionchar_Agent)窃取passwd、telnet、su等进程中的账号密码;

  2. 窃取到的账号密码会同步发送给运行于Ring3的“饮茶”嗅探木马;

  3. “饮茶”嗅探木马会将账号密码保存到名为“/var/tmp/.xxxxxxxx”的隐藏目录中;

  4. 攻击实施者远程发送执行ish反弹的触发包到内核层的BPF过滤程序;

  5. BPF过滤器捕获到特征包后传送给Ring3的Dewdrop程序模块;

  6. Dewdrop进行数据包解密并收到ish反弹指令,随即转送给Incision程序;

  7. Incision程序主动回联到callback地址,攻击实施者利用ish接受窃取的密码文件;

  8. 攻击实施者将被RSA公钥加密的密码文件进行私钥解密并还原密码文件;

Bvp47之所以难以发现是由于Dewdrop的隐蔽信道通讯技术和Suctionchar_Agent的加密混淆设计,给防守者造成了极大的难度。

0x03核心组件—Dewdrop

和常见的DNSHTTPTCPSMTP隧道不同的是,Dewdrop利用SYN报文进行唤醒,结合BPF隐蔽隧道进行通讯和控制。
BPFBerkeley Packet Filter)是 Linux 内核中用来过滤自定义格式数据包的内核引擎,支持在系统内核层或者更底层过滤包,这样BPF会只把你需要的包送到上层软件(比如在tcpdump中是先送给libpcap,再送给tcpdump),避免从操作系统内核态向用户态复制所有包。
由于常见的网络检测设备一般不会对 TCP 握手期间的数据包做检测的弱点,Dewdrop使用在第一个SYN 包中夹带数据的方式来躲避网络安全设备的检测。

入侵者视角:

攻击者穿透安全网关向DMZ区失陷的Email服务器的443/80端口发送一个带有264字节PayloadSYN包,之后失陷的Email服务器向攻击者机器的高端端口发起对外连接并保持交换大量数据,数据通信是加密的。失陷的Email服务器接收到指令,利用0DAY漏洞例如MS17-010漏洞向内网服务器发起攻击。攻击成功后内网服务器借助SMB协议与DMZ区的邮件服务器进行非正常通信:执行恶意脚本,泄露敏感信息等。
以上完成了边界入侵,内网横向移动。失陷的邮件服务器充当了内部机器与攻击者之间的数据中转和跳板,进行命令执行和文件传输。

0x04核心组件—Suctionchar_Agent

饮茶(Suctionchar_Agent)作为主要嗅探和信息窃取工具,承担核心恶意功能。同时,攻击者为了在不同操作系统和CPU架构上完成攻击,适配了不同的运行环境。

例如:

饮茶(Suctionchar_Agent)分两部分,内核模块和应用层代理。内核模块使用modload加载,从/dev/tty文件中窃取信息。/dev/tty这个文件可以实时读取键盘的输入,任一控制台终端的进程信息等。再加上它可以有多个用户同时使用,而且相互之间不会发生冲突。内核模块sum就作为/dev/tty终端设备的敏感信息偷猎者,实现了恶意功能。
应用层代理和内核模块通讯接收窃取到的SSHTELNETFTPPASSWDRSHLOGIN等程序中的账号密码信息可通过配置文件控制窃取指定的应用。

接收到的账号密码信息由应用层代理使用非对称加密算法写入文件/var/tmp/.xxx,只有攻击者的私钥才能解密读取。
此外,为了躲避安全产品的检测,饮茶(Suctionchar_Agent)的payload在释放和实际运行过程中还使用了多种技术手段。例如在加载过程中修改ELF文件特征,使用自带的lkm loader进行加载;在传输过程中使用 RSA+RC-X加密算法;在运行过程中Hook系统API,实现了网络,进程,文件的隐藏和SeLinux的绕过。尽量隐藏对外暴露的部分,例如代码片段中的导出函数使用随机字符串替代有具体含义的英文单词;内核模块加载完立刻删除落地文件,清理痕迹。

0x05防守者的启示

当我们了解透彻了攻击者的思路,对于防守方也会有很多启示。近些年应对复杂威胁应运而生的XDR(Extended Detection and Response),需要把收集安全遥测数据的探针(触角)做得再强大一些,不仅仅是传统的基于特征码的检测手段,还需要加入基于机器学习的异常流量的检测,异常事件,可疑文件的提取。引入评分机制,适时加入人工介入分析。更多的,XDR中的X可以探索一些新角度的探针,以丰富数据的维度,比如内核级的控制流完整性的保护,这对于hook技术来说是极大的打击。引入拟态防御,在关键位置构造动态冗余组件,其上运行相同业务,这样未知输入经过异构组件产生的异常输入,就极大可能是一次攻击行为。当然0day漏洞的及时发现和处理也是老生常谈的问题,需要不断提升安全能力才能应对突发的安全事件。

文章来源: http://mp.weixin.qq.com/s?__biz=MzkzODI1NjMyNQ==&mid=2247484172&idx=1&sn=40fdc223a81da01e8b32b44eafb546ee&chksm=c283b1a6f5f438b081faff29fe2fd3efaa35e7c3e7f1c64bbc2435d9d92df568cd5df715916a#rd
如有侵权请联系:admin#unsafe.sh