29

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

 5 years ago
source link: https://www.freebuf.com/articles/terminal/187842.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

前言

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

0×01 刘同学

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

z6ZJruy.jpg!web

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

0×02 看瞎双眼

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

R73yIvR.jpg!web

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

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

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

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

eaiyyyv.jpg!web

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

0×03 柳暗花明

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

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

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

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

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

eQv2e2E.jpg!web

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

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

bAJfm2z.jpg!web

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

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

eEr6baY.jpg!web

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

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

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

0×04 样本剖析

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

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

IFbAZrJ.jpg!web

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

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

3ENJjiJ.jpg!web

释放脚本a

yymIfyy.jpg!web

清除脚本u

BBBJVvq.jpg!web

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

Q3AvIrr.jpg!web

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

N3ArQnY.jpg!web

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

V77Zvur.jpg!web

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

ARBvE3R.jpg!web

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

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

0×05 追根溯源

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

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

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

0×06 回首总结

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

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

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

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

NFZNNb2.jpg!web

0×07 相关IOC

BBD807BCC2596FD7EEC38BFCBED9F5A5
60103B3D5FD524BBDA4682E5B0C6560E

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK