LKM Rootkit
Windows平台木马使用各种各样的rootkit功能来实现自身目的已经很长时间了。这些木马之中就有不少是用来进行洪水攻击的(从2006年开始,各种此类木马的源代码已经陆续公开),在之前Botconf 2014时,我们就提交过一份关于此类木马的分析报告:《中国鸡:雄鸡中的战斗鸡》(《中国肉鸡:多平台DDoS僵尸网络》),在这篇报告中,老外详细分析了一款国产木马,墙裂建议阅读。而我们目前分析的这款木马主要功能就是在实现目的的同时隐藏自身的行踪:
木马会创建一个 rs_dev进程来检查rootkit,并且通过ioctl函数来调用这些请求。
请求包含两个参数:一个是rootkit执行任务的值,另一个则是需要隐藏的端口的值。下面是一个木马隐藏TCP连接的实例(注意任务序列值为3):
我们从木马的名称来猜测,极有可能木马的作者是受到开源项目Suterusu(https://github.com/mncoppola/suterusu)的启发,而且还借鉴了部分该项目的代码(进程注入部分)。该项目的描述是这么说的:针对于 Linux 2.6/3.x on x86(_64), and ARM平台的LKM rootkit。关于该项目的的分析可以戳这里:http://poppopret.org/2013/01/07/suterusu-rootkit-inline-kernel-function-hooking-on-x86-and-arm/
C&C通信分析
通信是双向加密的,使用的是相同的XOR加密方式的硬编码方式,秘钥为BB2FA36AAA9541F0。通信过程中,/var/run/sftp.pid文件中包含一个唯一的长度为32位的字符串以识别不同的僵尸机器。下图是一个C&C通信的命令列表,我们可以看到僵尸机器所监听的命令:开始洪水攻击,结束洪水攻击,下载文件,更新升级,发送进程md5值,杀死指定进程
在shell脚本中,C&C服务器列表是存储在一个__remote__变量中的,该木马首先将运行系统的参数发送给C&C服务器,而回复则是以一个命令的形式返回的。命令的报头是一个长度为0x1C的字符串,该字符串存储于Header变量中。第一个命令首先是停止所有攻击,同时下达一个列表中的命令(命令重置)。下图表示了整个命令,其中高亮圈出来的分别是:返回命令总长度(0x102C),任务序列值(0×3,这里对照上面的列表知道是_cmd_start)和洪水任务值(0xF):
小编推荐阅读《明日方舟》最强先锋干员推荐指南(打造最强先锋战队,从干员推荐到培养全解析)
阅读《魔兽世界》怀旧服技巧指南大全(挑战圣光的召唤任务,为部落联盟赢取荣誉)
阅读探寻江湖中的宝藏——寻找《烟雨江湖》西子君剑线索的攻略技巧最新(游戏中怎样获得西子君剑线索?)
阅读星露谷物语下水道屏障破解攻略技巧指南(助你轻松突破下水道难关,快速获得丰厚奖励)
阅读《燃烧意志路奇加点攻略技巧指南》(航海王游戏中路奇如何加点,最新推荐汇总)
阅读王者荣耀史诗皮肤卡意思一览大全(探索王者荣耀史诗皮肤的故事,了解背后的涵义)
阅读《重返深渊锁镰》武器攻略大全最新(每把武器攻略,助你通关游戏)
阅读《DNF》游戏牛郎星的光辉快速获得攻略技巧(跨越星际尽享荣耀)
阅读探秘梦幻模拟战手游雾风的技能属性攻略(雾风技能解析,让你成为游戏中的绝佳战士)
阅读怎样选择合适的门派成为《我的侠客》游戏高手?(掌握门派特点,选择最佳武功路线)
阅读《以阴阳师樱之忆为例,详解如何预约樱之忆》(预约方法、注意事项、常见问题讲解)
阅读