Invoke-Transfer:一款基于PowerShell的Windows剪贴板数据提取与传输工具
2023-4-3 19:8:49 Author: FreeBuf(查看原文) 阅读量:13 收藏

 关于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-Transferhttps://github.com/JoelGMSec/Invoke-Transfer

参考资料:

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

精彩推荐


文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NjA0NjgyMA==&mid=2651221146&idx=4&sn=d734fe399a42bfac968d54d55b62e639&chksm=bd1dfe118a6a7707e592ffee1aa743a8e4e950547e037634828545365b316df8c124ca84fa5e#rd
如有侵权请联系:admin#unsafe.sh