A DataVault Inc. permite que usuários restaurem configurações de backup enviando arquivos .pkl. O serviço desserializa de forma confiante tudo o que você envia. Você consegue criar um pickle malicioso para obter um shell e escalar para root?
A desserialização insegura é uma vulnerabilidade crítica de aplicações web que ocorre quando uma aplicação desserializa dados não confiáveis sem validação adequada. Em Python, o módulo pickle é uma biblioteca de serialização comum que é inerentemente insegura quando usada com dados fornecidos pelo usuário. A própria documentação do Python alerta explicitamente que o pickle nunca deve ser usado para desserializar dados de fontes não confiáveis, porém esse alerta é frequentemente ignorado em aplicações em produção, criando vulnerabilidades de segurança graves.
O módulo pickle do Python serializa objetos em um fluxo de bytes e pode reconstruí-los posteriormente através da desserialização. O perigo está na capacidade do pickle de executar código arbitrário durante o processo de desserialização. Ao implementar o método __reduce__ em uma classe personalizada, um atacante pode definir funções e argumentos arbitrários que serão chamados quando o objeto for desserializado. Isso significa que um payload pickle malicioso pode executar comandos do sistema, estabelecer reverse shells ou realizar qualquer operação disponível para o usuário da aplicação - tornando-o um caminho direto para Execução Remota de Código (RCE).
Criar um exploit para uma vulnerabilidade de desserialização pickle envolve escrever uma classe Python com um método __reduce__ que retorna uma tupla contendo um callable (como os.system ou subprocess.Popen) e seus argumentos. Quando a aplicação desserializa esse objeto, o comando especificado é executado no servidor. Esta técnica é simples de implementar, exigindo apenas habilidades básicas de script Python, mas produz o impacto mais severo - execução de código arbitrário. A simplicidade do exploit torna a desserialização insegura particularmente perigosa.
Após obter execução de código através da desserialização pickle, os atacantes tipicamente estabelecem um ponto de apoio mais estável através de reverse shells ou acesso SSH. A partir daí, técnicas de escalação de privilégios Linux - como explorar regras sudo mal configuradas, binários SUID ou arquivos de sistema graváveis - podem elevar o acesso até root. Entender a cadeia de ataque completa desde a desserialização insegura passando pela execução de código até a escalação de privilégios é essencial para profissionais de segurança que avaliam aplicações e serviços web baseados em Python.
Crie uma conta gratuita e pratique cibersegurança.
Inicie sua máquina dedicada para começar a hackear
Crie uma conta gratuita para iniciar seu próprio servidor dedicado, enviar flags e ganhar XP no ranking.
Começar a Hackear GrátisLabs que compartilham habilidades semelhantes
Escolha como deseja começar
Entre na sua conta