Skip to main content

macos-post-exploitation

macOS endpoint post-exploitation — launchd persistence, TCC bypass, Keychain credential access, dylib hijacking, Gatekeeper/quarantine evasion, and discovery on Apple hosts.

설치로 이동

소스 정보

저장소
BitterSecurity/Decepticon
최근 소스 활동
2026년 5월 30일 01:17
감지된 SKILL.md 언어
영어
스타
5,565
포크
1,053

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
macos-post-exploitation
description
macOS endpoint post-exploitation — launchd persistence, TCC bypass, Keychain credential access, dylib hijacking, Gatekeeper/quarantine evasion, and discovery on Apple hosts.
allowed-tools
Bash Read Write
metadata
{"subdomain":"post-exploitation","when_to_use":"macOS, mac, osx, apple, launchd, LaunchAgent, LaunchDaemon, TCC, keychain, dylib hijack, Gatekeeper, quarantine, xattr, codesign, dscl, jamf, mdm","tags":"macos, osx, persistence, tcc, keychain, dylib, gatekeeper, launchd, privesc, credential-access","mitre_attack":"T1543.001, T1543.004, T1547.011, T1574.004, T1547.015, T1555.001, T1059.002, T1553.001, T1222.002, T1087.001, T1518, T1647"}
# macOS post-exploitation Post-compromise operations on Apple/macOS endpoints. Apple's controls (TCC, Gatekeeper/quarantine, SIP, code signing, AMFI) shape every step, so the playbook is organized around defeating or living within them. Prefer on-host built-ins (`launchctl`, `security`, `sqlite3`, `dscl`, `system_profiler`, `codesign`, `xattr`) over dropped tooling for OPSEC. > Authorized engagements only. Stay within RoE scope; emulate destructive > actions as benign proofs unless explicitly authorized. ## Discovery (T1087.001 / T1518 / T1647) - `system_profiler SPSoftwareDataType SPHardwareDataType` — OS build, model, SIP. - `csrutil status` — System Integrity Protection on/off. - `dscl . -list /Users | grep -v '^_'` — local accounts; `id`, `groups`. - `sw_vers`, `profiles status -type enrollment` — MDM/Jamf managed? (T1647 plist prefs). - Installed security tooling: `ls /Library/Objective-See`, `pgrep -l 'CrowdStrike|SentinelOne|falcon|Jamf|santad'`. ## Privilege escalation - **TCC bypass / abuse (T1548 family).** TCC gates access to Documents, Desktop, Downloads, camera/mic, Full Disk Access. Check `sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db 'select * from access'` (user) and `/Library/Application Support/com.apple.TCC/TCC.db` (system, needs root). Abuse an already-FDA-granted app (e.g. a terminal/Electron app) to read protected data instead of triggering a prompt. - **Sudo / admin group.** `sudo -n true` (cached creds), membership in `admin`. - **Setuid hunting:** `find / -perm -4000 -type f 2>/dev/null`. ## Persistence - **LaunchAgents / LaunchDaemons (T1543.001 / T1543.004).** Drop a plist in `~/Library/LaunchAgents` (user, no root) or `/Library/LaunchDaemons` (root, runs as root at boot); `launchctl bootstrap gui/$(id -u) <plist>`. The classic, noisy-but-reliable mechanism. - **Login items (T1547.015)** via `osascript -e 'tell application "System Events" to make login item ...'` or a Service Management (`SMAppService`) helper. - **Dylib hijacking / proxying (T1574.004).** Find apps with a writable/missing `@rpath` or weak-linked dylib (`otool -l <app>`); plant a malicious dylib that re-exports the original. Survives as the host app's identity. - **Re-opened apps / cron / emond / at** — lower-signal fallbacks. ## Defense evasion - **Gatekeeper / quarantine (T1553.001).** Downloaded files carry the `com.apple.quarantine` xattr; `xattr -d com.apple.quarantine <file>` (or `xattr -c`) strips it so the binary runs without the Gatekeeper prompt. - **Code signing (T1553).** `codesign --force --deep --sign - <bundle>` ad-hoc signs a tampered bundle; check `codesign -dv --verbose=4` and `spctl -a -vv`. - **File-permission/attribute manipulation (T1222.002):** `chflags`, `chmod`. - **AppleScript / osascript execution (T1059.002)** for living-off-the-land. ## Credential access (T1555.001) - **Keychain.** `security find-generic-password -ga <svc>` / `security find-internet-password`; `security dump-keychain -d ~/Library/Keychains/login.keychain-db` (prompts unless unlocked). Offline: exfil the `*.keychain-db` + the login password and crack with `chainbreaker`. - **Browser & app secrets** under `~/Library/Application Support/...` (often TCC-protected — see TCC abuse above). - **Sudo/SSH keys** in `~/.ssh`, `~/.aws`, `~/.kube`. ## Collection, C2 & exfil - Stage under `/tmp` or `~/Library/Caches`; archive with `tar`/`ditto`. - C2: prefer signed, allow-listed channels; see `post-exploit/c2` and `post-exploit/c2-sliver` (Sliver has a macOS implant). Beacon over HTTPS to blend with managed-device telemetry. ## Detection & defense (blue-cell notes) - Monitor new plists in `*/LaunchAgents` and `*/LaunchDaemons` and `launchctl` bootstraps; alert on `xattr -d com.apple.quarantine`, ad-hoc `codesign`, `security dump-keychain`, and TCC.db reads by non-Apple binaries. - Endpoint Security framework (ES) + tools like santad/Objective-See catch most of the above; LOTL via `osascript`/`launchctl` is the gap to watch. ## See also `post-exploit/credential-access`, `post-exploit/lateral-movement`, `post-exploit/privilege-escalation`, `shared/defense-evasion`, `reverser/ios-static`.
GitHub에서 보기