抓住这只内鬼:Syslogk Rootkit !
2022-7-20 14:9:26 Author: 微步在线研究响应中心(查看原文) 阅读量:42 收藏


1
前言

微步在线研究响应中心的安全研究人员通过持续对互联网上恶意软件的跟进,发现了一个名为 Syslogk 的恶意软件。Syslogk 至少最早出现于2022年2月,它采用了内核态 rootkit + ELF 后门组合,实现了集 rootkit 与后门一体化。相关资料指出 Syslogk rootkit 会与其产生的虚假SMTP服务经过特定的数据验证后,再接受特定的数据即可产生后门。Syslogk 主要功能有隐藏进程、隐藏目录,它将持续监听网络流量,一旦接受到黑客发送特定的数据包,就会去触发隐藏在受害机上的后门,会反弹一个可以执行任意命令的 shell。恶意软件利用这些特性可以降低其自身被相关防护设备检测到的风险。

微步在线通过对相关样本的溯源分析,提取多条相关 IOC ,可用于威胁情报检测。微步在线主机威胁检测与响应平台 OneEDR 、微步  HFish 蜜罐微步云沙箱等均已支持对此次攻击事件和团伙的检测。
2
样本特点

SHA256

68facac60ee0ade1aa8f8f2024787244c2584a1a03d10cda83eeaf1258b371f2

MD5

cb093453576184d1a2f59063dafa7f80

文件格式

ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), BuildID[sha1]=f9d8efc865d6b04eb94e8a0c76c36b518dd5bf96, with debug_info, not stripped

文件大小

408.03KB

快速浏览样本字符串阶段,发现样本里面内嵌了字符串 “syslogk.mod.c”,因此被命名为 Syslogk rootkit
通过分析样本,发现该 rootkit 主要的目标似乎是 Linux 2.6.x 内核的 Linux

Syslogk rootkit 的隐藏模块 hide_module,利用 Linux kernel API 调用的 list_del  函数,这个函数可以通过删除进程链表节点,从而达到实现隐藏进程的目的。

nw_root_filldir 函数通过利用C语言的 strstr 函数比较进程列表的名字,判断进程名是否为 “-Zobk0jpi”,若是则隐藏该进程。

在样本里发现了 “PgSD93q” 字符串,这是黑客为了不让管理员察觉到异常进程而使用的伪装术,同时该字符串前面也包含了隐藏模块的 “-Zobk0jpi” 的字符串,通过拼接2条字符串形成一个完整的路径 /etc/rc- Zobk0jpi/PgSD93ql

通过分析 Proc_write 函数可知,如果 mytest_flag 不为0 则取消隐藏进程的功能。


Rootkit  通过对启动的虚假 SMTP 服务器的 “magic packet” 检验较为简单。首先,检查所接受到的数据包头是否 TCP 数据包;其次,要求链接源端口为59318。如果都符合,则会启动 Rekoobe 木马,启动木马后就会进入监听数据包的阶段。



SHA256
11edf80f2918da818f3862246206b569d5dcebdc2a7ed791663ca3254ede772d
MD5
a874271e10b9c094f72fca6566d947fe
文件格式
ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.18, BuildID[sha1]=5efe2ec6984202ab2b4a1d6bddaf15c2a9197adf, stripped
文件大小
19.05KB

Rekoobee 样本里面内嵌了一个证书和私钥,启动 SMTP 时使用其进行 TLS 加密。

证书和私钥如下:


启动木马后,会检查接受到的命令是否为 “STARTTLS”;是的话则判定正确,跳转到 “ready to start tls” 阶段, 并且等待 TLS 数据去触发这个后门。

我把函数 sub_4018BD 命名为 send_data,一个变量重命名为 recv_cmd,该函数主要功能是向接收端发送指定的数据以及接收端发送给受害机的命令。

3
复现环境
本地环境:Centos 6  (Linux kernel 2.6.32-754.35.1.el6.x86_64)
本地使用 insmod 加载恶意内核模块 syslogk,利用 lsmod 命令过滤 syslogk 发现不存在该模块,通过结合上面分析的 proc_write 函数可知,隐藏进程标识号不为“0”则取消隐藏进程 。
通过启动 Rekoobe (此处为了方便演示就没采用特定的隐藏字符串命名), 发现其打开的端口为 46825 , 通过 telnet 命令链接本地46825端口可发现该木马启动了 SMTP 服务,输入命令 “starttls” 即可看到开启 tls,等待接受指令
通过把相关木马部署在公网的机器,并使用扫描器扫描该端口,发现 Rekoobe 确实是启动了 SMTP 服务。

为了触发 Rekoobe 后门命令,必须通过 TLS 发送0x03字节,根据 TLV 编码数据再发送 tag 为“ %” 以及长度为4的任意数据,随即会反弹一个 root 权限的 shell


这时,有些彦祖们就会问了,OneEDR 能不能检测这些新诞生的木马。答案是可以的。
微步 OneEDR 支持 Syslogk rootkit 以及 Rekoobe 木马的相关检出。


基于微步在线旗下免费产品,HFish蜜罐与S沙箱的联动,HFish蜜罐与S沙箱均支持 Syslogk 木马的相关检出。

4
总结
文中涉及到的 Syslogk rootkit,它不但可以隐藏进程、目录以及网络流量,还可以加载一个名为 “Rekoobe” 的后门。这个 rootkit 通常在系统中处于休眠状态,直到收到攻击者发送的“敲门”数据包后门才会生效。近几年,“敲门砖”式后门越发盛行,似乎这是后门木马的一个新的风向标。内核级的 rootkit 难以发现和清除,各厂商应该加强自身的防护,提高网络安全事件应急处置能力,以免损失进一步扩大。

OneEDR 是一款专注于主机入侵检测的新型终端防护平台,通过利用威胁情报、行为分析、智能事件聚合、机器学习等技术手段,实现对主机入侵的精准发现,发现已知与未知的威胁。充分利用 ATT&CK 对攻击全链路进行多点布控,全面定位入侵行为路径,并通过“进程链”快速掌握事件的影响范围以及事件的概括,从而精准溯源。

处置建议

1、排查 /proc 目录是否含有 syslogk 文件,若存在则输入命令:
“echo 1> /proc/syslogk;rmmod syslogk” ;
2、排查进程是否有 “PgSD93ql” 或者 “Zobk0jpi” 进程,若有则杀死该进程。
5
 IOC
cb093453576184d1a2f59063dafa7f80
a874271e10b9c094f72fca6566d947fe
---End---

内容转载与引用

1. 内容转载,请微信后台留言:转载+转载平台

2. 内容引用,请注明出处:以上内容引自公众号“微步在线研究响应中心”
点击下方,关注我们
第一时间获取最新的威胁情报


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg5MTc3ODY4Mw==&mid=2247494554&idx=1&sn=3ab945e0ad3fee238e566539f291cd81&chksm=cfca888ef8bd01982cbb7970a63e6003e83352a6b839ff8388a5a845f71de9eb112c100f8132#rd
如有侵权请联系:admin#unsafe.sh