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
PowerShellArsenal — Un módulo de PowerShell dedicado a la ingeniería inversa. | Kitploit
Herramientas/GitHubGitHub/mattifestation/powershellarsenal
Análisis EstáticoAnálisis Dinámico (Sandboxing)Herramientas de Cifrado/DescifradoForensia de MemoriaIngeniería InversaDepuradoresAnálisis ForenseAnálisis de MalwareAnálisis de Binarios
GitHubmattifestation/powershellarsenal

PowerShellArsenal

Un módulo de PowerShell dedicado a la ingeniería inversa.

900205hace 5 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

PowerShellArsenal es un módulo de PowerShell utilizado para ayudar a un ingeniero inverso. El módulo se puede usar para desensamblar código administrado y no administrado, realizar análisis de malware .NET, analizar/escarbar memoria, analizar formatos de archivo y estructuras de memoria, obtener información interna del sistema, etc. PowerShellArsenal está compuesto por las siguientes herramientas:

Desensamblado

Desensambla código nativo y administrado.

Get-CSDisassembly

Desensambla una matriz de bytes utilizando el framework de desensamblado Capstone Engine.

Get-ILDisassembly

Desensambla una matriz de bytes MSIL sin procesar pasada desde un objeto MethodInfo de manera similar a Ildasm.

Análisis de Malware

Herramientas útiles al realizar análisis de malware.

New-FunctionDelegate

Proporciona un envoltorio ejecutable para una función X86 o X86_64.

Invoke-LoadLibrary

Carga una DLL en el proceso actual de PowerShell.

New-DllExportFunction

Crea un delegado envoltorio ejecutable alrededor de una función exportada no administrada.

Get-HostsFile

Analiza un archivo HOSTS.

New-HostsFileEntry

Reemplaza o agrega una entrada a un archivo HOSTS.

Remove-HostsFileEntry

Elimina una entrada o una serie de entradas de un archivo HOSTS.

Get-AssemblyStrings

Muestra todas las cadenas de un ejecutable .NET.

Get-AssemblyResources

Extrae recursos administrados de un ensamblado .NET.

Remove-AssemblySuppressIldasmAttribute

Elimina un atributo SuppressIldasmAttribute de un ensamblado .NET.

Get-AssemblyImplementedMethods

Devuelve todos los métodos en un ensamblado que están implementados en MSIL.

Herramientas de Memoria

Inspeccionar y analizar la memoria de procesos.

Get-ProcessStrings

Muestra todas las cadenas imprimibles de la memoria en modo usuario de un proceso.

Get-VirtualMemoryInfo

Un envoltorio para kernel32!VirtualQueryEx.

Get-ProcessMemoryInfo

Recupera información de memoria virtual para cada conjunto único de páginas en la memoria de usuario. Esta función es similar al comando !vadump de WinDbg.

Get-StructFromMemory

Marshaling de datos desde un bloque de memoria no administrado en un proceso arbitrario a un objeto administrado recién asignado del tipo especificado.

Analizadores

Analizar formatos de archivo y estructuras en memoria.

Get-PE

Un analizador de PE en disco y en memoria, y un volcador de procesos.

Find-ProcessPEs

Encuentra ejecutables portátiles en memoria independientemente de si fueron cargados de manera legítima.

Get-LibSymbols

Muestra información simbólica de archivos LIB de Windows.

Get-ObjDump

Muestra información sobre archivos de objeto (OBJ) de Windows.

Internos de Windows

Obtener y analizar información de bajo nivel del sistema operativo Windows.

Get-NtSystemInformation

Una utilidad que llama y analiza la salida de la función ntdll!NtQuerySystemInformation. Esta utilidad se puede utilizar para consultar información interna del sistema operativo que normalmente no está visible para un usuario.

Get-PEB

Devuelve el bloque de entorno de proceso (PEB) de un proceso.

Register-ProcessModuleTrace

Inicia un seguimiento de los módulos de proceso cargados.

Get-ProcessModuleTrace

Muestra los módulos de proceso que se han cargado desde la llamada a Register-ProcessModuleTrace.

Unregister-ProcessModuleTrace

Detiene el seguimiento de módulos de proceso en ejecución.

Get-SystemInfo

Un envoltorio para kernel32!GetSystemInfo.

Varios

Funciones auxiliares varias.

Get-Member

Una función proxy utilizada para extender el cmdlet Get-Member incorporado. Agrega el parámetro '-Private' que permite mostrar miembros .NET no públicos.

Get-Strings

Extrae cadenas de archivos tanto en Unicode como en ASCII. Este cmdlet replica la funcionalidad de strings.exe de Sysinternals.

ConvertTo-String

Convierte los bytes de un archivo en una cadena que tiene un mapeo 1 a 1 con los bytes originales del archivo. ConvertTo-String es útil para realizar expresiones regulares binarias.

Get-Entropy

Calcula la entropía de un archivo o matriz de bytes.

Lib

Bibliotecas requeridas por algunas de las funciones de RE.

Capstone

El enlace C# del motor de desensamblado Capstone.

De4dot

Una potente biblioteca de desofuscación .NET y análisis de PE .NET.

PSReflect

Un módulo utilizado para definir fácilmente enumeraciones, estructuras y funciones Win32 en memoria.

Formatters

Archivos ps1xml utilizados para formatear la salida de varias funciones de PowerShellArsenal.

Licencia

El módulo PowerShellArsenal y todos los scripts individuales están bajo la licencia BSD 3-Clause a menos que se indique explícitamente lo contrario.

Uso

Consulte la ayuda basada en comentarios en cada script individual para obtener información detallada de uso.

Para instalar este módulo, coloque toda la carpeta PowerShellArsenal en uno de sus directorios de módulos. Las rutas de módulos de PowerShell predeterminadas se enumeran en la variable de entorno $Env:PSModulePath.

La ruta de módulo predeterminada por usuario es: "$Env:HomeDrive$Env:HOMEPATH\Documents\WindowsPowerShell\Modules" La ruta de módulo predeterminada a nivel de equipo es: "$Env:windir\System32\WindowsPowerShell\v1.0\Modules"

Para usar el módulo, escriba Import-Module PowerShellArsenal

Para ver los comandos importados, escriba Get-Command -Module PowerShellArsenal

Si está ejecutando PowerShell v3 y desea eliminar la molesta advertencia '¿Realmente desea ejecutar scripts descargados de Internet?', una vez que haya colocado PowerShellArsenal en su ruta de módulos, ejecute la siguiente línea única: $Env:PSModulePath.Split(';') | % { if ( Test-Path (Join-Path $_ PowerShellArsenal) ) {Get-ChildItem $_ -Recurse | Unblock-File} }

Para obtener ayuda sobre cada comando individual, Get-Help es su amigo.

Nota: Las herramientas contenidas en este módulo fueron diseñadas todas para que puedan ejecutarse individualmente. Incluirlas en un módulo simplemente favorece la portabilidad.

Guía de Estilo de Scripts

Para todos los colaboradores y futuros colaboradores de PowerShellArsenal, les pido que sigan esta guía de estilo al escribir sus scripts/módulos.

  • Evite Write-Host a toda costa. ¡Las funciones/cmdlets de PowerShell no son utilidades de línea de comandos! Las solicitudes de extracción que contengan código que use Write-Host no serán consideradas. En su lugar, debe generar objetos personalizados. Para obtener más información sobre la creación de objetos personalizados, lea estos artículos:

    • http://blogs.technet.com/b/heyscriptingguy/archive/2011/05/19/create-custom-objects-in-your-powershell-script.aspx
    • http://technet.microsoft.com/en-us/library/ff730946.aspx
  • Si desea mostrar información de depuración relevante en la pantalla, use Write-Verbose. El usuario siempre puede agregar '-Verbose'.

  • Proporcione siempre ayuda descriptiva basada en comentarios para cada script. Además, asegúrese de incluir su nombre y una licencia BSD 3-Clause (a menos que existan circunstancias atenuantes que impidan la aplicación de la licencia BSD).

  • Asegúrese de que todas las funciones sigan la concordancia adecuada verbo-sustantivo de PowerShell. Use Get-Verb para listar los verbos predeterminados utilizados por PowerShell. Las excepciones a los verbos admitidos se considerarán caso por caso.

  • Prefiero que los nombres de las variables estén en mayúsculas y sean lo más descriptivos posible.

  • Proporcione un espaciado lógico entre su código. Sangre su código para hacerlo más legible.

  • Si se encuentra repitiendo código, escriba una función.

  • Capture todos los errores anticipados y proporcione una salida significativa. Si tiene un error que debería detener la ejecución del script, use 'Throw'. Si tiene un error que no necesita detener la ejecución, use Write-Error.

  • Si está escribiendo un script que interactúa con la API Win32, intente evitar compilar C# en línea con Add-Type. Intente usar el módulo PSReflect, si es posible.

  • No use rutas codificadas. Un script debe ser utilizable directamente. Nadie debería tener que modificar el código a menos que quiera hacerlo.

  • Se desea altamente compatibilidad con PowerShell v2.

  • Use parámetros posicionales y haga que los parámetros sean obligatorios cuando tenga sentido hacerlo. Por ejemplo, busco algo como lo siguiente:

    • [Parameter(Position = 0, Mandatory = $True)]
Descargar herramienta
  • No use alias a menos que tenga sentido para recibir entrada de tubería. Dificultan la lectura del código para personas que no están familiarizadas con un alias en particular.

  • Trate de no permitir que los comandos se extiendan demasiado. Por ejemplo, una tubería es un lugar natural para un salto de línea.

  • No se exceda con los comentarios en línea. Úselos solo cuando ciertos aspectos del código puedan ser confusos para el lector.

  • En lugar de usar Out-Null para suprimir la salida no deseada/irrelevante, guarde la salida no deseada en $null. Hacerlo proporciona una ligera mejora de rendimiento.

  • Use valores predeterminados para sus parámetros cuando tenga sentido. Idealmente, desea un script que funcione sin requerir ningún parámetro.

  • Declare explícitamente todas las dependencias requeridas y opcionales en la ayuda basada en comentarios de su función. Todas las dependencias de bibliotecas deben residir en la carpeta 'Lib'.

  • Si un script crea objetos personalizados complejos, incluya un archivo ps1xml que formatee adecuadamente la salida del objeto. Los archivos ps1xml se almacenan en Lib\Formatters.