freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Invoke-Transfer:一款基于PowerShell的Windows剪贴板数据提取与传输工具
2023-03-23 15:08:07
所属地 广西

关于Invoke-Transfer

Invoke-Transfer是一款基于PowerShell实现的Windows剪贴板数据提取与传输工具。

在该工具的帮助下,我们可以在极端受限环境下利用剪贴板功能实现文件或数据的传输,例如Citrix、RDP、VNC、Guacamole等。

只要我们可以通过剪贴板发送文本,我们就能够以文本格式来发送文件(通过小型的Base64编码数据块)。除此之外,我们甚至还可以使用Windows原生的OCR功能并利用一个屏幕截图来发送文件。

工具要求

1、PowerShell 5.1;

2、Windows 10或更高版本操作系统;

工具下载

广大研究人员可以直接运行下列命令将该项目源码克隆至本地:

git clone https://github.com/JoelGMSec/Invoke-Transfer

工具使用帮助

.\Invoke-Transfer.ps1 -h

 

  ___                 _           _____                     __

 |_ _|_ __ _   __ __ | | __ __   |_   _| __ __ _ _ __  ___ / _| ___ _ __

  | || '_ \ \ / / _ \| |/ / _ \____| || '__/ _' | '_ \/ __| |_ / _ \ '__|

  | || | | \ V / (_) |   <  __/____| || | | (_| | | | \__ \  _|  __/ |

 |___|_| |_|\_/ \___/|_|\_\___|    |_||_|  \__,_|_| |_|___/_|  \___|_|

 

  ----------------------- by @JoelGMSec & @3v4Si0N ---------------------

 

 

 Info:  This tool helps you to send files in highly restricted environments

        such as Citrix, RDP, VNC, Guacamole... using the clipboard function

 

 Usage: .\Invoke-Transfer.ps1 -split {FILE} -sec {SECONDS}

          发送120KB的数据块,设置时间延迟为秒

          添加-guaca选项以通过Apache Guacamole发送文件

 

        .\Invoke-Transfer.ps1 -merge {B64FILE} -out {FILE}

          将Base64文件合并到目标路径中的原始文件中

 

        .\Invoke-Transfer.ps1 -read {IMGFILE} -out {FILE}

          使用Windows OCR读取屏幕截图并将输出保存到文件

 

 Warning: 此工具仅适用于Windows 10或更高版本

          OCR读取可能不完全准确

工具使用样例

从工具的帮助信息可以看出,该工具的使用非常简单:

–如果我们想发送文件,我们可以使用-split参数;

–如果我们想使用base64编码,我们可以使用-merge参数;

–如果我们想从屏幕上读取文本,我们可以使用-read参数;

在下面这个例子中,我们将使用第一个选项发送一个二进制文件(sharphound.exe)。此外,我们将使用以下命令在带有-sec参数的发送之间添加2秒的延迟:

.\Invoke-Transfer.ps1 -split .\SharpHound.exe -sec 2

接下来,该工具将把文件分成120KB的小块,并在准备传输时通知我们。一旦按下Enter键,我们将有几秒钟的时间用键盘或鼠标选择复制相关文本的位置。现在,剩下的工作Invoke-Transfer会帮助我们完成:

这种技术将适用于大多数场景,尽管在我们的测试中,我们遇到了一个麻烦:Apache Guacamole。

在这种特殊情况下,会发生完全不同的事情。但是,Apache Guacamole允许我们使用三种方法在另一端输入文本。此时,我们必须按下Ctrl+Alt+Shift组合键,以打开一个可以粘贴文本的控制台。一旦复制,我们就可以在操作系统中以通常的方式使用它。

手动执行这个过程很多次,可能有点无聊。幸运的是,Invoke-Transfer能够自动执行整个过程,只需将-guaca参数添加到上一个命令中即可:

最后,我们只需要在另一端复制脚本本身,并通过使用该工具生成的文本重建原始文件,并执行以下操作:

.\Invoke-Transfer.ps1 -merge .\SharpHound.txt -out .\SharpHound.exe

针对上述过程,我们给出以下PSAsyncShell代码片段作为参考:

一旦屏幕快照完成,我们将执行以下命令来读取文件并将其转换为可读格式,以便我们随意使用:

.\Invoke-Transfer.ps1 -read .\ScreenShot.png -out .\ScreenShot.txt

许可证协议

本项目的开发与发布遵循GPL-3.0开源许可证协议。

项目地址

Invoke-Transfer:【GitHub传送门

参考资料

https://darkbyte.net/transfiriendo-ficheros-en-entornos-restringidos-con-invoke-transfer

# 截图 # 数据传输 # 剪贴板 # OCR
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录