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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/professional-slacker/alg_check
Оборонительные ИнструментыАнализ уязвимостейАудит конфигурации
GitHubprofessional-slacker/alg_check

alg_check

Проверяет и укрепляет системы Linux против локального повышения привилегий через AF_ALG (CVE-2026-31431), проверяя доступность криптографического API ядра, ограничивая модули и предоставляя скрипты восстановления.

Репозиторий

Популярное

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

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

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

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

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

⚠️ Важное предупреждение: Риски структурного усиления

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

  • Нестабильность при обновлении ядра: Эффект усиления временный. Обновление ядра развернёт новые уязвимые модули в новом каталоге /lib/modules/, что сведёт на нет предыдущую блокировку.
  • Побочные функциональные эффекты: Отключение AF_ALG (Kernel Crypto API) может нарушить работу приложений или сервисов, полагающихся на аппаратное ускорение на уровне ядра (например, специализированные VPN, утилиты шифрования дисков или пользовательские инструменты безопасности).[cite: 3]
  • Смягчение против исправления: Это обходной путь, а не постоянное исправление. Он предназначен для устранения разрыва до появления исправленного ядра от дистрибутива.

Используйте на свой страх и риск. Всегда проверяйте критически важные функции вашей системы после запуска solution.sh.[cite: 3]

SSIA - Аудит структурной целостности системы

Набор инструментов для обнаружения, диагностики и сдерживания векторов LPE (локального повышения привилегий) через Linux Kernel Crypto API (AF_ALG).

⚠️ Важное предупреждение: Риски структурного усиления

Инструмент использует Структурную блокировку для устранения CVE-2026-31431 путём переименования модулей ядра и их выгрузки из памяти. Ключевые архитектурные риски включают:

  • Нестабильность при обновлении ядра: Эффект временный. Обновление ядра развернёт новые уязвимые модули в новом каталоге /lib/modules/, что сведёт на нет предыдущую блокировку.
  • Побочные функциональные эффекты: Отключение AF_ALG может нарушить работу сервисов, полагающихся на аппаратное ускорение на уровне ядра, таких как специализированные VPN, утилиты шифрования дисков или пользовательские инструменты безопасности.
  • Смягчение против исправления: Это обходной путь, а не постоянное исправление, предназначенный для устранения разрыва до появления исправленного ядра.

Используйте на свой страх и риск.

Обзор

Этот репозиторий предоставляет два скрипта, формирующих рабочий процесс диагностика → сдерживание → проверка против атак повышения привилегий через AF_ALG (socket(38, 5, 0)):

  • check.sh — Многоуровневый аудит состояния безопасности (запускается без привилегий)
  • solution.sh — Принудительная выгрузка модулей AF_ALG из памяти + проверка физических файлов модулей (требуется root)
  • restore.sh — Повторная загрузка модулей AF_ALG и восстановление системы в состояние до запуска solution.sh (требуется root)

Проверки

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

Аудит (без привилегий)

root@kitploit:~
./check.sh

Сдерживание (требуется root)

root@kitploit:~
sudo ./solution.sh

Восстановление (требуется root)

root@kitploit:~
sudo ./restore.sh

Восстановление

restore.sh отменяет эффекты solution.sh, перезагружая модули ядра AF_ALG (af_alg, algif_rng, algif_aead, algif_skcipher, algif_hash). Если физический файл модуля (af_alg.ko.xz) был переименован или удалён, скрипт предупредит вас и предложит выполнить ручное восстановление перед попыткой загрузки модулей.

⚠️ ПРЕДУПРЕЖДЕНИЕ

Запуск solution.sh на работающей системе, активно использующей AF_ALG (например, система с IPsec, dm-crypt/LUKS или любым аппаратным ускорением криптографии), мгновенно нарушит все криптографические операции ядра. Это включает:

  • IPsec VPN-соединения и WireGuard
  • Шифрование дисков (LUKS/dm-crypt)
  • Завершение TLS с использованием криптографии на уровне ядра
  • Любые контейнеры или приложения, полагающиеся на сокетные интерфейсы algif_*

Скрипт принудительно выгружает модули ядра AF_ALG. Криптографические операции ядра будут давать сбой до перезагрузки. Этот скрипт предназначен только для изолированных, непроизводственных или одноразовых систем для целей тестирования и анализа. Не запускайте его на производственных или критически важных инфраструктурах.

Требования

  • Linux (любой дистрибутив)
  • check.sh не требует зависимостей, кроме POSIX-совместимой оболочки и /proc//sys
  • solution.sh требует привилегии root
  • restore.sh требует привилегии root
  • af_alg_block.so требует привилегии root для установки через /etc/ld.so.preload

Примечания по WSL2

Этот POC протестирован на WSL2. Учтите следующее:

  • WSL2 сбрасывает всё состояние при перезагрузке (wsl --shutdown). Это включает изменения состояния модулей ядра от solution.sh, переименования файлов, результаты check.sh и любые локальные изменения файлов в этом репозитории.
  • Для постоянного усиления на WSL2 рассмотрите настройку .wslconfig, /etc/wsl.conf или скрипта автозапуска (например, /etc/rc.local) отдельно.
  • WSL2 подходит для целей тестирования и валидации, но не для производственного использования или постоянного смягчения угроз безопасности.

Смягчение

Чтобы окончательно закрыть вектор атаки AF_ALG:

  1. Заблокируйте модуль ядра (самый надёжный способ):

    root@kitploit:~
    echo "blacklist af_alg" | sudo tee /etc/modprobe.d/af_alg-blacklist.conf
    

    Или переименуйте физический файл:

    root@kitploit:~
    sudo mv /lib/modules/$(uname -r)/kernel/crypto/af_alg.ko.xz \
            /lib/modules/$(uname -r)/kernel/crypto/af_alg.ko.xz.bak
    
  2. Отключите AF_ALG через sysctl:

    root@kitploit:~
    sudo sysctl -w net.core.af_alg_disabled=1
    
  3. Заблокируйте создание сокетов AF_ALG через политику SELinux / AppArmor

  4. Отключите непривилегированные пользовательские пространства имён (в контейнерных средах):

    root@kitploit:~
    sudo sysctl -w kernel.unprivileged_userns_clone=0
    
  5. Заблокируйте AF_ALG на уровне системного вызова socket() через LD_PRELOAD (обходной путь для WSL2):

    root@kitploit:~
    # Установка системного уровня (требуется root)
    echo /absolute/path/to/af_alg_block.so | sudo tee -a /etc/ld.so.preload
    

    В репозиторий включена предварительно собранная разделяемая библиотека (af_alg_block.so). Она перехватывает и возвращает , когда домен равен (38). Все остальные вызовы сокетов передаются реальной реализации без изменений.

Лицензия

MIT

Скачать инструмент
ПроверкаЧто исследуетСерьёзность
Контекст процессаТекущие UID/GID и эффективные capabilitiesНизкая
AF_ALG Crypto SocketДоступность Kernel Crypto API через socket(AF_ALG, ...)Высокая
kptr_restrictВидимость указателей ядра для пользовательского пространстваСредняя
dmesg_restrictОграничение доступа к кольцевому буферу ядраСредняя
SELinuxСостояние Enforcing / Permissive / DisabledСредняя
/proc hidepidСкрывает ли /proc информацию о других процессахНизкая
socket(2)
EAFNOSUPPORT
AF_ALG

Этот подход в первую очередь предназначен для WSL2, где семантика одного пользователя и поведение сброса при перезагрузке делают системный LD_PRELOAD практичным. В традиционных многопользовательских Linux-системах предпочтите метод 1 (блокировка модуля) — внедрение через /etc/ld.so.preload затрагивает каждый процесс в системе и может незаметно нарушить работу сервисов, зависящих от AF_ALG.

Примечание: Требуется glibc (не musl). Для изменения /etc/ld.so.preload требуется root. Удаление выполняется путём удаления соответствующей строки из файла.