
블루 팀이 일반적인 macOS 사후 공격 방법에 대한 탐지를 구축하는 데 도움이 되는 단위 테스트.
블루팀을 위한 단위 테스트로, 일반적인 macOS 사후 침투(post exploitation) 방식에 대한 탐지 구축을 지원합니다. 명령줄 히스토리와 API 호출을 사용한 몇 가지 사후 침투 예제를 포함했습니다. 여기에 포함된 사후 침투 예제는 모든 것을 망라하지는 않습니다. 대신, 단위 테스트를 수행하는 데 유용할 것이라고 생각된 몇 가지 일반적인 예제일 뿐입니다. 시간이 지남에 따라 추가 단위 테스트를 통해 이 프로젝트를 계속 확장할 계획입니다.
이 모든 테스트는 로컬에서 실행되며 결과를 stdout으로 반환합니다(즉, Swift-Attack은 서버에 연결하지 않습니다).
git clone https://github.com/cedowens/Swift-Attack && cd Swift-Attack
Swift와 개발자 도구가 설치되어 있는지 확인하세요(Mac 앱 스토어에서 설치 가능).
dylib 주입 테스트를 위한 calc.c 빌드:
gcc -dynamiclib -o calc.dylib calc.c
swiftc -o Swift-Attack swift-attack.swift
./Swift-Attack -h

참고: 기타 TTP 의존성은 아래와 같습니다:
Swift-Attack을 단일 옵션 또는 여러 옵션으로 실행할 수 있습니다.
./Swift-Attack [option1] [option2]...
macOS에서 Office 매크로 실행 시 부모-자식 관계를 테스트하기 위한 간단한 macro.txt 파일(난독화되지 않음)도 포함했습니다. 난독화하지 않은 이유는 부모-자식 관계 가시성/탐지에 초점을 맞추기 때문입니다. 난독화된 매크로로 테스트하려면, github.com/cedowens/MacC2에 있는 제 저장소에 난독화된 매크로가 포함되어 있습니다.
지속성 테스트는 두 개만 포함했습니다(Launch Agent 및 Login Item). 보다 포괄적인 지속성 예제 목록은 Leo Pitt의 Persistent JXA 저장소(https://github.com/D00MFist/PersistentJXA)를 확인하세요.
osascript 바이너리를 사용한 프롬프트
API 호출을 통한 프롬프트
osascript 바이너리를 사용한 클립보드 덤프
API 호출을 사용한 클립보드 덤프
screencapture 바이너리를 사용한 스크린샷
API 호출을 사용한 스크린샷
zsh 히스토리 덤프
보안 도구 열거
osascript 바이너리를 사용한 시스템 정보 수집
API 호출을 통한 시스템 정보 수집
디스크 상의 ssh, aws, gcp 및 azure 키 덤프
브라우저 히스토리 덤프(Chrome, Safari, Firefox)
격리 히스토리 덤프
Office 매크로: 로컬 호스트에 연결하는 간단한 Office 매크로를 포함했습니다. 참고: "Enable Macros" 버튼을 클릭하여 실행하면 매크로가 curl을 호출하여 Python을 통해 http://127.0.0.1/testing에 GET 요청을 보냅니다. 이를 통해 매크로 실행 시 부모-자식 관계에 대한 탐지를 테스트할 수 있습니다. 참고: 이 간단한 테스트는 난독화를 포함하지 않습니다. 테스트의 초점은 부모-자식 관계에 더 맞춰져 있기 때문입니다. 난독화된 매크로로 테스트하려면 https://github.com/cedowens/MacC2에 있는 제 다른 저장소를 사용할 수 있습니다. 사용하려면 "macro.txt"의 내용을 Office 문서에 붙여넣고, 매크로 사용 문서 또는 97-2004 문서 형식(예: .doc, .xls 등)으로 저장한 후, 문서를 열 때 "Enable Macros"를 클릭하여 실행하십시오.
설치 패키지: 기본 설치 패키지 탐지를 테스트하기 위해 TestInstaller.pkg 파일을 포함했습니다. 이 설치 패키지에는 bash에서 실행되며 /Library/LaunchDaemons/에 com.simple.agent.plist를, /Library/Application Support/에 test.js(간단한 팝업 프롬프트)를 배치하는 preinstall 스크립트가 포함되어 있습니다. com.simple.agent.plist 파일은 단순히 /Library/Application Support/test.js에 대해 osascript를 실행합니다. 또한 bash에서 실행되며 launchctl load를 사용하여 com.simple.agent.plist를 로드하는 postinstall 스크립트도 포함되어 있습니다. Control 버튼을 누른 상태에서 TestInstaller.pkg를 클릭하여 열면 실행됩니다. TestInstaller.pkg는 앞서 언급한 파일을 루트 권한으로 배치합니다.
CVE-2021-30657 우회 페이로드: CVE-2021-30657을 악용하는 두 가지 유형의 페이로드를 테스트하기 위한 두 개의 샘플 페이로드(둘 다 실행 시 로컬호스트에 curl 요청을 보냄)입니다. 자세한 내용: https://cedowens.medium.com/macos-gatekeeper-bypass-2021-edition-5256a2955508
Launch Agent 지속성
Login Item 지속성
사용자 키체인 데이터베이스 액세스/복사
Dylib 주입
Chrome 쿠키 덤프