25 апреля, 2024

Основы Linux .Часть 12 (Загружаемые модули ядра)

Содержание:

С возвращением, мои начинающие хакеры!

Мы продолжаем серию статей об «Основах Linux» и сегодня рассмотрим загружаемые модули ядра (LKMLoadable Kernel Modules). Они являются ключевыми для любого администратора Linux, поскольку предоставляют возможность добавить новые функции в ядро без необходимости его перекомпиляции. Такие вещи, как видео-драйверы и драйверы других устройств, теперь могут быть добавлены в ядро без выключения системы, перекомпиляции ядра и перезагрузки.

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

Итак, если мы сможем предложить пользователю/администратору Linux «новый и улучшенный» видеодрайвер с встроенным в него руткитом, то мы сможем взять под контроль его систему и ядро. И именно таким способом некоторые из самых коварных руткитов используют Linux.

Понимание модулей ядра является ключом к тому, чтобы быть эффективным администратором Linux и быть ОЧЕНЬ эффективным и незаметным хакером.

Шаг 1. Что такое модуль ядра

Ядро является основным компонентом любой операционной системы Linux, включая нашу систему BackTrack. Ядро — это центральная нервная система нашей операционной системы, контролирующая все, что она делает, включая управление взаимодействием между аппаратными компонентами и запуском необходимых сервисов. Ядро работает как посредник между пользовательскими приложениями и оборудованием, такими как процессор, память, жесткий диск.

Поскольку ядро управляет всем, что происходит с операционной системой, то иногда ему нужны обновления. Эти обновления могут включать в себя новые драйверы устройств (например, драйверы видеокарт или USB-устройств), драйверы файловой системы и даже системные расширения. И именно в этом момент в игру вступают загружаемые модули ядра. Теперь мы можем просто загружать и выгружать модули ядра по мере необходимости, без перекомпиляции ядра.

Читать также:  Установка ПО Wi-Fi Jammer при помощи баш-скрипта Airgeddon

Шаг 2. Проверка ядра

Первое, что нам желательно сделать — посмотреть, на какой версии ядра работает наша система. Для этого есть, по крайней мере, два способа. Мы можем ввести:

uname -a

Обратите внимание, что ядро сообщает нам свою сборку (2.6.39.4), а также архитектуру, для которой оно построено (x86_64). Мы также можем получить эту информацию, вызвав команду cat для файла /proc/version, который фактически даст нам больше информации:

cat /proc/version

Шаг 3. Настройка ядра с помощью Sysctl

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

Вместе с современными ядрами Linux у нас появилась команда sysctl, созданная специально для настройки параметров ядра. Все те изменения, которые вы сделаете при помощи sysctl, остаются в силе только до перезагрузки системы. Чтобы эти изменения стали постоянными, нужно отредактировать файл конфигурации для sysctl, находящийся по адресу в /etc/sysctl.conf.

При использовании systctl нужно быть крайне осторожными, потому что без нужных знаний и опыта вы можете легко сломать систему. Она может перестать загружаться или станет непригодной для использования. Теперь давайте посмотрим на содержимое sysctl:

sysctl -a | less

Чтобы просмотреть файл конфигурации для sysctl, мы можем получить его по адресу /etc/sysctl.conf:

less /etc/sysctl.conf

Один из способов, которым можно использовать sysctl для взлома — включить ipforwarding (net.ipv4.conf.default.forwarding) для атак типа «человек-посередине». И наоборот, с точки зрения защиты от атак мы можем отключить эхо-запросы ICMP (net.ipv4.icmp_echo_ignore_all). Это затруднит работу хакерам по поиску нашей системы, но, к сожалению, не даст абсолютную защиту.

Читать также:  Внедрение майнеров Coinhive в точки доступа публичных Wi-Fi

Шаг 4. Модули ядра

Для управления нашими ядрами в Linux есть два способа. Более старый способ — использовать группу команд, построенных вокруг команды insmod. Здесь мы используем одну из них — lsmod — для отображения установленных модулей в ядре:

lsmod

Теперь можно загрузить или вставить модуль при помощи команды insmod, а удалить модуль — командой rmmod.

Шаг 5. Modprobe

Большинство новых дистрибутивов Linux, включая наш BackTrack 5v3, для управления загружаемыми модулями ядра получили команду modprobe. Чтобы узнать, какие модули уже установлены в нашем ядре, мы можем ввести:

modprobe -l

Чтобы удалить модуль, мы просто используем ключ -r с modprobe:

modprobe -r

Основным преимуществом modprobe является то, что она сама знает какие зависимости, параметры и процедуры установки и удаления нужны для наших модулей ядра.

Чтобы просмотреть файлы конфигурации для установленных модулей, выведем в консоль содержимое каталога /etc/modprobe.d/:

ls -l /etc/modprobe.d/

Помните, что загружаемые модули ядра — это не только удобство для пользователя или администратора Linux, но также и основная уязвимость в безопасности Linux, и каждый профессиональный хакер должен быть с этим хорошо знаком. Как мы уже говорили, модули ядра могут быть идеальным средством для внедрения руткита в ядро и нанесения атаки!

Предыдущие статьи ( 1, 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11).

Добавить комментарий