
Test unitari per i blue team per aiutare nella creazione di rilevamenti per alcuni comuni metodi di post-sfruttamento su macOS.
Test unitari per i blue team per aiutare a costruire rilevamenti per alcuni metodi comuni di post-exploitation su macOS. Ho incluso alcuni esempi di post-exploitation sia utilizzando la cronologia della riga di comando che chiamate API. Gli esempi di post-exploitation inclusi qui non sono esaustivi. Invece sono solo alcuni esempi comuni che ho pensato potessero essere utili per condurre test unitari. Ho intenzione di continuare ad aggiungere a questo progetto nel tempo con ulteriori test unitari.
Tutti questi test vengono eseguiti localmente e restituiscono i risultati su stdout (cioè, Swift-Attack non si connette a un server).
git clone https://github.com/cedowens/Swift-Attack && cd Swift-Attack
Assicurati di aver installato swift e gli strumenti per sviluppatori (puoi installarli dal Mac App Store)
Compila calc.c per il test di iniezione dylib:
gcc -dynamiclib -o calc.dylib calc.c
swiftc -o Swift-Attack swift-attack.swift
./Swift-Attack -h

Nota: Altre dipendenze TTP sono di seguito:
Puoi eseguire Swift-Attack con una singola opzione o più opzioni
./Swift-Attack [option1] [option2]...
Ho anche incluso un semplice file macro.txt (non offuscato) per testare le relazioni genitore-figlio durante le esecuzioni di macro di Office su macOS. Non l'ho offuscato poiché l'attenzione è sulla visibilità/rilevamento delle relazioni genitore-figlio. Se vuoi testare con una macro offuscata, ho un repository su github.com/cedowens/MacC2 che contiene una macro offuscata.
Ho incluso solo due test di persistenza (Launch Agent e Login Item). Dai un'occhiata al repository JXA persistente di Leo Pitt https://github.com/D00MFist/PersistentJXA per un elenco più completo di esempi di persistenza.
Prompt utilizzando il binario osascript
Prompt tramite chiamate API
Dump degli appunti utilizzando il binario osascript
Dump degli appunti tramite chiamate API
Screenshot utilizzando il binario screencapture
Screenshot tramite chiamate API
Dump della cronologia di zsh
Enumerazione degli strumenti di sicurezza
Recupero delle informazioni di sistema utilizzando il binario osascript
Recupero delle informazioni di sistema tramite chiamate API
Dump delle chiavi ssh, aws, gcp e azure su disco
Dump della cronologia del browser (Chrome, Safari, Firefox)
Dump della cronologia di Quarantena
Macro di Office: Ho incluso una semplice macro di Office che si connette all'host locale. Nota: la macro invocherà curl per fare una richiesta GET utilizzando python su http://127.0.0.1/testing quando viene eseguita cliccando sul pulsante "Abilita macro". Questo ti permetterà di testare i rilevamenti per le relazioni genitore-figlio durante l'esecuzione delle macro. Nota: questo semplice test non include alcuna offuscazione, poiché il test è più orientato alle relazioni genitore-figlio. Puoi usare un altro mio repository su https://github.com/cedowens/MacC2 per testare con macro offuscate. Per utilizzarlo, basta incollare il contenuto di "macro.txt" in un documento Office, salvarlo come documento abilitato per le macro o in formato documento 97-2004 (es: .doc, .xls, ecc.), e fare clic su "Abilita macro" all'apertura del documento per eseguire.
Pacchetto Installer: Ho incluso il file TestInstaller.pkg per testare i rilevamenti su un pacchetto installer di base. Questo pacchetto installer include uno script preinstall che viene eseguito in bash e rilascia com.simple.agent.plist in /Library/LaunchDaemons/ e rilascia test.js (semplice prompt popup) in /Library/Application Support/. Il file com.simple.agent.plist esegue semplicemente osascript contro /Library/Application Support/test.js. Include anche uno script postinstall che viene eseguito in bash e carica com.simple.agent.plist usando launchctl load. Tenendo premuto il pulsante Control, fai clic su Apri su TestInstaller.pkg per eseguirlo. TestInstaller.pkg rilascerà i file menzionati come root.
CVE-2021-30657 Bypass Payloads: Due payload di esempio (entrambi effettuano richieste curl a localhost quando vengono attivati) per testare due diversi tipi di payload che abusano di cve-2021-30657. Maggiori informazioni qui:
Persistenza Launch Agent
Persistenza Login Item
Accesso/Copia del database del portachiavi utente
Iniezione Dylib
Dump dei cookie di Chrome