DEFCON-Konferenz 27. Von Hacker-Produkten für macOS profitieren. Teil 1Nachdem der Exploit eine Datei mit schädlichem Code von einem Remote-Hacker-C & C-Server erhalten hat, wird er ausgeführt. Es wird dieselbe SDF-Methode verwendet, wenn das Malware-Archiv mit dem integrierten Befehl ditto entpackt und dann über die NS-API ausgeführt wird. Daher verwendet Windtall einen integrierten Standard-Bootloader.

Darüber hinaus ist die Backdoor mit einer Selbstliquidationslogik ausgestattet. Bei jedem Start der Malware wird der Hacker-Server kontaktiert und gefragt, ob sie deinstalliert werden soll. Wenn der C & C-Server mit dem Code „1“ antwortet, löscht sich das Programm selbst und stoppt dadurch die Spyware-Aktivität.

Dies ist eine sehr nützliche Funktion, mit der ein Angreifer ein Ziel aus der Ferne "desinfizieren" kann, ohne Spuren seiner Intervention zu hinterlassen. Jetzt werde ich zeigen, wie wir diesen Virus für unsere eigenen Bedürfnisse umgestalten.

Lassen Sie uns zunächst über das Tadeln eines Exploits sprechen. Das Erstellen einer Hacker-Webseite, die automatisch eine ZIP-Datei mit einer schädlichen Anwendung herunterlädt, ist ganz einfach. Wie bereits erwähnt, entpackt Safari ZIP-Archive standardmäßig automatisch. Wenn wir also eine schädliche Anwendung in diesem Archiv ablegen, die einige URL-Handler implementiert, registriert Mac OS diese automatisch, bevor der Benutzer die Anwendung startet.
Eine böswillige Webseite kann dann diese bereits registrierte Benutzer-URL anfordern, was zum Start der Anwendung führt. Normalerweise wird ein Warnfenster angezeigt, aber der Benutzer klickt auf die Schaltfläche, ohne darauf zu achten.
Sie sehen also eine Demonstration des neu gestalteten Exploits und ein Warnfenster, dass „Final_Presentation“ eine aus dem Internet heruntergeladene Anwendung ist, in der Sie gefragt werden, ob der Benutzer sicher ist, dass er sie auf dem Computer öffnen möchte.
Das Klicken auf die Schaltfläche „Öffnen“ ist die zweite Anforderung, die ein Popup-Fenster verursacht. Wenn der Benutzer auf das darin angezeigte Anwendungssymbol klickt, wird festgestellt, dass die Malware automatisch auf dem System installiert wurde.

Es gibt einen logischen Fehler in Apple, bei dem Sie das Betriebssystem nicht patchen müssen, um das System zu infizieren, und dies funktioniert immer noch in der neuesten Version von macOS. Nachdem wir den Exploit neu erstellt haben, sprechen wir über das Remake von Malware.

Unser erster Schritt besteht darin, die integrierte Adresse des C & C-Servers zu ersetzen, damit der Exploit unseren Server kontaktiert und die konvertierte Malware von diesem herunterlädt. Leider wurde die Adresse verschlüsselt, was uns aber nicht störte. Wir haben uns dafür entschieden, dass Malware immer die dynamische Bibliothek lädt. Sobald unsere Bibliothek im Adressraum des Schadprozesses gestartet wurde, konnten wir die Malware im Prinzip so ändern, dass sie die entschlüsselten Adressen des C & C-Servers während des Betriebs abfängt, noch bevor dieser Server für die Verbindung verwendet wird. Schauen wir uns diesen Prozess genauer an.
Ich möchte Sie noch einmal daran erinnern. Unser Ziel war es, Malware neu zu profilieren, indem Sie unseren eigenen C & C-Server angeben, damit die Malware wieder eine Verbindung zu unserer Infrastruktur herstellen kann.

Daher wurde die dynamische Bibliothek in den Malware-Adressraum geladen, und wir haben das Entschlüsselungsverfahren ersetzt oder Swizzle angewendet. Diese effiziente und leistungsstarke API-Ersetzungsmethode heißt Yoop.
Die Folie zeigt, dass wir die Entschlüsselungsfunktion so ersetzt haben, dass sie immer dann, wenn die Malware sie aufruft, unsere Entschlüsselungsmethode in unserer Bibliothek aufruft. Ich habe keine Ahnung, was der Entschlüsselungsalgorithmus ist und wie er funktioniert, und ehrlich gesagt ist mir das egal, aber nach der Ersetzung kann ich das Ergebnis dieser Verschlüsselung sehen. Wenn die ursprüngliche Verschlüsselungsmethode die entschlüsselten C & C-Serveradressen an mich zurückgibt, kann ich einfach meinen eigenen C & C-Server in die Malware-Logik einbetten. Dadurch können wir den entschlüsselten C & C-Server transparent durch unseren Server ersetzen.
Jetzt füge ich der Bibliothek einige Debugging-Meldungen hinzu, damit wir beim Ausführen der konvertierten Malware sehen können, wie die C & C-Serveradressen während der Ausführung ersetzt werden. Im Befehlszeilenterminalfenster können Sie sehen, wie unsere Bibliothek, die die ursprüngliche Entschlüsselungsmethode durchläuft, erkennt, dass diese Antwort vom C & C-Server stammt, dessen Adresse jetzt entschlüsselt ist.

Da unser Programm nicht auf die Logik der ursprünglichen Malware verweisen soll, verwerfen wir diese Funktion einfach und kehren zu unserem eigenen Programm zurück. Natürlich müssen wir immer sicher sein, dass die Backdoor auf unseren C & C-Server zugreift und nicht auf den Server der ursprünglichen APT-Gruppe.
Wir mussten unseren C & C-Server schreiben, da jetzt Malware eine Verbindung zu ihm herstellt und wir eine „Konversation“ mit dem Protokoll bereitstellen müssen, um Malware korrekt zu verwirren.

Die Hauptfunktion der Windtall-Backdoor ist das Sammeln und Extrahieren von Benutzerdateien. Daher mussten wir diese Funktion zunächst unserem C & C-Server hinzufügen. Dateien werden über eine POST-Anfrage abgerufen, daher haben wir nur ein paar Zeilen Python-Code geschrieben, damit wir die vom infizierten Host abgerufenen und an uns gesendeten Dateien speichern können.
Sie sehen auf dem Bildschirm, wie unser C & C-Server Dateien empfängt, die vom angegriffenen Computer extrahiert wurden.

Links sehen Sie, wie Netzwerkanforderungen eingehen und rechts, wie unser Server sie in das Dateisystem schreibt. Dies bedeutet, dass wir jetzt die Fähigkeit von Malware unterstützen, Dateien aller Art von einem infizierten Host zu extrahieren.
Wir haben unseren C & C-Server auch angepasst, um die Download- und Ausführungsfunktionen von Windtall zu unterstützen. Wir haben festgestellt, dass für diese Malware 2 Anfragen ausgeführt werden.

Die erste Anforderung betrifft das Abrufen des Dateinamens zum Herunterladen, und die zweite Anforderung muss mit bestimmten Bytes der Datei beantwortet werden, die heruntergeladen werden soll. Malware speichert all dies in der von uns angegebenen Datei, entpackt sie dann und führt sie aus. Ich wiederhole es noch einmal - es hat nur ein paar Zeilen in Python gekostet, es ist einfach, da es viele eingebaute Bibliotheken verwendet.
Sobald wir dies getan hatten, hatten wir die Gelegenheit, das Implantat zu "rätseln". Schauen wir es uns in Aktion an. Wir sehen, wie Malware eine Verbindung zu unserem C & C-Server herstellt, da wir die Adresse des ursprünglichen Servers erfolgreich geändert haben und die ihm übertragene Aufgabe ausführen - die Rechneranwendung wird heruntergeladen.

Durch das Remote-Herunterladen und Ausführen von Anwendungen können wir andere Tools oder andere Malware-Beispiele auf dem Computer des Benutzers installieren. Dies erweitert das Potenzial für die Verwendung von wiederverwendeter Hacker-Software unendlich.
Lassen Sie uns abschließend unserem Server die Möglichkeit geben, Malware aus der Ferne zu entfernen. Die Selbstzerstörungsfunktion ist sehr nützlich, wenn die Leute vom FBI in Ihre Tür einbrechen. Ein Klick auf den Schlüssel - und der Virus selbst entfernt sich von allen infizierten Systemen.

Spyware kontaktiert uns regelmäßig mit einer Anfrage, ob es notwendig ist, sich selbst zu löschen, und falls erforderlich, antworten wir einfach mit dem Code "1", wonach es vollständig vom System deinstalliert wird.
Eine weitere Demo wird dies in Aktion zeigen. Sie können sehen, dass unsere Malware ein eigenes orangefarbenes Logo hat, das ein Power Point-Dokument imitiert. In Wirklichkeit handelt es sich jedoch um ein verstecktes Systemverzeichnis.

Nachdem es erneut eine Zerstörungsanforderung an den C & C-Server gesendet hatte und wir in einem geantwortet hatten, verschwand das orangefarbene Symbol aus dem Programmverzeichnis, und die Anwendung selbst hörte auf, mit uns zu „sprechen“, weil sie Selbstzerstörung durchführte.

Wir haben also gezeigt, wie einige Malware-Beispiele für macOS neu abgelegt werden, und wollen nun erläutern, wie Sie unerkannt bleiben. Da wir bekannte Schadprogramme, die durch den integrierten Schutz von macOS und Antivirensoftware von Drittanbietern erkannt und blockiert werden, erneut ausführen, müssen wir dieses Problem irgendwie lösen.
Wie man nicht erkannt wird
Lassen Sie uns zunächst über in macOS integrierte Virenerkennungs- und -steuerungsprogramme wie XProtect, das Tool zum Entfernen von MRT-Viren und die Überprüfung des Zertifikatsperrens sprechen.

Auf den ersten Blick sieht dies problematisch aus, da diese Programme unsere konvertierte Spyware auf jedem Mac blockieren können. Daher müssen Sie darüber nachdenken, wie Sie den Schutz umgehen können. Wenn wir von unserer sorgfältig überarbeiteten Malware überrascht werden und Apple sie blockiert, ist dies ein vollständiger Fehler.
Schauen wir uns zuerst XProtect an. Dies ist ein einfacher Antivirenscanner, der auf Virensignaturdatenbanken basiert und in die neuesten Versionen von macOS integriert ist.

Es scannt die Dateien, die der Benutzer vor dem ersten Start auf den Computer heruntergeladen hat, und richtet sich dabei nach den Regeln der Virenerkennung. Auf dem Bildschirm sehen wir einen Scan der Signatur des Virus OSX.KeRanger.A, dessen Reprofilierung wir gerade untersucht haben.
Wir haben ein einfaches Dienstprogramm namens UXProtect geschrieben, mit dem Sie diese Signaturen über die Benutzeroberfläche der Benutzeroberfläche untersuchen und Dateien jederzeit auf Virensignaturen scannen können. Da XProtect nur die Signaturerkennungs-Engine verwendet, ist es extrem einfach, sich fortzubewegen. Schauen wir uns die Signatur des KeRanger-Virus genauer an.

Wir sehen einen Hinweis auf eine Gruppe von Malware-Signaturen, die Sie nur neu anordnen oder ändern müssen, um diese Anweisungen zu umgehen. Wenn Sie einige Bytes eines Befehls ändern, stimmt die Signatur nicht mehr mit den Erkennungsparametern überein. Zum Beispiel haben wir die Anzahl der aus dem Puffer zu lesenden Bytes von 0x400 auf 0x300 geändert. Dies hatte keine Auswirkungen auf die Funktionalität des Virus. Sobald wir jedoch die Anzahl der Bytes geändert haben, die der Scanner auf Übereinstimmung mit der Signatur überprüft, haben wir die Möglichkeit, dass XProtect auf diese Bedrohung reagiert, vollständig ausgeschlossen.
Es ist Zeit für eine weitere Demonstration, bei der Sie zwei Beispiele für KeRanger sehen. Wir verwenden wieder den infizierten BitTorrent-Client. Links auf dem Bildschirm befindet sich die Original-Hackerkopie des Virus, und rechts die umfunktionierte Version, die zur Erlangung des Verschlüsselungsschlüssels mit unserem C & C-Server kommuniziert. Darüber hinaus wurde es geändert, um den XProtect-Schutz zu umgehen.

Sie sehen, dass eine Instanz des ursprünglichen Virus vom System blockiert wird, ohne dass die Möglichkeit zum Starten besteht, und der einzige damit zulässige Vorgang ist das Löschen.

Wenn wir eine überarbeitete KeRanger-Version starten, meldet das System einfach, dass sie aus dem Internet heruntergeladen wurde, und fragt, ob wir sie wirklich starten möchten.

Wenn wir auf "Öffnen" klicken, wird die Ransomware leise im System installiert und beginnt sofort mit der Verschlüsselung aller Benutzerdateien.

Die nächste Möglichkeit, Ihren Mac zu schützen, besteht darin, die Zertifikatsignaturen zu überprüfen. Die meisten signierten macOS-Binärdateien werden von der GateKeeper-Sicherheitsfunktion nicht blockiert. Daher stellen Hacker Signaturen für die meisten modernen Mac-Malware-Programme bereit. Wenn ein signierter Virus erkannt wird, widerruft Apple das Signaturzertifikat. Dies bedeutet, dass diese Malware auf keinem Mac ausgeführt werden kann.
Zum Beispiel haben wir eine Windtall-Virus-Binärdatei, deren Signaturzertifikat von Apple widerrufen wurde. Dies bedeutet, dass wir selbst dann nicht starten können, wenn wir das neue System neu profilieren und auf es anwenden. Aus diesem Grund versuchen wir lediglich, das Zertifikatssperrverfahren zu umgehen, indem wir das Signaturzertifikat selbst löschen.

Dann verwenden wir eine nicht signierte Kopie der konvertierten Malware oder stellen ihr ein anderes Zertifikat für die rechtliche Signatur zur Verfügung, das recht einfach zu erhalten ist.
Um das Zertifikat tatsächlich zu entfernen, bietet Apple selbst ein Dienstprogramm namens Code Sign an, das das undokumentierte Flag zum Entfernen der Signatur oder "Signatur entfernen" enthält. Wenn Sie diesen Vorgang mit Ihrer Malware ausführen, beachtet Apple das widerrufene Signaturzertifikat einfach nicht.
Wir können unsere Anwendung auch mit demselben Dienstprogramm mithilfe des Codesigns -s "Developer ID Applikation:" erneut signieren. Dadurch wird das neu signierte Windtall nicht mehr von macOS blockiert.
Schließlich gehen wir zu MRT über, dem integrierten Tool zum Entfernen von Viren, das in den neuesten Versionen des Mac-Betriebssystems verfügbar ist. Es ähnelt XProtect, scannt jedoch bereits auf dem System installierte Malware und erkennt sie bei Erkennung automatisch. Im Gegensatz zu XProtect sind seine Signaturen in eine eigene Binärdatei eingebettet. Apple verwendet dieses Tool häufig, um legitime Anwendungen zu entfernen, die für Ihren Computer als unsicher eingestuft werden. Dies sind normalerweise Anwendungen mit bekannten Schwachstellen.

Da MRT wie XProtect mit Signaturen arbeitet, kann es auch umgangen werden. Wir haben wieder den MRT-Speicherauszug verwendet, da die Signaturen in die Binärdatei selbst integriert sind und sie alle anzeigen konnten, einschließlich der Signatur des Fruitfly-Virus. Wir fragten uns, ob MRT unsere konvertierte Kopie dieser Malware erkennen könnte.

Wir begannen mit der Untersuchung der in Fruitfly integrierten Signatur und stellten fest, dass die Erkennung auf zwei Dingen basiert: dem Installationspfad des Virus und der heruntergeladenen .plist-Datei. Dies bedeutet, dass MRT den Pfad oder Namen von Malware nicht erkennen kann, wenn wir ihn ändern. Wie ich bereits sagte, erwies es sich als recht einfach, diesen Schutz zu umgehen.
Wir haben festgestellt, dass es auch nicht schwierig ist, sich mit Antivirensoftware von Drittanbietern zu befassen, da Sie einen konvertierten Virus auch auf einem System ausführen können, auf dem der Benutzer bereits Antivirenprogramme installiert hat.

Es wurde viel über dieses Thema gesprochen, ich möchte nicht auf Details eingehen, aber im Allgemeinen basieren herkömmliche Antivirenprodukte auf der Signaturüberprüfung, wie z. B. Apple Antivirensoftware, was bedeutet, dass sie mit denselben Methoden umgangen werden können.
Als Beispiel habe ich die gleiche Fruitfly genommen, daran erinnert, dass es sich auch um ein Perl-Skript handelt, und es durch das kostenlose Online-Hilfsprogramm Perl Obfuscator geleitet, mit dem das Perl-Skript schwer lesbar gemacht und die Erkennungswahrscheinlichkeit auf Null reduziert wurde. Natürlich hat es funktioniert. Sie können jedoch genialer vorgehen, insbesondere wenn Sie binärbasierte Malware verwenden. Sie können es in ein Archiv packen, einen Verschlüsseler oder sogar eine speicherinterne Ausführung verwenden, dh dateifreien Download und Virenausführung im RAM.
Vor einigen Jahren wurden diese Technologien auf der BlackHat-Konferenz diskutiert und es wurde der Schluss gezogen, dass ein Mac-Benutzer, selbst wenn er Antivirensoftware von Drittanbietern auf dem System installiert hat, neu programmierte Malware immer noch nicht erkennen konnte. Dies ist eine schlechte Nachricht für MacOS-Benutzer, da wir wissen, dass erfahrene Hacker konvertierte Malware verwenden. Oft kommt es darauf an, ein paar Bytes Code oder Befehlszeilenargumente zu ändern, und dies ermöglicht es, die Kontrolle über einen Computer zu übernehmen, um ihn für eigene Zwecke zu verwenden. Darüber hinaus können die meisten in macOS integrierten Antiviren-Tools und Antivirensoftware von Drittanbietern konvertierte Bedrohungen nicht erkennen.
Da es sich bei dieser umfunktionierten Software nur um eine geringfügig überarbeitete, bekannte Original-Spyware handelt, setze ich einen "weißen Hut" auf und sage Ihnen, wie Sie sie noch finden können.
Erkennung der Neukonfigurationssoftware
Es ist bekannt, dass signaturbasierte Antivirensoftware nicht mit konvertierter Malware zurechtkommt. Daher sollten wir auf das ungewöhnliche, abnormale, böswillige Verhalten solcher Malware achten.
Wir müssen versuchen, es zu erkennen, nicht dank der bekannten Virensignatur, sondern indem wir seine Aktionen im System beobachten. Wir haben dafür gesorgt, dass die Grundfunktionen und der Zweck von bekannten Spyware-Programmen unverändert bleiben, wenn Sie sie erneut erstellen.
Wenn wir den Ransomware-Ransomware-Trojaner neu erstellen, werden Ihre Dateien weiterhin verschlüsselt, und die neu gestaltete Hintertür sammelt weiterhin Dateien und sendet sie an den Spionageserver.
Auf der obigen Folie habe ich die Funktionen oder Fähigkeiten des Systems angezeigt, die überwacht und auf ihre Aktivität hin überwacht werden sollten. Dazu gehören die „Persistenz“ von Anwendungen, ungewöhnliche Mikrofon- oder Kameraaktivitäten, das Herunterladen oder Übertragen von Dateien, nicht autorisierte Bildschirmaufnahmen, Symptome beim Abfangen der Tastatur, synthetische Klicker und Dateiverschlüsselung. Dadurch wird auch wiederverwendete Malware erkannt.
Reden wir über Ausdauer. Wenn ich "Beharrlichkeit" sage, meine ich, dass die Spyware nach dem Neustart des Systems jedes Mal automatisch gestartet wird, sobald sie auf dem Computer installiert ist. Dies ist eine Funktion von Malware für MacOS oder Windows, die sich bemüht, ein bösartiges Ziel zu erreichen.
Wir können das Dateisystem einfach steuern, indem wir das Verhalten der „beständigen“ Anwendung beobachten. Wenn sich etwas daran ändert, benachrichtigen Sie den Benutzer oder Systemadministrator darüber.
Jetzt möchte ich zeigen, wie Sie die Aktivität des ursprünglichen oder umgebauten Windtall-Virus erkennen können, der sich in einem nicht autorisierten Zugriff auf ein Mikrofon oder einen Webcam-Mac äußert.

Viele Mac-Malware greifen auf eine Webcam oder ein Mikrofon zu, um einen Benutzer eines infizierten Systems auszuspionieren. Um diese Virusaktivität zu erkennen, können wir jede Umdrehung der Kamera und des Mikrofons im macOS-System registrieren, sodass der Benutzer automatisch eine Benachrichtigung über dieses Ereignis erhält. , FruitFly, , Zoom, .
. , .

macOS – Event Taps. , . .
FruitFly, , , – «» .

, macOS, . . , macOS , . , .
Objective-See, - macOS. , . , , .

, – , , « ».

, Digita Security, . : . Apple, , .
, . , , , , macOS.
, . , Windtall, , Safari , .

, URL , - URL. Windtall, , .
FruitFly , , - . , , , Apple, - .
, FruitFly , . , . template . , .
, , . , , macOS.
, Mac, 2020 , .

Ein bisschen Werbung :)
Vielen Dank für Ihren Aufenthalt bei uns. Mögen Sie unsere Artikel? Möchten Sie weitere interessante Materialien sehen?
Unterstützen Sie uns, indem Sie eine Bestellung aufgeben oder Ihren Freunden Cloud VPS für Entwickler ab 4,99 USD empfehlen. Dies ist ein 30% iger Rabatt für Habr-Benutzer auf ein einzigartiges Analogon von Einstiegsservern, das wir für Sie erfunden haben: Die ganze Wahrheit über VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s ab 20 US-Dollar oder wie kann man einen Server gemeinsam nutzen? (Optionen sind mit RAID1 und RAID10, bis zu 24 Kernen und bis zu 40 GB DDR4 verfügbar).
Dell R730xd 2 mal günstiger? Nur wir haben
2 x Intel TetraDeca-Core Xeon 2 x E5-2697v3 2,6 GHz 14C 64 GB DDR4 4 x 960 GB SSD 1 Gbit / s 100 TV ab 199 US-Dollar in den Niederlanden! Dell R420 - 2x E5-2430 2,2 GHz 6C 128 GB DDR3 2x960 GB SSD 1 Gbit / s 100 TB - ab 99 US-Dollar! Lesen Sie mehr über
das Erstellen von Infrastruktur-Bldg. Klasse mit Dell R730xd E5-2650 v4 Servern für 9.000 Euro für einen Cent?