
Bella è uno strumento di data mining post-exploitation e di amministrazione remota scritto in puro Python per macOS. 🍎💻
Bella è uno strumento di data mining post-exploitation e amministrazione remota per macOS. 🍎 💻
Bella è uno strumento robusto, pure python, di post-exploitation e amministrazione remota per macOS.
Bella, altrimenti noto come server, è una reverse shell cifrata SSL/TLS che può essere installata su qualsiasi sistema con macOS >= 10.6. Bella offre le seguenti funzionalità:
Pseudo-TTY that emulates an SSH instance [supporto CTRL-C per la maggior parte delle funzioni, output in streaming, pieno supporto per script bash inline, completamento con tab, cronologia dei comandi, ecc.].
Auto installer! Basta eseguire il binario e Bella pensa a tutto il resto: una reverse shell persistente in una posizione nascosta del disco rigido, non rilevabile dagli antivirus.
Upload / Download any file[s]
Reverse VNC Connection.
Stream and save the computer's microphone input.
Login / keychain password phishing through system prompt.
Apple ID password phishing through iTunes prompt.
iCloud Token Extraction.
Accessing all iCloud services of the user through extracted tokens or passwords.
This includes: iCloud Contacts, Find my iPhone, Find my Friends, iOS Backups.
Google Chrome Password Extraction.
Chrome and Safari History Extraction.
Auto Keychain decryption upon discovery of kc password.
macOS Chat History.
iTunes iOS Backup enumeration.
Extensive logging of all Bella activity and downloaded files.
VERY comprehensive data storage. Tutte le informazioni che Bella scopre [token, password, ecc.] vengono salvate in un database SQL cifrato sul computer che esegue Bella. Queste informazioni vengono usate per un'esecuzione più rapida delle funzioni e per una reverse shell "più intelligente".
A lot of other great features! Sperimenta con Bella per vederla in azione.
Queste sono alcune delle funzionalità disponibili quando ci troviamo nello spazio utente (userland). Questa shell è accessibile in qualsiasi momento in cui l'utente ha una connessione internet, cioè quando è autenticato e il computer non è in sospensione.
Se otteniamo root, le capacità di Bella si espandono notevolmente.
Analogamente alla funzione getsystem di una shell meterpreter, Bella ha una funzione get_root che tenta di ottenere accesso root attraverso vari mezzi, tra cui una password utente carpita tramite phishing e/o exploit di escalation dei privilegi locali se il sistema è vulnerabile.
Una volta ottenuto l'accesso root, Bella migrerà in una directory nascosta in /Library e si caricherà come LaunchDaemon. Questo fornisce accesso remoto all'istanza di Bella in qualsiasi momento, purché il computer abbia una connessione di rete. Una volta ottenuto root, possiamo fare quanto segue:
MULTI-USER SUPPORT! Bella terrà traccia di tutte le informazioni relative a qualsiasi utente attivo sul computer in un database completo e passerà automaticamente all'utente attivo. Tutte le tecniche di estrazione dati sopra menzionate sono ora disponibili per ogni utente sulla macchina.
Decrypt ALL TLS/SSL traffic and redirect it through the control center! [un attacco MITM attivo, molto efficace]
Disable/Enable the Keyboard and/or Mouse.
Load an Insomnia KEXT to keep a connection open if the user closes their laptop.
Automatic dumping of iCloud Tokens and Chrome passwords [usa keychaindump e chainbreaker se SIP è disabilitato]
A lot of behind the scenes automation.
Il potere di Bella risiede nell'alto livello di automazione della maggior parte dei compiti laboriosi che si affrontano in uno scenario di post-exploitation. È incredibilmente facile da configurare e usare, non richiede alcuna pre-configurazione sul target e pochissima configurazione sul Control Center. Sfrutta l'incredibile potenza dietro le quinte di macOS e Python per un'esperienza di post-exploitation fluida.
Scarica / clona questo repository.
Esegui ./BUILDER e inserisci le informazioni appropriate.
Tutto qui! Bella è pronta all'uso. Basta caricare ed eseguire Bella sul target macOS.
Ora esegui Control Center.py sul tuo control center macOS. Non richiede dipendenze [tranne mitmproxy se vuoi fare MITM]. Farà un po' di auto-configurazione e dopo qualche secondo vedrai qualcosa del genere.
Il Control Center aggiornerà costantemente questa selezione, fino a 128 computer distinti.
Premi Ctrl-C per scegliere dalla selezione, quindi digita il numero del computer che desideri. Ti verrà mostrata una schermata come questa.
Inizia a eseguire comandi! bella_info è un ottimo punto di partenza. Esegui manual per ottenere il manuale completo di tutti i comandi. Inoltre, puoi premere tab due volte per vedere un elenco dei comandi disponibili.
Piccola nota: Bella funziona anche via internet, se fai un po' di configurazione. Configura il firewall per inoltrare la porta di Bella al tuo Control Center. Altre porte importanti da inoltrare: 1) VNC - 5500. 2) Microphone - 2897. 3) MITM - 8081
Questo progetto è mantenuto attivamente. Ti preghiamo di inviare qualsiasi segnalazione di bug, domanda, richiesta di funzionalità o informazione correlata.
Bella sfrutta keychaindump, VNC, streaming del microfono, ecc., inviando binari C codificati in base64 al server / target Bella. Ho incluso file pre-compilati e codificati nel file Payloads/payloads.txt. Se desideri compilare una tua versione di questi payload, ecco cosa fare dopo la compilazione:
Codificali in base64 e inseriscili nel payloads.txt nel seguente ordine, ciascuno separato da una nuova riga.
vnc, keychaindump, microphone, rootshell, insomnia, lock_icon, chainbreaker.
payload_generator nella directory Payloads dovrebbe aiutarti in questo.
Fammi sapere se hai problemi.
https://github.com/juuso/keychaindump
https://github.com/n0fate/chainbreaker
https://github.com/richardkiss/speakerpipe-osx
https://github.com/semaja2/InsomniaX
https://github.com/stweil/OSXvnc
Control Center support for Linux [non dovrebbe richiedere troppe modifiche]
Reverse SOCKS proxy to tunnel our traffic through the server.
Firefox password decryption / extraction
Keystroke logging with legible output [80% done]
Detect ALL programs that cause a block, and kill them [85% done]
Il comando interactive_shell, che fornisce una tty completamente interattiva attraverso il modulo ptty. L'unico svantaggio di questa funzionalità al momento è che non può eseguire le funzioni pre-programmate. [95% fatto, sto solo lavorando all'integrazione per le funzioni pre-programmate]
Come già detto, Bella è una pseudo-TTY. Con questo si intende che il socket di base e la gestione dell'esecuzione remota del codice di Bella sono una versione piuttosto astratta di un socket request-response molto semplice. Bella riceve un comando dal server. Se il comando corrisponde a una funzione pre-programmata (ad esempio il dump della cronologia di Chrome), esegue quella funzione e rimanda la risposta al client. Il client gestirà quindi la risposta allo stesso modo. Dopo aver elaborato la risposta, chiederà al client un altro comando da inviare.
I problemi di un socket di basso livello sono numerosi, tra cui: 3. Esecuzione di programmi che bloccano e tengono appesa la pipe, in attesa di un output che non arriva mai (sudo, nano, ftp) 4. Non sapere quanti dati aspettarsi nella chiamata socket.recv(). 5. Non poter inviare ctrl-C, ctrl-Z e comandi simili. 6. Nessuna cronologia dei comandi 7. Un programma che va in crash può uccidere la shell. 8. Risposta e richiesta uno-a-uno.
Bella risolve quanto sopra: 4. Funzioni recv() e send() che serializzano la lunghezza del messaggio e iterano su risposte/richieste di conseguenza. 5. Integrazione di Readline per offrire un'esperienza più simile a una 'tty', inclusi supporto CTRL-C, cronologia dei comandi e completamento con tab. 6. Rilevamento dei programmi che si bloccano e loro terminazione beta 7. Consentire l'invio di più messaggi contemporaneamente senza che il client richieda altro input (ottimo per comandi come ping, tree e altri comandi con aggiornamenti in tempo reale).
Per informazioni complete sulle funzioni pre-programmate, esegui il comando manual quando sei connesso al server.