password
icon
URL
type
date
summary
status
slug
tags
category
我们的dropper在dropper.py
文件中实现。它试图从远程服务器下载一些恶意代码,并理想地避免任何检测。服务器在server.py
文件中实现,并在dropper请求连接时立即将恶意负载发送到目标系统。接收到的负载被转储到文件中,恶意软件成功地被传送。
Dropper
我们的dropper在
dropper.py
文件中实现。它试图从远程服务器下载一些恶意代码,并理想地避免任何检测。服务器在server.py
文件中实现,并在dropper请求连接时立即将恶意负载发送到目标系统。接收到的负载被转储到文件中,恶意软件成功地被传送。行为演示
攻击者首先必须做的是设置一个分发恶意软件给其客户端的服务器。因此,我们将通过运行
./server.py
在我们的计算机上设置一个运行的服务器。你应该看到以下文本:在第二个控制台,执行命令
./dropper.py
作为受害者运行dropper。我们应该立即在攻击者的控制台上看到以下文本:然后服务器关闭。这意味着我们的客户端已经成功地连接到我们的服务器。
为了验证dropper是否已经完成了它的任务,列出dropper所在的目录,你会看到一个新的文件
malware.py
已经被创建。为了演示目的,"恶意"代码只是一个简单的命令来打印短文本。通过运行python malware.py
执行文件。这样做后,你应该看到以下文本:创建基本的dropper是一个非常简单的过程,如下所述,任何人只要具备基本的编程知识和操作系统的理解就可以做到。这就是为什么我们在执行任何不常见或不受信任的文件时应该始终保持谨慎。
它是如何工作的?
服务器
- 首先,我们创建我们的服务器,它应该向运行的dropper客户端发送恶意代码,这个客户端是由受害者执行的。服务器将在我们的dropper使用的特定端口上监听。在这个例子中,服务器和dropper都将在同一台计算机上执行,但是服务器可能是远程的,并且可以位于世界的任何地方。
通信是通过TCP协议实现的,由
socket.SOCK_STREAM
指定(要了解更多关于网络协议的信息,请参阅网络通信指南。<br>- 然后我们需要通过将其绑定到指定的端口来初始化服务器。
- 我们可以观察到应该发送给dropper的恶意命令。在这种情况下,它只是一个简单的命令来打印一些文本。
- 最重要的部分是与受害者的连接。这是在服务器提供的_send_malicious_code_函数中实现的。它等待dropper在受害者的系统上执行后发起的连接。然后简单地发送负载并终止连接。
- 首次尝试防止检测的尝试是对恶意代码的加密。如果有人看到我们在网络上发送的所有内容怎么办?如果是这样,我们的恶意代码可能会立即被检测到,通信会被停止,或者受害者会被通知。这就是为什么我们至少使用一些加密层。为了演示,我们可以使用基本编码base64。要了解更多关于base64的信息,请参阅base64指南。
Dropper (client)
- 首先,我们必须初始化我们的dropper。这个服务需要主机(服务器)的名称和
指定的通信端口。主机名为
localhost
意味着服务器正在与我们的客户端相同 的系统上监听。第二次尝试是为了避免检测。如果有人偶然看到我们的dropper的代码,并发现一些可疑的地址怎么办?或者可能我们的受害者扫描文件以寻找可能的端口号,如果显示数字27000
,他们可能会怀疑。我们必须以某种方式隐藏这些数据,所以我们传递一些看起来无辜的参数。
- 如果有人检查代码,他们可以看到网络通信的方法。然而,根据传递给我们的dropper的参数,不清楚将使用哪个和哪个端口(可能是
729000000
?)。我们可以在运行时动态构造必要的连接属性。_decode\_hostname_方法接受两个字符串,交换它们的顺序并反转它们。从传递给我们的dropper的前两个参数,我们突然得到了字符串localhost
。要获得端口,我们可以简单地从最后一个参数计算平方根。做起来容易,但更难检测。
- 现在,我们试图连接到服务器。这个连接应该对受害者保持隐藏。记录的消息只是为了我们可以在我们的例子中检测到任何错误。
- 然后dropper试图作为一个无害的程序向受害者问好。
- 同时,客户端将尝试从远程服务器接收恶意代码。记住,数据是使用Base64加密的,所以我们必须解码它们,我们已经成功下载了恶意软件。
- 最后剩下的是执行检索到的代码或者简单地将其写入文件。通过这样做,负载已经成功地传送到目标系统。
欢迎访问我们的网站和关注我们的公众号,获取最新的技术共享内容、创新想法和安全知识。
微信公众号:黑客驰
免责声明
本文为技术共享文章,仅有教育交流目的,不构成任何法律或专业建议。读者应自行承担使用该文章所产生的风险和责任。作者和组织不对使用该文章所引起的任何损失或损害负责。
本文严禁提供、讨论或鼓励任何网络安全违法行为。请遵守法律法规,进行合法的技术共享活动。
- 作者:黑客驰
- 链接:https://hackerchi.top/article/21fc27b4-2b85-46d8-aaec-b68f49e00372
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。