Меню Рубрики

Rootkit kali linux как написать

Статья Как сканировать Linux на руткиты (rootkits) с помощью rkhunter

Pirnazar

Руткиты (rootkit) — это вредоносные программы, созданные для получения доступа уровня рута, при этом они прячут своё присутствие от антивирусных программ. Обычно руткиты устнавливаются на вашу систему троянами, содержащимися вместе с загруженными файлами, через известные системные уязвимости, подозрительными приложениями к письмам, при веб-сёрфинге или просто после взлома пароля.

Для Linux есть несколько инструментов сканирования руткитов, которые помогают противостоять известным или потенциальным руткитам. Один из таких инструментов выявления руткитов называется

. Здесь я опишу, как сканировать системы Linux на наличие руткитов с помощью rkhunter.

Установка rkhunter на Linux

Для установки rkhunter на Debian, Ubuntu или Linux Mint:

Выполняем поиск руткитов на Linux

Для выполнения сканирования на руткиты на вашей системе просто запустите следующее.

Когда rkhunter установлена, она может выполнить серию тестов, таких как:

  • Сравнение SHA-1 хешей системных исполнимых файлов с известными хорошими значениями, содержащимися в базе данных.
  • Проверка на известные файлы и каталоги руткитов, а также строки руткитов.
  • Выявление зловредного кода, включая проверку на логирование бэкдоров, лог-файлов сниферов и других подозрительных директорий.
  • Выполнение специфичных для троянов проверок, таких как анализ включённых сервисов xinetd.
  • Проводится проверка сетевых портов и интерфейсов.
  • Проводится проверка системного бута.
  • Проводится проверка групп и аккаунтов.
  • Проводится проверка системных конфигурационных файлов.
  • Проводится проверка файловой системы.

Следующие скриншоты показывают Rootkit Hunter в действии.

Когда сканирование завершено, rkhunter сохраняет результат в /var/log/rkhunter.log. Вы можете отобразить выданные предупреждения следующим образом.

rkhunter может быть запущен как cronjob с опцией «–cronjob», в этом случае rkhunter выполнит сканирование в неинтерактивном режиме и сохранит результаты сканирования в /var/log/rkhunter.log для оффлайн проверки.

Будучи инструментов сканирования руткитов, rkhunter может только выявлять руткиты, но не удалять их. Так что следует делать, если rkhunter сообщает о наличии руткита или показывает какие-либо предупреждения? Во-первых, нужно проверить, является ли это ложной тревогой или нет. Предупреждения могут быть вызваны просто тем, что осуществляется обновление ПО, изменёнными системными настройками или другими легитимными изменениями исполнимых файлов. Если вы не уверены, поищите помощь из ресурсов, такой вариант как

может быть одной из опций.

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

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

Источник

Как приручить руткит. Предотвращаем загрузку вредоносных модулей в Linux

Содержание статьи

Какие бывают руткиты для Linux

Руткиты помогают злоумышленнику закрепить доступ ко взломанной системе, при этом акцент сделан на максимальной незаметности вредоноса. Для этого они скрывают сетевые соединения, процессы, папки, файлы, подделывают их содержимое. Обычно руткит несет в себе хакерские утилиты для управления зараженной машиной, с помощью которых злодей может установить и прятать в системе DDoS-бота или майнер (кстати, один такой, Skidmap, обнаружили сравнительно недавно). Чаще всего в эти утилиты входят бэкдоры, и не только те, что можно запросто обнаружить внешним сканером портов, а использующие технологию Port knocking (что-то вроде «простукивания портов»), когда порт открывается только после правильной и заранее определенной последовательности запросов к закрытым портам.

Традиционно все руткиты делят на работающие в пространстве пользователя и работающие в пространстве ядра. Против первых уже есть утилиты, способные обнаружить многие из них: chkrootkit, rkhunter, Antidoto и проект с незамысловатым названием linux-malware-detect. Поэтому «ядерные» руткиты, которые сложнее обнаружить непосредственно на зараженной системе, представляют больший интерес, хотя часть из них эти утилиты тоже могут выявить (но не удалить).

Руткиты уровня ядра в Linux, как правило, реализуются в виде загружаемых модулей ядра (LKM, Loadable Kernel Modules), но есть еще более экзотические способы: вредоносный код записывается прямо в память ядра через файл устройства /dev/kmem или внедряется на ранних этапах загрузки с модификацией initrafms (если ты знаком с такими руткитами, дай знать — попадаются только теоретические описания, а найти образцы мне не удалось). Сейчас, впрочем, о случаях заражения «ядерными» руткитами пишут нечасто, но все тот же недавно выявленный Skidmap говорит о том, что об этой угрозе забывать не стоит.

Загружаемые модули ядра ( *.ko , до ядра 2.6 — *.o ) позволяют динамически расширять функциональность ядра без необходимости перекомпилировать его целиком. Очень полезный механизм для повышения гибкости системы и очень подходящий для создания руткитов, которые обладали бы максимально возможными привилегиями.

Жизненно важные задачи каждого руткита

В ядре имеется множество структур, описывающих текущее состояние системы. Например, это список запущенных процессов, состоящий из указателей на дескрипторы процессов, который используется планировщиком. Другой важный объект — список загруженных модулей ядра, где каждый элемент указывает на дескриптор загруженного модуля. Он используется командами, оперирующими LKM: lsmod , rmmod , modprobe и подобными. Эти списки относятся ко внутренним объектам ядра.

Всякий вредоносный модуль первым делом удаляет себя из списка загруженных модулей, ведь если LKM в нем не описан, то ядро считает, что такой модуль не загружен. Это значит, что он не отобразится в выводе lsmod и не будет выгружен с помощью rmmod . Такая техника называется манипулированием внутренними объектами ядра (DKOM, Direct Kernel Object Manipulation) и подробно описана в статье на Хабре.

Также любой хороший руткит заботится о том, как остаться в строю после перезапуска системы. Например, Snakso, обнаруженный в 2012 году, для этого прописывает команду загрузки модуля в /etc/rc.local , rkduck предпочитает файл /etc/rc.modules , а Reptile в зависимости от целевой системы может использовать и /etc/rc.modules , и /etc/modules . Skidmap вносит разнообразие в этот список и закрепляется в сценариях планировщика задач cron. Вообще, для этой цели могут подойти и другие файлы, влияющие на загрузку Linux, в том числе загрузочные скрипты. Далее будем называть такие файлы файлами автозагрузки.

  • /etc/rc.local содержит команды, которые необходимо выполнить при запуске системы. Руткиты добавляют туда команду insmod .
  • /etc/rc.modules содержит список модулей ядра, которые нужно загрузить при запуске — на более раннем этапе загрузки ОС, чем при использовании /etc/rc.local . Данный файл характерен для RPM-дистрибутивов.
  • /etc/modules также содержит список модулей, но используется в deb-системах.

И все вроде бы просто: проверяй содержимое этих файлов на подозрительные строки, и в твоей системе все будет хорошо. Но руткит не руткит, если не скрывает еще и что эти файлы модифицированы. Он может перехватывать системные вызовы и даже функции самого ядра, которые за этими вызовами стоят: например, Snakso и Reptile перехватывают функции файловой подсистемы ядра VFS (Virtual File System). Руткиты проверяют, было ли среди прочитанного что-то, что необходимо скрыть от глаз пользователя или администратора, и при необходимости модифицируют буфер со считанными данными.

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

Матчасть: как LKM-руткиты заметают следы

Прежде чем приступать к борьбе с вредоносными модулями, нужно более детально разобрать механизмы, с помощью которых они скрываются в системе сами и скрывают своих протеже, — чтобы знать, с чем конкретно бороться.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Источник

linux-notes.org

Поиск руткитов в Debian/Ubuntu/ Linux Mint и Red Hat/CentOS/Fedora

Руткит (rootkit) представляет собой скрытый тип программного обеспечения, как правило вредоносного и который разработан, чтобы скрыть существование определенных процессов или программ от нормальных методов обнаружения и включить постоянный привилегированный доступ к компьютеру. Термин руткит представляет собой объединение «root» ( традиционное название из привилегированной учетной записи на операционных системах Unix) и слово «kit» (которая относится к программным компонентам, которые реализуют функции). Термин «руткит» имеет негативные коннотации через свою ассоциацию с вредоносными программами.

Установка руткитов могут быть автоматизированы или злоумышленник может установить его, как только он получит пользовательский доступ от администратора системы ( доступ рута). Получение этого доступа является результатом прямого нападения на систему (т.е. эксплуатируя известную уязвимость, пароль (либо «трещин», привилегий или социальной инженерии)). После установки, становится возможным скрыть вторжение а также поддерживать привилегированный доступ. Хакер может обойти разные защиты узнав какую то уязвимость системы, различных утилит, портов.

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

Классификация руткитов.

Приведу наглядный рисунок на котором все классифицируется и все становится понятным.

Не буду уделять много внимания на этом. если кому интересно именно по классификации руткитов, то погуглите и более детальную информацию. А я лучше расскажу как же найти их и как можно обезопасить свою систему, так же что же делать если уже «заразился»? На эти вопросы я отвечу немного позже. Существует довольно много решений как найти и устранить руткиты в Linux. Приведу наглядные примеры хороших программ которые справляются с этой задачей.

Инструмент chkrootkit (Check Rootkit).

chkrootkit (Check Rootkit) — является Unix-программой которая призвана помочь системным администраторам проверить свою систему на наличие известных руткитов. Это скрипт с помощью обычных инструментов UNIX / Linux (таких как strings и grep команд) дают возможность искать основные системные программы для сетей/ подписей сравнивая в файловой системе /proc файлов с выводом команды ps (состояние процесса), чтобы искать разные расхождения. Утилита может быть использована с запуском «спасательного диска» (как правило, Live CD) или утилиту можно установить в систему.

Утилита имеет в себе модули для различного сканирования:

* chkrootkit — Модуль который проверяет вашу ОС.

* ifpromisc — Служит для поиска интерфейса (ов), которые работают в режимах захвата пакетов.

* chklastlog — Служит для обнаружения различных фактов удаления записей из журнального файла lastlog.

* chkwtmp — Служит для обнаружения фактов удаления записей из журнального файла wtmp.

* check_wtmpx — Служит для обнаружения фактов удаления записей из журнального файла (только в Solaris).

* chkproc — Ищет следы от троянов LKM (Linux Kernel Module — модуль ядра Linux.)

* chkdirs — Ищет следы от троянов LKM.

* strings — Утилита для быстроты поиска и замены текстовых строк.

В сhkrootkit имеется очень хорошая база для обнаружения различного нежелательного ПО и руткитов, я приведу список и покажу на рисунке внизу.

Список что может найти chkrootkit

Установка chkrootkit для Debian/Ubuntu/Linux Mint.

Чтобы запустить установку достаточно выполнить команду:

Установка chkrootkit на RedHat/CentOS/Fedora

Для начала нужно подключить и установить репозиторий EPEL, затем выполнить команду:

Установка для других операционных системах.

После чего нужно распаковать архив и скомпилировать утилиту:

Как только программа скомпилируется, запускаем ее и сканируем.

Использование утилиты chkrootkit.

Чтобы запустить утилиту, достаточно выполнить команду ( только нужно запустить ее от рута):

Опции

: Показывает справку о работе с программой.
-V : Покажет версю утилиты.
-l : Выведет список проверок которые поддерживает программа.
-d : Режим отладки.
-q : Опция которая может задать минимальный вывод информации.
-x : Опция с помощью которой задается вывод дополнительной информации.
-r : Задается имя каталогов для использования в качестве корневого (root).
-p : dir_1:dir_2:dir_N С помощью этой опции задаются пути для внешних программам, используемым chkrootkit.
-n : С помощью этой опции можно отключить просмотр всех смонтированных каталогов NFS.

Примеры использования:

1. Например, мы хотим начать поиск троянских программ в ps и ls и обнаружение интерфейсов которые работают в режиме захвата пакетов, то утилиту нужно запустить так:

2. Нужно найти все подозрительные строки в бинарных файлах, то нужно выполнить следующую команду:

Будет вывод осуществляться по страницам. Как по мне это удобно очень.

3. Нужно найти все подозрительные строки в бинарных файлах по имени «bin»:

Утилита chkrootkit может использовать и другие утилиты для проверки, такие как awk, cut, egrep, find, head, id, ls, netstat, ps, strings, sed, uname. Если эти утилиты недоступны в пути поиска, то нужно указать путь к ним с помощью опции -p.

4. Команда что будет приведена ниже будет выполнять тесты chkrootkit с использованием утилит которые хранятся в директории /bin на компакт-диске и смонтированы в системе как /cdrom:

5. Можно смонтировать раздел с помощью команды:

Это нужно когда, например, вам нужно просканировать ХДД, на другом ПК на котором нет зараженных файлов ( если вы уверены на 100%).

6. Так же можно перенаправить вывод команды в файл. Например вы хотите что бы посте сканирования вашей системы вам отправился отчет на мыло:

Каждые день в 3.00 часа будет выполняться проверка, после окончания будет выслан отчет локальному юзеру captain на мыло.

7. Тест LKM позволяет увидеть в вашей ОС все процессы которые скрыты от программы ps:

Отчет будет выслан на мыло.

8. С тестом sniffer можете видеть в своей сети все компьютеры и интерфейсы которые работают в режиме захвата пакетов:

Инструмент rkhunter (Rootkit Hunter).

RkHunter (Rootkit Hunter) является Unix-инструментом, который сканирует вашу систему на наличие руткитов, бэкдоров и возможных локальных эксплойтов. Она делает это путем сравнения SHA-1 хэшей важных файлов с известными хорошими базами данных в онлайновом режиме, а так же поиск каталогов по умолчанию (руткитов), неправильных разрешений, скрытых файлов, подозрительных строк в модулей ядра для Linux и FreeBSD.

Установка RkHunter для Debian/Ubuntu/Linux Mint.

Чтобы установить утилиту выполните команду что ниже, данная программа доступна в стандартном репозитории системы:

После того как установили эту утилиту нужно обновить базы данных вирусов:

Затем, подредактируем конфигурационный файл RkHunter:

В этом файле есть некоторые настройке, например отправлять критические уведомления на почту. Настраиваем на свое усмотрение.

После конфигурирования конфига нужно создать «слепок» нашей ОС (первоначальная база данных свойств различных системных команд), для того, чтобы RootKit Hunter мог сравнивать текущее состояние команд в системе с созданной базой:

Затем можно приступать к сканированию системы:

По желанию можно добавить программу в кронтаб на выполнение по заданному расписанию, вот пример:

В кроне я прописал выполнение 1 раз в сутки в 11.00. Вы можете установить любое другое время и дату. Утилита ведет логи которые можно найти и почитать по пути:

Установка RkHunter на RedHat/CentOS/Fedora

Для того чтобы установить RkHunter нужно выполнить команду в консоле только для начала подключите репозиторий EPEL:

После того как установили эту утилиту обновим БД вирусов:

Можно немного подредактировать конфигурационный файл RkHunter для своих нужд:

В файле имеются некоторые настройки, например отправлять критические уведомления на почту. Настраиваем на свое усмотрение.

Создадим «образ» нашей ОС (первоначальная БД со свойствами различных системных команд), для того, чтобы RootKit Hunter мог сравнивать текущее состояние команд в системе с созданной базой:

Собственно теперь можно приступать к сканированию системы:

Сканирование на уязвимости в системе с помощью rkhunter —check

Сканирование выполняется в нескольких режимах:

  • Ищет уязвимости в командах;
  • Поиск rootkits;
  • Проверка network сети;
  • Проверка локального хоста;

После чего нам покажут полную статистику, вот что получилось у меня:

вывод отчета о проведенной работе

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

По желанию можно добавить программу в cron на выполнение по заданному расписанию, вот пример:

Выполняться утилита будет 1 раз в сутки в 22.00, но вы настраивайте для своих нужд, как кому будет удобно.

В случаи необходимости можно всегда глянуть лог:

Еще очень простой способ установить сканер rkhunter на ваш сервер:

Распакуем скачанный архив и запустим установочный скрипт:

После чего нужно обновить базы и запустить сканер, я описывал это немного выше.

Можно еще добавить скрипт в кронтаб для отправки уведомлений на почту, для этого, я создам скрипт в папке /etc/cron.daily/. Данный скрипт будет сканировать ОС каждый день и будет отправлять уведомления на указанный электронный адрес. И так, создаем скрипт:

И прописываем в скрипт следующие строки:

ВНИМАНИЕ! Нужно изменить некоторые параметры в данном скрипте:

Your_Server_Name_Here — имя вашего сервера.
your_email@address.com — ваш почтовый адрес для получения алертов.

Выставляем нужные права на данный скрипт

Что делать если руткит обнаружен?

Chkrootkit помогает обнаружить руткиты, но удалить он многие из них удалению не поддержат. Когда вы обнаружили руткита в вашей системе в первую очередь нужно разорвать сетевое соединение чтобы не дать ему распространяться по сети. Перед удалением руткитов, на всякий случай, нужно сделать бэкап всех нужных файлов/ папок и после чего переустановить вашу ОС. Другой вариант — тщательное изучение каждого найденного руткита и проведение ряда действий по его полному удалению из системы на основе данных о пути его проникновения в систему и функционирования.

Много руткитов которых можно удалить вручную, но есть и такие, которые могут быть удалены только в ходе полной переустановки ОС, особенно в тех случаях, когда руткит «проживает» в ядре и переустановка операционной системы может быть единственным доступным решением проблемы.

Поиск руткитов в Debian/Ubuntu/ Linux Mint и Red Hat/CentOS/Fedora завершен.

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Панель для linux как mac os
  • Панель в ubuntu как в mac os
  • Панель быстрого запуска как в mac os
  • Панели для windows 10 в стиле mac os x
  • Пакетная обработка фото mac os