
🔄 Escalação de Privilégios no Linux via need-restart (CVE-2024-48990). Automação de aquisição de root. 💀
Este script explora a vulnerabilidade CVE-2024-48990 no utilitário needrestart do Linux por meio do sequestro do caminho de bibliotecas (PYTHONPATH hijacking). Diferente do vetor original, este método utiliza exclusivamente Python, o que permite ignorar o requisito de ter compiladores como gcc instalados na máquina vítima.
Estrutura de Diretórios: Cria-se o diretório /tmp/malicious/importlib. Isso imita a estrutura da biblioteca padrão do Python.
Payload Malicioso (importlib/__init__.py):
Contém o código que será executado com privilégios elevados. Quando carregado, verifica se o usuário atual é root (UID 0). Se for, copia o binário /bin/bash para /tmp/poc e atribui o bit SUID (chmod 4755). Isso cria uma backdoor que permite a qualquer usuário escalar privilégios.
Processo Isca (e.py):
É um script inofensivo que se mantém em execução em um loop infinito. Cumpre duas funções:
needrestart o intercepte./tmp. No momento em que detectar que o arquivo /tmp/poc foi criado, o executa automaticamente com a flag -p (para não perder os privilégios de root) entregando o shell interativo.Sequestro de Variáveis de Ambiente:
Ao executar a isca com PYTHONPATH="$PWD" python3 e.py, alteramos o comportamento do Python. Forçamos que qualquer importação procure primeiro em /tmp/malicious antes que nos caminhos legítimos do sistema.
Ativação e Escalada (needrestart):
Quando o needrestart é executado com privilégios de administrador (seja manualmente ou por uma tarefa agendada do sistema), ele escaneia os processos ativos. Ao chegar em nosso e.py, extrai suas variáveis de ambiente e inicia seu próprio processo Python para analisá-lo. Ao herdar o PYTHONPATH malicioso, o processo root do needrestart importa nossa falsa biblioteca importlib e executa o payload, concedendo controle total sobre a máquina.