TravisCI Security
Last updated
Last updated
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Travis CI é um serviço de integração contínua hospedado ou local usado para construir e testar projetos de software hospedados em várias plataformas git diferentes.
Basic TravisCI InformationPara lançar um ataque, você primeiro precisa saber como acionar uma construção. Por padrão, o TravisCI acionará uma construção em pushes e pull requests:
Se você tiver acesso à aplicação web, pode configurar crons para executar a construção, isso pode ser útil para persistência ou para acionar uma construção:
Parece que não é possível configurar crons dentro do .travis.yml
de acordo com isso.
O TravisCI, por padrão, desabilita o compartilhamento de variáveis de ambiente com PRs provenientes de terceiros, mas alguém pode habilitá-lo e então você poderia criar PRs para o repositório e exfiltrar os segredos:
Como explicado na página de informações básicas, existem 2 tipos de segredos. Segredos de Variáveis de Ambiente (que estão listados na página web) e segredos criptografados personalizados, que são armazenados dentro do arquivo .travis.yml
como base64 (note que ambos, quando armazenados criptografados, acabarão como variáveis de ambiente nas máquinas finais).
Para enumerar segredos configurados como Variáveis de Ambiente, vá para as configurações do projeto e verifique a lista. No entanto, note que todas as variáveis de ambiente do projeto definidas aqui aparecerão ao acionar uma construção.
Para enumerar os segredos criptografados personalizados, o melhor que você pode fazer é verificar o arquivo .travis.yml
.
Para enumerar arquivos criptografados, você pode procurar por arquivos .enc
no repositório, por linhas semelhantes a openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d
no arquivo de configuração, ou por iv e chaves criptografadas nas Variáveis de Ambiente como:
Exemplo de construção com shell reverso rodando em Windows/Mac/Linux
Exemplo de construção vazando a env codificada em base64 nos logs
Se um atacante acabar em um ambiente que usa TravisCI enterprise (mais informações sobre o que é isso na informação básica), ele poderá acionar construções no Worker. Isso significa que um atacante poderá se mover lateralmente para aquele servidor do qual ele poderia ser capaz de:
escapar para o host?
comprometer kubernetes?
comprometer outras máquinas rodando na mesma rede?
comprometer novas credenciais de nuvem?
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)