TravisCI Security

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

O que é o TravisCI

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.

pageBasic TravisCI Information

Ataques

Gatilhos

Para lançar um ataque, primeiro você precisa saber como acionar uma compilação. Por padrão, o TravisCI irá acionar uma compilação em pushs e pull requests:

Cron Jobs

Se você tiver acesso à aplicação web, você pode configurar cron jobs para executar a compilação, isso pode ser útil para persistência ou para acionar uma compilação:

Parece que não é possível configurar cron jobs dentro do arquivo .travis.yml de acordo com este.

PR de Terceiros

O TravisCI, por padrão, desabilita o compartilhamento de variáveis de ambiente com PRs vindos de terceiros, mas alguém pode habilitar e então você poderia criar PRs para o repositório e extrair os segredos:

Vazamento de 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 personalizados criptografados, que são armazenados dentro do arquivo .travis.yml como base64 (observe que ambos, quando armazenados criptografados, se tornarão 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, observe que todas as variáveis de ambiente do projeto definidas aqui aparecerão ao acionar uma compilação.

  • Para enumerar os segredos criptografados personalizados, o melhor que você pode fazer é verificar o arquivo .travis.yml.

  • Para enumerar arquivos criptografados, você pode verificar 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:

A FAZER:

  • Exemplo de compilação com shell reverso sendo executado no Windows/Mac/Linux

  • Exemplo de compilação vazando o env codificado em base64 nos logs

TravisCI Enterprise

Se um atacante terminar em um ambiente que usa TravisCI enterprise (mais informações sobre o que é isso em informações básicas), ele será capaz de acionar compilações no Worker. Isso significa que um atacante será capaz de se mover lateralmente para esse servidor, a partir do qual ele poderia ser capaz de:

  • escapar para o host?

  • comprometer o kubernetes?

  • comprometer outras máquinas em execução na mesma rede?

  • comprometer novas credenciais de nuvem?

Referências

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Última actualización