본문으로 건너뛰기
cccskills
무료GitHub에 공개

macos-unified-log-analysis

Perform forensic analysis of the macOS Unified Logging System (ULS) to investigate system events, application crashes, kernel panics, and potential indicators of compromise (IoCs) such as persistence mechanisms or unauthorized access.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(3)

  • SKILL.md8.0 KB
  • evals/evals.json538 B
  • scripts/process.py7.8 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

macOS Unified Log Analysis

When to Use

  • When investigating a security incident on a macOS endpoint and needing to trace attacker activity, malware execution, or system anomalies.
  • To diagnose deep system issues, application crashes, or kernel panics using Apple's centralized logging architecture.
  • When traditional log files (/var/log/*) do not contain sufficient information, as macOS has migrated most logging to the Unified Logging System (in memory and binary formats).

Prerequisites

  • Forensic image or live access to the affected system(s)
  • Forensic workstation with analysis tools (Autopsy, Volatility, Timeline Explorer)
  • Chain of custody documentation initiated for evidence handling
  • Write-blocker for disk forensics or memory acquisition tool (e.g., DumpIt, WinPmem)

Workflow

Phase 1: Understanding the Unified Logging System (ULS)

# Concept: Introduced in macOS Sierra (10.12), the ULS replaced traditional text-based logs 
# (like system.log) with a high-performance, centralized system. Logs are stored in a compressed, 
# proprietary binary format.
# 
# Key Locations:
# - In-Memory: Recent, volatile logs are held in memory.
# - On-Disk: `/var/db/diagnostics/` and `/var/db/uuidtext/` (Requires severe privileges to access directly).
# 
# Because the logs are binary, you cannot just `cat` or `grep` the raw files. You MUST use 
# the built-in `log` command-line utility or the macOS Console app.

Phase 2: Live System Triage (Using the log command)

# Concept: Use the `log show` command to query the ULS. Filtering is critical, as the ULS 
# generates an overwhelming amount of data (thousands of events per second).

# 1. View logs from the last 1 hour
log show --last 1h

# 2. Filtering by Subsystem and Category (Crucial for noise reduction)
# Example: Look only for authentication events (OpenDirectory/Authentication)
log show --predicate 'subsystem == "com.apple.opendirectoryd" AND category == "System"' --last 24h

# 3. Search for specific keywords (e.g., suspicious processes or IP addresses)
log show --predicate 'eventMessage CONTAINS "sudo"' --last 2h

Phase 3: Offline Forensics (Analyzing Log Archives)

# Concept: During IR, you rarely want to analyze logs on the live system. Instead, collect a 
# `logarchive` (a bundle of the binary logs) and analyze it on your forensic workstation.

# 1. Collect the log archive on the compromised Mac (requires root)
sudo log collect --last 3d --output /tmp/compromised_mac.logarchive

# 2. Analyze the archive on your forensic Mac
log show --archive /path/to/compromised_mac.logarchive --predicate 'eventMessage CONTAINS "malware"'

# 3. Export to JSON for integration into SIEM or Python scripts
log show --archive /path/to/compromised_mac.logarchive --style json > export.json

Phase 4: Hunting for Indicators of Compromise (IoCs)

# Concept: To find evil, you must know what subsystem generates the relevant logs.

# 1. Investigating Persistence (LaunchDaemons / LaunchAgents)
# Subsystem: com.apple.xpc.launchd
log show --predicate 'subsystem == "com.apple.xpc.launchd" AND eventMessage CONTAINS "SubmitJob"' --last 24h

# 2. Investigating Terminal / Shell Execution
log show --predicate 'process == "Terminal" OR process == "bash" OR process == "zsh"'

# 3. Investigating Gatekeeper/XProtect (Apple's built-in AV)
log show --predicate 'subsystem == "com.apple.syspolicy" OR subsystem == "com.apple.xprotect"'

Decision Point 🔀

flowchart TD
    A[Isolate macOS Endpoint] --> B{Live Analysis or Offline Triage?}
    B -->|Offline (Preferred)| C[Run `sudo log collect` to generate `.logarchive`]
    B -->|Live| D[Use `log show` or Console.app directly]
    C --> E[Transfer `.logarchive` to Forensic Workstation]
    E --> F[Construct precise Predicate filters]
    D --> F
    F --> G{Are relevant events found?}
    G -->|Yes| H[Export to JSON, timeline the events, correlate with file system artifacts e.g. fseventsd]
    G -->|No| I[Broaden predicate filters, check timestamps, or pivot to alternative artifacts like Browser History or Spotlight]

🔵 Blue Team Detection & Defense

  • Centralized Forwarding: The macOS ULS is notoriously difficult to forward to standard SIEMs natively because it's binary. Utilize endpoint agents (like CrowdStrike Falcon, Jamf Protect, or specifically engineered forwarders like Splunk Universal Forwarder with ULS support) to parse and send critical ULS events (like authentication failures or launchd modifications) to your centralized logging platform.
  • Log Retention Policies: By default, macOS rotates out high-volume volatile logs quickly (often within days or hours depending on disk space). Ensure systems are configured (via MDM profiles) to retain critical security logs for a longer duration to facilitate effective retrospective incident response.
  • Private Data Obfuscation: Understand that macOS natively redacts "private" data from the ULS (showing <private> in the logs instead of filenames/IPs) unless a specific configuration profile is installed. During an active incident on a managed device, deploying a profile to enable private data logging can be crucial for full visibility.

Key Concepts

ConceptDescription
Unified Logging System (ULS)Apple's centralized, high-performance, binary-formatted logging architecture replacing traditional text logs
PredicateA highly specific, C-style filtering syntax used by the log command to query the ULS database efficiently
.logarchiveA portable directory bundle containing a snapshot of the ULS binary tracev3 files, perfect for offline forensic analysis

Output Format

Macos Unified Log Analysis — Assessment Report
============================================================
Target: [Target identifier]
Assessor: [Operator name]
Date: [Assessment date]
Scope: [Authorized scope]
MITRE ATT&CK: [Relevant technique IDs]

Findings Summary:
  [Finding 1]: [Severity] — [Brief description]
  [Finding 2]: [Severity] — [Brief description]

Detailed Results:
  Phase 1: [Phase name]
    - Result: [Outcome]
    - Evidence: [Screenshot/log reference]
    - Impact: [Business impact assessment]

  Phase 2: [Phase name]
    - Result: [Outcome]
    - Evidence: [Screenshot/log reference]
    - Impact: [Business impact assessment]

Risk Rating: [Critical/High/Medium/Low/Informational]
Recommendations:
  1. [Immediate remediation step]
  2. [Long-term hardening measure]
  3. [Monitoring/detection improvement]

📚 Shared Resources

For cross-cutting methodology applicable to all vulnerability classes, see:

References

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Exploit pervasive logical flaws in Multi-Factor Authentication (MFA/2FA) implementations to bypass the secondary authentication challenge entirely. Techniques include response manipulation, referal spoofing, token reuse, and predictable backup codes.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ShulkwiSEC/bb-huge232026년 7월 11일 업데이트

401/403 bypass playbook. Use when encountering access-denied responses on admin panels, API endpoints, or restricted paths. Covers path manipulation, HTTP method tampering, header injection, protocol downgrade, and automated bypass tools.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ShulkwiSEC/bb-huge232026년 7월 11일 업데이트

Complete PortSwigger deep-dive with exact payloads for every lab variant including zero-day techniques

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ShulkwiSEC/bb-huge232026년 7월 11일 업데이트

Active Directory ACL abuse playbook. Use when exploiting misconfigured AD permissions including GenericAll, WriteDACL, DCSync rights, shadow credentials, LAPS reading, GPO abuse, and BloodHound-guided attack paths.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ShulkwiSEC/bb-huge232026년 7월 11일 업데이트

Execute AS-REP Roasting to extract and crack the NTLM hashes of Active Directory user accounts that have the "Do not require Kerberos preauthentication" flag explicitly enabled. This attack generates a recoverable Ticket Granting Ticket (TGT) without requiring the attacker to authenticate first.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ShulkwiSEC/bb-huge232026년 7월 11일 업데이트

AD Certificate Services attack playbook. Use when targeting misconfigured AD CS for privilege escalation via ESC1-ESC13 template abuse, NTLM relay to enrollment, CA officer abuse, and certificate-based persistence.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ShulkwiSEC/bb-huge232026년 7월 11일 업데이트

ShulkwiSEC의 스킬 모두 보기

이 스킬의 문제 신고