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:https://github.com/JoelGMSec/Invoke-Transfer
https://darkbyte.net/transfiriendo-ficheros-en-entornos-restringidos-con-invoke-transfer
精彩推荐