Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
whoc — Контейнерный образ, который эксфильтрует базовую среду выполнения контейнера на удаленный сервер. | Kitploit
Инструменты/GitHubGitHub/twistlock/whoc
Безопасность контейнеровЭксплуатацияЭксфильтрация данныхБезопасность облачных сред
GitHubtwistlock/whoc

whoc

Контейнерный образ, который эксфильтрует базовую среду выполнения контейнера на удаленный сервер.

Репозиторий
135113 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

whoc

Образ контейнера, который извлекает базовую среду выполнения контейнера и отправляет ее на удаленный сервер. Исследуйте базовую среду выполнения контейнера вашей любимой платформы контейнеров CSP!

  • WhoC на 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

Режим ожидания exec

Для статически скомпонованных сред выполнения контейнеров whoc поставляется в другой версии: whoc:waitforexec.

  1. upload_runtime является точкой входа образа и работает как PID 1 контейнера whoc.
  2. Ожидается, что пользователь выполнит exec в контейнере whoc и вызовет файл, указывающий на /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

Из другой оболочки запустите образ whoc в выбранной среде контейнеров, например Docker:

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

Убедитесь, что файловый сервер получил среду выполнения контейнера. Если вы запускаете whoc в стандартном Docker, полученная среда выполнения должна быть runc.

--net=host используется только в локальных тестах, чтобы контейнер whoc мог легко достичь файлового сервера на хосте через 127.0.0.1.

Другие платформы

По умолчанию whoc собирается для linux/amd64, но также поддерживает другие архитектуры процессора. Режим ожидания exec можно собрать как обычно. Чтобы собрать 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'
Скачать инструмент