freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Linux应急故事之四两拨千斤:黑客一个小小玩法,如何看瞎双眼
2018-11-02 09:00:14

前言

某日,深信服刘同学,一位办事处拥有多年应急经验的老手,像往常一样忙碌而娴熟的处理所在区域的各种安全应急事件。突然,某客户求助,称深信服的安全感知产品检测到了异常威胁,需要协助分析处置。

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将字符串过滤出来,看到如下信息:

使用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 (以下所有#标注的汉字,均为我们后期备注说明)

入口脚本x

释放脚本a

释放脚本a

清除脚本u

清除脚本u

启动脚本r,如下图,进程路径同时也伪装成了/usr/sbin/apache,是一个不存在的路径。

启动脚本r

./h是进程伪装工具XHide,网上有开源代码,那个/usr/sbin/apache路径就是XHide伪装的。

伪装工具XHide

原理也很简单,调用execv创建目标进程。

创建目标进程

挖矿病毒就是开源的xmrig,从config.json中读取钱包地址后开始挖矿。

开源的xmrig

为了做隐藏,黑客做了一些小技巧,一个是利用肉眼视觉惯性和疲劳,创建了一个肉眼难以察觉的目录,另外一个小技巧,就是利用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

# 伪装 # Linux应急故事
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者