
Codifica um script do PowerShell nos pixels de um arquivo PNG e gera um one-liner para executar.
Codifica um script do PowerShell nos pixels de um arquivo PNG e gera um comando de linha única para execução
O Invoke-PSImage pega um script do PowerShell e codifica os bytes do script nos pixels de uma imagem PNG. Ele gera um comando de linha única para execução a partir de um arquivo ou da web.
Ele pode criar uma nova imagem usando apenas os dados do payload, ou incorporar o payload nos bytes menos significativos de uma imagem existente para que pareça uma imagem real. A imagem é salva como PNG e pode ser comprimida sem perdas sem afetar a capacidade de executar o payload, pois os dados são armazenados nas próprias cores. Ao criar novas imagens, scripts normais do PowerShell são significativamente comprimidos, geralmente produzindo um PNG com tamanho de arquivo ~50% do script original.
Com o método de incorporação, os 4 bits menos significativos de 2 valores de cor em cada pixel são usados para armazenar o payload. A qualidade da imagem será prejudicada, mas ainda parece decente. Aceita a maioria dos tipos de imagem como entrada, mas a saída sempre será PNG porque precisa ser sem perdas. Cada pixel da imagem é usado para armazenar um byte do script, então você precisará de uma imagem com pelo menos tantos pixels quanto bytes no seu script. Isso é bastante fácil — por exemplo, Invoke-Mimikatz cabe em uma imagem 1920x1200.
-Script [caminho_do_arquivo] O caminho para o script a ser incorporado na imagem.
-Out [caminho_do_arquivo] O arquivo para salvar a imagem resultante (a imagem será um PNG)
-Image [caminho_do_arquivo] A imagem na qual incorporar o script. (opcional)
-WebRequest Gera um comando para ler a imagem da web usando Net.WebClient. Você precisará hospedar a imagem e inserir a URL no comando.
-PictureBox Gera um comando para ler a imagem da web usando System.Windows.Forms.PictureBox. Você precisará hospedar a imagem e inserir a URL no comando.
Cria uma imagem com o script "Invoke-Mimikatz.ps1" incorporado e gera um comando de linha única para executar a partir do disco:
PS>Import-Module .\Invoke-PSImage.ps1
PS>Invoke-PSImage -Script .\Invoke-Mimikatz.ps1 -Out .\evil-kiwi.png -Image .\kiwi.jpg
[Oneliner to execute from a file]
Cria uma imagem com o script "Invoke-Mimikatz.ps1" incorporado e gera um comando de linha única para executar a partir da web (você ainda precisa hospedar a imagem e editar a URL):
PS>Import-Module .\Invoke-PSImage.ps1
PS>Invoke-PSImage -Script .\Invoke-Mimikatz.ps1 -Out .\evil-kiwi.png -Image .\kiwi.jpg -WebRequest
[Oneliner to execute from the web]
Executando uma imagem hospedada na web:
