一样平常情形下,网络犯罪分子常日都会以产品套装的形式来***其攻击软件,个中包括:
恶意有效载荷:恶意软件的前端,用于传染用户。
C&C面板:恶意软件的后端部分,常日为LAMP环境下的一个Web运用程序。

天生器:一个运用程序,用来打包有效载荷,并嵌入特定发布者所感兴趣的信息,比如C&C地址、配置信息等。
这些恶意软件套装常日都是在黑市上发卖的,只管如此,有时还是会流入主流媒体的手上。这就给研究职员供应了一个宝贵的机会,来深入稽核它们所利用的各种技能。
最近,我手头上就得到了这样的一个软件套装,个中就包括Neutrino僵尸网络的天生器。只管这不是最新的版本,但是依旧能够供应有用的信息,来帮助我们与当今广泛传播的样本进行比拟剖析。
0x02 干系组成部分
Neutrino Builder:32位PE程序,利用VS2013编写,利用Safengine Shielden v2.3.6.0加壳(md5=80660973563d13dfa57748bacc4f7758)。
panel(利用PHP编写的)。
stub(有效载荷):32位PE程序,是用MS Visual C++编写的(md5=55612860c7bf1425c939815a9867b560, section .text md5=07d78519904f1e2806dda92b7c046d71)。
0x03 功能
这个工具的功能非常大略:向用户讯问C&C的地址,然后将其写入有效荷载。
比较两个有效荷载:一个是原始的有效荷载,一个是由该天生器编辑过的有效荷载。我们创造,实际上这个天生器所做的修正非常小,它只是对供应的URL进行加密处理,然后将其保存到指定的地方。
下面的图中,左图(stub)是原始的有效荷载,右图(test_stub.exe)是经由编辑之后的有效荷载。
Panel
这个软件套装含有完全的利用解释(readme.txt),不过利用俄语编写的,个中可以创造许多功能细节。
安装面板所需的软件:
PHP
MySQL,版本号不得低于5.6。
面板的默认登录名和口令:admin,admin。
被传染的客户端可以根据哀求而实行的任务:
各种类型的DDoS攻击。
键盘记录(启用/禁用)功能,包括指定窗口内的轨迹文本。
查找指定类型的文件。
更新bot。
删除bot。
DNS欺骗(将地址X重定向到地址Y)。
Form表单截取,盗取FTP证书。
下载并实行下列类型的文件(EXE、DLL、、bat 、vbs)。
向Windows注册表添加指定内容。
发送给bot的完全命令列表:
functions.php
C&C对造孽要求非常敏感,并且会根据源IP黑名单作出相应的反应:
functions.php
通过不雅观察install.php,我们还可以创造Form表单所截取的目标。这里的列表中包括了最盛行的电子邮件和社交网络网站(facebook、linkedin、twitter等)。
install.php
用于实现跟bot通信的主文件是tasks.php,它只吸收一种POST要求。
将bot发送的信息添加到数据库:
tasks.php
打开index.php会导致客户真个IP被加入黑名单(无条件):
index.php
Stub
在后端可以找到的所有命令在前端都有所反响,这一点可以清楚看出来,由于有效荷载根本就没有经由稠浊处理!
硬编码的验证密钥,对付bot发送的每一个要求,C&C都会检讨个中的验证密钥:
Bot自己会登录到C&C,报告期版本和运行环境:
下面是C&C要求的部分命令的实现:
从C&C下载指定的有效载荷:
键盘记录器的部分代码:
Frame截取器的代码片段:
盗取剪贴板中的内容(部分代码):
将盗取的内容(如登录密码)保存到一个文件中(logs.rar)。然后,读取这个文件,并将其上传到C&C:
讲这个文件封装到POST要求中:
此外,无论C&C要求的任务是成功或失落败,bot都要供应相应的报告:
这个恶意软件所带来的威胁,不仅仅局限于本地打算机,此外,它还会扫描LAN,探求共享资源,并盗取之:
盗取共享资源(部分代码):
防御技能
除了上面先容的攻击性功能之外,这个有效载荷含有大量的防御功能。
除明显的isDebuggerPresent之类检讨外,我们还创造了一些更加高等或者说非常怪异的东西,例如检讨用户名是否含有下列字符串:maltest、tequilaboomboom、sandbox、virus、malware。完全的防御功能解释如下:
确定调用进程是否为调试器,这须要借助于:
IsDebuggerPresent
确定调用进程是否为远程调试器,这须要借助于:
CheckRemoteDebuggerPresent(GetCurrentProcess, pDebuggerPresent)
检测是否运行在Wine下面,这须要借助于:
GetProcAddress(GetModuleHandleW(“kernel32.dll”), “wine_get_unix_file_name”)
检讨是否含有黑名单中的子串(忽略大小写):
是否含有用户名,这须要借助于:
GetUserNameW vs {“MALTEST“, “TEQUILABOOMBOOM“, “SANDBOX“, “VIRUS“,”MALWARE“}
是否含有当前模块名称,这须要借助于:
GetModuleNameW vs {“SAMPLE“, “VIRUS“, “SANDBOX” }
是否含有BIOS版本号,这须要借助于注册表:
“HARDWAREDescriptionSystem“, value “SystemBiosVersion” against: {“VBOX“, “QEMU“, “BOCHS“}
是否含有BIOS版本号,这须要借助于注册表:
“HARDWAREDescriptionSystem“, value “VideoBiosVersion” against: “VIRTUALBOX“
是否含有SCSI信息,这须要借助于注册表:
“HARDWAREDEVICEMAPScsiScsi Port 0Scsi Bus 0Target Id“, value “Identifier“), against {“VMWARE“, “VBOX“, “QEMU“}
检讨是否存在:
VMWareTools,这须要借助于注册表:SOFTWAREVMware, Inc.VMware Tools。
VBoxGuestAdditions,这须要借助于注册表:SOFTWAREOracleVirtualBox Guest Additions。
0x04 小结
常日情形下,恶意软件剖析职员只跟个中的一部分即恶意有效载荷打交道。通过像本文这样稽核全体套装,能够帮我们对恶意软件理解地更加全面。
此外,它还能够很好地帮我们理解分布式恶意软件的各种活动是如何组织折衷的。如本文所示,网络犯罪分子可以非常轻松的组配自己的恶意C&C。一个人,根本无需任何博识的技巧,还是可以变身成为一个僵尸网络的主人。我们如今生活的时期,是恶意软件武器化的时期,是大众也能取之即用的时期,以是,每个人都必须采纳坚固和多层的安全防护方法,这一点非常关键。