Windows 文件传输方法

Astaroth attack一般遵循以下步骤:鱼叉式网络钓鱼电子邮件中的恶意链接指向一个 LNK 文件。双击 LNK 文件后,WMIC tool会执行"/Format "参数,从而下载并执行恶意 JavaScript 代码。JavaScript 代码反过来通过滥用 Bitsadmin tool 下载有效载荷。

所有有效载荷都使用 Certutil 工具进行了 base64 编码和解码,生成了几个 DLL 文件。然后使用 regsvr32 工具加载其中一个解码后的 DLL 文件,解密后加载其他文件,直到最后的有效负载 Astaroth 被注入 Userinit 进程。下面是攻击的图形描述。

这是一个很好的例子,说明文件传输有多种方法,威胁行为者利用这些方法绕过了防御系统。

PowerShell Base64 编码和解码

根据我们要传输的文件大小,我们可以使用不同的不需要网络通信的方法。如果可以访问终端,我们可以将文件编码为 base64 字符串,从终端复制其内容,然后执行反向操作,在原始内容中解码文件。让我们看看如何使用 PowerShell 来实现这一功能。

使用此方法的一个基本步骤是确保编码和解码的文件是正确的。我们可以使用 md5sum,这是一个计算和验证 128 位 MD5 校验和的程序。MD5 哈希值是文件的紧凑型数字指纹,这意味着文件在任何地方都应具有相同的 MD5 哈希值。让我们尝试传输一个 ssh 密钥样本。从我们的 Pwnbox 到 Windows 目标,它可以是任何其他文件。

检查 SSH 密钥 MD5 哈希值

将 SSH 密钥编码为 Base64

我们可以复制此内容并将其粘贴到 Windows PowerShell 终端中,并使用一些 PowerShell 函数对其进行解码。

最后,我们可以使用 Get-FileHash cmdlet 确认文件是否传输成功,它的功能与 md5sum 相同。

确认 MD5 哈希值匹配

PowerShell 网络下载

大多数公司都允许 HTTPHTTPS 出站流量通过防火墙,以提高员工的工作效率。利用这些传输方式进行文件传输操作非常方便。不过,防御者可以使用网络过滤解决方案来阻止访问特定网站类别、阻止下载文件类型(如 .exe),或只允许访问限制较多的网络中的白名单域。

PowerShell 提供多种文件传输选项。在任何版本的 PowerShell 中,都可以使用 System.Net.WebClient 类通过 HTTPHTTPSFTP 下载文件。下表描述了从资源下载数据的 WebClient 方法:

方法

描述

Stream 的形式从资源返回数据。

从资源返回数据而不阻塞调用线程。

从资源下载数据并返回字节数组。

从资源下载数据并返回字节数组,而不阻塞调用线程。

将数据从资源下载到本地文件。

将数据从资源下载到本地文件,而不阻塞调用线程。

从资源下载字符串并返回字符串。

从资源下载字符串而不阻塞调用线程。

PowerShell 文件传输方法

PowerShell DownloadString - 无文件方法SMB 下载方法FTP 下载方法PowerShell 的常见错误PowerShell Web 上传方法PowerShell Base64 Web 上传方法SMB 上传FTP 上传

最后更新于

这有帮助吗?