黑客攻击如同时光倒流至1999年
Lawrence Hoffman //
提示: 本博文中提及的技术和工具可能已过时,不适用于当前情况。然而,这篇博文仍可作为学习机会,并可能更新或集成到现代工具和技术中。
上周,一位朋友面带忧色地来到我的办公桌旁。他蹲下身子,向我展示了他笔记本电脑的屏幕,上面打开了一个虚拟终端:
查看后,我询问了该系统的作用,他回答说这只是一个用于个人项目的GitLab服务器。我随即终止了仍在运行的进程,并关闭了上述目录下二进制文件的执行权限。觉得这可能有些有趣,我向正在办公室访问的Derek展示了情况。我们帮助这位朋友从服务器备份了他的数据,并询问是否可以获取被放置在服务器上的软件副本,你知道,为了科学研究。这位无名朋友很高兴我们协助他取回数据,同意让我们查看并撰写关于所发现内容的文章。
我们可以看到攻击者从哪里拉取了他们的工具包,并希望获取二进制文件的原始副本,我们通过匿名代理将其下载到一个干净的Kali实例中。
作为程序员,我对这些工具很感兴趣。从上述内容中,我可以看到一系列行为顺序,因此我从x.tgz的内容开始。首先,我想查看x.tgz中的start脚本。结果发现它是一个bash shell脚本:
逐步分析脚本,我们看到它以错误检查开始,查看是否以正确数量的参数调用。如果不是,它会打印一条罗马尼亚语的帮助消息“Tasteaza: ./start canal”或“Type: ./start channel”。继续,我们看到了一个对ifconfig的调用,解析出本地链接地址并设置一个变量来计数它们。打印了一个横幅,快速谷歌搜索横幅带来了一个有趣的博文,关于十年来什么都没有改变,写于2013年。所以,我想仍然什么都没有改变。
回到文件:我们为找到的每个链接地址启动了一些东西。那就是./inst文件。让我们来看看。
正如我们所料,这个文件正在设置僵尸网络。文件顶部充满了“denominations”,最后52行包含拉取参数和denominations来配置僵尸网络的逻辑。我们可以看到参数ronnie的用途——它将“Ronnie”设置为频道名称。回到start,我们得到了最后的几个调用。其中一个完成安装,下一个设置自动运行更新,最后运行恶意软件。这些都非常基础。攻击者添加了一些iptables规则,创建了一个名为bin的用户,并赋予该用户root权限。最后,一封电子邮件被发送到硬编码在rinst.e文件中的Gmail地址,似乎是在邮件中发送接口计数和主机名。
攻击者的下一步是从一个名为“ryo”的文件下载并运行一些脚本。我们也获取了那个文件。同样,它是一系列脚本,这些脚本简单地设置了psyBNC,类似于伪装IRC连接。该项目的文档来自2003年,开发于2009年停止。查看启动的其余部分,我们看到run文件启动了一个名为proc的可执行文件,GCC版本是2.9,操作系统是RedHat 7.1。所以,非常老旧。
攻击以名为Pydrona的东西结束。这些可执行文件似乎是最新编译的(gcc 4.3.4)。一个与攻击者之前删除的另一个可执行文件相关:Xhide。该软件旨在隐藏进程。另一个声称是Drona Turbata 3.0(Python版本)。这从意大利语和罗马尼亚语的混合翻译为……“愤怒的无人机”。我还没有时间进一步玩弄这些。
结论: 有些事情似乎永远不会改变。攻击我朋友Git服务器的手法在2013年的一篇博文中被描述,作者认为自2000年代初以来事情没有改变。这里是2016年,我看到的几乎是相同的二进制文件。这种攻击是一个配方,它分阶段工作,几乎完全是脚本化的,并且它将一直使用直到停止工作,而显然它还没有停止。