Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
norimaci — OpenBSM 또는 Monitor.app을 통해 시스템 활동을 모니터링하고 파일, 프로세스, 네트워크 이벤트에 대한 상세 보고서와 타임라인을 생성하는 경량 macOS 악성코드 분석 샌드박스입니다. | Kitploit
도구/GitHubGitHub/mnrkbys/norimaci
Dynamic Analysis (Sandboxing)ForensicsMalware Analysis
GitHubmnrkbys/norimaci

norimaci

OpenBSM 또는 Monitor.app을 통해 시스템 활동을 모니터링하고 파일, 프로세스, 네트워크 이벤트에 대한 상세 보고서와 타임라인을 생성하는 경량 macOS 악성코드 분석 샌드박스입니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Norimaci

"Norimaci"는 macOS용 간단하고 가벼운 멀웨어 분석 샌드박스입니다. 이 도구는 "Noriben"에서 영감을 받았습니다. Norimaci는 Sysinternals Process Monitor(procmon) 대신 OpenBSM 또는 Monitor.app의 기능을 사용하여 macOS 시스템 활동을 모니터링합니다.

Norimaci는 3개의 Python 스크립트로 구성됩니다.

  • norimaci.py : 메인 스크립트
  • openbsmconv.py : OpenBSM 감사 로그 변환기
  • monitorappconv.py : Monitor.app 데이터 변환기

OpenBSM은 macOS의 활동을 감사하는 프레임워크입니다. 자세한 내용은 해당 웹사이트를 참조하십시오.

Monitor.app은 FireEye에서 만든 무료 도구입니다. 자세한 내용은 해당 웹사이트를 참조하십시오.

왜 "Norimaci"인가?

제 이전 동료(@cci_forensics)가 이 이름을 제안했습니다.

"Norimaci"는 "Noriben"과 "Macintosh"를 결합한 조어입니다. "Norimaki"로 발음되며, 일본어로 "のり巻き"를 나타냅니다. 영어로는 "sushi roll"을 의미합니다.

Noriben은 최소한의 재료로 구성된 일본식 도시락입니다. 노리마키의 재료는 노리벤과 유사합니다(김, 밥, 그리고 기타 원하는 재료).

그래서 이 도구의 이름을 "Norimaci"로 정했습니다.

요구 사항

  • OS X 10.6 이상 (macOS 10.13 - 10.15에서 테스트 완료)
  • VMware Fusion, Parallels, VirtualBox 등
  • Python 3.5 이상

선택적 요구 사항

  • Monitor.app

참고: Monitor.app은 macOS 10.12 - 10.14만 지원합니다. macOS 10.15 이상에서 멀웨어를 실행하려면 설치할 필요가 없습니다. 대신 OpenBSM을 사용해야 합니다.

Monitor.app과 함께 Norimaci를 사용하려면 다음 라이브러리를 소스 저장소나 pip에서 설치해야 합니다.

  • py-applescript
  • PyObjC
  • dnslib

준비

멀웨어 실행용 가상 머신 구축

멀웨어 샘플을 실행할 macOS VM을 구축해야 합니다. 또한 가짜 인터넷 연결을 위한 별도의 VM을 구축하는 것이 좋습니다. 많은 멀웨어가 자체 서버(예: C2 서버)에 연결을 시도하기 때문입니다.

PolarProxy와 INetSim은 가짜 HTTP/HTTPS 및 DNS 서비스를 제공하는 매우 유용한 도구입니다. 가짜 인터넷 구축에 대한 자세한 내용은 NETRESEC 블로그를 참조하십시오.

/etc/security/audit_control 편집

OpenBSM을 사용하여 시스템 활동을 모니터링하는 경우 /etc/security/audit_control 파일을 아래와 같이 수정해야 합니다. 기본적으로 OpenBSM은 로그인 및 인증에 대한 감사 로그만 기록합니다. 그러나 Norimaci는 더 다양한 종류의 감사 로그(파일 생성, 파일 삭제, 프로세스 실행, 네트워킹 등)가 필요합니다.

수정 후 설정을 적용하려면 컴퓨터를 재부팅해야 합니다.

root@kitploit:~
#
# $P4: //depot/projects/trustedbsd/openbsm/etc/audit_control#8 $
#
dir:/var/audit
flags:lo,aa,fc,fd,pc,nt,ex      <- 이와 같이 편집
minfree:5
naflags:lo,aa,fc,fd,pc,nt,ex    <- 이와 같이 편집
policy:cnt,argv
filesz:2M
expire-after:10M
superuser-set-sflags-mask:has_authenticated,has_console_access
superuser-clear-sflags-mask:has_authenticated,has_console_access
member-set-sflags-mask:
member-clear-sflags-mask:has_authenticated

사용법

OpenBSM을 사용한 기본 사용법 (가장 표준적인 사용법)

  1. sudo로 norimaci.py를 실행합니다.
  2. 멀웨어 샘플을 실행합니다 (DMG, PKG, Mach-O 바이너리 등 모든 유형의 멀웨어 실행 가능).
  3. 잠시 기다립니다 (멀웨어가 목표를 달성할 때까지).
  4. Norimaci가 실행 중인 터미널에서 적절한 시점에 "Ctrl + C"를 누릅니다.
  5. 2가지 종류의 보고서가 생성됩니다 (Norimaci_dd_Mon_yy__hh_mm_ffffff.txt 및 Norimaci_dd_Mon_yy__hh_mm_ffffff_timeline.csv).
  6. 선호하는 도구(예: 텍스트 편집기, grep, less 등)로 보고서를 확인합니다.
root@kitploit:~
$ sudo python3 ./norimaci.py -m openbsm -o ./out/
Password:

--===[ Norimaci v0.1.0
--===[ Minoru Kobayashi [@unkn0wnbit]
[*] Launching OpenBSM agent...
[*] When runtime is complete, press CTRL+C to stop logging.
^C
[*] Termination of OpenBSM agent commencing... please wait
[*] Converting OpenBSM data ...
[*] Loading converted macOS activity data ...
[*] Saving report to: /Users/macforensics/tools/norimaci/out/Norimaci_14_Jan_20__15_55_093219.txt
[*] Saving timeline to: /Users/macforensics/tools/norimaci/out/Norimaci_14_Jan_20__15_55_093219_timeline.csv

Monitor.app을 사용한 기본 사용법

참고: Monitor.app은 macOS 10.15에서 실행할 수 없습니다. 그러나 macOS 10.14 이하에서는 정상 작동합니다.

  1. sudo로 norimaci.py를 실행합니다.
  2. Norimaci가 Monitor.app을 실행한 후 비밀번호를 입력합니다 (Monitor.app은 kext 설치를 위해 비밀번호가 필요합니다).
  3. 멀웨어 샘플을 실행합니다 (DMG, PKG, Mach-O 바이너리 등 모든 유형의 멀웨어 실행 가능).
  4. 잠시 기다립니다 (멀웨어가 목표를 달성할 때까지).
  5. Norimaci가 실행 중인 터미널에서 적절한 시점에 "Ctrl + C"를 누릅니다.
  6. 2가지 종류의 보고서가 생성됩니다 (Norimaci_dd_Mon_yy__hh_mm_ffffff.txt 및 Norimaci_dd_Mon_yy__hh_mm_ffffff_timeline.csv).
  7. 선호하는 도구(예: 텍스트 편집기, grep, less 등)로 보고서를 확인합니다.

스크립트 도움말

  • norimaci.py
root@kitploit:~
$ python3 ./norimaci.py -h

--===[ Norimaci v0.1.0
--===[ Minoru Kobayashi [@unkn0wnbit]
usage: norimaci.py [-h] [-m MONITOR] [-j JSON] [-bl OPENBSM_LOG] [-p PROCLIST]
                   [-ml MONITORAPP_LOG] [-o OUTPUT] [--force] [--debug]

Light weight sandbox which works with OpenBSM or Fireeye's Monitor.app

optional arguments:
  -h, --help            show this help message and exit
  -m MONITOR, --monitor MONITOR
                        Specify a program to monitor macOS activity. You can
                        choose 'openbsm' or 'monitorapp'.
  -j JSON, --json JSON  Path to a JSON file which is converted by
                        'openbsmconv.py' or 'monitorappconv.py'.
  -bl OPENBSM_LOG, --openbsm-log OPENBSM_LOG
                        Path to an OpenBSM log file.
  -p PROCLIST, --proclist PROCLIST
                        Path to a process list file to process OpenBSM log
                        file. A file which has ".proclist" extnsion would be
                        used, if this option is not specified.
  -ml MONITORAPP_LOG, --monitorapp-log MONITORAPP_LOG
                        Path to a Monitor.app data file.
  -o OUTPUT, --output OUTPUT
                        Path to an output directory.
  --force               Enable to overwrite output files.
  --debug               Enable debug mode.
  • openbsmconv.py
root@kitploit:~
$ python3 ./openbsmconv.py -h
usage: openbsmconv.py [-h] [-f FILE] [-p PROCLIST] [-o OUT] [-c] [-rp]
                      [--with-failure] [--with-failure-socket] [--force]
                      [--debug]

Converts OpenBSM log file to JSON format.

optional arguments:
  -h, --help            show this help message and exit
  -f FILE, --file FILE  Path to a bsm log file
  -p PROCLIST, --proclist PROCLIST
                        Path to a process list file
  -o OUT, --out OUT     Path to an output file
  -c, --console         Output JSON data to stdout.
  -rp, --use-running-proclist
                        Use current running process list instead of a existing
                        process list file. And, the process list is saved to a
                        file which places in the same directory of '--file' or
                        to a file which specified '--proclist'.
  --with-failure        Output records which has a failure status too.
  --with-failure-socket
                        Output records which has a failure status too (related
                        socket() syscall only).
  --force               Enable to overwrite an existing output file.
  --debug               Enable debug mode.
  • monitorappconv.py
root@kitploit:~
$ python3 ./monitorappconv.py -h
usage: monitorappconv.py [-h] [-f FILE] [-o OUT] [-c] [--force] [--debug]

Parses data of Fireeye Monitor.app and converts it to JSON format. Please note
that strings in JSON data are saved as UTF-8.

optional arguments:
  -h, --help            show this help message and exit
  -f FILE, --file FILE  Path to a saved data of Monitor.app.
  -o OUT, --out OUT     Path to an output file.
  -c, --console         Output JSON data to stdout.
  --force               Enable to overwrite an output file.
  --debug               Enable debug mode.

데모

Norimaci로 macOS 10.15 Catalina에서 AppleJeus.A 분석. 이 데모 영상은 Japan Security Analyst Conference 2020 (JSAC2020)를 위해 제작되었습니다.

Norimaci demo

설치

root@kitploit:~
git clone https://github.com/mnrkbys/norimaci.git

향후 계획

  • YARA 스캐닝
  • VirusTotal 스캐닝

작성자

Minoru Kobayashi

라이선스

Apache License, Version 2.0

도구 다운로드