
Обнаружение руткитов Linux, использующих сигналы для повышения привилегий процессов.
Обнаружение Linux-руткитов, использующих сигналы для повышения привилегий процессов.
Некоторые руткиты устанавливают обработчики сигналов, которые прослушивают определённые сигналы для повышения привилегий. Этот инструмент выявляет такие руткиты, отправляя сигналы и наблюдая за переключением UID на root. При необходимости запускает root-оболочку.
Протестировано с:
666)Вы можете загрузить последние готовые бинарные файлы со страницы релизов или собрать последнюю предрелизную версию из исходников:
git clone https://github.com/bcoles/rootkit-signal-hunter && \
cd rootkit-signal-hunter && \
cargo build --release
rootkit-signal-hunter -- [OPTIONS]
--min <MIN>: Минимальный номер сигнала (по умолчанию: 0)--max <MAX>: Максимальный номер сигнала (по умолчанию: 64)-s, --shell: Запустить root-оболочку (если обнаружено)-t, --threads: Количество рабочих потоков (по умолчанию: 16)-p, --pid: Идентификатор процесса для отправки сигналов (по умолчанию: $$)-v, --verbose: Включить подробный вывод[!NOTE] Реализация
--pidиспользует$$для обозначения идентификатора процесса вновь запущенного процесса. Это не сработает в оболочках, не соответствующих POSIX, таких как Fish.
Такие руткиты, как Singularity
и Diamorphine, позволяют повышать
привилегии с использованием любого идентификатора процесса и могут быть без труда
обнаружены с параметрами по умолчанию (-s запускает root-оболочку):
rootkit-signal-hunter -s
Такие руткиты, как KoviD, требуют указания
конкретного идентификатора процесса с помощью флага -p / --pid:
rootkit-signal-hunter -s --pid 666
[!NOTE] Это сопряжено с риском завершения легитимного процесса с ID
666(если у текущего пользователя есть необходимые разрешения).
Этот проект распространяется под лицензией MIT. Подробности см. в файле LICENSE.
Особая благодарность Дэвиду Регуэре Гарсии (Dreg), который реализовал аналогичное обнаружение на основе сигналов в составе lsrootkit.
Авторские права © 2025, bcoles