これは2つのオープンソースライブラリを使用します:
これは Kali Linux、Docker バージョン 18.03.0、および RunC バージョン 1.0.0-rc5 でテストされました。
Docker コンテナエスケープにより、プロセス #1 (カーネル) に属する複数のマイニングデーモンが起動します。つまり、スクリプト/計算リソースが自分のコンテナに関連付けられることなく、コンピュータのリソースがマイニングに使用されます。
これは CVE-2019-5736 を利用します。コンテナが実行されると、docker は docker-runc を使用してコンテナを実行するため、私たちは自分のコンテナを実行している runc の pid にアクセスします。次に、runc バイナリへのシンボリックリンクを使用して、実行を別のプログラム (overwrite_runc) に渡します。このシンボリックリンクは、runc バイナリのファイルディスクリプタへ直接導きます。これにより、runc のファイルディスクリプタを書き込み用に開いて上書きできます。悪意のあるスクリプトで上書きすることで、コンテナがシャットダウンするときに、そのスクリプトが root 権限で実行され、クリプトマイナーを起動できます。
これはテスト環境の runc バイナリを上書きするため、実行する前に本物のバイナリをコピーしておくことをお勧めします。
実際の脆弱なシステムでは使用しないでください。