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
kernelpop — Kernel-Privilegieneskalations-Aufzählungs- und Exploitation-Framework | Kitploit
Tools/GitHubGitHub/spencerdodd/kernelpop
Privilege EscalationSchwachstellenanalyseExploitationPenetrationstests
GitHubspencerdodd/kernelpop

kernelpop

Kernel-Privilegieneskalations-Aufzählungs- und Exploitation-Framework

Repository anzeigen
7021312vor 8 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

kernelpop

kernelpop ist ein Framework zur automatisierten Aufzählung und Ausnutzung von Kernel-Sicherheitslücken auf den folgenden Betriebssystemen:

  • Linux

  • Mac

Es ist so konzipiert, dass es python-versionsunabhängig ist, d. h. es sollte sowohl mit python2 als auch mit python3 funktionieren.

  • bitte lass mich wissen, falls das nicht der Fall ist

Beispiel für Aufzählung bis root (Linux)

got-root


Möglichkeiten der Nutzung

  • Ausführung aus dem Projektquellcode
root@kitploit:~
$ git clone https://github.com/spencerdodd/kernelpop
$ cd kernelpop
$ python kernelpop.py || python3 kernelpop.py
  • Binärdatei erstellen
root@kitploit:~
$ git clone https://github.com/spencerdodd/kernelpop
$ cd kernelpop
$ ./create_executable.sh
$ ./kernelpop
  • Schritte zum Erstellen einer Binärdatei ohne Skript
  1. pyinstaller installieren (Schritte variieren je nach Build-System)
  2. $ pyinstaller kernelpop.py --onefile
  3. $ cp dist/kernelpop .

Beide Methoden zum Erstellen einer Binärdatei sollten eine Binärdatei kernelpop im Projektstammverzeichnis erstellen.


Ausgabe der Aufzählung

root@kitploit:~
user@debian:~/Desktop/kernelpop$ python3 kernelpop.py

##########################
#  willkommen bei kernelpop  #
#                        #
# lass uns ein paar Kerne knallen #
##########################

[*] Ermittle Distributionsversion und Release des zugrunde liegenden Betriebssystems (linuxdebian7)
[*] Ermittle Kernelversion mit 'uname -a'
[+] Kernel (Linux debian 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux) identifiziert als:
[base]
	type:			linux
	distro:			linuxdebian7
	version:		3.2.0-4
	architecture:		i686
[specific]
	type:			linux
	distro:			linuxdebian7
	version:		3.2.41-2
	architecture:		i686
[*] Vergleiche Kernel mit bekannten Exploits
[+] 11 mögliche Exploits gefunden!
	[[ distro kernel matched exploit available ]]
		CVE20165195_32	Dirty COW race condition root priv esc für 32 Bit
	[[ distro kernel version vulnerable ]]
		CVE20144699	Ausnutzbare Race Condition in Linux vor 3.15.4
		CVE20143153	`futex_requeue`-Schwachstelle vor 3.14.6 ermöglicht Privilegieneskalation
		CVE20162384	Double-Free-Schwachstelle in `snd_usbmidi_create` (erfordert physische Nähe)
		CVE20140196	`n_tty_write`-Schwachstelle vor 3.14.4 ermöglicht Privilegieneskalation zu root
		CVE20132094_semtex	perf_swevent_init Lokaler Root-Exploit (32 Bit)
		CVE20176074	`dccp_rcv_state_process` in net/dccp/input.c behandelt Strukturen falsch und kann zu lokalem Root führen
		CVE20132094_32	perf_swevent_init Lokaler Root-Exploit (32 Bit)
	[[ base linux kernel vulnerable ]]
		CVE20144014	Umgehung der `chmod`-Beschränkung erlaubt Benutzern, vor 3.14.8 root zu werden
		CVE20177308	`packet_set_ring` in net/packet/af_packet.c kann durch manipulierte Systemaufrufe Privilegien gewähren.
		CVE20171000112	ip_ufo_append_data()-Speicherkorruptionsfehler kann ausgenutzt werden, um Root-Rechte zu erlangen.

In der Ausgabe gibt es einige Kategorien. Folgendes bedeutet jede:

[[ distro kernel matched exploit available ]]

  • Es gibt einen distributionsspezifischen, passenden Kernel-Exploit im Projekt, mit dem du den Kernel ausnutzen kannst. Hohe Wahrscheinlichkeit einer erfolgreichen Ausnutzung.

[[ distro kernel version vulnerable ]]

  • Die Distributionskernelversion ist anfällig für die aufgeführte Schwachstelle, wurde aber nicht explizit als getestet im PoC-Exploit des Projekts angegeben. Eine Ausnutzung ohne Modifikation des Exploits kann funktionieren, hat aber eine geringere Wahrscheinlichkeit des Erfolgs.

[[ base linux kernel vulnerable ]]

  • Es ist unbekannt, ob die Distributionskernelversion für die Schwachstelle anfällig ist, aber der zugrunde liegende Linux-Kernel liegt im anfälligen Bereich für den Exploit. Eine Ausnutzung ohne Modifikation des Exploits ist entweder unwahrscheinlich oder unbekannt, könnte aber dennoch funktionieren.

Voraussetzungen

  • python2 oder python3

  • pyinstaller (falls du eine Binärdatei erstellen möchtest)


Verwendung

root@kitploit:~
Ausführungsmodi:
	(Standard)	        python3 kernelpop.py
	(Exploit-Modus)	        python3 kernelpop.py -e {Exploit-Name}
		(Quellcode ausgeben)   python3 kernelpop.py -e {Exploit-Name} -d
	(uname-Modus)            python3 kernelpop.py -u {uname -a Ausgabe}
	(Interaktiver Modus)      python3 kernelpop.py -i # VERALTETE Option (identisch mit uname-Modus)
Sonstiges:
	(Playground-Pfad)       -p {neuer Pfad}
	(JSON-Ausgabedatei)      --digest json

Standardmodus (passiv)

Der Standardmodus verarbeitet Informationen über den Host-Kernel und vergleicht sie mit den dem Programm bekannten Kernel-Exploits. Anschließend wird eine Liste potenziell nützlicher Sicherheitslücken und zugehöriger Exploits ausgegeben.

Exploit-Modus (aktiv)

root@kitploit:~
-e {Exploit-Name}

Der Exploit-Modus kompiliert und führt den Exploit-Quellcode dynamisch mit stdio-Interaktionen innerhalb des Programms aus. Er kann auch Unterbrechungen durch kurzzeitig gestoppte Versuche abfangen. Verwende den Namen des Exploits, der im ersten kernelpop-Aufzählungslauf im Standardmodus angezeigt wird.

  • Quellcode ausgeben (Option) -d

    • Dies ist ein Modifikator für den Exploit-Modus. Er gibt die Quelldateien für den angegebenen Exploit in die entsprechenden Dateien im PLAYGROUND_PATH (Standard /tmp) aus. Dies ist nützlich, um den Exploit-Quellcode auf einer Box zu modifizieren oder mit Exploits zu arbeiten, die manuelle Interaktion oder das Festcodieren von Werten erfordern. Besonders nützlich ist es, wenn du von einer Binärdatei aus arbeitest, da du dann keinen Zugriff auf den Projektquellcode (d. h. den Exploit-Quellcode) hast.

uname-Modus (passiv)

root@kitploit:~
-u {uname -a Ausgabe}

Mit dieser Option kannst du die Ausgabe eines uname -a-Befehls inline an das Programm übergeben, was es für die Integration in automatisierte Skripte oder aus anderen denkbaren Gründen verwendbar macht. Ersatz für den Interaktiven Modus.

Interaktiver Modus (passiv) [VERALTET - für Mac durch uname-Ausgabe erforderlich]

root@kitploit:~
-i {uname -a Ausgabe}

Der Interaktive Modus ermöglicht es dir, eine Aufzählung nur mit der Ausgabe eines uname -a-Befehls durchzuführen, was ihn als reines Host-seitiges Aufzählungswerkzeug nützlich macht. Dies wird durch Starten von kernelpop mit dem Flag -i und anschließender Eingabe der Ausgabe von uname -a auf Aufforderung ausgeführt. Dies ist eine veraltete Funktion und wurde durch den uname-Modus ersetzt, wird aber weiterhin unterstützt, da -u die Mac-Aufzählung nicht unterstützt.

PLAYGROUND-Pfad

root@kitploit:~
-p {neuer PLAYGROUND_PATH-Ordner}

Die -p-Option setzt den Wert der globalen Variable PLAYGROUND_PATH. Dies ist der Speicherort, an den alle Exploit-Quell- dateien geschrieben und Exploits kompiliert werden. Standardmäßig ist dies auf /tmp gesetzt. Du kannst ihn jedoch mit diesem Modifikator auf ein beliebiges Verzeichnis setzen, falls du keine Schreibrechte in /tmp hast.

Verarbeitbare Ausgabe

root@kitploit:~
--digest json

Diese Option ermöglicht es dir, die Ergebnisse eines kernelpop-Laufs für die spätere Verarbeitung in eine JSON-Datei zu speichern. Bisher habe ich nur den json-Dump implementiert, aber ich werde an einer XML-Version arbeiten, falls dies gewünscht wird.

To Do

  • füge weitere Exploits hinzu! (src/to_add – falls jemand Lust hat, sich ein paar davon vorzunehmen, nur zu!)

  • füge Patch-Level in die Vergleiche der anfälligen Fenster ein

  • füge eine Möglichkeit hinzu, erkannte Einstellungen bei fehlerhafter Analyse oder widrigen Einstellungen zu überschreiben

Prozess zum Hinzufügen von Kernel-Sicherheitslücken-Fenstern: [sollte einen Scraper schreiben]

  • google: CVE-XXXX-XXXX "ubuntu"

    • klicke den Canonical-Link (https://people.canonical.com/~ubuntu-security/cve/2016/CVE-XXXX-XXXX.html)

      • klicke alle verlinkten Advisories auf usn.ubuntu.com und parse die Informationen

      • hole die Patch-Versionen zum Ausfüllen der Sicherheitslücken-Fenster pro Version

  • google: CVE-XXXX-XXXX "debian"

    • security-tracker.debian.org Link (https://security-tracker.debian.org/tracker/CVE-XXXX-XXXX)

      • ziehe Informationen vom unteren Ende der Seite, die sich auf die gepatchten Versionen für die spezifische CVE beziehen
  • google: CVE-XXXX-XXXX "mitre"

    • Links zu anderen Distributionen, um Informationen zu ziehen

Derzeit unterstützte CVEs:

  • CVE-2017-1000379

  • CVE-2017-1000373

  • CVE-2017-1000372

  • CVE-2017-1000371

  • CVE-2017-1000370

  • CVE-2017-1000367

  • CVE-2017-1000112

  • CVE-2017-7308

  • CVE-2017-6074

  • CVE-2017-5123

  • CVE-2016-5195

  • CVE-2016-2384

  • CVE-2016-0728


Exploit-Quellen

https://github.com/SecWiki/linux-kernel-exploits

http://exploit-db.com/

https://github.com/lucyoa/kernel-exploits

https://github.com/SecWiki/windows-kernel-exploits

Historische Quellen zu Distributionen

Debian

  • debian releases
Tool herunterladen
  • CVE-2015-1328

  • CVE-2014-4699

  • CVE-2014-4014

  • CVE-2014-3153

  • CVE-2014-0196

  • CVE-2014-0038

  • CVE-2013-2094

  • CVE-2010-4347

  • CVE-2010-2959

  • CVE-2009-1185