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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
machscope — macOS IPC, launchd, Mach-O 및 신뢰 관계 탐색기 — 제로 의존성 터미널 네이티브 포렌식 도구 | Kitploit
도구/GitHubGitHub/m10ust/machscope
ReconnaissanceVulnerability AnalysisReverse EngineeringForensicsInformation GatheringMalware AnalysisDigital ForensicsBinary AnalysisThreat IntelligenceIncident Response
GitHubm10ust/machscope

machscope

2개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

macOS IPC, launchd, Mach-O 및 신뢰 관계 탐색기 — 제로 의존성 터미널 네이티브 포렌식 도구

저장소 보기

machscope

machscope는 터미널 기반 macOS 탐색기로, 프로세스, launchd 작업, Mach 서비스, 번들, 서명, entitlements 및 Mach-O 연결을 하나의 탐색 가능한 그래프로 변환합니다.

하나의 간단한 질문을 잔인할 정도로 잘 답하기 위해 존재합니다:

이 프로세스, 서비스, 바이너리, 또는 번들은 실제로 무엇에 연결되어 있는가?

프로세스, 실행 파일, launchd 작업, Mach 서비스, 번들, 내장 XPC 서비스, 코드 서명, entitlements, Mach-O 연결, 및 신뢰/이상 징후 발견을 하나의 뷰로 연결합니다.

Activity Monitor, ps, lsof, launchctl, codesign, otool이 편집증적이면서 운영자 친화적인 자식을 낳았다면 바로 이것일 것입니다.

존재 이유

macOS 내부는 우아하지만, 진실은 흩어져 있습니다.

의심스러운 프로세스 하나를 이해하려면 종종 다음 사이를 오가야 합니다:

  • ps
  • lsof
  • launchctl
  • codesign
  • otool
  • 번들 Info.plist
  • launchd plist
  • 자신의 노트와 추측

machscope는 이 워크플로를 단일 터미널 도구로 압축합니다.

다음을 위해 만들어졌습니다:

  • 보안 분류
  • 악성코드 사냥
  • 지속성 조사
  • launchd 및 Mach 서비스 탐험
  • 이상한 macOS 동작 디버깅
  • 앱이 실제로 어떻게 구성되어 있는지 이해

기능

PID, 경로, launchd 레이블, 또는 Mach 서비스 이름이 주어지면, machscope는 다음을 연결할 수 있습니다:

  • ps에서 가져온 프로세스 메타데이터
  • lsof에서 가져온 실행 파일 경로 및 열린 파일 컨텍스트
  • launchctl에서 가져온 launchd 상태 및 레이블 힌트
  • launchd plist 메타데이터 및 선언된 MachServices
  • 번들 ID 및 내장 .xpc 서비스
  • codesign에서 가져온 코드 서명 식별자, 팀 ID, 인증서 체인 및 런타임 힌트
  • codesign에서 가져온 엔타이틀먼트 데이터
  • otool에서 가져온 Mach-O 헤더, 연결된 dylib, 로드 명령어 및 rpath
  • 내보내기용 그래프 노드/엣지
  • 증거가 있는 신뢰 발견

모든 실시간 XPC 관계를 관찰한다고 주장하지 않습니다. 일부 관계는 선언된 것이지 관찰된 것이 아닙니다. 그 정직함은 의도적입니다.

원시 macOS 도구 대신 machscope를 사용하는 이유

  • ps는 프로세스만 보여주고 소유권 체인은 보여주지 않습니다.
  • launchctl은 작업만 보여주고 전체 바이너리/번들/신뢰 컨텍스트는 보여주지 않습니다.
  • codesign은 신원만 보여주고 런타임 관계는 보여주지 않습니다.
  • otool은 연결만 보여주고 launchd 또는 Mach 서비스 노출은 보여주지 않습니다.
  • machscope는 이 모든 것을 한 번에 연결합니다.

특징

  • 의존성 없는 Python
    • Python 표준 라이브러리만 사용
  • 터미널 네이티브
    • 사람이 읽기 쉬운 출력 우선, 필요시 JSON
  • 유연한 대상 해석
    • PID, 실행 파일, 앱 번들, launchd 레이블 또는 Mach 서비스 검사
  • --follow 리졸버 피벗
    • 번들 대상은 실행 파일로 해석
    • Mach 서비스는 선언한 launchd 작업 및 실행 파일로 해석
    • launchd 레이블은 존재하는 경우 활성 PID로 피벗
  • 신뢰/이상 징후 점수
    • 모든 이상한 점을 악성코드로 가정하지 않고 이상 징후를 표면화
  • 간단한 그래프 모델
    • graph.nodes와 graph.edges는 향후 TUI, 렌더러 또는 diff 워크플로를 위해 설계됨

명령어

root@kitploit:~
./machscope.py inspect <pid|path|launchd-label|mach-service>
./machscope.py inspect <target> --follow
./machscope.py inspect <target> --json
./machscope.py scan --limit 40 --min-score 1
./machscope.py services [filter]

예제

활성 프로세스 검사

root@kitploit:~
./machscope.py inspect 1
./machscope.py inspect 57382

앱 또는 바이너리 검사

root@kitploit:~
./machscope.py inspect /System/Applications/Calculator.app --follow
./machscope.py inspect /usr/libexec/remoted

launchd 작업 검사

root@kitploit:~
./machscope.py inspect com.apple.WindowServer --follow
./machscope.py inspect ai.openclaw.gateway --follow

Mach 서비스 검사

root@kitploit:~
./machscope.py inspect com.apple.dnssd.service --follow

이상 징후 스캔

root@kitploit:~
./machscope.py scan --limit 40 --min-score 1
./machscope.py scan --limit 10 --min-score 6

선언된 서비스 탐색

root@kitploit:~
./machscope.py services
./machscope.py services mDNS
./machscope.py services com.apple

출력 예시

root@kitploit:~
Target: com.apple.dnssd.service [mach-service follow]
Resolved via: mach-service-launchd
Executable: /usr/sbin/mDNSResponder
Launchd: com.apple.mDNSResponder.reloaded
Plist: /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
Signature: apple-platform team=not set id=com.apple.mDNSResponder
Mach services: com.apple.dnssd.service, com.apple.mDNSResponder.control, com.apple.mDNSResponder.log_utility
Entitlements: 0
Linked dylibs: 25  RPATHs: 0
Trust: score=1 verdict=ordinary
Findings:
- [LOW] T012 Odd launchd label suffix

JSON 출력

inspect --json은 스크립팅 및 향후 UI 작업을 위해 설계된 구조화된 객체를 반환합니다.

최상위 구조:

  • target
  • target_resolution
  • process
  • binary
  • bundle
  • launchd
  • trust
  • graph.nodes
  • graph.edges

그래프는 의도적으로 단순하게 설계되어 다음에 공급될 수 있습니다:

  • 향후 TUI
  • 렌더러
  • diff 모드
  • 기타 도구

--follow 작동 방식

--follow는 machscope가 단순한 메타데이터 덤퍼라기보다 탐색기처럼 느껴지게 만드는 부분입니다.

다음과 같은 리졸버 피벗을 추가합니다:

  • 번들 대상 → 실행 파일
  • Mach 서비스 → 선언한 launchd 작업 → 실행 파일
  • launchd 레이블 → launchctl print 상태 → 사용 가능한 경우 활성 PID

이것이 중요한 이유는 가장 흥미로운 macOS 아티팩트가 종종 입력한 그 자체가 아니라 그 뒤에 있는 것이기 때문입니다.

신뢰 발견

machscope는 간단한 신뢰/이상 징후 레이어를 포함합니다.

표면화할 수 있는 것들의 예:

  • 지속성 항목 뒤에 없는 바이너리
  • 사용자가 쓰기 가능한 실행 대상
  • Apple이 아닌 코드의 민감한 entitlements
  • launchd 레이블/번들 ID 불일치
  • .reloaded와 같은 이상한 launchd 접미사
  • 예상대로 유효성 검사되지 않는 시스템 경로처럼 보이는 경로

이는 악성코드 판정 엔진이 아닙니다. 단서를 표면화하고, 맹점을 줄이며, 의심스러운 체인을 더 쉽게 조사할 수 있게 하는 방법입니다.

설계 선택

의존성 없는 설계

첫 번째 버전은 의도적으로 다음을 사용합니다:

  • Python 표준 라이브러리
  • 기본 macOS 도구만

포함된 도구:

  • ps
  • lsof
  • launchctl
  • codesign
  • otool
  • file

이를 통해 도구를 복제, 검사 및 기본 시스템에서 실행하기 쉽게 유지합니다.

가시성에 대한 정직함

일부 관계는 선언된 것이지 관찰된 것이 아닙니다.

예를 들어:

  • launchd plist는 Mach 서비스를 선언할 수 있음
  • 번들은 내장 XPC 서비스를 드러낼 수 있음
  • 그러나 공개 도구가 항상 실시간 XPC 클라이언트/서버 관계를 깔끔하게 노출하지는 않음

machscope는 확실하지 않은 것을 확실한 척하기보다 명시적으로 처리합니다.

요구 사항

  • macOS
  • Python 3
  • ps, lsof, launchctl, codesign, otool, file과 같은 기본 도구에 대한 접근

권한

먼저 일반 사용자로 실행하십시오.

그것만으로도 유용한 답변을 얻을 수 있는 경우가 많습니다.

일부 세부 정보는 상승된 권한 없이 부분적일 수 있으며, 특히 다음 영역에서 그렇습니다:

  • lsof
  • launchctl
  • 일부 대상의 코드 서명 세부 정보

권한을 상승시킬 경우 신중하게 하십시오.

좋은 사용 사례

  • "이 Mach 서비스를 정확히 소유한 것은 무엇인가?"
  • "이 launchd 작업이 정상적인가, 오래된 것인가, 아니면 고장난 것인가?"
  • "이 프로세스가 launchd에 의해 부모 프로세스로 지정되었지만 예상한 위치가 아닌 이유는 무엇인가?"
  • "이 헬퍼가 실제로 어떤 entitlements를 가지고 있는가?"
  • "이 앱 번들이 내장 XPC 서비스를 숨기고 있는가?"
  • "이 프로세스가 의심스러운 이유는 무엇인가?"

비목표

machscope는 다음이 되려고 하지 않습니다:

  • 완전한 EDR
  • 실시간 커널 텔레메트리 시스템
  • 완벽한 XPC 관찰자
  • GUI 앱
  • 거대한 프레임워크

macOS 내부를 읽기 쉽게 만드는 날카로운 로컬 도구입니다.

상태

초기 단계이지만 이미 유용합니다.

현재 출력 및 그래프 모델은 향후 버전이 다음을 추가할 수 있도록 의도적으로 형성되었습니다:

  • TUI 탐색
  • diff 모드
  • 내보내기/렌더링 통합
  • 더 풍부한 신뢰 규칙
  • 더 나은 교차 대상 그래프 탐색
도구 다운로드