Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
whoc — 基盤となるコンテナランタイムをリモートサーバーへ流出させるコンテナイメージ | Kitploit
ツール/GitHubGitHub/twistlock/whoc
コンテナセキュリティエクスプロイトデータ流出クラウドセキュリティ
GitHubtwistlock/whoc

whoc

基盤となるコンテナランタイムをリモートサーバーへ流出させるコンテナイメージ

リポジトリを見る
135113年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

whoc

コンテナイメージであり、基盤となるコンテナランタイムを抽出してリモートサーバーに送信します。 お気に入りのCSPコンテナプラットフォームの基盤となるコンテナランタイムを突いてみましょう!

  • WhoC at Defcon 29 Cloud Village
  • Azurescape - whoc を利用した研究、パブリッククラウド初のクロスアカウントコンテナ乗っ取り ($70,000 の報奨金)

仕組み

runc の CVE-2019-5736 で示されているように、従来の Linux コンテナランタイムは、/proc/self/exe を介して実行中のコンテナに自身を公開します。whoc はこのリンクを使用して、実行中のコンテナランタイムを読み取ります。

動的モード

これは、動的にリンクされたコンテナランタイムに対して機能する whoc のデフォルトモードです。

  1. whoc イメージのエントリポイントは /proc/self/exe に設定され、イメージの動的リンカ (ld.so) は upload_runtime に置き換えられます。
  2. イメージが実行されると、コンテナランタイムはコンテナ内で自身を再実行します。
  3. ランタイムが動的にリンクされているため、カーネルは偽の動的リンカ (upload_runtime) をランタイムプロセスにロードし、実行を渡します。
  4. upload_runtime は /proc/self/exe を介してランタイムバイナリを読み取り、設定されたリモートサーバーに送信します。

alt text

実行待機モード

静的にリンクされたコンテナランタイムの場合、whoc には別のフレーバー whoc:waitforexec があります。

  1. upload_runtime がイメージのエントリポイントであり、whoc コンテナの PID 1 として実行されます。
  2. ユーザーは whoc コンテナに exec し、/proc/self/exe を指すファイルを呼び出すことが期待されます(例: docker exec whoc_ctr /proc/self/exe)。
  3. exec が発生すると、コンテナランタイムはコンテナ内で自身を再実行します。
  4. upload_runtime は /proc/$runtime-pid/exe を介してランタイムバイナリを読み取り、設定されたリモートサーバーに送信します。

alt text

ローカルでの試用

docker と python3 がインストールされている必要があります。リポジトリをクローンしてください:

root@kitploit:~
git clone [email protected]:twistlock/whoc.git && cd whoc

抽出されたコンテナランタイムを受信するためのファイルサーバーをセットアップします:

root@kitploit:~
mkdir -p stash && cd stash
ln -s ../util/fileserver.py fileserver 
./fileserver

別のシェルから、選択したコンテナ環境(例:Docker)で whoc イメージを実行します:

root@kitploit:~
cd whoc
docker build -f Dockerfile_dynamic -t whoc:latest src  # or ./util/build.sh
docker run --rm -it --net=host whoc:latest 127.0.0.1  # or ./util/run_local.sh

ファイルサーバーがコンテナランタイムを受信したことを確認してください。バニラの Docker で whoc を実行した場合、受信されるコンテナランタイムは runc になるはずです。

--net=host は、whoc コンテナが 127.0.0.1 を介してホスト上のファイルサーバーに簡単に到達できるようにするためのローカルテストでのみ使用されます。

他のプラットフォーム

デフォルトでは whoc は linux/amd64 向けにビルドされますが、他の CPU アーキテクチャもサポートしています。実行待機モードは通常通りビルドできます。他の CPU アーキテクチャ向けに動的モードで whoc をビルドするには、ビルド引数 PLATFORM_LD_PATH_ARG にターゲットアーキテクチャの動的リンカのパスを指定する必要があります。

arm64 向けのビルドスクリプトの例は util/build_arm64.sh にあります。

ヘルプ

whoc のメインバイナリ upload_runtime のヘルプ:

root@kitploit:~
Usage: upload_runtime [options] <server_ip>

Options:
 -p, --port                 Port of remote server, defaults to 8080
 -e, --exec                 Wait-for-exec mode for static container runtimes, waits until an exec to the container occurred
 -b, --exec-bin             In exec mode, overrides the default binary created for the exec, default is /bin/enter
 -a, --exec-extra-argument  In exec mode, pass an additional argument to the runtime so it won't exit quickly
 -r, --exec-readdir-proc    In exec mode, instead of guessing the runtime pid (which gives whoc one shot of catching the runtime),
                            find the runtime by searching for new processes under '/proc'
ツールをダウンロード