
Bella ist ein reines Python-Post-Exploitation-Data-Mining-Tool und Remote-Administrationstool für macOS. 🍎💻
Bella ist ein reines Python-Post-Exploitation-Datamining-Tool & Remote-Administrations-Tool für macOS. 🍎 💻
Bella ist ein robustes, reines Python, Post-Exploitation- und Remote-Administrations-Tool für macOS.
Bella, alias der Server, ist eine SSL/TLS-verschlüsselte Reverse-Shell, die auf jedem System mit macOS >= 10.6 abgelegt werden kann. Bella bietet die folgenden Funktionen:
Pseudo-TTY, das eine SSH-Instanz emuliert [CTRL-C-Unterstützung für die meisten Funktionen, Streaming-Ausgabe, volle Unterstützung für Inline-Bash-Scripting, Tab-Vervollständigung, Befehlsverlauf usw.].
Auto-Installer! Führen Sie einfach die Binärdatei aus, und Bella übernimmt den Rest – eine persistente Reverse-Shell an einem versteckten Ort auf der Festplatte, die für Antivirenprogramme nicht erkennbar ist.
Upload / Download beliebiger Datei[en]
Reverse-VNC-Verbindung.
Mikrofoneingabe des Computers streamen und speichern.
Login-/Schlüsselbund-Passwort-Phishing über die Systemabfrage.
Apple-ID-Passwort-Phishing über die iTunes-Eingabeaufforderung.
iCloud-Token-Extraktion.
Zugriff auf alle iCloud-Dienste des Benutzers über extrahierte Tokens oder Passwörter.
Dazu gehören: iCloud-Kontakte, Find my iPhone, Find my Friends, iOS-Backups.
Google-Chrome-Passwort-Extraktion.
Extraktion des Chrome- und Safari-Verlaufs.
Automatische Schlüsselbund-Entschlüsselung nach Auffinden des kc-Passworts.
macOS-Chat-Verlauf.
iTunes-iOS-Backup-Enumeration.
Umfangreiche Protokollierung aller Bella-Aktivitäten und heruntergeladenen Dateien.
SEHR umfassende Datenspeicherung. Alle Informationen, die Bella entdeckt [Tokens, Passwörter usw.], werden in einer verschlüsselten SQL-Datenbank auf dem Computer gespeichert, auf dem Bella läuft. Diese Informationen werden für eine schnellere Funktionsausführung und eine „intelligentere“ Reverse-Shell verwendet.
Viele weitere großartige Funktionen! Spiel ein wenig damit herum, um es in Aktion zu sehen.
Dies sind einige der Funktionen, die verfügbar sind, wenn wir uns im Userland befinden. Diese Shell ist jederzeit zugänglich, wenn der Benutzer eine Internetverbindung hat, was der Fall ist, wenn er angemeldet ist und der Computer nicht schläft.
Wenn wir root erhalten, erweitern sich Bellas Fähigkeiten erheblich.
Ähnlich wie die getsystem-Funktion in einer Meterpreter-Shell besitzt Bella eine get_root-Funktion, die versucht, auf verschiedene Weise Root-Zugriff zu erlangen, unter anderem über ein erbeutetes Benutzerpasswort und/oder lokale Privilege-Escalation-Exploits, falls das System verwundbar ist.
Nach Erlangung des Root-Zugriffs wechselt Bella in ein verstecktes Verzeichnis in /Library und lädt sich selbst als LaunchDaemon. Dies bietet nun jederzeit Fernzugriff auf die Bella-Instanz, solange der Computer über eine Netzwerkverbindung verfügt. Sobald wir Root haben, können wir Folgendes tun:
MEHRBENUTZER-UNTERSTÜTZUNG! Bella verfolgt alle Informationen aller aktiven Benutzer auf dem Computer in einer umfassenden Datenbank und wechselt automatisch zum aktiven Computerbenutzer. Alle zuvor genannten Datenextraktionstechniken sind nun für jeden Benutzer auf dem Rechner verfügbar.
Entschlüssele den GESAMTEN TLS/SSL-Verkehr und leite ihn durch das Control Center! [ein netter, aktiver MITM-Angriff]
Tastatur und/oder Maus deaktivieren/aktivieren.
Ein Insomnia-KEXT laden, um eine Verbindung offen zu halten, wenn der Benutzer seinen Laptop zuklappt.
Automatisches Dumping von iCloud-Tokens und Chrome-Passwörtern [nutzt keychaindump und chainbreaker, wenn SIP deaktiviert ist]
Eine Menge Automatisierung hinter den Kulissen.
Bellas Kraft liegt in dem hohen Automatisierungsgrad der meisten mühsamen Aufgaben, denen man in einem Post-Exploitation-Szenario gegenübersteht. Es ist unglaublich einfach einzurichten und zu verwenden, erfordert keine Vorkonfiguration auf dem Ziel und nur sehr wenig Konfiguration im Control Center. Es nutzt die unglaubliche Kraft hinter den Kulissen von macOS und Python für ein flüssiges Post-Exploitation-Erlebnis.
Laden Sie dieses Repository herunter / klonen Sie es.
Führen Sie ./BUILDER aus und geben Sie die entsprechenden Informationen ein.
Das war's! Bella ist startklar. Laden Sie einfach Bella auf Ihr macOS-Ziel hoch und führen Sie es aus.
Führen Sie nun Control Center.py auf Ihrem macOS-Control-Center aus. Es erfordert keine Abhängigkeiten [außer mitmproxy, wenn Sie MITM nutzen möchten]. Es wird eine automatische Konfiguration durchführen, und Sie werden nach ein paar Sekunden so etwas sehen.
Das Control Center wird diese Auswahl ständig für bis zu 128 einzelne Computer aktualisieren.
Drücken Sie Ctrl-C, um aus der Auswahl zu wählen, und geben Sie dann die Nummer des gewünschten Computers ein. Danach wird Ihnen ein Bildschirm wie dieser angezeigt.
Beginnen Sie, Befehle auszuführen! bella_info ist ein großartiger Befehl. Führen Sie manual aus, um ein vollständiges Handbuch aller Befehle zu erhalten. Sie können außerdem zweimal die Tab-Taste drücken, um eine Liste der verfügbaren Befehle zu sehen.
Kleiner Hinweis: Bella funktioniert über das Internet, wenn Sie etwas Konfiguration vornehmen. Konfigurieren Sie Ihre Firewall so, dass sie Bellas Port an Ihr Control Center weiterleitet. Weitere wichtige weiterzuleitende Ports: 1) VNC - 5500. 2) Mikrofon - 2897. 3) MITM - 8081
Dieses Projekt wird aktiv gewartet. Bitte senden Sie alle Fehlerberichte, Fragen, Funktionswünsche oder damit zusammenhängende Informationen.
Bella nutzt keychaindump, VNC, Mikrofon-Streaming usw., indem es base64-kodierte C-Binärdateien an den Bella-Server / das Ziel sendet. Ich habe vorkompilierte und kodierte Dateien in der Datei Payloads/payloads.txt beigefügt. Wenn Sie Ihre eigene Version dieser Payloads kompilieren möchten, gehen Sie nach dem Kompilieren wie folgt vor:
Kodieren Sie sie in base64 und fügen Sie sie in der folgenden Reihenfolge in die payloads.txt ein, jede durch eine neue Zeile getrennt.
vnc, keychaindump, microphone, rootshell, insomnia, lock_icon, chainbreaker.
payload_generator im Payloads-Verzeichnis sollte dabei helfen.
Bitte lassen Sie mich wissen, wenn Sie Probleme haben.
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-Unterstützung für Linux [sollte nicht allzu viel Anpassung erfordern]
Reverse-SOCKS-Proxy, um unseren Datenverkehr durch den Server zu tunneln.
Firefox-Passwort-Entschlüsselung / -Extraktion
Tastaturanschlagsprotokollierung mit lesbarer Ausgabe [80 % fertig]
Alle Programme erkennen, die eine Blockierung verursachen, und sie beenden [85 % fertig]
Der Befehl interactive_shell, der über das ptty-Modul ein vollständig interaktives tty bereitstellt. Der einzige Nachteil dieser Funktion ist derzeit, dass sie die vorprogrammierten Funktionen nicht ausführen kann. [95 % fertig, arbeite gerade an der Integration für vorprogrammierte Funktionen]
Wie bereits erwähnt, ist Bella ein Pseudo-TTY. Damit ist die Basis-Socket- und Remote-Code-Ausführungsbehandlung von Bella eine ziemlich abstrahierte Version eines sehr einfachen Request-Response-Sockets. Bella empfängt einen Befehl vom Server. Wenn der Befehl einer vorprogrammierten Funktion entspricht (z. B. Chrome-Verlaufs-Dump), führt es diese Funktion aus und sendet die Antwort zurück an den Client. Der Client verarbeitet die Antwort dann auf dieselbe Weise. Nach der Verarbeitung der Antwort fordert es den Client auf, einen weiteren Befehl zu senden.
Probleme mit einem Low-Level-Socket sind zahlreich und nicht beschränkt auf: 3. Programmausführung, die blockiert und die Pipe hängen lässt und auf Ausgaben wartet, die nie kommen (sudo, nano, ftp) 4. Nicht zu wissen, wie viele Daten man im socket.recv()-Aufruf erwarten soll. 5. Keine Möglichkeit, Ctrl-C, Ctrl-Z und ähnliche Befehle zu senden. 6. Kein Befehlsverlauf 7. Ein Programm, das abstürzt, kann eine Shell beenden. 8. Eins-zu-eins-Antwort und -Anfrage.
Bella behebt die obigen Probleme durch: 4. recv()- und send()-Funktionen, die die Länge der Nachricht serialisieren und entsprechend durch Antworten/Anfragen schleifen. 5. Readline-Integration, um ein eher 'tty'-ähnliches Gefühl zu vermitteln, einschließlich Ctrl-C-Unterstützung, Befehlsverlauf und Tab-Vervollständigung. 6. Erkennen von Programmen, die blockieren, und deren Beenden beta 7. Ermöglicht das gleichzeitige Senden mehrerer Nachrichten, ohne dass der Client zur Eingabe weiterer Daten auffordert (ideal für Befehle wie ping, tree und andere Befehle mit Live-Updates).
Für vollständige Informationen zu den vorprogrammierten Funktionen führen Sie den Befehl manual aus, wenn Sie mit dem Server verbunden sind.
--