Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
pack2theroot-lab — # Laboratório Docker estilo CTF para CVE-2026-41651 (Pack2TheRoot): escalonamento local de privilégios via PackageKit permissive-polkit | Kitploit
Ferramentas/GitHubGitHub/dinosn/pack2theroot-lab
Ferramentas DefensivasEscalada de PrivilégiosSegurança de ContêineresAnálise de VulnerabilidadesExploraçãoCTFTestes de PenetraçãoAprendizado e EducaçãoRed TeamingLabs e Prática
GitHubdinosn/pack2theroot-lab

pack2theroot-lab

81há 4 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →

# Laboratório Docker estilo CTF para CVE-2026-41651 (Pack2TheRoot): escalonamento local de privilégios via PackageKit permissive-polkit

Ver Repositório
Compartilhar

Pack2TheRoot Lab — CVE-2026-41651

Um laboratório Dockerizado, estilo CTF, de escalonamento local de privilégios, construído em torno do advisory Pack2TheRoot (CVE-2026-41651), uma falha de 12 anos no daemon PackageKit divulgada pela Red Team da Deutsche Telekom em 22 de abril de 2026.

O laboratório inclui três contêineres: um desafio CTF com polkit permissivo, um alvo de comparação endurecido e uma reprodução completa do exploit TOCTOU que compila o PackageKit vulnerável a partir do código-fonte e executa o exploit real da causa raiz do CVE-2026-41651.


1. O que você obtém

ContêinerPortaFunçãoResultado do exploit
pack2theroot-vulntcp/2222 (ssh)PackageKit ≤ 1.3.4 + regra polkit permissivaRoot via RPM malicioso
pack2theroot-patchedtcp/2223 (ssh)O mesmo, mas com polkit endurecidoO exploit falha
pack2theroot-exploit—PackageKit 1.3.4 vulnerável compilado a partir do código-fonteRoot via corrida TOCTOU no D-Bus

Além disso:

  • Um briefing do desafio voltado ao jogador (docs/CHALLENGE.md)
  • Dicas progressivas (docs/HINTS.md)
  • Solução completa e flag (docs/SOLUTION.md)
  • Diagramas visuais do fluxo do exploit (docs/diagrams/)
  • Ferramentas para defensores: verificação de versão, monitor de IOC, comparação lado a lado, script de mitigação provisória do polkit.

2. Resumo da vulnerabilidade

CampoValor
CVECVE-2026-41651
NomePack2TheRoot
ClasseEscalonamento Local de Privilégios (TOCTOU / CWE-367)
Componentedaemon PackageKit (pk-transaction.c)
Faixa vulnerável>= 1.0.2 e <= 1.3.4 (12 anos de versões)
Corrigido emPackageKit 1.3.5 (commit 76cfb675, lançado em 2026-04-22)
CVSS 3.18.8 (ALTA) — AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Pré-condiçõesShell local sem privilégios em um host executando PackageKit
DescobridorDeutsche Telekom Security GmbH — Red Team

Causa raiz — três bugs encadeados em pk-transaction.c

BugLocalEfeito
BUG 1InstallFiles() (~linha 4036)Sobrescreve cached_transaction_flags e cached_full_paths incondicionalmente — sem guarda de estado
BUG 2pk_transaction_set_state() (~linhas 876–881)Descarta silenciosamente transições de estado regressivas em vez de gerar erro — flags já envenenadas
BUG 3pk_transaction_run() (~linhas 2273–2277)Lê cached_transaction_flags no momento do despacho, não no momento da autorização
Bypassflag SIMULATE (~linhas 2893–2900)PK_TRANSACTION_FLAG_SIMULATE (0x4) ignora o polkit completamente

O exploit envia duas chamadas assíncronas InstallFiles() via D-Bus na mesma transação: primeiro com SIMULATE (ignora o polkit, enfileira um callback idle do GLib), e imediatamente depois com NONE + o pacote malicioso (sobrescreve as flags/caminhos em cache antes do idle disparar). A ordenação por prioridade do GLib garante que ambas as mensagens D-Bus sejam despachadas antes do callback idle — tornando isso determinístico, não uma corrida de tempo.

IOC conhecido (do advisory):

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

3. Início rápido

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

Desafio CTF (caminho do polkit permissivo)

root@kitploit:~
ssh labuser@localhost -p 2222     # senha: labuser
# depois trabalhe em docs/CHALLENGE.md

A flag está em /root/flag.txt (modo 0400 root:root). Formato: PACK2THEROOT{...}

Reprodução do exploit TOCTOU (causa raiz real do CVE)

root@kitploit:~
# Compilar e executar — o modo automático executa o exploit imediatamente:
docker compose run --rm exploit

# Ou modo manual:
docker compose run --rm --entrypoint /entrypoint.sh exploit
# Depois, dentro do contêiner:
su - victim -c /exploit/cve-2026-41651

O exploit compila dois pacotes .deb em C (sem necessidade de ferramentas externas), envia a corrida D-Bus de duas chamadas e cria um bash SUID em /tmp/.suid_bash. Consulte docs/SOLUTION.md para a solução técnica completa.

Encerrar:

root@kitploit:~
docker compose down -v

4. Estrutura do repositório

root@kitploit:~
pack2theroot-lab/
├── README.md
├── docker-compose.yml
├── docs/
│   ├── CHALLENGE.md         # briefing do jogador
│   ├── HINTS.md             # dicas progressivas (ambos os caminhos)
│   ├── SOLUTION.md          # solução completa + flag
│   ├── references.md        # fontes primárias e secundárias
│   ├── threat-model.md      # premissas atacante/defensor
│   └── diagrams/            # diagramas SVG do fluxo do 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 o PackageKit 1.3.4 vulnerável a partir do código-fonte
│   ├── entrypoint.sh        # inicia dbus + polkitd + packagekitd
│   ├── Makefile
│   └── src/
│       └── cve-2026-41651.c # o exploit TOCTOU (PoC público)
├── vulnerable/
│   ├── Dockerfile
│   ├── entrypoint.sh
│   └── policy/
│       └── 10-pack2theroot-lab-misconfig.rules   # desafio CTF
├── patched/
│   ├── Dockerfile
│   ├── entrypoint.sh
│   ├── local/                # coloque um RPM de backport 1.3.5 aqui (opcional)
│   └── policy/
│       └── 10-pack2theroot-lab-hardened.rules    # a correção
└── scripts/
    ├── exploit-check.sh         # verifica versão, polkit, D-Bus, IOCs
    ├── check-version.sh         # veredito VULNERÁVEL vs CORRIGIDO
    ├── check-preconditions.sh   # sanidade pkcon / polkit / D-Bus
    ├── monitor-ioc.sh           # monitora o journal em busca do IOC do advisory
    ├── compare-env.sh           # compara os dois contêineres
    └── apply-polkit-mitigation.sh  # endurecimento provisório para hosts sem correção

5. Diagramas visuais

O diretório docs/diagrams/ contém diagramas SVG mostrando o fluxo do exploit. Abra-os em qualquer navegador:

DiagramaDescrição
01-docker-build.svgBuild Docker em dois estágios — compilando o PackageKit vulnerável
02-container-startup.svgInicialização do contêiner — início do dbus, polkitd, packagekitd
03-exploit-execution.svgSaída do exploit passo a passo com fases anotadas
04-dbus-race-sequence.svgDiagrama de sequência D-Bus — como BUG 1/2/3 se encadeiam com a prioridade do GLib
05-attack-overview.svgFluxo de ataque de alto nível: atacante vs sistema com linha do tempo
06-auto-mode-full-run.svgTerminal completo do modo --auto — do início do contêiner ao shell root

6. Jogando o desafio CTF

Consulte docs/CHALLENGE.md. Resumo:

  1. Acesse via SSH como labuser (senha labuser).
  2. Faça recon das regras do polkit. Uma delas é permissiva demais.
  3. Compile um RPM malicioso (rpm-build, rpmdevtools estão instalados).
  4. Instale-o com pkcon install-local --allow-untrusted.
  5. O scriptlet %post é executado como root. Leia /root/flag.txt.

Travou? docs/HINTS.md tem dicas cada vez mais explícitas. Só abra docs/SOLUTION.md depois de ter resolvido ou realmente precisar do write-up.

7. Executando as ferramentas do defensor

Dentro de qualquer contêiner, como qualquer usuário:

root@kitploit:~
/opt/lab/check-version.sh         # veredito VULNERÁVEL ou CORRIGIDO
/opt/lab/check-preconditions.sh   # autoverificação de exposição
/opt/lab/exploit-check.sh         # verificação de versão + polkit + D-Bus + IOC
/opt/lab/monitor-ioc.sh           # monitora o journal em busca do IOC

A partir do host, lado a lado:

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

Aplique a mitigação provisória do polkit a um contêiner vulnerável:

root@kitploit:~
docker exec pack2theroot-vuln /opt/lab/apply-polkit-mitigation.sh
# Depois tente o exploit novamente — agora deve falhar.

8. Imagem corrigida — status do backport

A imagem patched trata o status da versão do PackageKit com honestidade:

  • Ela instala o PackageKit que a distribuição atualmente fornece.
  • Ela exibe um banner claro (/etc/pack2theroot-banner) informando se a versão instalada é a correção real ou um placeholder da distribuição.
  • Independentemente da versão, ela inclui uma regra polkit endurecida que bloqueia o caminho de instalação sem autenticação.

Para compilar uma imagem corrigida com versão completa quando sua distribuição publicar o backport, coloque o(s) RPM(s) em patched/local/ e recompile:

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

9. Segurança e uso responsável

  • Não disponibilize nenhuma das imagens de contêiner em um host Docker compartilhado com usuários não confiáveis.
  • O contêiner do exploit requer --privileged para executar a pilha completa dbus/polkitd/packagekitd. Execute-o apenas em ambientes isolados.
  • A senha SSH (labuser) é intencionalmente fraca. Nunca a reutilize.
  • Apenas para pesquisa defensiva autorizada, educação e testes de penetração.

10. Referências

Fontes primárias:

  • Advisory da Telekom Security — 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
  • Correção upstream — PackageKit 1.3.5: https://github.com/PackageKit/PackageKit/releases/tag/v1.3.5
  • Commit da correção — 76cfb675: https://github.com/PackageKit/PackageKit/commit/76cfb675fb31acc3ad5595d4380bfff56d2a8697
  • PoC público — Vozec: https://github.com/Vozec/CVE-2026-41651

Consulte docs/references.md para cobertura secundária e rastreadores de distribuição.

11. Licença

MIT — consulte LICENSE.

Baixar ferramenta