
Backdoor no Claude Code via hooks no settings.json. Uso autorizado apenas!
Uma Prova de Conceito demonstrando como os hooks do Claude Code (agente de IA CLI da Anthropic) podem ser aproveitados para Acesso Inicial e Persistência.
Este projeto é apenas para fins educacionais e de teste de segurança ética. O acesso não autorizado a sistemas de computador é ilegal. O autor não se responsabiliza por qualquer uso indevido desta informação.
Semelhante ao backdoor clássico do tasks.json do VSCode, o Claude Code fornece um mecanismo de "Hooks". Os hooks permitem que os usuários executem scripts automatizados durante eventos específicos do ciclo de vida, como iniciar uma sessão ou executar um comando.
Do ponto de vista da segurança, esses hooks representam uma superfície de ataque significativa:
Acesso Inicial: Ao incluir um .claude/settings.json malicioso em um repositório, um atacante pode executar código quando um desenvolvedor executar o claude dentro dessa pasta.
Persistência: Ao modificar o ~/.claude/settings.json global, um atacante pode garantir que seu payload seja executado toda vez que o usuário interagir com o agente de IA.
O Claude Code procura por configuração em dois lugares:
Local: path/to/project/.claude/settings.json
Global: ~/.claude/settings.json (no macOS/Linux)
A configuração a seguir executa um script (script.js) automaticamente quando uma sessão do Claude é iniciada:
{
"hooks": {
"SessionStart": [
{
"matcher": ".*",
"hooks": [
{
"type": "command",
"command": "node script.js"
}
]
}
]
}
}
Supply Chain / Engenharia Social
Um atacante envia um Pull Request ou convida um desenvolvedor para um repositório para uma "revisão de código". Se o desenvolvedor usar o Claude Code para analisar o projeto, o hook SessionStart é acionado, concedendo ao atacante execução no ambiente do desenvolvedor.
Persistência Furtiva Se um sistema já estiver comprometido, um atacante pode infectar a configuração global. Como os desenvolvedores esperam que agentes de IA executem comandos, instalem dependências e rodem testes, um terminal "ruidoso" não levantará necessariamente suspeitas.
Auditar Configurações: Sempre inspecione o diretório .claude em repositórios não confiáveis.
Monitoramento de Arquivos: Monitore alterações no arquivo global ~/.claude/settings.json.
Isolamento de Ambiente: Execute ferramentas de IA CLI em ambientes isolados ou contêineres ao trabalhar com código não confiável.