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
pack2theroot-lab — # CTF-Docker-Lab für CVE-2026-41651 (Pack2TheRoot): Lokale Privilegienerweiterung durch permissives Polkit in PackageKit | Kitploit
Tools/GitHubGitHub/dinosn/pack2theroot-lab
DefensivwerkzeugePrivilege EscalationContainer-SicherheitSchwachstellenanalyseExploitationCTFPenetrationstestsLernen & BildungRed TeamingLabs & Praxis
GitHubdinosn/pack2theroot-lab

pack2theroot-lab

81vor 4 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

# CTF-Docker-Lab für CVE-2026-41651 (Pack2TheRoot): Lokale Privilegienerweiterung durch permissives Polkit in PackageKit

Repository anzeigen
Teilen

Pack2TheRoot Lab — CVE-2026-41651

Ein Dockerisiertes, CTF-artiges Labor für lokale Privilegieneskalation, das um die Pack2TheRoot-Advisory (CVE-2026-41651) aufgebaut ist, einen 12 Jahre alten Fehler im PackageKit-Daemon, der vom Red Team der Deutschen Telekom am 22. April 2026 offengelegt wurde.

Das Labor umfasst drei Container: eine permissive-polkit CTF-Herausforderung, ein gehärtetes Vergleichsziel und eine vollständige TOCTOU-Exploit-Reproduktion, die das verwundbare PackageKit aus dem Quellcode baut und den tatsächlichen CVE-2026-41651-Exploit der Grundursache ausführt.


1. Was Sie erhalten

ContainerPortRolleExploit-Ergebnis
pack2theroot-vulntcp/2222 (ssh)PackageKit ≤ 1.3.4 + permissive polkit-RegelRoot über manipuliertes RPM
pack2theroot-patchedtcp/2223 (ssh)Gleich, aber polkit gehärtetExploit schlägt fehl
pack2theroot-exploit—Verwundbares PackageKit 1.3.4 aus dem Quellcode gebautRoot über TOCTOU-D-Bus-Race

Zusätzlich:

  • Eine spielerorientierte Herausforderungsbeschreibung (docs/CHALLENGE.md)
  • Progressive Hinweise (docs/HINTS.md)
  • Vollständige Komplettlösung & Flag (docs/SOLUTION.md)
  • Visuelle Diagramme des Exploit-Ablaufs (docs/diagrams/)
  • Defender-Werkzeuge: Versionsprüfung, IOC-Monitor, Seitenvergleich, interimistisches polkit-Mitigationsskript.

2. Schwachstellenübersicht

FeldWert
CVECVE-2026-41651
NamePack2TheRoot
KlasseLokale Privilegieneskalation (TOCTOU / CWE-367)
KomponentePackageKit-Daemon (pk-transaction.c)
Verwundbarer Bereich>= 1.0.2 und <= 1.3.4 (12 Jahre Releases)
Behoben inPackageKit 1.3.5 (Commit 76cfb675, veröffentlicht 2026-04-22)
CVSS 3.18.8 (HOCH) — AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
VoraussetzungenLokale unprivilegierte Shell auf einem Host mit PackageKit
EntdeckerDeutsche Telekom Security GmbH — Red Team

Grundursache — drei verkettete Fehler in pk-transaction.c

FehlerOrtWirkung
FEHLER 1InstallFiles() (~Zeile 4036)Überschreibt cached_transaction_flags und cached_full_paths bedingungslos — keine Zustandsprüfung
FEHLER 2pk_transaction_set_state() (~Zeilen 876–881)Verwirft rückwärtsgerichtete Zustandsübergänge stillschweigend statt einen Fehler zu melden — Flags bereits vergiftet
FEHLER 3pk_transaction_run() (~Zeilen 2273–2277)Liest cached_transaction_flags zur Dispatch-Zeit, nicht zur Autorisierungszeit
UmgehungSIMULATE-Flag (~Zeilen 2893–2900)PK_TRANSACTION_FLAG_SIMULATE (0x4) umgeht polkit vollständig

Der Exploit sendet zwei asynchrone D-Bus-InstallFiles()-Aufrufe auf derselben Transaktion: zuerst mit SIMULATE (umgeht polkit, stellt einen GLib-Idle-Callback in die Warteschlange), dann sofort mit NONE + dem bösartigen Paket (überschreibt die gecachten Flags/Pfade, bevor der Idle feuert). Die Prioritätsreihenfolge von GLib garantiert, dass beide D-Bus-Nachrichten vor dem Idle-Callback zugestellt werden — das macht dies deterministisch, kein Timing-Race.

Bekannter IOC (aus der Advisory):

root@kitploit:~
journalctl --no-pager -u packagekit | grep -iE 'emitted_finished|pk_transaction_finished_emit|pk-transaction\.c:514'

3. Schnellstart

root@kitploit:~
git clone https://github.com/dinosn/pack2theroot-lab.git
cd pack2theroot-lab
docker compose build
docker compose up -d

CTF-Herausforderung (permissiver polkit-Pfad)

root@kitploit:~
ssh labuser@localhost -p 2222     # Passwort: labuser
# dann docs/CHALLENGE.md durcharbeiten

Die Flag befindet sich unter /root/flag.txt (Modus 0400 root:root). Format: PACK2THEROOT{...}

TOCTOU-Exploit-Reproduktion (tatsächliche CVE-Grundursache)

root@kitploit:~
# Bauen und ausführen — Auto-Modus führt den Exploit sofort aus:
docker compose run --rm exploit

# Oder manueller Modus:
docker compose run --rm --entrypoint /entrypoint.sh exploit
# Dann innerhalb des Containers:
su - victim -c /exploit/cve-2026-41651

Der Exploit baut zwei .deb-Pakete in C (keine externen Werkzeuge nötig), sendet das Zwei-Aufruf-D-Bus-Race und erstellt eine SUID-bash unter /tmp/.suid_bash. Siehe docs/SOLUTION.md für die vollständige technische Komplettlösung.

Abbau:

root@kitploit:~
docker compose down -v

4. Repository-Struktur

root@kitploit:~
pack2theroot-lab/
├── README.md
├── docker-compose.yml
├── docs/
│   ├── CHALLENGE.md         # Spielerbeschreibung
│   ├── HINTS.md             # progressive Hinweise (beide Pfade)
│   ├── SOLUTION.md          # vollständige Komplettlösung + Flag
│   ├── references.md        # primäre und sekundäre Quellen
│   ├── threat-model.md      # Angreifer/Verteidiger-Annahmen
│   └── diagrams/            # SVG-Diagramme des Exploit-Ablaufs
│       ├── 01-docker-build.svg
│       ├── 02-container-startup.svg
│       ├── 03-exploit-execution.svg
│       ├── 04-dbus-race-sequence.svg
│       ├── 05-attack-overview.svg
│       └── 06-auto-mode-full-run.svg
├── exploit/
│   ├── Dockerfile           # baut verwundbares PackageKit 1.3.4 aus dem Quellcode
│   ├── entrypoint.sh        # startet dbus + polkitd + packagekitd
│   ├── Makefile
│   └── src/
│       └── cve-2026-41651.c # der TOCTOU-Exploit (öffentlicher PoC)
├── vulnerable/
│   ├── Dockerfile
│   ├── entrypoint.sh
│   └── policy/
│       └── 10-pack2theroot-lab-misconfig.rules   # CTF-Herausforderung
├── patched/
│   ├── Dockerfile
│   ├── entrypoint.sh
│   ├── local/                # hier ein 1.3.5-Backport-RPM ablegen (optional)
│   └── policy/
│       └── 10-pack2theroot-lab-hardened.rules    # die Behebung
└── scripts/
    ├── exploit-check.sh         # prüft Version, polkit, D-Bus, IOCs
    ├── check-version.sh         # VERWUNDBAR vs. GEPATCHT-Urteil
    ├── check-preconditions.sh   # pkcon / polkit / D-Bus-Sanity-Check
    ├── monitor-ioc.sh           # Journal für den Advisory-IOC überwachen
    ├── compare-env.sh           # beide Container vergleichen
    └── apply-polkit-mitigation.sh  # interimistische Härtung für ungepatchte Hosts

5. Visuelle Diagramme

Das Verzeichnis docs/diagrams/ enthält SVG-Diagramme, die den Exploit-Ablauf zeigen. Öffnen Sie sie in einem beliebigen Browser:

DiagrammBeschreibung
01-docker-build.svgZwei-Stufen-Docker-Build — Kompilieren des verwundbaren PackageKit
02-container-startup.svgContainer-Start — dbus-, polkitd-, packagekitd-Start
03-exploit-execution.svgSchritt-für-Schritt-Exploit-Ausgabe mit annotierten Phasen
04-dbus-race-sequence.svgD-Bus-Sequenzdiagramm — wie FEHLER 1/2/3 mit GLib-Priorität verkettet sind
05-attack-overview.svgHochrangiger Angriffsablauf: Angreifer vs. System mit Zeitachse
06-auto-mode-full-run.svgVollständiges --auto-Modus-Terminal — Container-Start bis Root-Shell

6. Die CTF-Herausforderung spielen

Siehe docs/CHALLENGE.md. Kurzfassung:

  1. Per SSH als labuser anmelden (Passwort labuser).
  2. Die polkit-Regeln auskundschaften. Eine davon ist viel zu permissiv.
  3. Ein bösartiges RPM bauen (rpm-build, rpmdevtools sind installiert).
  4. Mit pkcon install-local --allow-untrusted installieren.
  5. Das %post-Skriptlet läuft als root. /root/flag.txt lesen.

Festgefahren? docs/HINTS.md enthält zunehmend explizitere Hinweise. Öffnen Sie docs/SOLUTION.md erst, nachdem Sie es gelöst haben oder die Dokumentation wirklich benötigen.

7. Defender-Werkzeuge ausführen

In beiden Containern, als beliebiger Benutzer:

root@kitploit:~
/opt/lab/check-version.sh         # VERWUNDBAR- oder GEPATCHT-Urteil
/opt/lab/check-preconditions.sh   # Selbstprüfung der Exposition
/opt/lab/exploit-check.sh         # Versions- + polkit- + D-Bus- + IOC-Prüfung
/opt/lab/monitor-ioc.sh           # Journal auf den IOC überwachen

Vom Host aus, nebeneinander:

root@kitploit:~
./scripts/compare-env.sh

Die interimistische polkit-Mitigation auf einen verwundbaren Container anwenden:

root@kitploit:~
docker exec pack2theroot-vuln /opt/lab/apply-polkit-mitigation.sh
# Dann den Exploit erneut versuchen — sollte jetzt fehlschlagen.

8. Gepatchtes Image — Backport-Status

Das patched-Image behandelt den PackageKit-Versionsstatus ehrlich:

  • Es installiert das PackageKit, das die Distribution derzeit ausliefert.
  • Es zeigt ein klares Banner (/etc/pack2theroot-banner), das angibt, ob die installierte Version der echte Patch oder ein Distributions-Platzhalter ist.
  • Unabhängig von der Version liefert es eine gehärtete polkit-Regel, die den authentifizierungslosen Installationspfad blockiert.

Um ein versionsvollständiges gepatchtes Image zu bauen, sobald Ihre Distribution den Backport veröffentlicht, legen Sie die RPM(s) in patched/local/ ab und bauen neu:

root@kitploit:~
docker compose build --build-arg USE_LOCAL_RPM=1 patched

9. Sicherheit und verantwortungsvolle Nutzung

  • Versenden Sie keines der Container-Images auf einem gemeinsamen Docker-Host mit nicht vertrauenswürdigen Benutzern.
  • Der Exploit-Container benötigt --privileged, um den vollständigen dbus/polkitd/packagekitd-Stack auszuführen. Führen Sie ihn nur in isolierten Umgebungen aus.
  • Das SSH-Passwort (labuser) ist absichtlich schwach. Verwenden Sie es niemals wieder.
  • Nur für autorisierte defensive Forschung, Bildung und Penetrationstests.

10. Referenzen

Primärquellen:

  • Telekom Security Advisory — https://github.security.telekom.com/2026/04/pack2theroot-linux-local-privilege-escalation.html
  • NVD — CVE-2026-41651: https://nvd.nist.gov/vuln/detail/CVE-2026-41651
  • Upstream-Fix — PackageKit 1.3.5: https://github.com/PackageKit/PackageKit/releases/tag/v1.3.5
  • Fix-Commit — 76cfb675: https://github.com/PackageKit/PackageKit/commit/76cfb675fb31acc3ad5595d4380bfff56d2a8697
  • Öffentlicher PoC — Vozec: https://github.com/Vozec/CVE-2026-41651

Siehe docs/references.md für sekundäre Berichterstattung und Distributions-Tracker.

11. Lizenz

MIT — siehe LICENSE.

Tool herunterladen