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
sharem — SHAREM es un framework de análisis de shellcode, capaz de emular más de 45,000 APIs de Windows y prácticamente todas las syscalls de Windows. También contiene su propio desensamblador personalizado, con muchas características innovadoras, como la capacidad de mostrar el desensamblado desofuscado de un shellcode codificado, o integrar datos de emulación para mejorar el desensamblado. | Kitploit
Herramientas/GitHubGitHub/bw3ll/sharem
Análisis Dinámico (Sandboxing)Ingeniería InversaShellcodeDepuradoresFuzzingAnálisis de MalwareAnálisis de BinariosSeguridad de IA
GitHubbw3ll/sharem

sharem

Ver Repositorio
49168hace 5 mesesRevisado 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 →

Acerca de

SHAREM es un framework de análisis de shellcode, capaz de emular más de 45,000 APIs de Windows y prácticamente todas las syscalls de Windows. También contiene su propio desensamblador personalizado, con muchas características innovadoras, como la capacidad de mostrar el desensamblado desofuscado de un shellcode codificado, o integrar datos de emulación para mejorar el desensamblado.

Compartir

SHAREM

¡Bienvenido a SHAREM!

SHAREM fue presentado en DEFCON 31 en la charla "Game-Changing Advances in Windows Shellcode Analysis" y en el Arsenal de Black Hat USA. Un plugin complementario para Ghidra fue puesto a disposición (por separado) por Trellix, cortesía de Max Kersten. Por lo tanto, puedes extender el poder de SHAREM a Ghidra, si así lo deseas.

SHAREM está diseñado para ser la herramienta definitiva para shellcode de Windows, con soporte para emular más de 45 000 WinAPIs, prácticamente todas las syscalls de Windows en modo usuario, y SHAREM proporciona numerosas funciones nuevas. SHAREM contiene un emulador, un desensamblador, depuración intemporal, desofuscación por fuerza bruta y muchas otras características. El emulador de SHAREM también puede mostrar estructuras completas (o incluso estructuras dentro de estructuras) y puede permitir que el shellcode codificado se desofusque a sí mismo. SHAREM registra la salida de todas las WinAPIs y syscalls de Windows analizadas, y también divide cada una en muchas categorías y subcategorías. La cobertura de código completa de SHAREM también permite descubrir funcionalidades inalcanzables.

El desensamblador de SHAREM es capaz de integrar funciones descubiertas en el desensamblado, etiquetando cada una en el desensamblador. SHAREM también mostrará la forma descifrada del shellcode codificado en el desensamblador, por lo que no es necesario depurar el shellcode.

Hemos creado una SHAREM Wiki que proporciona información instructiva sobre el uso de SHAREM, aunque hay partes y características significativas que aún no están documentadas. SHAREM se ha desarrollado durante un período de dos años con varias personas trabajando en él. El desensamblador de SHAREM es significativamente más preciso que los desensambladores líderes. Además, SHAREM puede integrar datos de emulación en el desensamblador, lo que permite obtener un desensamblado casi perfecto.

Tenga en cuenta que, como SHAREM acaba de ser lanzado, la documentación aquí es un poco escasa. Actualizaremos el GitHub con más información en las próximas semanas.

Si eres nuevo en SHAREM, no dudes en ver un breve video de demostración que muestra algunas de sus capacidades. Haz clic en la imagen para ver la demostración: Mira el video

Actualizaciones recientes

Marzo de 2026: SHAREM cargará hasta 61 DLL al iniciar, pero con la última actualización, ahora puede soportar 369 DLL y 45 538 WinAPIs únicas. Además, las DLL se cargan bajo demanda según sea necesario. Las características internas de Windows (como listas de módulos, flinks, blinks, etc.) se actualizarán automáticamente si es necesario cargar DLL adicionales, por ejemplo, a través de LoadLibraryA. Ha habido numerosas otras actualizaciones para mejorar la funcionalidad. Se han realizado cambios para ayudar a agilizar algunos problemas que me han informado sobre desafíos de instalación.

22 de marzo de 2026: La lógica para salir de bucles se ha refinado con más matices. Gran parte de esto ha sido reescrito y probado nuevamente. No recomendamos cambiar el valor predeterminado en config.cfg a menos que decidas usar esta función.

2024/2025: SHAREM puede usar opcionalmente IA para analizar resultados, con una clave de OpenAI (proporcionada por el usuario). Ten en cuenta que SHAREM fue creado antes de los avances recientes en IA, y su uso de IA solo ocurre después de que se completa el análisis inicial de SHAREM. Esta función opcional puede permitirle examinar lo que se ha encontrado y aplicarlo al marco MITRE ATT&CK y mucho más.

Instrucciones de instalación

Windows

SHAREM se instala como un paquete local de Python, para que podamos acceder a él en otros proyectos. Esto permite importar partes de SHAREM. Por lo tanto, debe instalarse como un paquete. Nota: He oído informes de algunos problemas de instalación. Los cambios recientes deberían corregir este problema.

  1. Se requiere Git para la instalación de sharem. Se puede instalar desde https://git-scm.com/download/win. Después de la instalación, reinicia el ordenador y continúa con la instalación de SHAREM. Git se utiliza para automatizar la instalación de SSDeep para Windows. También puedes hacerlo manualmente y modificar el .bat para excluir SSDeep, si lo haces tú mismo. Instalarlo manualmente evita la necesidad de usar Git. Nota: para Windows, nos estamos moviendo a un fork de SSDeep en la cuenta de Bw3ll que corrige algunos problemas de instalación con la versión anterior. Esta versión y la anterior eran envoltorios para SSDeep.

  2. Ejecuta el archivo .bat. Llamará al archivo setup.py. Dependiendo de cómo llames a Python, es posible que necesites llamar al archivo .bat alternativo o incluso modificarlo ligeramente, si usas algo no estándar.

  3. Haz py -m pip list o python3 -m pip list para verificar que SHAREM esté instalado localmente como un paquete. Debe estar instalado como paquete para funcionar. ¿Qué sucede si NO lo ves? Entonces NO está instalado como paquete y SHAREM NO funcionará. Asegúrate de usar los archivos .bat y hacerlo en el símbolo del sistema de Windows desde el directorio installers. Si no funciona, busca mensajes de error. Si hay alguno, intenta corregirlos. Puedes intentarlo varias veces. Si aún así no funciona, abre un issue e intenta incluir toda esta información para que podamos tratar de descubrir qué está mal. Generalmente, no será necesario, pero ocasionalmente puede serlo. Si lo desinstalaste una vez y decidiste instalarlo de nuevo, es posible que necesites ejecutar el script de instalación nuevamente. Una vez que veas sharem aparecer cuando ejecutes py -m pip list, sabrás que está instalado correctamente como paquete local.

Después de instalar SHAREM, cuando ejecutes un shellcode por primera vez, debes estar dentro de la carpeta sharem_cli. Por ejemplo, cuando estés en ese directorio, puedes ejecutar py main.py -r32 shellcode.bin. ¿No tienes shellcode? No hay problema, puedes encontrar algunas muestras en el repositorio de muestras de shellcode que alojo en un repositorio separado.

Nota: La primera vez que intentes emular un shellcode en Windows, intentará cosechar e inflar las DLL de Windows. Este proceso comienza automáticamente al intentar emular un shellcode por primera vez. Copiará las DLL, moviendo las copiadas (y luego infladas) a un directorio de SHAREM. Hay pasos adicionales, pero todo este proceso inicial puede llevar varios minutos, o incluso 10-15 minutos, si tienes una CPU muy antigua. Una vez completado, no deberías tener que hacer esto de nuevo. Esto debe hacerse por separado tanto para shellcode de 32 como de 64 bits. Puedes navegar a sharem/sharem/sharem/sharem/DLLs/x86 y deberías ver que las DLL aparecen lentamente. Estas se toman del sistema operativo, se modifican para emular lo que el sistema operativo haría con ellas y se guardan en este directorio. Habrá un poco más de 60. Si ves alrededor de ese número de DLL y no se están guardando DLL adicionales, significa que probablemente está atascado. Simplemente presiona Enter nuevamente. Si eso falla, simplemente reinicia e intenta emular de nuevo. Una vez que las DLL estén guardadas, no deberías necesitar hacer esto de nuevo; solo la primera vez puede llevar tiempo, dependiendo de la velocidad de la CPU. Deberías ver los resultados de emulación al finalizar, como la enumeración de diferentes WinAPIs o syscalls de Windows.

Si el archivo termina en .txt, asumirá que el shellcode es una representación ASCII de HEX (en lugar de hexadecimal puro) y lo interpretará como tal. Esto funciona con algo encontrado en línea. Si se usa una representación ASCII del hexadecimal, es necesario que el nombre del archivo termine en .txt.

Linux

  1. chmod +x linux_installer.sh Habilita la ejecución del instalador
  2. sudo ./linux_installer.sh Ejecuta el instalador
  3. Agrega los archivos DLL

Necesitarás agregar los archivos DLL de Windows. Actualmente no los tenemos disponibles como descarga separada para usuarios de Linux. Por el momento, los usuarios necesitarían cosecharlos instalándolos a través de Windows. (Nota: Estas DLL deben ser infladas por SHAREM. Las DLL no se pueden usar si no están infladas. La mayoría, aunque quizás no todas, fallarán si no se inflan en la cantidad adecuada). Más adelante, es posible que proporcionemos estos archivos como descarga separada en las próximas semanas. Pero mientras tanto, el usuario puede seguir los pasos de Windows para generarlos y moverlos a Linux, colocándolos en sharem\sharem\sharem\DLLs\x64 y sharem\sharem\sharem\DLLs\x86. También necesitarías los archivos foundDLLAddresses32.json y FoundDLLAddresses64.json, que deben ir en sharem\sharem\sharem .

OpenAI

SHAREM en 2024 ha agregado soporte para OpenAI, para que podamos aprovechar la IA para automatizar algunas tareas de análisis. Esto se puede activar mediante A en el menú principal - "leverage AI". Para hacer esto, debes tener una clave de OpenAI y ponerla en el archivo config.cfg, que está en sharem/sharem/sharem/sharem/config.cfg. Además, debes emular un shellcode antes de que te permita aprovechar la IA. Actualmente, esta es la única forma de usar la IA: no funciona de manera headless, pero si alguien necesita eso, por favor abra un issue y agregaré soporte para ello, como otra opción que se puede elegir a través de la configuración. Si ya tienes instalado SHAREM y obtienes la versión actualizada, es posible que desees instalar OpenAI manualmente, por ejemplo, pip install openai. Lo he agregado a los requisitos también para el archivo setup.py que se activa al ejecutar los scripts de instalación iniciales.

Script de Ghidra

El excelente script de Ghidra de Max Kersten, tal como se mostró en Black Hat y DEFCON en agosto de 2023, se puede encontrar aquí: https://github.com/advanced-threat-research/GhidraScripts/blob/main/Sharem.java Algunas instrucciones de Max están aquí: https://github.com/advanced-threat-research/GhidraScripts/ Este plugin de Ghidra es cortesía de Trellix. Aún es necesario usar SHAREM. Este script ingiere la salida JSON producida por SHAREM y la convierte en un formato útil para Ghidra. Más información sobre Max se puede encontrar en https://maxkersten.nl/.

Documentación

La documentación se puede encontrar en la SHAREM Wiki, que proporciona información instructiva sobre el uso de SHAREM, aunque hay partes y características significativas que aún no están documentadas.

Actualizaciones

  • 29 de septiembre de 2022: Hicimos una actualización muy menor en setup.py con respecto a numpy, que puede afectar a algunas personas con la última versión de Python.
  • 25 de noviembre de 2022: Muy atrasado, hicimos algunos cambios para soportar el estilo de syscalls de ShellWasp. Aunque previamente habíamos implementado soporte para syscalls, el estilo de ShellWasp no funcionaba, solo SSNs (valores de syscall) codificados. Se inicializaron OSMajorVersion, OSMinorVersion y OSBuild para 32 y 64 bits. Cualquier versión del sistema operativo que el usuario tenga en la configuración o a través de la interfaz de usuario ahora se reflejará internamente; por ejemplo, seleccionar Windows 10 20H2 haría que se poblaran los valores correctos, permitiendo que funcione la técnica de ShellWasp, como se muestra en este ejemplo de salida. Solo Windows 7, 10 y 11 son compatibles para la emulación de la técnica ShellWasp en este momento.
  • 29 de noviembre de 2022: Se agregó soporte de emulación para las nuevas versiones de sistema operativo, 22H2 para Windows 10 y 11. Esto solo es relevante para emular syscalls de Windows. Muchas correcciones menores de errores y mejoras de calidad de vida. Mejor distinción de características para cuando SHAREM se usa para shellcode (su enfoque principal) y cuando se usa para analizar archivos PE.
  • 1 de diciembre de 2022: Se cambió la ubicación predeterminada del archivo para la salida de bins/ASCII a logs. Se agregó la capacidad de generar bins/ASCII desofuscados con este comando. Se agregó ASCII desofuscado a los logs; también parecía que faltaba el ASCII del bin en los logs, eso se ha corregido.
  • 29 de diciembre de 2022: Agregué una función opcional de depuración intemporal para la pila. Anteriormente, la depuración intemporal solo capturaba las instrucciones ejecutadas y los valores de los registros antes y después. Ahora podemos ver +/- 0xA0 desde ESP. Desafortunadamente, es un poco lenta. Esto debe habilitarse por separado. Además, descubrí algunos errores que daban resultados incorrectos al salir de bucles, lo que en algunos casos podía causar que una emulación terminara prematuramente. He corregido esto. También he hecho que SHAREM genere salida cuando sale de bucles, indicando a dónde va una vez que sale de un bucle.
  • 4 de enero de 2023: Revisé considerablemente la cobertura de código completa, mejorando su rendimiento. También he expuesto varias funciones opcionales que los usuarios expertos pueden ajustar caso por caso a través de la interfaz de usuario o el archivo de configuración. Más información en la página wiki de cobertura de código completa.

Capturas de pantalla

SHAREM es un marco muy potente con numerosas capacidades, algunas bien documentadas y otras que no. Esta sección mostrará un pequeño número de esas capacidades.

SHAREM puede tomar un shellcode codificado y desofuscarlo mediante emulación. No solo captura toda la información de WinAPI o syscall, sino que si eliges verlo en el desensamblador, te muestra la forma decodificada del shellcode:

imagen

SHAREM no solo puede enumerar más de 12 000 funciones WinAPI, sino que también puede hacerlo con prácticamente todas las syscalls de Windows en modo usuario. Además, para algunas muestra información de estructuras. Para aquellos que trabajan con el registro, extraerá información del registro y la agregará a nuestro Administrador de Registro:

imagen

SHAREM también tiene la capacidad de descargar archivos a través de UrldownloadToFileA, si existen. Estos se descargan en la memoria del emulador, no se guardan en el disco. Si tiene éxito, capturará el hash. También hay un sistema de pseudoarchivos limitado, por lo que puedes ver correlaciones, como un archivo que se descarga como una cosa y se renombra a otra. Si la descarga necesaria no está disponible, simplemente se simulará como una descarga exitosa. La descarga en vivo es una opción que se puede habilitar o deshabilitar en la configuración.

imagen

Coautores y colaboradores

Dr. Bramwell Brizendine, Austin Babcock, Jake Hince, Shelby VandenHoek, Sascha Walker, Evan Read, Dylan Park, Kade Brost, James Tate Forcella, William Lochte, Hunter Murphy y Tarek Abdelmotaleb.

Agradecimiento

Esta investigación y algunos coautores han sido apoyados por la subvención NSA H98230-20-1-0326.

Descargar herramienta
  • 5 de enero de 2023: Se agregó un atajo de teclado al submenú de cobertura de código completa desde el menú del emulador. Para aquellos que ya descargaron la actualización de ayer, el atajo es la letra "o".
  • 16 de enero de 2023: Se agregaron tres nuevos campos a los archivos JSON de desensamblado que se generan. Esta actualización NO es necesaria para quienes no usan esos JSON, que es una forma no estándar de usar SHAREM.
  • 3 de agosto de 2023: Se agregaron aproximadamente 5000-6000 APIs de alrededor de 30 DLL adicionales. Otras mejoras en apoyo de esto.
  • 2024/2025: SHAREM puede usar opcionalmente IA para analizar resultados, con una clave de OpenAI (proporcionada por el usuario). Ten en cuenta que SHAREM fue creado antes de los avances recientes en IA, y su uso de IA solo ocurre después de que se completa el análisis inicial de SHAREM. Esta función opcional puede permitirle examinar lo que se ha encontrado y aplicarlo al marco MITRE ATT&CK y mucho más.
  • Marzo de 2026: SHAREM cargará hasta 61 DLL al iniciar, pero con la última actualización, ahora puede soportar 369 DLL y 45 538 WinAPIs únicas. Ha habido numerosas otras actualizaciones para mejorar la funcionalidad. Se han realizado cambios para ayudar a agilizar algunos problemas que me han informado sobre desafíos de instalación.
  • 22 de marzo de 2026: La lógica para salir de bucles se ha refinado con más matices.