前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Invoke-Transfer:一款基于PowerShell的Windows剪贴板数据提取与传输工具

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

作者头像
FB客服
发布2023-04-04 10:27:29
5640
发布2023-04-04 10:27:29
举报
文章被收录于专栏:FreeBufFreeBuf

 关于Invoke-Transfer 

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

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

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

 工具要求 

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

 工具下载 

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

代码语言:javascript
复制
git clone https://github.com/JoelGMSec/Invoke-Transfer(向右滑动,查看更多)

 工具使用帮助 

代码语言:javascript
复制
.\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秒的延迟:

代码语言:javascript
复制
.\Invoke-Transfer.ps1 -split .\SharpHound.exe -sec 2(向右滑动,查看更多)

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

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

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

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

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

代码语言:javascript
复制
.\Invoke-Transfer.ps1 -merge .\SharpHound.txt -out .\SharpHound.exe(向右滑动,查看更多)

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

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

代码语言:javascript
复制
.\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

精彩推荐

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  关于Invoke-Transfer 
  •  工具要求 
  •  工具下载 
  •  工具使用帮助 
  •  工具使用样例 
  •  许可证协议 
  •  项目地址 
  • 参考资料:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档