Содержание:
С возвращением, мои начинающие хакеры!
Мы продолжаем серию статей об «Основах Linux» и сегодня рассмотрим загружаемые модули ядра (LKM — Loadable Kernel Modules). Они являются ключевыми для любого администратора Linux, поскольку предоставляют возможность добавить новые функции в ядро без необходимости его перекомпиляции. Такие вещи, как видео-драйверы и драйверы других устройств, теперь могут быть добавлены в ядро без выключения системы, перекомпиляции ядра и перезагрузки.
Загружаемые модули ядра имеют огромное значение для хакера. Если мы сможем стать администратором Linux
Итак, если мы сможем предложить пользователю/администратору Linux «новый и улучшенный» видеодрайвер с встроенным в него руткитом, то мы сможем взять под контроль его систему и ядро. И именно таким способом некоторые из самых коварных руткитов используют Linux.
Понимание модулей ядра является ключом к тому, чтобы быть эффективным администратором Linux и быть ОЧЕНЬ эффективным и незаметным хакером.
Ядро является основным компонентом любой операционной системы Linux, включая нашу систему BackTrack. Ядро — это центральная нервная система нашей операционной системы, контролирующая все, что она делает, включая управление взаимодействием между аппаратными компонентами и запуском необходимых сервисов. Ядро работает как посредник между пользовательскими приложениями и оборудованием, такими как процессор, память, жесткий диск.
Поскольку ядро управляет всем, что происходит с операционной системой, то иногда ему нужны обновления. Эти обновления могут включать в себя новые драйверы устройств (например, драйверы видеокарт или USB-устройств), драйверы файловой системы и даже системные расширения. И именно в этом момент в игру вступают загружаемые модули ядра. Теперь мы можем просто загружать и выгружать модули ядра по мере необходимости, без перекомпиляции ядра.
Первое, что нам желательно сделать — посмотреть, на какой версии ядра работает наша система. Для этого есть, по крайней мере, два способа. Мы можем ввести:
uname -a
Обратите внимание, что ядро сообщает нам свою сборку (2.6.39.4), а также архитектуру, для которой оно построено (x86_64). Мы также можем получить эту информацию, вызвав команду cat для файла /proc/version, который фактически даст нам больше информации:
cat /proc/version
Иногда у администраторов 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). Это затруднит работу хакерам по поиску нашей системы, но, к сожалению, не даст абсолютную защиту.
Для управления нашими ядрами в Linux есть два способа. Более старый способ — использовать группу команд, построенных вокруг команды insmod. Здесь мы используем одну из них — lsmod — для отображения установленных модулей в ядре:
lsmod
Теперь можно загрузить или вставить модуль при помощи команды insmod, а удалить модуль — командой rmmod.
Большинство новых дистрибутивов 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).
Ваш компьютер на Windows 10 перестал быть быстрым после обновления системы? Мы подскажем, как устранить…
Это приложение для iPhone основано на приглашениях и аудио. С его помощью можно всё равно…
Одним из самых значительных изменений в операционной системе iOS 14 является возможность менять приложения по…
В системе Android 10 появился фреймворк для пузырей чатов, популярность которым принёс Messenger. Новая система…
От загрузки в режим Fastboot при помощи одной команды до установки модов без рута, есть…
Бета-версия операционной системы Android 11 в настоящее время доступна для устройств Google Pixel. Нужно посетить…