Linux应急故事之四两拨千斤:黑客一个小小玩法,如何看瞎双眼

栏目: 编程工具 · 发布时间: 6年前

内容简介:某日,深信服刘同学,一位办事处拥有多年应急经验的老手,像往常一样忙碌而娴熟的处理所在区域的各种安全应急事件。突然,某客户求助,称深信服的安全感知产品检测到了异常威胁,需要协助分析处置。刘同学打开安全感知平台,找到对应主机,发现报的是虚拟货币挖矿。刘同学会心一笑,挖矿检测有近乎100%的准确率,抓个挖矿小病毒,跟日常打怪一样简单。

前言

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

0×01 刘同学

刘同学打开安全感知平台,找到对应主机,发现报的是虚拟货币挖矿。刘同学会心一笑,挖矿检测有近乎100%的准确率,抓个挖矿小病毒,跟日常打怪一样简单。

Linux应急故事之四两拨千斤:黑客一个小小玩法,如何看瞎双眼

但是接下来的事情,突破了刘同学的认知,差点看瞎他的双眼。

0×02 看瞎双眼

那是一台 Linux 服务器,刘同学通过ps命令就轻易定位到了挖矿进程,但是接下来的事情并不轻松,他尝试了各种方式,始终无法找到挖矿进程对应的文件。

Linux应急故事之四两拨千斤:黑客一个小小玩法,如何看瞎双眼

这种不合常理的现象,令他百思不得其解,甚至怀疑中了rootkit病毒,但尝试rootkit扫描工具,仍然一无所获。

挖矿进程对应文件指向两处,一处是 /usr/sbin/apache ,一处是 /tmp/.ICE-unix/. ./m 。

但是无论他使用何种命令,甚至逐一检查了rc.d、crontab、init下面的各种启动项,翻遍了临时目录、用户目录、进程目录……花费了很多时间,望眼欲穿,都无法找到哪怕一个病毒文件。

cd到对应目录,使用ls -al就是看不到任何可疑文件,按道理应该不会自删除。

Linux应急故事之四两拨千斤:黑客一个小小玩法,如何看瞎双眼

刘同学向总部请求协助的时候,表示自己“已经瞎了”!

0×03 柳暗花明

总部EDR安全团队接到这个协助请求的时候,还是有很大压力的,同时也联合了安全感知的安全专家参与分析。

刘同学一直是娴熟的应急人员,能让他“看瞎”的,并不多,可能水比较深。

总部安全专家远程接入后,也按照刘同学提供的信息,进行一一确认,同样也没有找到有效信息。

接下来,使用大法,直接把挖矿进程的内存dump出来,观察其关键字符串。

使用strings -n 8将字符串过滤出来,看到如下信息:

Linux应急故事之四两拨千斤:黑客一个小小玩法,如何看瞎双眼

这引起了我们的警觉,总感觉哪里不对。

我们重新再cd到/tmp/.ICE-unix/,再一次使用ls -al查看该目录下面所有文件。

Linux应急故事之四两拨千斤:黑客一个小小玩法,如何看瞎双眼

停在这里(上图),大概盯了有好几分钟时间,陷入了沉思……

突然,再一猛看,端倪就出来了,某个字符貌似不对。仔细观察上图(后期特意放大了几倍),倒数第三行,貌似不对,它的两个点“空隙”比别的稍微“大”了那么一丢丢(要拿尺子量的那种大,目测毫米级别) 。

Linux应急故事之四两拨千斤:黑客一个小小玩法,如何看瞎双眼

真实远程界面,一般字体都非常小,上面是正常的画面(大屏小字体),这边后期加了黑色背景来体现差异。所以,每次进入到这个目录,刘同学就自然而然的以为只有“.”和“..”,殊不知,还有一个“. .”(这里面的两个点之间是有一个空格的)。

一个点是当前目录,两个点是上级目录,两个点加个空格就是一个全新的目录。

再往上翻,dump内存引起我们警觉的那一行,回头一想,ASCII码40就是表示空格啊!

0×04 样本剖析

要进入那个吊诡的文件夹,还不能直接cd . .(注意,这两点之间有空格),需要cd “. .”,即加一个双引号,防止转义。

该文件夹下一共有10个文件,其中x、a、u、r为恶意脚本,?、b、c、d,h和m恶意可执行文件。

Linux应急故事之四两拨千斤:黑客一个小小玩法,如何看瞎双眼

执行流程 x -> a -> u -> r -> h (隐藏 & 运行 m ) -> m (挖矿),为了执行真正的挖矿,绕了一大圈。

入口脚本x (以下所有#标注的汉字,均为我们后期备注说明)

Linux应急故事之四两拨千斤:黑客一个小小玩法,如何看瞎双眼

释放脚本a

Linux应急故事之四两拨千斤:黑客一个小小玩法,如何看瞎双眼

清除脚本u

Linux应急故事之四两拨千斤:黑客一个小小玩法,如何看瞎双眼

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

Linux应急故事之四两拨千斤:黑客一个小小玩法,如何看瞎双眼

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

Linux应急故事之四两拨千斤:黑客一个小小玩法,如何看瞎双眼

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

Linux应急故事之四两拨千斤:黑客一个小小玩法,如何看瞎双眼

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

Linux应急故事之四两拨千斤:黑客一个小小玩法,如何看瞎双眼

为了做隐藏,黑客做了一些小技巧,一个是利用肉眼视觉惯性和疲劳,创建了一个肉眼难以察觉的目录,另外一个小技巧,就是利用Xhide黑客 工具 伪装出了一个不存在的文件位置/usr/sbin/apache,放了一个烟雾弹。

仔细想想,黑客做的这些小技巧,确实蒙蔽了大多数的人,也起到了四两拨千斤的效果!

0×05 追根溯源

隐藏的根因我们已经挖到了,入侵根因呢?

我们在/var/log/secure日志当中发现了有端倪的现象,这个Linux系统安全日志,记录用户和工作组变化情况、用户登陆认证情况,其有大量认证失败的日志。

源地址为XX的IP大量尝试了不同的用户名与密码。从23日凌晨开始一直在持续,用户名是按照字符 排序 进行尝试,于凌晨XX点XX分XX秒时刻成功爆破。

0×06 回首总结

这里,我们再一次回顾这个事件。有一点,用户做得特别好,就是及时关注了深信服安全感知平台的安全事件,极早了排除安全隐患。

挖矿病毒是当前安全事件中最为流行的一种病毒,深信服安全感知对这类病毒有近乎100%的准确率。

此外,建议用户对Linux主机进行安全基线的加固,增加密码的复杂度与帐号锁定策略。

这里还有一点,如果用户部署了深信服终端检测响应平台(EDR),那么用户将直接可以对告警主机进行查杀,无需人工干预,即可做到快速处置。对于肉眼难以发现的空格隐藏问题,必然是无障碍清理的!再也不用担心“眼瞎”了。

Linux应急故事之四两拨千斤:黑客一个小小玩法,如何看瞎双眼

0×07 相关IOC

BBD807BCC2596FD7EEC38BFCBED9F5A5
60103B3D5FD524BBDA4682E5B0C6560E

*本文作者:千里目安全实验室,转载请注明来自FreeBuf.COM


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Beginning ARKit for iPhone and iPad

Beginning ARKit for iPhone and iPad

Wallace Wang / Apress / 2018-11-5 / USD 39.99

Explore how to use ARKit to create iOS apps and learn the basics of augmented reality while diving into ARKit specific topics. This book reveals how augmented reality allows you to view the screen on ......一起来看看 《Beginning ARKit for iPhone and iPad》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换