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

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

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

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

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

Категории

Все категории
Loading categories
ksentinel — Монитор целостности ядра Linux для обнаружения перехвата системных вызовов | Kitploit
Инструменты/GitHubGitHub/matheuzsecurity/ksentinel
Оборонительные ИнструментыОбнаружение Вторжений
GitHubmatheuzsecurity/ksentinel

ksentinel

Монитор целостности ядра Linux для обнаружения перехвата системных вызовов

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

Популярное

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

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

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

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

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

ksentinel - Монитор целостности системных вызовов ядра

Singularity Rootkit

Обзор

ksentinel отслеживает критические функции ядра и таблицу системных вызовов на предмет несанкционированных изменений. Он обнаруживает распространённые системные вызовы, которые являются целью большинства руткитов, включая перехватчики ftrace, kprobes и захват таблицы системных вызовов.

Возможности

  • Проверка целостности пролога функций (на основе хеша FNV-1a)
  • Мониторинг таблицы системных вызовов (512 записей)
  • Проверка регистра LSTAR MSR (точка входа системных вызовов x86_64)
  • Защита от выгрузки с механизмом ключа разблокировки
  • Непрерывный мониторинг с настраиваемыми интервалами

ПРИМЕЧАНИЕ: ksentinel находится в начальной версии; в будущих коммитах будут добавлены улучшения.

Отслеживаемые функции

Слой VFS:

  • filldir, filldir64, do_getdents64, vfs_read, vfs_write, vfs_open

Сетевой стек:

  • tcp4_seq_show, tcp6_seq_show, udp4_seq_show, udp6_seq_show

Учётные данные:

  • commit_creds, prepare_kernel_cred

Система модулей:

  • load_module, free_module

Инфраструктура трассировки:

  • register_kprobe, register_ftrace_function, ftrace_set_filter

Плюс более 500 дополнительных обёрток системных вызовов через сопоставление префиксов.

Сборка

root@kitploit:~
make

Во время компиляции генерируется и отображается случайный 32-символьный ключ разблокировки. Запишите его немедленно. Этот ключ встраивается в скомпилированный модуль и не хранится внешне.

Храните его в безопасности, если включена защита от выгрузки.

Установка

root@kitploit:~
sudo make install

Модуль загружается скрытым от lsmod с включённой по умолчанию защитой от выгрузки.

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

Ручная загрузка

root@kitploit:~
sudo insmod ksentinel.ko

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

root@kitploit:~
sudo ./ksentinel-manager.sh load      # загрузить модуль
sudo ./ksentinel-manager.sh status    # проверить состояние
sudo ./ksentinel-manager.sh watch     # мониторинг в реальном времени
sudo ./ksentinel-manager.sh violations # просмотр предупреждений

Просмотр логов мониторинга

root@kitploit:~
dmesg -wT | grep ksentinel

Разблокировка модуля

Если защита от выгрузки включена, модуль необходимо разблокировать перед удалением:

root@kitploit:~
echo "your_32char_key" > /proc/.ksctl

Или через менеджер:

root@kitploit:~
sudo ./ksentinel-manager.sh unlock

Удаление модуля

root@kitploit:~
sudo rmmod ksentinel

Параметры модуля

Пример с пользовательскими параметрами:

root@kitploit:~
sudo insmod ksentinel.ko period_ms=5000 anti_unload=false

Производительность

ksentinel выполняет периодические проверки целостности на основе параметра period_ms.

Меньшие интервалы обеспечивают более быстрое обнаружение, но увеличивают загрузку ЦП. Интервал по умолчанию (2000 мс) оказывает минимальное влияние на современные системы.

Примеры обнаружения

Обнаружение встроенного перехватчика

root@kitploit:~
ksentinel: [CHANGE - HOOK PATTERN] sys_getdents64 @ 0xffffffff81234567
  baseline=1234567890abcdef  current=fedcba0987654321
  bytes: e9 ab cd ef 12 90 90 90 ...
  flags: JMP/CALL_DETECTED ENDBR64_PREFIX

Перехват таблицы системных вызовов

root@kitploit:~
ksentinel: [SCT HOOK] syscall[78] expected=0xffffffff81111111 got=0xffffffffa0222222 (fake_getdents+0x0)

Изменение LSTAR

root@kitploit:~
ksentinel: [LSTAR TAMPERED] baseline=0xffffffff81800000 now=0xffffffffa0300000 (evil_syscall_entry+0x0)

Обнаружение известных руткитов

ksentinel может обнаруживать изменения, вносимые:

  • PUMAKIT — перехват на основе ftrace (18 системных вызовов)
  • Diamorphine — патчинг таблицы системных вызовов
  • KoviD — скрытие на основе kprobes

Обнаружение зависит от загрузки ksentinel до загрузки руткита.

Требования

Конфигурация ядра:

  • CONFIG_KALLSYMS=y
  • CONFIG_KPROBES=y
  • CONFIG_MODULES=y

Поддерживаемые ядра:

  • Linux 5.4 — 6.12+
  • Архитектура x86_64 (проверка LSTAR)
  • Поддержка ARM64 (без проверок LSTAR)

Ограничения

  1. Только обнаружение — не предотвращает и не удаляет руткиты
  2. Предположение о чистоте — предполагается, что ядро чисто на момент загрузки модуля
  3. Состояние гонки — руткиты, загруженные до ksentinel, не могут быть обнаружены
  4. Обход — сложные руткиты могут атаковать сам код мониторинга

Рекомендации по безопасности

  • Загружайте ksentinel как можно раньше во время загрузки
  • Храните ключ разблокировки в безопасном месте в автономном режиме

Устранение неполадок

Модуль не загружается

Проверьте конфигурацию ядра:

root@kitploit:~
grep -E "KALLSYMS|KPROBES" /boot/config-$(uname -r)

Модуль не выгружается

Модуль скрыт и защищён от выгрузки. Сначала разблокируйте:

root@kitploit:~
sudo ./ksentinel-manager.sh unlock

Разработка

root@kitploit:~
make clean          # очистка артефактов сборки
make                # компиляция модуля
make install        # загрузка модуля
make uninstall      # выгрузка модуля

Вклад

Приветствуются любые contributions. Соблюдайте стиль кода и добавляйте тесты для новых функций.

Лицензия

GPL-2.0-only

Эта программа является свободным программным обеспечением, распространяемым по лицензии GPL версии 2.0. Любые изменения должны сохранять указание авторства оригинального автора и распространяться под той же лицензией.

Полные условия см. в файле LICENSE.

Автор

MatheuZSecurity

Сообщество исследователей руткитов: https://discord.gg/66N5ZQppU7

Отказ от ответственности

Этот инструмент предназначен для исследований в области безопасности и системного администрирования. Используйте ответственно. Автор не несёт ответственности за неправомерное использование или ущерб, причинённый данным программным обеспечением.

Скачать инструмент
ПараметрТипПо умолчаниюОписание
period_msuint2000Интервал проверки целостности в миллисекундах
sym_prefixesstring"sys_,x64_sys,do_sys,ksys_"Префиксы символов для мониторинга (через запятую)
extra_symsstring""Дополнительные конкретные символы для наблюдения
anti_unloadbooltrueВключить защиту от выгрузки