热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Necurs.P2P:一种新型的点对点僵尸网络

上周,我收到了一个安全研究人员发给我的僵尸网络分析样本,该研究人员认为这是一个点对点的对等网络,但是在我对其进行了几天的分析之后,我可以确定这个网络不仅只是一个P2P网络,而且它还是一个当前非常活跃的

https://img.php1.cn/3cd4a/1eebe/cd5/6c257b6ba227cc3e.webp

上周,我收到了一个安全研究人员发给我的僵尸网络分析样本,该研究人员认为这是一个点对点的对等网络,但是在我对其进行了几天的分析之后,我可以确定这个网络不仅只是一个P2P网络,而且它还是一个当前非常活跃的对等网络系统。给我提供分析样本的人是我的一个好朋友,他也是一名安全研究人员,即R136a1(他不仅发现了这个僵尸网络,而且他曾经还发现了ZeroAccess3,并找出了这个僵尸网络背后的控制者)。

在我上网搜索了一些相关信息之后,我发现了一篇发表于2015年5月份的文章,这篇文章介绍了一些有关Necurs的知识,也许大家能够从这篇文章中找到一些你们需要的信息。但是,这篇文章并没有提到Necurs中UDP数据包的主要用途。除此之外,我还在bluecoat上找到了一篇时间更加久远的文章,这篇文章发表于2013年9月,文中对Necures僵尸网络的变种进行了非常详细的讨论,感兴趣的读者也可以阅读一下。

虽然我不敢百分之百地肯定,但我认为我们将要讨论的这个僵尸网络应该是原始Necurs的一个变种。

安装过程

我在安装的过程中,发生了…

https://img.php1.cn/3cd4a/1eebe/cd5/780a3060eeed6a4e.webp

好吧…大家别介意啊!

在我对系统进行了一次快速检测之后,我发现计算机的蓝屏死机是由嵌入在恶意软件中的反虚拟化代码所引起的,而且这种情况非常的罕见,也非常的奇怪。当我们对虚拟环境进行检测的时候,恶意软件将会向系统中所有的进程注入一个简单的程序,这个程序能够创建一个异常处理程序,并执行VMCPUID指令。

http://p3.qhimg.com/t016a9089c9ee57b19e.png

VMCPUID指令可以将虚拟机的CPUID返回给我们,但有趣的是,VMCPUID指令只能在某些虚拟机中正常使用。如果虚拟机系统不支持使用这个命令的话,它将会生成一个无效的指令,并引起系统异常。这时,我们就需要一个异常处理程序来捕获并处理这种异常。当恶意软件将函数注入到每一个进程中之后,系统将无法创建正常的异常处理程序,因为系统的异常信息会被存储在.rdata会话进程中,它也没有复制功能。所以结果就是,如果恶意软件检测到了当前的系统为虚拟机系统,而且该系统不支持使用VMCPUID命令的话,那么系统中的所有进程都会崩溃,进而导致系统的蓝屏死机。所以我猜测,恶意软件的开发人员的意图是想要尝试去实现对虚拟机系统进行某种注入检测,但是却使得虚拟机不断地死机,所以他们干脆直接将这项不成熟的技术当作一种凡虚拟化的技术来使用了(尽管这项技术不应该引起支持使用VMCPUID命令的虚拟机系统崩溃)。

当恶意软件成功利用漏洞CVE-2010-4398并为bot进程提权之后,bot的副本将会把可执行程序和相应驱动程序分别复制到C:Installers{BotGUID}syshost.exe和C:Drivers{RandomName}.sys内。恶意软件会将这一可执行程序设置为一个自启动的服务,并且将驱动程序设置为启动设备(如果需要的话,bot还会启用TESTSIGNING模式来加载未进行签名的驱动程序)。在完成了相应的配置之后,系统将会重新启动。

在系统重启完成之后,bot将会尝试使用netsh.exe来将其进程列入系统防火墙的白名单中(在Windows XP系统中,恶意软件将会直接禁用系统的防火墙功能)。

下图显示的是恶意软件利用netsh.exe来尝试将其自身进程列入防火墙白名单的相关代码:

http://p8.qhimg.com/t010ac651b6d4c106fe.png

点对点通信

因为僵尸网络的控制命令是由一个中央C&C服务器来发送的,这与普通僵尸网络的运行机制类似,所以这种C&C结构也被称为“混合式P2P网络”。但是,由于恶意软件可以随时利用点对点网络来向僵尸网络中所有的bot推送新的C&C服务器地址,所以相较于传统的僵尸网络而言,这种新型的僵尸网络不仅可以一直保持其有效性,而且还具有P2P对等网络的灵活性。

为了启用P2P通信,系统还必须生成一个随机端口号,并将其保存至系统的注册表中。这个端口将会被绑定到系统的UDP和TCP协议中(即使系统在绝大多数情况下使用的是UDP协议),并以此来保证相应的P2P通信数据能够正常地发送。僵尸网络中的bot拥有超过1000个IP地址,其端口绑定信息存储在初始配置文件中,各个端口每秒钟都会发送信息,直到接收到响应消息为止。在接收到了响应信息之后,信息的发送周期将会变成每分钟发送一次。奇怪的是,在每一个请求信息发送之前,系统都需要从0-4中随机选择一个数字:如果选择的数字为0,bot将会尝试与远程主机建立TCP链接,否则它将会向远程主机发送UDP数据包。所以情况将会变成,发送UDP数据包和发送TCP数据的比例大概为4:1(目前我仍无法确定这一机制的目的是什么)。

下图显示的是P2P协议处理程序:

http://p5.qhimg.com/t01fe42570544d3e250.png

僵尸网络中所有的bot主机都会对请求信息进行响应,并且会在其发送的响应信息中嵌入一个经过密钥(这个密钥为僵尸网络的主控密钥,这是一个长度为2048位的RSA密钥,其作用就是为了防止其他人向僵尸网络中引入新的响应payload)签名的payload。

值得注意的是,在P2P协议中并不存在对等交换功能,这是因为僵尸网络的主机不会信任网络中的对等主机,也不会在与网络中的其他主机共享信息。它们会选择生成一个主机列表,并通过C&C服务器来进行广播。这种方式可以有效地防止中毒和外部攻击,因为网络服务器可以根据这个主机列表来检测数据中心内的相应IP地址,否则僵尸网络将有可能被安全公司所破坏。

Payload存储

所有从C&C服务器或者P2P网络中下载下来的数据都会被存储在临时文件夹之中,每一个文件名都有一个单独的UUID,后缀均为.tmp。系统会对bot的标识符(一个长度为64位的静态整形数据,用于标识文件的内容)使用SHA1算法进行哈希处理,并生成相应的UUID。

下图显示的是文件名的生成函数:

http://p1.qhimg.com/t016a64ce700283f9f2.png

文件会使用RC4算法进行加密,系统将从上图所显示的函数中提取出其使用的加密密钥。除此之外,系统还会生成一个经过哈希处理的随机变量,并将其存储在文件末尾,这样一来,生成文件的签名就不会起任何作用了。

结论

上述的内容均来源于我的分析结果,当我与我的同事完成了所有的数据采集工作之后,我们应该可以更加深入地去了解这个僵尸网络。我们将会在得到了研究结果之后立刻更新。


推荐阅读
  • 深入解析 OpenSSL 生成 SM2 证书:非对称加密技术与数字证书、数字签名的关联分析
    本文深入探讨了 OpenSSL 在生成 SM2 证书过程中的技术细节,重点分析了非对称加密技术在数字证书和数字签名中的应用。非对称加密通过使用公钥和私钥对数据进行加解密,确保了信息传输的安全性。公钥可以公开分发,用于加密数据或验证签名,而私钥则需严格保密,用于解密数据或生成签名。文章详细介绍了 OpenSSL 如何利用这些原理生成 SM2 证书,并讨论了其在实际应用中的安全性和有效性。 ... [详细]
  • 本文详细探讨了在ASP.NET环境中通过加密数据库连接字符串来提升数据安全性的方法。加密技术不仅能够有效防止敏感信息泄露,还能增强应用程序的整体安全性。文中介绍了多种加密手段及其实施步骤,帮助开发者在日常开发过程中更好地保护数据库连接信息,确保数据传输的安全可靠。 ... [详细]
  • 本文详细介绍了如何使用OpenSSL自建CA证书的步骤,包括准备工作、生成CA证书、生成服务器待签证书以及证书签名等过程。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 深入解析HTTPS:保障Web安全的加密协议
    本文详细探讨了HTTPS协议在保障Web安全中的重要作用。首先分析了HTTP协议的不足之处,包括数据传输过程中的安全性问题和内容加密的缺失。接着介绍了HTTPS如何通过使用公钥和私钥的非对称加密技术以及混合加密机制,确保数据的完整性和机密性。最后强调了HTTPS的安全性和可靠性,为现代网络通信提供了坚实的基础。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 微信小程序详解:概念、功能与优势
    微信公众平台近期向200位开发者发送了小程序的内测邀请。许多人对微信小程序的概念还不是很清楚。本文将详细介绍微信小程序的定义、功能及其独特优势。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • PHP 各版本对比:标准版与最新顶级版的详细分析 ... [详细]
  • 性能测试中的关键监控指标与深入分析
    在软件性能测试中,关键监控指标的选取至关重要。主要目的包括:1. 评估系统的当前性能,确保其符合预期的性能标准;2. 发现软件性能瓶颈,定位潜在问题;3. 优化系统性能,提高用户体验。通过综合分析这些指标,可以全面了解系统的运行状态,为后续的性能改进提供科学依据。 ... [详细]
  • CTF竞赛中文件上传技巧与安全绕过方法深入解析
    CTF竞赛中文件上传技巧与安全绕过方法深入解析 ... [详细]
author-avatar
張張186coolgirl
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有