
Codifica un script de PowerShell en los píxeles de un archivo PNG y genera una línea única para ejecutarlo.
Codifica un script de PowerShell en los píxeles de un archivo PNG y genera un comando de una línea para ejecutarlo
Invoke-PSImage toma un script de PowerShell y codifica los bytes del script en los píxeles de una imagen PNG. Genera un comando de una línea para ejecutar desde un archivo o desde la web.
Puede crear una nueva imagen usando solo los datos de la carga útil, o puede incrustar la carga útil en los bytes menos significativos de una imagen existente para que parezca una imagen real. La imagen se guarda como PNG y se puede comprimir sin pérdida sin afectar la capacidad de ejecutar la carga útil, ya que los datos se almacenan en los propios colores. Al crear nuevas imágenes, los scripts normales de PowerShell se comprimen significativamente, generando generalmente un PNG con un tamaño de archivo ~50% del script original.
Con el método de incrustación, se utilizan los 4 bits menos significativos de 2 valores de color en cada píxel para almacenar la carga útil. La calidad de la imagen se verá afectada como resultado, pero aún se ve decente. Puede aceptar la mayoría de los tipos de imagen como entrada, pero la salida siempre será PNG porque necesita ser sin pérdida. Cada píxel de la imagen se usa para almacenar un byte del script, por lo que necesitarás una imagen con al menos tantos píxeles como bytes en tu script. Esto es bastante fácil; por ejemplo, Invoke-Mimikatz cabe en una imagen de 1920x1200.
-Script [ruta de archivo] La ruta del script a incrustar en la imagen.
-Out [ruta de archivo] El archivo donde guardar la imagen resultante (la imagen será PNG)
-Image [ruta de archivo] La imagen donde incrustar el script. (opcional)
-WebRequest Genera un comando para leer la imagen desde la web usando Net.WebClient. Necesitarás alojar la imagen e insertar la URL en el comando.
-PictureBox Genera un comando para leer la imagen desde la web usando System.Windows.Forms.PictureBox. Necesitarás alojar la imagen e insertar la URL en el comando.
Crea una imagen con el script "Invoke-Mimikatz.ps1" incrustado y genera un comando de una línea para ejecutar desde el 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]
Crea una imagen con el script "Invoke-Mimikatz.ps1" incrustado y genera un comando de una línea para ejecutar desde la web (aún tienes que alojar la imagen y editar la 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]
Ejecutando una imagen alojada en la web:
