免责声明
本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者及本公众号不为此承担任何责任。
获取粘贴板信息
PowerShell提供了Get-Clipboard来获取目标粘贴板信息,可以使用Get-Help来查看:
直接执行Get-Clipboard就可以获得目标机器上的粘贴板信息:
写入粘贴板
PowerShell提供了Set-Clipboard来获取目标粘贴板信息,可以使用Get-Help来查看:
可以直接使用命令"Set-Clipboard "value" "来写入粘贴板:
也可以配合管道操作符,把文件内容写入粘贴板:
利用粘贴板传输文件
在Citrix, RDP, Guacamole等操作受限的情况下,我们的文件传输也会受到限制,传统的文件传输方法有利用FTP、HTTP协议等。这里有一个更加新奇的方法——利用粘贴板来传输文件。
具体思想是先用PowerShell在本地把文件拆分成很多份,可以使用base64编码,然后依次写入粘贴板中,因为如RDP等协议粘贴板是共享的,就一个再用PowerShell在目标机器上从粘贴板中读取信息,然后合成目标文件,实现文件传输的目的。
这个思路是出自Github项目:https://github.com/JoelGMSec/Invoke-Transfer。
首先使用如下命令分割并复制文件内容:
.Invoke-Transfer.ps1 -split .SharpHound.exe -sec
我们可以看到命令已经生效:
然后再在目标机器上执行命令来还原文件:
.Invoke-Transfer.ps1 -merge .SharpHound.txt -out .SharpHound.exe
这样就大功告成,成功在RDP等环境下实现了文件传输。
总结
本文介绍了如何使用PowerShell来操作粘贴板,完成粘贴板的读取、写入甚至是文件传输的功能。
原文始发于微信公众号(赛博安全狗):【权限维持技术】利用PowerShell操作粘贴板
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论