CC 服务器如何与本地网络中的僵尸网络机器人通信?

信息安全 僵尸网络 路由器 纳特
2021-08-24 18:51:13

一个更普遍的问题Zeus 僵尸网络中的机器人如何通信?并没有真正解决我的问题。

我试图了解机器人如何与命令和控制(CC)机器进行通信。在技​​术层面上,我知道机器人使用套接字(例如),但我真的不知道 CC 如何将命令发送到可能位于 LAN 专用网络内的机器人/计算机。许多计算机位于盒子或路由器后面的 LAN 中。因此,我认为要在端口后面与服务器进行通信,您必须使用 NAT。

谁能解释这是如何工作的?

4个回答

通常不是命令和控制基础设施连接到机器人,因为它不能神奇地知道系统何时被感染。僵尸网络客户端联系 C&C 基础设施并请求命令。

大多数路由器(至少在消费者部分)被配置为盲目地将网络内部的任何连接转发到网络外部的系统。只有在需要从外部联系服务时才需要配置端口转发。

僵尸程序与 C&C 服务器的联系方式在不同的僵尸网络之间存在很大差异。它们伪装成其他协议(如 HTTP),使用 TOR 等匿名网络和各种其他方法来避免被轻易检测到。

与您的网络浏览器一样

一些僵尸程序(例如 Stuxnet)可能具有非常复杂的备用路由,但它们中的大多数只是简单地启动与攻击者控制的 C&C 服务器的 https 连接。在某些情况下它不起作用,但大多数网络都配置为允许此类连接,并且大多数自动筛选/过滤工具不会将其检测为异常。

一旦机器人建立了连接,它就会有一个相当安全的通道(加密以防止记录,并通过身份验证,因此它知道它连接到真正的 C&C,而不是模拟或被超越的域),并且可以定期轮询它以执行命令和其他/备份 C&C 服务器的列表。

机器人与 CC 的通信方式与常规程序之间的通信方式没有区别。大多数机器人都有一个作为实际服务器的 CC,这意味着它们有一个真实的 IP 地址并且可以监听一个端口。许多人会使用标准协议,如 HTTP、XML-RPC、SMTP/POP/IMAP、IRC、Web Socket 等,有些人会使用用 TCP 或 UDP 编写的自定义协议。大多数会加密和/或代理他们的协议以避免检测,通常使用标准加密套接字,如 TLS(例如 HTTPS)。少数人会做点对点而不是中央命令和控制,用于点对点通信的技术与其他点对点协议基本相同。

机器人必须处理限制传入连接的网络拓扑,这与合法应用程序没有什么不同。所使用的技术与合法应用程序中的相同,bot 与合法应用程序一样,必须启动连接,这会打开一个双向套接字。这种双向套接字允许外部系统推送它需要推送的任何数据。

这并不能直接回答您的问题,因为它们都不同,并且以下链接已经过时了......但这里有一些 PDF 解释它如何在分布式范围内工作(带有掩码/动态/按需 C&C 的 P2P层)。很酷的传统读物,不管:

努加什:

该恶意软件每天接收多个入站连接,并每天建立(或尝试建立)多个出站连接。总体而言,在给定时间大约有十几个连接处于活动状态,包括定期的对等列表交换、软件比较和升级,以及通过一组数字命令的简单命令

https://staff.washington.edu/dittrich/misc/malware08-dd-final.pdf

鱼猪:

正如我们之前提到的,Torpig 在本地机器上打开了两个端口,一个用作 SOCKS 代理,另一个用作 HTTP 代理。我们观察到的机器中有 20.2% 是可公开访问的。因此,他们的代理很容易被不法分子利用来发送垃圾邮件或匿名导航。

https://seclab.cs.ucsb.edu/media/uploads/papers/torpig.pdf

豌豆通讯:

点对点僵尸网络具有更大的灵活性。Trojan.Peacomm 僵尸程序为攻击者提供了一种这样的方法,可以在对等架构中向僵尸程序发出命令。从本质上讲,机器人下载了一个可以任意的二次注入,这使得机器人的有效负载具有灵活性。

http://juliangrizzard.com/pubs/2007_grizzard_hotbots.pdf