Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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
SockFuzzer — Coverage-gesteuertes Kernel-Fuzzing-Framework, das XNU als Userspace-Bibliothek ausführt und Schwachstellen in den BSD-, Mach-, Virtual-Memory- und Prozess-Subsystemen aufdeckt. | Kitploit
Tools/GitHubGitHub/googleprojectzero/sockfuzzer
Dynamische Analyse (Sandboxing)iOS-SicherheitSchwachstellenanalyseFuzzingArchived
GitHubgoogleprojectzero/sockfuzzer

SockFuzzer

Coverage-gesteuertes Kernel-Fuzzing-Framework, das XNU als Userspace-Bibliothek ausführt und Schwachstellen in den BSD-, Mach-, Virtual-Memory- und Prozess-Subsystemen aufdeckt.

Repository anzeigen
4525517vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

SockFuzzer: XNU-Kernel-Fuzzing-Framework

Projektstatus

SockFuzzer, ursprünglich als netzwerkorientierter Fuzzer für den XNU-Kernel (verwendet in macOS und iOS) entwickelt, hat sich zu einem umfassenden Kernel-Fuzzing-Framework entwickelt. Obwohl der ursprüngliche Name als Hommage an die Wurzeln beibehalten wurde, deckt SockFuzzer heute ein breites Spektrum an Kernel-Subsystemen ab, darunter BSD, Mach, virtueller Speicher und mehr. Das Projekt implementiert einen einzigartigen Ansatz, indem es den XNU-Kernel in eine Bibliothek umwandelt, die im Userspace „gebootet" und gefuzzt werden kann, was eine effiziente Schwachstellenerkennung und -reproduktion über mehrere Subsysteme hinweg ermöglicht.

Projektziele

  1. Den XNU-Kernel umfassend in einer kontrollierten Umgebung testen
  2. Schwachstellen in verschiedenen XNU-Subsystemen entdecken und reproduzieren
  3. Ein Framework für kontinuierliches Fuzzing und die Verbesserung der XNU-Sicherheit bereitstellen
  4. Den Wert der Implementierung fortschrittlicher Fuzzing-Techniken in der Kernel-Forschung demonstrieren
  5. Effizientes Testen komplexer Kernel-Interaktionen und -Subsysteme ermöglichen

Architekturübersicht

SockFuzzer verwendet ein Host-/„XNU-Gast"-Design, bei dem der XNU-Kernel als Bibliothek kompiliert und in einer benutzerdefinierten Userspace-Umgebung ausgeführt wird. Diese Architektur besteht aus mehreren Schlüsselkomponenten:

  1. Host-Umgebung
  2. XNU-Gastbibliothek
  3. Benutzerdefinierter Scheduler (basiert auf Concurrence)
  4. Fuzzing-Engine (Centipede aus Googles fuzztest-Projekt)
  5. Test-Runner und Harness

Host-Umgebung

Die Host-Umgebung bildet die Grundlage für die Ausführung der XNU-Gastbibliothek und die Verwaltung des Fuzzing-Prozesses. Sie umfasst:

  • Benutzerdefinierte Implementierungen von Kern-Diensten des Kernels
  • Hypercall-Schnittstelle für die Kommunikation zwischen Host und XNU-Gast
  • Test-Runner und Harness zur Ausführung von Fuzz-Tests

XNU-Gastbibliothek

Der XNU-Kernel wird als Bibliothek (libxnu) mit minimalen Modifikationen kompiliert, um im Userspace zu laufen. Zu den wichtigsten Aspekten gehören:

  • Symbol-Präfixierung und -Verwaltung, um Konflikte mit Host-Symbolen zu vermeiden
  • Selektive Offenlegung interner XNU-Funktionen über ein Versionsskript
  • Unterstützung mehrerer Subsysteme: BSD, Mach, virtueller Speicher, Threads, Prozesse usw.
  • Null-Pmap-Schicht für die Unterstützung von virtuellem Speicher (mit Plänen für die zukünftige Unterstützung von ARM-Pmap)

Benutzerdefinierter Scheduler

Basierend auf dem verbesserten Concurrence-Projekt unterstützt der benutzerdefinierte Scheduler nun vollständige Threading-Funktionen:

  • Executor: Bietet Thread-Erstellung, -Löschung und Kontextwechsel
  • FuzzedScheduler: Verwaltet Thread-Zustände und Scheduling-Entscheidungen
  • Integration mit der XNU-Gastbibliothek für ordnungsgemäße Multithreading-Unterstützung

Test-Runner und Harness

Der Test-Runner und das Harness verwalten die Ausführung von Fuzz-Tests und bieten:

  • Initialisierung der XNU-Gastumgebung
  • Ausführung von Fuzz-Inputs über verschiedene Subsysteme hinweg
  • Absturzerkennung und -meldung

Hauptfunktionen

  1. Umfassende XNU-Kernel-Abdeckung: Testen mehrerer Subsysteme, einschließlich BSD, Mach, virtuellem Speicher, Threads und Prozessen
  2. XNU-Ausführung im Userspace: Ausführen von XNU-Kernelkomponenten in einer kontrollierten Userspace-Umgebung
  3. Vollständige Threading-Unterstützung: Nutzung des verbesserten Concurrence für ordnungsgemäße Multithreading-Fähigkeiten
  4. Unterstützung für virtuellen Speicher: Verwendung einer Null-Pmap-Schicht mit Plänen für ARM-Pmap-Unterstützung
  5. MIG-Fuzzing: Unterstützung für das Fuzzing von Mach-Interface-Generator-Schnittstellen (MIG)
  6. Hypercall-Schnittstelle: Ermöglicht die Kommunikation zwischen Host- und XNU-Gastkomponenten

Unterstützte Funktionen

  1. BSD
  2. Mach
  3. Virtueller Speicher (mit Null-Pmap-Schicht)
  4. Threads und Prozesse
  5. Netzwerk
  6. Mach-Nachrichten
  7. MIG-Schnittstellen

Arbeitsablauf

  1. Der XNU-Kernel wird mit den erforderlichen Modifikationen als Bibliothek kompiliert
  2. Die Host-Umgebung initialisiert die XNU-Gastbibliothek und den benutzerdefinierten Scheduler
  3. Centipede generiert strukturierte Eingaben mithilfe von Protobuf-Definitionen
  4. Das Test-Harness führt die Eingaben aus und ruft Syscalls, Mach-Nachrichten und andere Kernel-Schnittstellen auf
  5. Der benutzerdefinierte Scheduler verwaltet die Thread-Ausführung innerhalb des XNU-Gasts
  6. ASAN überwacht auf Speicherkorruptionsprobleme
  7. Abstürze und Coverage-Informationen werden gesammelt und analysiert

Einschränkungen und zukünftige Arbeiten

  1. IOKit-Unterstützung: Die aktuelle Implementierung unterstützt keine IOKit-Subsysteme
  2. Reines Binär-Fuzzing: Der Ansatz basiert derzeit auf Quellcode, der nicht alle Module umfasst

Zukünftige Arbeiten umfassen:

  • Implementierung der IOKit-Unterstützung
  • Integration der ARM-Pmap-Unterstützung für virtuellen Speicher
  • Anpassung von Techniken für reine Binär-Fuzzing-Szenarien
  • Fortsetzung der Erweiterung der Abdeckung und Unterstützung für XNU-Subsysteme

Einschränkungen der öffentlichen Veröffentlichung

Um dieses Repository gut strukturiert zu halten, müssen mehrere Abhängigkeiten von den Benutzern selbst zu third_party hinzugefügt werden, wie z. B. xnu, bootstrap_cmds und einige andere Bibliotheken.

Tool herunterladen