Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
macos_xprotect — Lehrreicher Deep Dive in den integrierten Malware-Schutz von Apple: Signaturdatenbanken, YARA-Regeln, Gatekeeper-Integration, Remediation-Binaries und der macOS-Erkennungsablauf. | Kitploit
Tools/GitHubGitHub/yo-yo-yo-jbo/macos_xprotect
DefensivwerkzeugeMalware-AnalyseBinäranalyseLernen & Bildung
GitHubyo-yo-yo-jbo/macos_xprotect

macos_xprotect

Lehrreicher Deep Dive in den integrierten Malware-Schutz von Apple: Signaturdatenbanken, YARA-Regeln, Gatekeeper-Integration, Remediation-Binaries und der macOS-Erkennungsablauf.

Repository anzeigen
31vor 1 MonatNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Einführung in macOS - XProtect

In Fortsetzung meiner Blogserie zur Einführung in macOS habe ich beschlossen, einen kurzen Blogbeitrag XProtect zu widmen.

Was ist XProtect?

XProtect ist das integrierte Antiviren- und Malware-Signatursystem von Apple für macOS.
Es arbeitet als Teil des XProtectService, der Anwendungen und andere ausführbare Inhalte auf bekannte Malware-Signaturen scannt.
XProtect läuft im Hintergrund und wird von Apple über den XProtectRemediator-Mechanismus still aktualisiert (dazu später mehr).
Es hat 3 Hauptfunktionen:

  • Signaturbasierte Erkennung – Es scannt Dateien gegen eine Datenbank bekannter Malware-Signaturen.
  • Verhaltensbasierte Erkennung (XProtect Remediator) – Mit macOS Monterey eingeführt, ermöglicht dies XProtect, proaktiv nach Malware zu scannen und sie anhand verdächtiger Verhaltensweisen statt nur statischer Signaturen zu entfernen.
  • Echtzeit-Blockierung – XProtect verhindert die Ausführung bekannter Schadsoftware, bevor sie ausgeführt werden kann.

Traditionelles XProtect

Das Verzeichnis /Library/Apple/System/Library/CoreServices/XProtect.bundle ist das Haupt-Bundle, das die XProtect-Konfiguration und die Signaturdefinitionen enthält.
Dies ist ein schreibgeschütztes Systemverzeichnis und wird von Apple über XProtect-Updates still aktualisiert.
Darunter finden wir einige interessante Dateien, die alle regelmäßig von Apple aktualisiert und durch die System Integrity Protection (SIP) geschützt werden.

XProtect.plist

Die Datei /Library/Apple/System/Library/CoreServices/XProtect.bundle/Contents/Resources/XProtect.plist speichert Malware-Signaturen, die XProtect zur Erkennung bekannter Bedrohungen verwendet.
Sie enthält Einträge, die Malware-Familien spezifischen Erkennungsregeln zuordnen, einschließlich Hashes und Dateinamenmustern.
Hier ist ein Beispiel für eine Malware-Familie – Bundalore:

root@kitploit:~
<dict>
        <key>Description</key>
        <string>OSX.Bundlore.D</string>
        <key>LaunchServices</key>
        <dict>
                <key>LSItemContentType</key>
                <string>com.apple.application-bundle</string>
        </dict>
        <key>Matches</key>
        <array>
                <dict>
                        <key>MatchFile</key>
                        <dict>
                                <key>NSURLTypeIdentifierKey</key>
                                <string>com.apple.applescript.script</string>
                        </dict>
                        <key>MatchType</key>
                        <string>Match</string>
                        <key>Pattern</key>
                        <string>46617364554153</string>
                </dict>
                <dict>
                        <key>MatchFile</key>
                        <dict>
                                <key>NSURLTypeIdentifierKey</key>
                                <string>com.apple.applescript.script</string>
                        </dict>
                        <key>MatchType</key>
                        <string>Match</string>
                        <key>Pattern</key>
                        <string>20006500630068006F002000</string>
                </dict>
                <dict>
                        <key>MatchFile</key>
                        <dict>
                                <key>NSURLTypeIdentifierKey</key>
                                <string>com.apple.applescript.script</string>
                        </dict>
                        <key>MatchType</key>
                        <string>Match</string>
                        <key>Pattern</key>
                        <string>20007C0020006F00700065006E00730073006C00200065006E00630020002D006100650073002D003200350036002D0063006600620020002D007000610073007300200070006100730073003A</string>
                </dict>
                <dict>
                        <key>MatchFile</key>
                        <dict>
                                <key>NSURLTypeIdentifierKey</key>
                                <string>com.apple.applescript.script</string>
                        </dict>
                        <key>MatchType</key>
                        <string>Match</string>
                        <key>Pattern</key>
                        <string>002D00730061006C00740020002D00410020002D00610020002D00640020007C002000620061007300680020002D0073</string>
                </dict>
        </array>
</dict>

Das ist recht gut lesbar; der einzige bemerkenswerte Punkt ist, dass das string-Argument in jedem Treffer eine Hexadezimaldarstellung ist, z. B. entspricht 002D00730061006C00740020002D00410020002D00610020002D00640020007C002000620061007300680020002D0073 -salt -A -a -d | bash -s.
Das ist natürlich eine Goldgrube für Malware-Autoren, die genau wissen, welche Muster sie vermeiden müssen.

XProtect.meta.plist

Die Datei /Library/Apple/System/Library/CoreServices/XProtect.bundle/XProtect.meta.plist ist eine Metadatendatei, die zusätzliche Regeln für XProtect definiert, einschließlich Durchsetzungsrichtlinien und Versionsinformationen.
Sie legt fest, welche macOS-Versionen bestimmte XProtect-Regeln durchsetzen und welche Aktionen bei Erkennung ergriffen werden, sowie Blacklists für Plugins.
Hier ist ein Beispiel:

root@kitploit:~
<key>JavaWebComponentVersionMinimum</key>
<string>1.6.0_45-b06-451</string>
<key>PlugInBlacklist</key>
<dict>
        <key>10</key>
        <dict>
                <key>com.apple.java.JavaAppletPlugin</key>
                <dict>
                        <key>MinimumPlugInBundleVersion</key>
                        <string>14.8.0</string>
                        <key>PlugInUpdateAvailable</key>
                        <true/>
                </dict>
                <key>com.apple.java.JavaPlugin2_NPAPI</key>
                <dict>
                        <key>MinimumPlugInBundleVersion</key>
                        <string>14.8.0</string>
                        <key>PlugInUpdateAvailable</key>
                        <true/>
                </dict>
                <key>com.macromedia.Flash Player ESR.plugin</key>
                <dict>
                        <key>MinimumPlugInBundleVersion</key>
                        <string>18.0.0.382</string>
                        <key>PlugInUpdateAvailable</key>
                        <true/>
                </dict>
                <key>com.macromedia.Flash Player.plugin</key>
                <dict>
                        <key>MinimumPlugInBundleVersion</key>
                        <string>32.0.0.101</string>
                        <key>PlugInUpdateAvailable</key>
                        <true/>
                </dict>
                <key>com.microsoft.SilverlightPlugin</key>
                <dict>
                        <key>MinimumPlugInBundleVersion</key>
                        <string>5.1.41212.0</string>
                        <key>PlugInUpdateAvailable</key>
                        <true/>
                </dict>
                <key>com.oracle.java.JavaAppletPlugin</key>
                <dict>
                        <key>MinimumPlugInBundleVersion</key>
                        <string>1.8.51.16</string>
                        <key>PlugInUpdateAvailable</key>
                        <true/>
                </dict>
        </dict>
</dict>

Wie Sie sehen können, enthalten diese zum Beispiel Versionsinformationen für „blockierte" Plugins.

XProtect.yara

In neueren Versionen scheint XProtect begonnen zu haben, YARA zu unterstützen.
Die Datei /Library/Apple/System/Library/CoreServices/XProtect.bundle/Contents/Resources/XProtect.yara enthält mehrere YARA-Regeln im Textformat; hier ist ein kurzes Beispiel daraus:

root@kitploit:~
rule XProtect_MACOS_SLEEPYSTEGOSAURUS_SYM {
    meta:
        description = "MACOS.SLEEPYSTEGOSAURUS.SYM"
        uuid = "BB4F7D16-C939-4047-A9AF-E74E7B51FAC1"
    strings:
        $a1 = { 45 78 65 63 43 6D 64 }
        $a2 = { 47 65 74 48 6F 73 74 49 6E 66 6F }
        $a3 = { 52 75 6E 53 63 72 69 70 74 }
        $a4 = { 52 75 6E 53 63 72 69 70 74 55 72 6C }
        $a5 = { 4C 61 75 6E 63 68 50 6C 69 73 74 }
        $a6 = { 43 68 65 63 6B 50 72 6F 63 65 73 73 }
        $a7 = { 43 68 65 63 6B 49 6E }
        $a8 = { 52 75 6E 43 6D 64 46 69 6C 65 }
        $a9 = { 53 68 6F 77 48 74 6D 6C }
        $a10 = { 50 6C 69 73 74 48 65 6C 70 65 72 }
        $a11 = { 4C 61 75 6E 63 68 64 48 65 6C 70 65 72 }
        $a12 = { 43 6F 6D 6D 61 6E 64 46 69 6C 65 }
        $a13 = { 57 72 69 74 65 50 6C 69 73 74 }
        $a14 = { 4A 53 4F 4E 46 69 6C 65 50 72 6F 63 65 73 73 6F 72 }
        $a15 = { 43 68 72 6F 6D 65 48 65 6C 70 65 72 }
        $a16 = { 53 61 6E 64 62 6F 78 65 72 }
    condition:
        Macho and filesize < 2MB and all of them
}

Dies ist zwar kein Blogbeitrag über YARA-Regeln, aber wie zuvor ist dies eine Goldgrube für Malware-Autoren (z. B. ist 43 68 65 63 6B 50 72 6F 63 65 73 73 gleich CheckProcess).

gk.db

Hier sehen Sie, wie Apple XProtect für die Integration mit Gatekeeper konzipiert hat – diese Datei wird allerdings hauptsächlich von syspolicyd verwendet.
Die Datei /Library/Apple/System/Library/CoreServices/XProtect.bundle/Contents/Resources/gk.db ist eine SQLite-Datenbank, die eine „Blacklist" von Datei-Hashes und Team-IDs zum Blockieren enthält.
Sie können sie mit dem Dienstprogramm sqlite3 ansehen:

root@kitploit:~
jbo@McJbo ~ $ sqlite3 "/Library/Apple/System/Library/CoreServices/XProtect.bundle/Contents/Resources/gk.db" .schema
CREATE TABLE settings (name TEXT, value TEXT, PRIMARY KEY (name));
CREATE TABLE blocked_hashes (hash BLOB, hash_type INTEGER, flags INTEGER, PRIMARY KEY (hash, hash_type));
CREATE TABLE blocked_teams (team_id TEXT, flags INTEGER, PRIMARY KEY (team_id));
jbo@McJbo ~ $ sqlite3 "/Library/Apple/System/Library/CoreServices/XProtect.bundle/Contents/Resources/gk.db" "SELECT * FROM blocked_teams LIMIT 5;"
F9X83Q5222|1
Q6XAB4776L|0
DK5C9Y86C8|0
8VK2WEPW22|0
5LWMEF3EX3|0
jbo@McJbo ~ $

Auch das sind wieder interessante Informationen für Malware-Autoren – zum Beispiel um zu wissen, wann die Team-ID, mit der sie ihre Malware signiert haben, auf Apples Radar ist.

Remediation-Binärdateien

Während sich die XProtect-Binärdatei unter /Library/Apple/System/Library/CoreServices/XProtect.app/Contents/MacOS/ befindet, finden Sie dort zusätzliche Binärdateien.
Das sind Bereinigungsdateien für bestimmte Familien:

root@kitploit:~
jbo@McJbo ~ $ ls -l /Library/Apple/System/Library/CoreServices/XProtect.app/Contents/MacOS/
total 47256
-rwxr-xr-x  1 root  wheel   513696 Feb 27 16:54 XProtect
-rwxr-xr-x  1 root  wheel  2498784 Feb 27 16:54 XProtectRemediatorAdload
-rwxr-xr-x  1 root  wheel  2367952 Feb 27 16:54 XProtectRemediatorBadGacha
-rwxr-xr-x  1 root  wheel  2053968 Feb 27 16:54 XProtectRemediatorBlueTop
-rwxr-xr-x  1 root  wheel  2332752 Feb 27 16:54 XProtectRemediatorBundlore
-rwxr-xr-x  1 root  wheel  2299648 Feb 27 16:54 XProtectRemediatorCardboardCutout
-rwxr-xr-x  1 root  wheel  2333248 Feb 27 16:54 XProtectRemediatorColdSnap
-rwxr-xr-x  1 root  wheel  2052736 Feb 27 16:54 XProtectRemediatorCrapyrator
-rwxr-xr-x  1 root  wheel  2859040 Feb 27 16:54 XProtectRemediatorDolittle
-rwxr-xr-x  1 root  wheel  2205520 Feb 27 16:54 XProtectRemediatorDubRobber
-rwxr-xr-x  1 root  wheel  2334752 Feb 27 16:54 XProtectRemediatorEicar
-rwxr-xr-x  1 root  wheel  2053120 Feb 27 16:54 XProtectRemediatorFloppyFlipper
-rwxr-xr-x  1 root  wheel  2053616 Feb 27 16:54 XProtectRemediatorGenieo
-rwxr-xr-x  1 root  wheel  2053504 Feb 27 16:54 XProtectRemediatorGreenAcre
-rwxr-xr-x  1 root  wheel  2332800 Feb 27 16:54 XProtectRemediatorKeySteal
-rwxr-xr-x  1 root  wheel  4659088 Feb 27 16:54 XProtectRemediatorMRTv3
-rwxr-xr-x  1 root  wheel  2382448 Feb 27 16:54 XProtectRemediatorPirrit
-rwxr-xr-x  1 root  wheel  2333024 Feb 27 16:54 XProtectRemediatorRankStank
-rwxr-xr-x  1 root  wheel  2299728 Feb 27 16:54 XProtectRemediatorRoachFlight
-rwxr-xr-x  1 root  wheel  2384416 Feb 27 16:54 XProtectRemediatorSheepSwap
-rwxr-xr-x  1 root  wheel  2053232 Feb 27 16:54 XProtectRemediatorSnowBeagle
-rwxr-xr-x  1 root  wheel  2350624 Feb 27 16:54 XProtectRemediatorSnowDrift
-rwxr-xr-x  1 root  wheel  2019712 Feb 27 16:54 XProtectRemediatorToyDrop
-rwxr-xr-x  1 root  wheel  2105696 Feb 27 16:54 XProtectRemediatorTrovi
-rwxr-xr-x  1 root  wheel  2332768 Feb 27 16:54 XProtectRemediatorWaterNet
jbo@McJbo ~ $

XProtect Remediator

Eine neue XProtect-Systemanwendung, gespeichert als /Library/Apple/System/Library/CoreServices/XProtect.app, wurde mit macOS Monterey eingeführt und ist für die Ausführung von XProtect Remediator verantwortlich.
Anders als das traditionelle XProtect (das hauptsächlich signaturbasierte Erkennung verwendete), scannt XProtect Remediator aktiv nach Malware und entfernt sie von infizierten Systemen.
Es läuft als Hintergrundprozess und kann erkannte Bedrohungen ohne Eingriff des Benutzers automatisch entfernen.
Das Verzeichnis /Library/Apple/System/Library/CoreServices/XProtect.app/Contents/Resources enthält Bereinigungsskripte und zusätzliche Erkennungslogik für das aktive Scannen.

com.apple.XProtect.agent.scan.plist

Die Datei /Library/Apple/System/Library/CoreServices/XProtect.app/Contents/Resources/com.apple.XProtect.agent.scan.plist enthält Einstellungen darüber, wann regelmäßige Scans ausgeführt werden sollen.
Zum Beispiel:

root@kitploit:~
<key>com.apple.XProtect.PluginService.agent.slow.scan</key>
<dict>
        <key>Repeating</key>
        <true/>
        <key>PowerNap</key>
        <true/>
        <key>CPUIntensive</key>
        <true/>
        <key>DiskIntensive</key>
        <true/>
        <key>AllowBattery</key>
        <false/>
        <key>Priority</key>
        <string>Utility</string>
        <key>Interval</key>
        <integer>604800</integer>
</dict>

Dies zeigt bestimmte Leistungsbedingungen und sogar das Intervall des Scans (604800 Sekunden = einmal alle 7 Tage).

MRT

Einige von Ihnen haben vielleicht schon von MRT (Malware Removal Tool) gehört.
MRT ist unter /Library/Apple/System/Library/CoreServices/MRT.app gespeichert und eine weitere macOS-Sicherheitskomponente, die zusammen mit XProtect arbeitet.
Es ist dafür verantwortlich, Malware zu entfernen, die XProtect erkannt hat, und arbeitet still im Hintergrund.
MRT ist bei der Beseitigung erkannter Bedrohungen aggressiver als XProtect und kann schädliche Dateien sogar dann entfernen, wenn sie gerade ausgeführt werden.
Beachten Sie, dass MRT – anders als XProtect – keine Konfigurationsdateien pflegt; alles ist fest in die Binärdatei eingebaut.
Schon ein Blick auf die Strings der Haupt-Binärdatei (/Library/Apple/System/Library/CoreServices/MRT.app/Contents/MacOS/MRT) offenbart interessante Strings, z. B.:

root@kitploit:~
import sys,base64;exec(base64.b64decode('
import sys,base64,warnings;warnings.filterwarnings('ignore');exec(base64.b64decode('
import sys;import re, subprocess;cmd = "ps -ef | grep Little\ Snitch | grep -v grep"

Wie alles zusammenspielt

Wenn eine Datei über einen Browser oder eine Anwendung (z. B. Safari, Mail, Nachrichten) heruntergeladen wird, wird sie mit einem Quarantäne-Flag (com.apple.quarantine) markiert – ich habe dieses Flag bereits in meinem vorherigen Blogbeitrag über Gatekeeper erwähnt.
Gatekeeper prüft, ob die Datei signiert und notarisiert ist. Ist sie es nicht, erhält der Benutzer vor der Ausführung eine Warnung.
Wenn die Ausführung erlaubt wird, scannt XProtect die Datei gegen seine bekannten Malware-Signaturen (aus XProtect.plist, XProtect.yara usw.).
Wird Malware erkannt, verhindert das System die Ausführung. Wenn die Malware bekannt ist und bereinigt werden kann, kann XProtect Remediator oder MRT sie löschen oder neutralisieren.
Apple aktualisiert XProtect, MRT und XProtect Remediator über den XProtectService-Prozess still im Hintergrund.

Lobende Erwähnung - Banshee

Anfang dieses Jahres hat CheckPoint einen Blogbeitrag über eine Malware-Probe namens Banshee veröffentlicht.
Das erregte ziemlich viel Aufmerksamkeit, da es denselben Verschlüsselungsalgorithmus verwendete, den die XProtect Remediator-Binärdateien verwenden, um „ihre YARA-Regeln zu verstecken".
Der Algorithmus selbst ist einfach:

root@kitploit:~
def macos_xprotect_string_decryption(encrypted: bytes, encr_key: int) -> str:
    """
    Author: @Check Point Research
    Decrypts MacOS Xprotect binaries & Banshee Stealer encrypted strings.
    """
    decrypted = "".join(
        chr(
            (encr_key >> ((i * 8) & 0x38) & 0xFF) ^ encrypted[i]
        )
        for i in range(len(encrypted))
    )
    return decrypted.partition("\\x00")[0]

Offensichtlich dachten die Malware-Autoren, dass dieser Algorithmus nicht statisch signiert werden kann (da er garantiert Fehlalarme erzeugt).
Ich habe ähnlichen Code in den meisten Remediation-Binärdateien gefunden, z. B.:

root@kitploit:~
10000592a      if (data_1000ffe7e != 0)
10000592c          void* rax_1 = &data_1000fb0a0
100005933          int64_t i = 0
100005951          do
100005940              *rax_1 = *rax_1 ^ (0x363a34363a303900 u>> (i.b & 0x38)).b
100005943              i = i + 8
100005947              rax_1 = rax_1 + 1
100005951          while (i != 0x26ef0)
100005953          data_1000ffe7e = 0

Der Sicherheitsforscher, der das zuerst herausgefunden hat (ald3ns), hat ein Tool namens XPR-dump veröffentlicht, das scheinbar immer noch mit der neuesten XProtect-Version funktioniert. Sie sollten es sich unbedingt ansehen!

Zusammenfassung

Die wichtigste Erkenntnis aus diesem Blogbeitrag ist, dass XProtect ein Katz-und-Maus-Spiel mit Angreifern spielt (wie jedes Antivirenprogramm) – Blacklisting, das Ausführen von YARA-Regeln oder einfache statische Signaturen fallen alle darunter.
Die Tatsache, dass diese Dateien auf allen Endpunkten bereitgestellt werden und einfach zu analysieren sind, macht es Malware-Autoren ziemlich leicht, einfache Umgehungen für viele dieser Prüfungen zu finden.

Bleiben Sie dran!

Jonathan Bar Or (https://jonathanbaror.com)

Tool herunterladen