为什么受害者是服务器而不是客户端?

信息安全 恶意软件 僵尸网络
2021-09-09 08:45:01

我刚刚使用- “Watch Dogs fan:P”创建了自己的远程管理工具“一个服务器到多个客户端”System.Net.Socket

鼠

然后我尝试在谷歌上搜索他们如何制作或设计他们的远程管理工具流程,我发现了 Joseph Bisaillon 的博客,在他的基本 RAT 设计和其他 RAT 设计中,他们使用了“多服务器到客户端”,

我只是好奇为什么受害者在他们的设计中使用服务器而不是客户端?使用客户端作为控制器更好吗?还是与服务器相同?

大鼠设计

3个回答

构建远程访问工具时没有硬性规定的“规则”。这取决于您希望控制的目标和受害机器的类型。不同类型的架构与NAT有很大关系

C2 客户端 - 受害者服务器

这就是您在图表中显示的情况。C2 通过联系受害者服务器来启动会话。受害服务器必须有一个可公开路由的 IP 地址并打开一个端口以允许传入连接。

Cleaver 实现需要一种端口敲击无论哪种方式,客户端(C2)都位于 NAT 之后,并启动与服务器(受害者)的通信。

C2 服务器 - 受害者客户端

这可能是大多数人在考虑 RAT 时的想法。有一个 C2 服务器侦听来自受害者机器人的传入连接。您遇到的大多数恶意软件报告都会讨论生成动态 C2 服务器地址的算法。这些类型的恶意软件使用这种类型的架构。

为什么一个比另一个?

那么目标将决定将要选择的架构。如果您发送一堆网络钓鱼电子邮件并等待受害者连接;您将需要一个 C2 服务器和受害者客户端。但是,如果您想要一个进入组织的后门,受害者服务器和客户端 C2 将意味着防火墙规则、内部网络架构、密码重置等的更改不会关闭您的连接,从而允许您持续存在后门。

这完全是关于每个相关人员的角色。无论您是浏览网站,还是从您认识的那家咖啡馆购买松饼,结果都是一样的。

服务器不是更强大的设备,它是“服务”请求的设备。客户端就是这样,它发出需要服务的请求。当您请求松饼、网站或在这种情况下远程访问时,您就是客户。

作为客户,您会问“将鼠标移到此处”、“帮我打开”和“您现在看到什么?”。然后服务器通过发送您要求的内容为您服务这是所有 RAT 应用程序中的关系。

这没有好坏之分,这取决于您将要妥协的机器是否具有可公开路由的 IP。

如果他们有,那么他们监听并成为服务器的好处是您可以从任何地方连接到他们,并且您的控制器/命令和控制计算机不需要总是连接到他们 - 它只在有的地方与他们交谈一个实际的命令。

如果目标计算机没有可公开路由的 IP,就像大多数家用计算机一样(它们位于 NAT 后面),那么最好让您的控制器计算机成为服务器,并让受感染的计算机连接到它,但是这有不那么偷偷摸摸的缺点(永久性的传出连接比第一种情况下的罕见传入连接更容易被注意到)并且您的控制器计算机需要始终可以通过相同的 IP 访问 - 如果它突然发生变化,并且您无法返回旧 IP 重新控制您的机器人并告诉他们新 IP,然后您失去了您的机器人,除非您有其他联系方式。

不过就个人而言,我建议为此使用 P2P 协议 - 类似于 Tor,其中机器人相互连接并将命令中继给自己,这样您就没有中心故障点,您只需要访问任何单个机器人即可控制整个僵尸网络,因为它会将你的命令传递给其他人。如果可能,请确保使用签名、加密和隐写术来隐藏您的流量并防止某人(如安全研究人员)伪造有效命令并控制您的僵尸网络。