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
CVE-2024-48990 — needrestart < 3.8 Escalação Local de Privilégios através de injeção PYTHONPATH | Kitploit
Ferramentas/GitHubGitHub/blueberryp1ll/cve-2024-48990
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoTestes de PenetraçãoRed Teaming
GitHubblueberryp1ll/cve-2024-48990

CVE-2024-48990

needrestart < 3.8 Escalação Local de Privilégios através de injeção PYTHONPATH

Ver Repositório
1há 6 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 →
Compartilhar

CVE-2024-48990 — Escalação de Privilégio Local no needrestart

Exploit de escalação de privilégio local visando needrestart < 3.8 em sistemas Ubuntu/Debian via injeção de PYTHONPATH.

Visão Geral

needrestart é um utilitário comumente instalado em servidores Ubuntu/Debian que verifica quais serviços precisam ser reiniciados após atualizações de bibliotecas. Ele é executado como root e geralmente é acionado automaticamente após operações apt ou invocado diretamente via sudo.

Ao verificar processos Python, o needrestart re-invoca o interpretador Python herdando todo o ambiente do processo de /proc/<pid>/environ — incluindo PYTHONPATH. Um usuário local não privilegiado pode explorar isso ao:

  1. Definir PYTHONPATH para um diretório contendo um pacote importlib malicioso
  2. Manter um processo Python em execução para que o needrestart o identifique durante sua varredura
  3. Aguardar o needrestart ser executado — ele carrega o importlib/__init__.py do atacante como root

Versões Afetadas

PacoteVulnerávelCorrigido
needrestart< 3.8>= 3.8

Confirmado em:

  • Ubuntu 22.04 LTS (Jammy) — needrestart 3.5-5ubuntu2.4
  • Ubuntu 24.04 LTS (Noble) — needrestart 3.6-7ubuntu4

Uso

root@kitploit:~
chmod +x exploit.sh
./exploit.sh

Em seguida, acione o needrestart a partir de outro terminal:

root@kitploit:~
# If you have direct sudo access to needrestart:
sudo /usr/sbin/needrestart

# Or trigger it via apt (needrestart runs as a post-apt hook):
sudo apt update && sudo apt install --reinstall coreutils

Quando o needrestart é acionado, o exploit cria um shell SUID em /var/tmp/.rootshell e automaticamente fornece um shell root.

Se a execução automática não funcionar, pegue o shell manualmente:

root@kitploit:~
/var/tmp/.rootshell -p

Opções

root@kitploit:~
Usage: ./exploit.sh [OPTIONS]

Opções:
  -c <comando>    Comando shell personalizado para executar como root (padrão: copiar shell suid)
  -w <segundos>    Tempo máximo de espera em segundos (padrão: 300)
  -t              Modo de acionamento: tentar acionar needrestart via apt
  -n              Sem limpeza: manter o diretório do payload após a exploração
  -h              Mostrar esta mensagem de ajuda

Exemplos

root@kitploit:~
# Default — creates a SUID /bin/bash copy at /var/tmp/.rootshell
./exploit.sh

# Auto-trigger needrestart via apt (requires sudo apt access)
./exploit.sh -t

# Custom payload: add current user to sudoers
./exploit.sh -c 'usermod -aG sudo targetuser'

# Custom payload: read a restricted file
./exploit.sh -c 'cat /root/flag.txt > /tmp/flag.txt && chmod 644 /tmp/flag.txt'

# Extended wait (10 minutes)
./exploit.sh -w 600

Como Funciona

root@kitploit:~
┌───────────────────────────────────────────────────────────────┐
│  1. Creates /tmp/.nr_XXXX/importlib/__init__.py with payload  │
│     that runs os.system() to copy /bin/bash as SUID binary    │
├───────────────────────────────────────────────────────────────┤
│  2. Spawns a long-running Python process with                 │
│     PYTHONPATH=/tmp/.nr_XXXX exported in its environment      │
├───────────────────────────────────────────────────────────────┤
│  3. needrestart runs (via sudo or apt hook), scans            │
│     /proc/*/environ, finds the Python process                 │
├───────────────────────────────────────────────────────────────┤
│  4. needrestart re-invokes python3 AS ROOT inheriting the     │
│     attacker's PYTHONPATH → loads malicious importlib          │
├───────────────────────────────────────────────────────────────┤
│  5. Payload executes as root: cp /bin/bash + chmod 4755       │
│     → attacker runs /var/tmp/.rootshell -p → root shell       │
└───────────────────────────────────────────────────────────────┘

Notas

  • O shell SUID é colocado em /var/tmp/ em vez de /tmp porque /tmp é comumente montado com nosuid, o que remove silenciosamente o bit SUID.
  • O importlib/__init__.py malicioso restaura o importlib real após a execução do payload limpando sys.path e sys.modules, para que o needrestart não trave visivelmente.
  • O processo Python isca executa um arquivo .py real (não um one-liner -c) para melhor compatibilidade com a varredura de interpretadores do needrestart.

Detecção

Indicadores de que este exploit foi utilizado:

  • Binários SUID inesperados em /var/tmp/ ou /tmp/
  • Processos Python executando com valores incomuns de PYTHONPATH apontando para diretórios temporários
  • Diretórios correspondentes a /tmp/.nr_* contendo um subdiretório importlib/

Mitigação

root@kitploit:~
# Update needrestart to the patched version
sudo apt update && sudo apt install needrestart

# Or disable interpreter scanning entirely
echo "\$nrconf{interpscan} = 0;" | sudo tee /etc/needrestart/conf.d/no-interp.conf

Referências

  • CVE-2024-48990
  • Aviso da Qualys — LPE no needrestart
  • Aviso de Segurança Ubuntu USN-7117-1

Aviso Legal

Esta ferramenta é fornecida exclusivamente para testes de segurança autorizados e fins educacionais. Utilize-a apenas em sistemas que você possui ou para os quais tenha permissão explícita por escrito para testar. O acesso não autorizado a sistemas de computador é ilegal. O autor não assume nenhuma responsabilidade por uso indevido.

Licença

MIT

Baixar ferramenta