TravisCI Security

htARTE (HackTricks AWS Red Team Expert)로부터 제로에서 히어로까지 AWS 해킹 배우기 htARTE (HackTricks AWS Red Team Expert)!

HackTricks를 지원하는 다른 방법:

TravisCI란

Travis CI호스팅 또는 온프레미스 지속적 통합 서비스로, 여러 다른 git 플랫폼에 호스팅된 소프트웨어 프로젝트를 빌드하고 테스트하는 데 사용됩니다.

pageBasic TravisCI Information

공격

트리거

공격을 시작하려면 어떻게 빌드를 트리거할지 알아야 합니다. 기본적으로 TravisCI는 푸시 및 풀 리퀘스트에서 빌드를 트리거합니다:

크론 작업

웹 애플리케이션에 액세스할 수 있다면 크론을 설정하여 빌드를 실행할 수 있습니다. 이는 지속성 또는 빌드를 트리거하는 데 유용할 수 있습니다:

여기에 따르면 .travis.yml 내에서 크론을 설정할 수 없는 것으로 보입니다.

제3자 PR

TravisCI는 기본적으로 제3자로부터의 PR에서 환경 변수 공유를 비활성화하지만 누군가가 이를 활성화할 수 있으며 그런 경우 레포지토리에 PR을 생성하고 비밀을 유출할 수 있습니다:

비밀 덤프

기본 정보 페이지에서 설명한대로, 두 가지 유형의 비밀이 있습니다. 환경 변수 비밀 (웹 페이지에 나열됨) 및 사용자 지정 암호화된 비밀, 이는 .travis.yml 파일에 base64로 저장됩니다 (둘 다 암호화되어 저장되며 최종 머신에서 환경 변수로 끝납니다).

  • 환경 변수로 구성된 비밀열거하려면 프로젝트설정으로 이동하여 목록을 확인하세요. 그러나 여기에서 설정한 모든 프로젝트 환경 변수는 빌드를 트리거할 때 모두 나타납니다.

  • 사용자 지정 암호화된 비밀을 열거하려면 .travis.yml 파일을 확인하는 것이 가장 좋습니다.

  • 암호화된 파일을 열거하려면 레포지토리에서 .enc 파일을 확인하거나 구성 파일에서 openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d와 유사한 줄 또는 환경 변수암호화된 iv 및 키를 확인할 수 있습니다:

TODO:

  • Windows/Mac/Linux에서 실행되는 역쉘이 포함된 예제 빌드

  • 로그에 base64로 인코딩된 env를 유출하는 예제 빌드

TravisCI Enterprise

공격자가 TravisCI 엔터프라이즈를 사용하는 환경에 도달하면 (기본 정보에서 이에 대한 자세한 정보를 확인하세요), Worker에서 빌드를 트리거할 수 있습니다. 이는 공격자가 해당 서버로 측면 이동할 수 있게 해줍니다. 이후 공격자는 다음을 할 수 있습니다:

  • 호스트로 탈출?

  • 쿠버네티스 침해?

  • 동일 네트워크에서 실행되는 다른 기계 침해?

  • 새로운 클라우드 자격 증명 침해?

참고 자료

htARTE (HackTricks AWS Red Team Expert)로부터 제로에서 히어로까지 AWS 해킹 배우기 htARTE (HackTricks AWS Red Team Expert)!

HackTricks를 지원하는 다른 방법:

最終更新