
CVE-2019-5736 익스플로잇을 사용하여 원래 컨테이너나 사용자와 관련 없이 bitcoin을 채굴하는 코드 샘플
이 도구는 두 개의 오픈 소스 라이브러리를 사용합니다:
Kali Linux, Docker 버전 18.03.0 및 RunC 버전 1.0.0-rc5에서 테스트되었습니다.
도커 컨테이너 이스케이프는 프로세스 #1(커널)에 속하는 여러 마이닝 데몬을 시작합니다. 이는 스크립트/컴퓨팅 자원이 컨테이너에 연결되지 않고 컴퓨터의 자원이 마이닝에 사용됨을 의미합니다.
CVE-2019-5736을 이용합니다. 컨테이너가 실행되면 docker는 docker-runc를 사용하여 실행하며, 우리는 우리 컨테이너를 실행 중인 runc의 pid에 접근합니다. 그런 다음 runc 바이너리에 대한 심볼릭 링크를 사용하여 다른 프로그램(overwrite_runc)으로 실행을 전달합니다. 이 심볼릭 링크는 runc 바이너리의 파일 디스크립터를 직접 가리킵니다. 이를 통해 runc 파일 디스크립터를 쓰기 위해 열고 덮어쓸 수 있습니다. 악성 스크립트로 덮어쓰면 컨테이너가 종료될 때 루트 권한으로 스크립트가 실행되어 암호화폐 마이너를 시작할 수 있습니다.
이 도구는 테스트 환경에서 runc 바이너리를 덮어쓰므로, 실행하기 전에 실제 바이너리를 복사해 두는 것이 좋습니다. 실제 취약한 시스템에서는 사용하지 마십시오.