Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
pack2theroot-lab — # Lab Docker in stile CTF per CVE-2026-41651 (Pack2TheRoot): escalatione dei privilegi locale di PackageKit permissive-polkit | Kitploit
Strumenti/GitHubGitHub/dinosn/pack2theroot-lab
Strumenti DifensiviEscalation di PrivilegiSicurezza dei ContenitoriAnalisi delle VulnerabilitàExploitCTFPenetration TestingApprendimento e FormazioneRed TeamingLab e Pratica
GitHubdinosn/pack2theroot-lab
81205 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →

pack2theroot-lab

# Lab Docker in stile CTF per CVE-2026-41651 (Pack2TheRoot): escalatione dei privilegi locale di PackageKit permissive-polkit

Vedi Repository
Condividi

Pack2TheRoot Lab — CVE-2026-41651

Un laboratorio Dockerizzato in stile CTF per l'escalation locale dei privilegi, costruito attorno all'advisory Pack2TheRoot (CVE-2026-41651), una vulnerabilità di 12 anni nel demone PackageKit divulgata dal Red Team di Deutsche Telekom il 22 aprile 2026.

Il laboratorio include tre container: una sfida CTF con polkit permissivo, un target di confronto indurito e una riproduzione completa dell'exploit TOCTOU che compila PackageKit vulnerabile dal sorgente ed esegue l'exploit reale della causa principale di CVE-2026-41651.


1. Cosa ottieni

ContainerPortaRuoloEsito dell'exploit
pack2theroot-vulntcp/2222 (ssh)PackageKit ≤ 1.3.4 + regola polkit permissivaRoot tramite RPM modificato
pack2theroot-patchedtcp/2223 (ssh)Stesso, ma con polkit induritoL'exploit fallisce
pack2theroot-exploit—PackageKit vulnerabile 1.3.4 compilato dal sorgenteRoot tramite race TOCTOU su D-Bus

Inoltre:

  • Un brief della sfida per i giocatori (docs/CHALLENGE.md)
  • Suggerimenti progressivi (docs/HINTS.md)
  • Walkthrough completo e flag (docs/SOLUTION.md)
  • Diagrammi visivi del flusso dell'exploit (docs/diagrams/)
  • Strumenti per i difensori: controllo versione, monitor IOC, confronto affiancato, script di mitigazione polkit provvisoria.

2. Riepilogo della vulnerabilità

CampoValore
CVECVE-2026-41651
NomePack2TheRoot
ClasseEscalation locale dei privilegi (TOCTOU / CWE-367)
ComponenteDemone PackageKit (pk-transaction.c)
Intervallo vulnerabile>= 1.0.2 e <= 1.3.4 (12 anni di release)
Corretto inPackageKit 1.3.5 (commit 76cfb675, rilasciato il 2026-04-22)
CVSS 3.18.8 (ALTO) — AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Pre-condizioniShell locale non privilegiata su un host che esegue PackageKit
ScopritoreDeutsche Telekom Security GmbH — Red Team

Causa principale — tre bug concatenati in pk-transaction.c

BugPosizioneEffetto
BUG 1InstallFiles() (~riga 4036)Sovrascrive cached_transaction_flags e cached_full_paths incondizionatamente — nessun controllo di stato
BUG 2pk_transaction_set_state() (~righe 876–881)Elimina silenziosamente le transizioni di stato all'indietro invece di generare un errore — i flag sono già avvelenati
BUG 3pk_transaction_run() (~righe 2273–2277)Legge cached_transaction_flags al momento dell'invio, non al momento dell'autorizzazione
BypassFlag SIMULATE (~righe 2893–2900)PK_TRANSACTION_FLAG_SIMULATE (0x4) bypassa completamente polkit

L'exploit invia due chiamate D-Bus asincrone InstallFiles() sulla stessa transazione: prima con SIMULATE (bypassa polkit, accoda un callback idle GLib), poi immediatamente con NONE + il pacchetto dannoso (sovrascrive i flag/percorsi memorizzati prima che l'idle scatti). L'ordinamento per priorità di GLib garantisce che entrambi i messaggi D-Bus vengano inviati prima del callback idle — rendendo questo deterministico, non una race temporale.

IOC noto (dall'advisory):

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

3. Avvio rapido

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

Sfida CTF (percorso polkit permissivo)

ssh labuser@localhost -p 2222     # password: labuser
# poi segui docs/CHALLENGE.md

Il flag si trova in /root/flag.txt (modalità 0400 root:root). Formato: PACK2THEROOT{...}

Riproduzione dell'exploit TOCTOU (causa principale reale del CVE)

# Build ed esecuzione — la modalità automatica esegue l'exploit immediatamente:
docker compose run --rm exploit

# Oppure modalità manuale:
docker compose run --rm --entrypoint /entrypoint.sh exploit
# Poi all'interno del container:
su - victim -c /exploit/cve-2026-41651

L'exploit compila due pacchetti .deb in C (nessuno strumento esterno necessario), invia la race D-Bus a due chiamate e crea una bash SUID in /tmp/.suid_bash. Vedi docs/SOLUTION.md per il walkthrough tecnico completo.

Smontaggio:

docker compose down -v

4. Struttura del repository

pack2theroot-lab/
├── README.md
├── docker-compose.yml
├── docs/
│   ├── CHALLENGE.md         # brief del giocatore
│   ├── HINTS.md             # suggerimenti progressivi (entrambi i percorsi)
│   ├── SOLUTION.md          # walkthrough completo + flag
│   ├── references.md        # fonti primarie e secondarie
│   ├── threat-model.md      # presupposti attaccante/difensore
│   └── diagrams/            # diagrammi SVG del flusso dell'exploit
│       ├── 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           # compila PackageKit vulnerabile 1.3.4 dal sorgente
│   ├── entrypoint.sh        # avvia dbus + polkitd + packagekitd
│   ├── Makefile
│   └── src/
│       └── cve-2026-41651.c # l'exploit TOCTOU (PoC pubblico)
├── vulnerable/
│   ├── Dockerfile
│   ├── entrypoint.sh
│   └── policy/
│       └── 10-pack2theroot-lab-misconfig.rules   # sfida CTF
├── patched/
│   ├── Dockerfile
│   ├── entrypoint.sh
│   ├── local/                # inserisci qui un RPM di backport 1.3.5 (opzionale)
│   └── policy/
│       └── 10-pack2theroot-lab-hardened.rules    # la correzione
└── scripts/
    ├── exploit-check.sh         # controlla versione, polkit, D-Bus, IOC
    ├── check-version.sh         # verdetto VULNERABILE vs CORRETTO
    ├── check-preconditions.sh   # sanity check pkcon / polkit / D-Bus
    ├── monitor-ioc.sh           # tail del journal per l'IOC dell'advisory
    ├── compare-env.sh           # diff di entrambi i container
    └── apply-polkit-mitigation.sh  # indurimento provvisorio per host non corretti

5. Diagrammi visivi

La directory docs/diagrams/ contiene diagrammi SVG che mostrano il flusso dell'exploit. Aprilo in qualsiasi browser:

DiagrammaDescrizione
01-docker-build.svgBuild Docker in due fasi — compilazione di PackageKit vulnerabile
02-container-startup.svgAvvio del container — avvio di dbus, polkitd, packagekitd
03-exploit-execution.svgOutput dell'exploit passo dopo passo con fasi annotate
04-dbus-race-sequence.svgDiagramma di sequenza D-Bus — come BUG 1/2/3 si concatenano con la priorità GLib
05-attack-overview.svgFlusso dell'attacco ad alto livello: attaccante vs sistema con timeline
06-auto-mode-full-run.svgTerminale completo della modalità --auto — dall'avvio del container alla shell root

6. Giocare la sfida CTF

Vedi docs/CHALLENGE.md. In breve:

  1. Accedi via SSH come labuser (password labuser).
  2. Esplora le regole polkit. Una di esse è fin troppo permissiva.
  3. Compila un RPM dannoso (rpm-build, rpmdevtools sono installati).
  4. Installalo con pkcon install-local --allow-untrusted.
  5. Lo scriptlet %post viene eseguito come root. Leggi /root/flag.txt.
Scarica lo strumento