knickers 发布的文章

Invoke-PSImage bypass anti-virus

https://github.com/peewpw/Invoke-PSImage

通过对png的像素快中插入powershell代码来隐藏payload。在通过ps的功能将png中的payload读取并执行。
文章在网上有很多人已经写了如何使用以及原理,所以本文只是自己做记录,日后也能想起我到底都做了什么。

PS>Import-Module .\Invoke-PSImage.ps1
PS>Invoke-PSImage -Script .\Invoke-Mimikatz.ps1 -Image .\kiwi.jpg -Out .\evil-kiwi.png


PS>Import-Module .\Invoke-PSImage.ps1
PS>Invoke-PSImage -Script .\Invoke-Mimikatz.ps1 -Image .\kiwi.jpg -Out .\evil-kiwi.png -Web

图片1.png
Cs自带生成的ps1已经被查杀了。
存在两种使用方法,第一种是将生成的png上传到目标主机,然后再执行命令。
第二种是生成png后命令采取请求远程web服务器下载缓存图片并执行,可以实现无文件落地。

图片2.png
图片3.png
可以看到已经执行了payload,如果能够配合passuac的话,就可以通过无文件落地+管理员权限执行shell。
尽管是两年前的技术,但是还是能绕过大部分的国内杀毒。

请输入图片描述
阿里云提供镜像下载是一个tar.gz,经过漫长的解压后
请输入图片描述
System是系统盘,其他的都是数据盘,需要恢复相应的系统后在挂载。
请输入图片描述
下载使用qemu-img对raw文件进行转码成vmdk的模式,新建一个虚拟机,硬盘选择使用转码后的vmdk文件。
请输入图片描述
图片5.png
图片6.png
开机进入grub找到启动项按e键编辑启动项,使其以单用户启动。
这里和常规的进入单用户模式不同,需要删除倒数第二行ro后的内容,替换成手动输入的init。
图片7.png
图片8.png
划红线部分删除后写入:
图片9.png

find_preseed=preseed.cfg auto noprompt priority=critical locale=en_US quiet splash rw init=/bin/bash

输入后按f10.等待。

输入passwd root
如果开启了selinux后在centos7中还需要更新本地.autorelabel文件
输入
touch /.autorelabel
exec /sbin/init重启就可以了。
0.0