本文已参与「新人创作礼」活动,一起开启掘金创作之路。
是谁打来的?
——新型恶意软件利用VolP漏洞发起攻击
我们发现了一种新的恶意软件(有电话机器人,VOS线路问题或要演示站AI技术支持,外呼中心搭建找博主。VX_ID:3307623172将其命名为CDRThief),该软件旨在攻击特定的VoIP平台,所有被攻击的平台都运用在中国生产的两个软交换机上:Linknat VOS2009和VOS3000。软交换机是提供呼叫控制,计费和管理的VoIP网络的核心。这些软交换机是在标准Linux服务器上运行的基于软件的解决方案。
这个恶意软件的主要目标是从受感染的中窃取各种私有数据,包括详细呼叫记录(CDR)。CDR包含有关VoIP呼叫的元数据,例如呼叫者和被呼叫者IP地址,呼叫开始时间,呼叫持续时间,呼叫费用等。
为了窃取此元数据,恶意软件会查询软交换使用的内部MySQL数据库。因此,攻击者已经充分了解目标平台的内部体系结构。
01
Linux/CDRThief 分析
ALinux/CDRThief analysis
我们是在一次试验版本的反馈中发现了这一恶意软件,再加上Linux系统的恶意软件非常少见,所以这一恶意软件成功引起了我们的注意。更有趣的是,这个恶意软件很快就锁定了特定的Linux VolP平台。它的ELF二进制文件是由Go编译器生成的,其调试符号未作任何修改,这对于我们分析其危害性具有很大的帮助。
为了从基本静态常量中分析隐藏的恶意功能,作者使用XXTEA和密钥fhu84ygf8643对所有可疑字符串进行了加密,然后对它们进行base64编码。下图显示了恶意软件在运行时用来解密这些字符串的一些代码。
用于解密二进制字符串的例程
为了访问存储在MySQL数据库中的内部数据,该恶意软件从Linknat VOS2009和VOS3000配置文件中读取信用证书,并尝试在以下路径中找到这些信用证书:
/usr/kunshi/vos2009/server/etc/server_db_config.xml
/usr/kunshi/vos3000/server/etc/server_db_config.xml
/home/kunshi/vos2009/server/etc/server_db_config.xml
/home/kunshi/vos3000/server/etc/server_db_config.xml
/home/kunshi/vos2009/etc/server_db_config.xml
/home/kunshi/vos3000/etc/server_db_config.xml
/usr/kunshi/vos2009/server/etc/serverdbconfig.xml
/usr/kunshi/vos3000/server/etc/serverdbconfig.xml
有趣的是,配置文件的密码是被加密存储。尽管如此,Linux / CDRThief恶意软件仍然能够读取和解密它。
因此,攻击者必然对目标平台有深入的了解,因为据我们所知,所使用的算法和加密密钥并未记录在案。这意味着攻击者必须对平台二进制文件使用了逆向工程或以其他方式来获取有关Linknat代码中使用的AES加密算法和密钥的信息。
如下图所示,CDRThief使用JSON通过HTTP与C&C服务器通信。
捕获的网络通信的Linux/CDRThief恶意软件
Linux / CDRThief的代码中有多种功能可用于与C&C服务器进行通信,下表包含了恶意软件作者使用的这些功能的初始名称。
表1
用于与C&C交流的功能
main.pingNet
/dataswop/a
检测C&C循环是否在执行 main.getToken /dataswop/API/b
获取令牌
main.heartbeat /dataswop/API/gojvxs
主C&C循环,每三分钟调用一次
main.baseInfo /dataswop/API/ojvxs 概述有关受感染的Linknat 系统的基本信息:
MAC地址
cat/proc/version
软件简介
cat/etc/redhat-release
来自/bin/ibus_10.mo(或/home/kunshi/base/ibus_10.mo的UUID
main.upVersion /dataswop/下载/更新GoG oGoGoGo 更新为最新版本
main.pushLog /dataswop/API/gojvx 上传恶意报错日志
main.load /dataswop/API/gojvxs 提取有关平台的各种信息
information_schema.TA BLES中选择SELECT SUMTABLE_ROWS)在table_name中为’e_cdr_%
cat /etc/motd
用户名,加密密码,数据库 的 IP地址
来自server.conf的ACCESS_UUID
VOS软件版本
main.syslogCall /dataswop/API/gojvx 从e_syslog表中提取数据
main.gatewaymapping /dataswop/API/gojvx e_gatewaymapping表中提取数据
为了从平台中窃取数据,Linux / CDRThief会直接对MySQL数据库执行SQL查询。该恶意软件会主要对MySQL数据库里的三个表感兴趣:
e_syslog – contains log of system events
e_gatewaymapping – contains information about VoIP gateways (see Figure 3)
e_cdr – contains call data records (metadata of calls)
反汇编初始化SQL查询的函数的代码
从e_syslog,e_gatewaymapping和e_cdr表中窃取出的数据经过压缩,然后使用硬编码的RSA-1024公钥加密。并且,只有恶意软件作者或操作员才能解密被窃取的数据。
基于我们所描述的功能,可以说恶意软件攻击的重点是从数据库收集数据。与其他漏洞不同,Linux / CDRThief不支持执行shell的命令行指令或从受感染的软交换机的磁盘中窃取特定文件。但是,这些功能可能会在新版本中实现。
该恶意软件可以使用任何文件名部署到磁盘上的任何位置。我们目前还不知道每次启动恶意软件所使用的是哪种类型的数据持久化。值得一提的是,一旦启动了该恶意软件,它将尝试使用以下命令启动在Linknat VOS2009 / VOS3000平台上存在的合法二进制文件:
exec-a’/home/kunshi/callservice/bin/callservice-r /home/kunshi/.run/callservice.pid’
这表明该恶意软件可能会伪装成Linknat软交换软件的组件,以某种方式插入平台的常规启动流程中,以实现数据持久化。
但目前我们还不知道恶意软件是如何部署到受感染的主机上的,有可能是通过蛮力攻击或利用漏洞来访问设备的。
02
总结
Conclusion
本篇文章中,我们分析了Linux / CDRThief恶意软件,该恶意软件对特定的VoIP软交换有很强的针对性。在这之前,针对VoIP软交换的攻击是很少见的。这也使Linux / CDRThief恶意软件变得有趣起来。
我们目前还不能确定此恶意软件的攻击者的最终目标。但是,由于该恶意软件会泄露包括呼叫元数据在内的敏感信息,因此我们推测该恶意软件是用于网络间谍活动或者VolP欺诈。
感兴趣的朋友可以持续专注下这个问题。