Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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
PowerShellArmoury — Un arsenal de PowerShell para chicos y chicas de seguridad. | Kitploit
Herramientas/GitHubGitHub/cfalta/powershellarmoury
Herramientas de Cifrado/DescifradoGeneración de PayloadsScripting y AutomatizaciónPruebas de PenetraciónUtilidades y FrameworksRed TeamingArchived
GitHubcfalta/powershellarmoury

PowerShellArmoury

Un arsenal de PowerShell para chicos y chicas de seguridad.

Ver Repositorio
4706917hace 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

[!IMPORTANT]
Este repositorio ahora está archivado. Aunque fue un viaje divertido, creo que PSArmoury ha superado su utilidad.


PowerShellArmoury

PowerShell Armoury está diseñado para pentesters, miembros de equipos de "inserte-color-aquí" y todos aquellos que utilizan una variedad de herramientas de PowerShell durante sus compromisos. Permite descargar y almacenar todos tus scripts favoritos de PowerShell en un único archivo ofuscado.

No tienes que preocuparte por actualizar Rubeus, PowerView, ... manualmente. Solo crea un archivo de configuración una vez o usa el predeterminado incluido con la herramienta. De ahora en adelante, solo tienes que ejecutar "New-PSArmoury" antes de dirigirte al próximo compromiso.

Además, PSArmoury ofusca tu código y viene con un bypass de AMSI incluido. El diseño modular debería facilitarte cambiar el código de evasión u ofuscación en caso de que haya una detección.



Estructura general

La versión actual de PSArmoury favorece un diseño modular.

 New-PSArmoury.ps1
 PSArmoury.json
 utilities
    ConvertTo-Powershell.ps1
    Invoke-Shuffle.ps1
 modules
    evasion.ps1
    obfuscation.ps1

El código se divide en un script generador principal llamado New-PSArmoury.ps1, que es el que ejecutas. El código para evasión, ofuscación y desofuscación se almacena en archivos .ps1 separados en el directorio modules. Estos archivos separados son invocados por el script principal y deberían facilitarte cambiar funciones específicas (como un bypass de AMSI).

Además del directorio modules, también está el directorio utilities. Aquí encontrarás scripts independientes que pueden ser útiles en escenarios específicos.

El directorio modules

La ruta predeterminada del directorio modules es .\modules, donde el punto se refiere al directorio de trabajo actual de tu shell. Puedes cambiar la ruta del directorio modules usando el argumento -ModulesDirectory de New-PSArmoury. Sin embargo, los nombres de los archivos de script en sí están codificados en el script principal y siempre se espera que sean:

  • evasion.ps1
  • obfuscation.ps1

Echemos un vistazo más de cerca a estos dos.

evasion.ps1

Este script debe contener el código destinado a evadir lo que sea que pretendas evadir. Por defecto, contiene un conocido bypass de AMSI (gracias amsi.fail). Ten en cuenta que:

  • el código aquí se ejecuta ANTES que todo lo demás (por ejemplo, desofuscación)
  • ¡no hay ABSOLUTAMENTE NINGÚN TIPO DE VALIDACIÓN! Todo lo que pongas aquí se canalizará a IEX tal cual.

obfuscation.ps1

Este script debe contener el código utilizado para ofuscación y desofuscación. El obfuscation.ps1 predeterminado utiliza cifrado RC2. Ejemplos listos para usar:

  • TEMPLATE_obfuscation_RC2.ps1 --> este es el predeterminado
  • TEMPLATE_obfuscation_byte_convert.ps1
  • TEMPLATE_obfuscation_empty.ps1

Ten en cuenta que TEMPLATE_obfuscation_empty.ps1 realmente no hace nada en absoluto y sirve como plantilla para que construyas tu propia función.

Si quieres usar alguno de ellos, simplemente renómbralo a "obfuscation.ps1" y elimina el archivo predeterminado.

Si deseas crear una versión personalizada, ten en cuenta lo siguiente con respecto a la ofuscación:

  • El nombre de la función DEBE ser siempre "Get-PSArmouryObfuscation" con un único parámetro de cadena llamado "Code" porque eso es lo que el script principal llamará en cualquier elemento que quieras poner en el armory.
  • La función DEBERÍA devolver la versión ofuscada del código nuevamente como un único valor de cadena. El código principal de los scripts ejecuta un bucle adicional de codificación/decodificación base64 para asegurarse de que también podemos manejar otras cosas que le lances, pero sería más fácil si pudieras simplemente convertirlo en una cadena ;-)
  • La función de desofuscación correspondiente DEBE entender lo que sea que devuelvas aquí. El script principal solo está pasando resultados --> aquí no ocurre magia

Y asegúrate de recordar estas cosas en términos de desofuscación:

  • El nombre de la función DEBE ser siempre Get-PSArmouryDeObfuscation sin parámetros, ya que itera sobre una variable global fija.
  • La función DEBE devolver la versión desofuscada del código nuevamente como un único valor de cadena, lista para ejecutar. Simplemente estamos canalizando todo lo que devuelves a IEX, así que el resto depende de ti.

El directorio utilities

El directorio utilities contiene scripts independientes útiles.

  • ConvertTo-Powershell.ps1
    • Convierte una aplicación de consola en C# a un script de PowerShell. Para más detalles, consulta la publicación del blog correspondiente.
  • Invoke-Shuffle.ps1
    • Un script de ofuscación simple que convierte una sola línea de código en múltiples variables que contienen partes de la cadena original, que luego se fusionan e invocan durante la ejecución.

Referencia de configuración

El archivo de configuración debe ser un json válido que consista en un solo array con uno o más objetos, donde cada objeto se interpreta como una única fuente de script. Cada objeto tiene los siguientes atributos

Name (Mandatory)

Un nombre de tu elección para identificar el script incluido en este objeto. Está pensado como referencia para ti mismo.

URL (Mandatory)

La ubicación para obtener el contenido del script. Puede ser una URL a un recurso web (https://) o una ruta local (C:) o un recurso de red (\...). La URL se introduce en Net.Webclient o en Get-Item de PowerShell respectivamente. Así que básicamente cualquier formato que uno de esos dos pueda manejar por defecto debería funcionar.

Type (Mandatory)

Esto da una pista sobre la ubicación del script al creador del armory. Hay tres tipos válidos:

  • GitHub
    • Solicitará credenciales para que podamos autenticarnos contra la API de GitHub. También intentará distinguir entre una URL "raw" que apunta directamente a un archivo o una URL que apunta a un repositorio. Si la URL apunta a un repositorio, el script buscará automáticamente todos los archivos de PowerShell en ese repositorio y los incluirá. Como "https://github.com/cfalta/PoshRandom"
  • WebDownloadSimple
    • Significa un archivo que se puede descargar sin autenticación ni nada usando una solicitud HTTP GET. Como "http://mywebserver.com/file.ps1"
  • LocalFile
    • Un archivo en disco como "C:\temp\test.ps1". Si la ruta apunta a un directorio, se incluirán todos los archivos (de forma recursiva) con la extensión ".ps1".

FileInclusionFilter (Optional)

Solo se interpretará en un objeto de tipo "GitHub". Se comparará con el operador de comparación "like" de PowerShell contra el nombre completo del archivo, así que ten en cuenta que debes incluir los comodines tú mismo. No olvides incluir un asterisco (*) si quieres coincidir con parte de un nombre de archivo. "*.ps1" significa todos los archivos que terminan en ".ps1", pero ".ps1" solo significa ".ps1".

FileExclusionFilter (Optional)

Como el InclusionFilter pero obviamente al revés. La exclusión tiene prioridad.

Argumentos

Consulta la ayuda incorporada de PowerShell (man -full New-PSArmoury) para más detalles.

-Path

La ruta a tu nuevo archivo armory. El valor predeterminado es ".\MyArmoury.ps1"

-FromFile

Carga tus scripts de PowerShell directamente desde una carpeta o archivo local y no tienes que proporcionar un archivo de configuración.

-Config

La ruta a tu archivo de configuración JSON. Echa un vistazo al ejemplo que viene con este script para ideas.

-ModulesDirectory

La ruta al directorio modules. El valor predeterminado es ".\modules". Si se usa ModulesDirectory, entonces los parámetros EvasionPath y ObfuscationPath no se pueden usar.

Descargar herramienta