前言
某日,深信服刘同学,一位办事处拥有多年应急经验的老手,像往常一样忙碌而娴熟的处理所在区域的各种安全应急事件。突然,某客户求助,称深信服的安全感知产品检测到了异常威胁,需要协助分析处置。
0x01 刘同学
刘同学打开安全感知平台,找到对应主机,发现报的是虚拟货币挖矿。刘同学会心一笑,挖矿检测有近乎100%的准确率,抓个挖矿小病毒,跟日常打怪一样简单。
但是接下来的事情,突破了刘同学的认知,差点看瞎他的双眼。
0x02 看瞎双眼
那是一台Linux服务器,刘同学通过ps命令就轻易定位到了挖矿进程,但是接下来的事情并不轻松,他尝试了各种方式,始终无法找到挖矿进程对应的文件。
这种不合常理的现象,令他百思不得其解,甚至怀疑中了rootkit病毒,但尝试rootkit扫描工具,仍然一无所获。
挖矿进程对应文件指向两处,一处是 /usr/sbin/apache ,一处是 /tmp/.ICE-unix/. ./m 。
但是无论他使用何种命令,甚至逐一检查了rc.d、crontab、init下面的各种启动项,翻遍了临时目录、用户目录、进程目录……花费了很多时间,望眼欲穿,都无法找到哪怕一个病毒文件。
cd到对应目录,使用ls -al就是看不到任何可疑文件,按道理应该不会自删除。
刘同学向总部请求协助的时候,表示自己“已经瞎了”!
0x03 柳暗花明
总部EDR安全团队接到这个协助请求的时候,还是有很大压力的,同时也联合了安全感知的安全专家参与分析。
刘同学一直是娴熟的应急人员,能让他“看瞎”的,并不多,可能水比较深。
总部安全专家远程接入后,也按照刘同学提供的信息,进行一一确认,同样也没有找到有效信息。
接下来,使用大法,直接把挖矿进程的内存dump出来,观察其关键字符串。
使用strings -n 8将字符串过滤出来,看到如下信息:
这引起了我们的警觉,总感觉哪里不对。
我们重新再cd到/tmp/.ICE-unix/,再一次使用ls -al查看该目录下面所有文件。
停在这里(上图),大概盯了有好几分钟时间,陷入了沉思……
突然,再一猛看,端倪就出来了,某个字符貌似不对。仔细观察上图(后期特意放大了几倍),倒数第三行,貌似不对,它的两个点“空隙”比别的稍微“大”了那么一丢丢(要拿尺子量的那种大,目测毫米级别) 。
真实远程界面,一般字体都非常小,上面是正常的画面(大屏小字体),这边后期加了黑色背景来体现差异。所以,每次进入到这个目录,刘同学就自然而然的以为只有“.”和“..”,殊不知,还有一个“. .”(这里面的两个点之间是有一个空格的)。
一个点是当前目录,两个点是上级目录,两个点加个空格就是一个全新的目录。
再往上翻,dump内存引起我们警觉的那一行,回头一想,ASCII码40就是表示空格啊!
0x04 样本剖析
要进入那个吊诡的文件夹,还不能直接cd . .(注意,这两点之间有空格),需要cd “. .”,即加一个双引号,防止转义。
该文件夹下一共有10个文件,其中x、a、u、r为恶意脚本,?、b、c、d,h和m恶意可执行文件。
执行流程 x -> a -> u -> r -> h (隐藏 & 运行 m ) -> m (挖矿),为了执行真正的挖矿,绕了一大圈。
入口脚本x (以下所有#标注的汉字,均为我们后期备注说明)
释放脚本a
清除脚本u
启动脚本r,如下图,进程路径同时也伪装成了/usr/sbin/apache,是一个不存在的路径。
./h是进程伪装工具XHide,网上有开源代码,那个/usr/sbin/apache路径就是XHide伪装的。
原理也很简单,调用execv创建目标进程。
挖矿病毒就是开源的xmrig,从config.json中读取钱包地址后开始挖矿。
为了做隐藏,黑客做了一些小技巧,一个是利用肉眼视觉惯性和疲劳,创建了一个肉眼难以察觉的目录,另外一个小技巧,就是利用Xhide黑客工具伪装出了一个不存在的文件位置/usr/sbin/apache,放了一个烟雾弹。
仔细想想,黑客做的这些小技巧,确实蒙蔽了大多数的人,也起到了四两拨千斤的效果!
0x05 追根溯源
隐藏的根因我们已经挖到了,入侵根因呢?
我们在/var/log/secure日志当中发现了有端倪的现象,这个Linux系统安全日志,记录用户和工作组变化情况、用户登陆认证情况,其有大量认证失败的日志。
源地址为XX的IP大量尝试了不同的用户名与密码。从23日凌晨开始一直在持续,用户名是按照字符排序进行尝试,于凌晨XX点XX分XX秒时刻成功爆破。
0x06 回首总结
这里,我们再一次回顾这个事件。有一点,用户做得特别好,就是及时关注了深信服安全感知平台的安全事件,极早了排除安全隐患。
挖矿病毒是当前安全事件中最为流行的一种病毒,深信服安全感知对这类病毒有近乎100%的准确率。
此外,建议用户对Linux主机进行安全基线的加固,增加密码的复杂度与帐号锁定策略。
这里还有一点,如果用户部署了深信服终端检测响应平台(EDR),那么用户将直接可以对告警主机进行查杀,无需人工干预,即可做到快速处置。对于肉眼难以发现的空格隐藏问题,必然是无障碍清理的!再也不用担心“眼瞎”了。
0x07 相关IOC
BBD807BCC2596FD7EEC38BFCBED9F5A5
60103B3D5FD524BBDA4682E5B0C6560E
*本文作者:千里目安全实验室,转载请注明来自FreeBuf.COM