Поиск rootkit в linux

Обновлено: 02.07.2024

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

Мы установим последнюю версию Lynis (т.е. 2.6.6 ) из источников, используя следующие команды.

Теперь вы можете выполнить сканирование системы с помощью приведенной ниже команды.

Чтобы автоматически запускать Lynis каждую ночь, добавьте следующую запись cron, которая будет работать в 3 ночи ночи и отправлять отчеты на ваш адрес электронной почты.

Chkrootkit также является еще одним бесплатным детектором руткитов с открытым исходным кодом, который локально проверяет признаки руткита на Unix-подобных системах. Это помогает обнаружить скрытые дыры в безопасности. Пакет chkrootkit состоит из shell-скрипта, который проверяет системные двоичные файлы для модификации руткитов и ряд программ, которые проверяют различные проблемы безопасности.

Инструмент chkrootkit можно установить, используя следующую команду в системах на базе Debian.

На CentOS-системах вам необходимо установить его из источников, используя следующие команды.

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

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

Чтобы сделать запуск Chkrootkit автоматическим каждой ночью, добавьте следующую запись cron, которая будет работать в 3 часа ночи и отправлять отчеты на ваш адрес электронной почты.

Инструмент rkhunter можно установить, используя следующую команду в системах на базе Ubuntu и CentOS.

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

Чтобы запускать rkhunter автоматически каждую ночь, добавьте следующую запись cron, которая будет работать в 3 часа ночи и отправлять отчеты на ваш адрес электронной почты.

Он поддерживает обновления вирусных баз во всех системах и сканирование при доступе только на Linux. Кроме того, он может сканировать в архивах и сжатых файлах и поддерживает такие форматы, как Zip, Tar, 7Zip, Rar и многие другие функции.

ClamAV можно установить с помощью следующей команды на системах Debian основе.

ClamAV можно установить с помощью следующей команды на системах CentOS основе.

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

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

LMD недоступен из онлайн-репозиториев, но распространяется как tarball с веб-сайта проекта. Tarball, содержащий исходный код последней версии, всегда доступен по следующей ссылке, где ее можно загрузить с помощью:

Затем нам нужно распаковать tarball и войти в каталог, в котором было извлечено его содержимое. Поскольку текущая версия 1.4.2, каталог maldetect-1.4.2 . Там мы найдем установочный скрипт install.sh .

Загрузка Linux Malware Detect

Загрузка Linux Malware Detect

Если мы проверим скрипт установки, длина которого составляет всего 75 строк (включая комментарии), мы увидим, что он не только устанавливает этот инструмент, но также выполняет предварительную проверку, чтобы узнать, установлен ли каталог установки по умолчанию (/usr/local/maldetect ) существует. Если нет, сценарий создает каталог установки перед продолжением.

Наконец, после завершения установки ежедневное выполнение через cron запланировано, поместив скрипт cron.daily (см. Изображение выше) в /etc/cron.daily. Этот вспомогательный скрипт, среди прочего, очищает старые временные данные, проверяет наличие новых выпусков LMD и проверяет стандартные панели управления Apache и веб-панели (то есть CPanel, DirectAdmin, чтобы назвать несколько) каталогов данных по умолчанию.

При этом запустите сценарий установки как обычно:

Вот и все! В этой статье мы поделились списком из 5 инструментов для сканирования сервера Linux на наличие вредоносных программ и руткитов. Сообщите нам свои мысли в разделе комментариев.

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

Эти программы могут предоставлять установившему их человеку полный доступ к вашей системе, вычислительным ресурсам и данным. Не стоит недооценивать эту опасность. Если ваш компьютер подключен к интернет без использования локальной сети (роутера) и без технологии NAT, то обратится к нему может любой человек из сети провайдера. Для этого даже не обязательно знать ваш IP адрес. Злоумышленник может просто перебирать все адреса в своей подсети и если на вашем компьютере или сервере окажется искомая им уязвимость, например слабый пароль ssh или любая другая уязвимость в системном сервисе программная или недостаток настройки - ваш компьютер будет взломан.

Проверка Linux на вирусы

Чтобы понять не подключался ли кто к вашему компьютеру, вы можете посмотреть содержимое файла /var/log/audit.log или /var/log/secure.

tail -f /var/log/secure

Здесь фиксируются все события в системе, в том числе неудачные попытки входа по ssh. Я был удивлен когда увидел что мой пароль пытались подобрать. Также можно посмотреть логи сервиса sshd с помощью journalctl:

sudo journalctl _SYSTEMD_UNIT=sshd.service


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

Для поиска руткитов мы будем использовать утилиту rkhunter или RootkitHunter, а также chkrootkit. Мы рассмотрим как ее установить и настроить для правильной проверки. Вообще, я больше склоняюсь к первой, она новее и имеет больше функций.

Поиск вирусов с помощью RkHunter

RkHunter (Rootkit Hunter) - это инструмент для сканирования системы Linux / Unix с открытым исходным кодом, выпущенный под лицензией GPL. Утилита выполняет сканирование Linux на предмет руткитов, бекдоров, локальных эксплойтов и уязвимостей. На данный момент известно 349 руткитов, и всех их программа может найти, если они были установлены в вашей системе. Программа - всего лишь скрипт, позволяющий проверить локальные файлы, и обнаружить известные руткиты. Также выполняется проверка изменения системных команд, файлов запуска, а также проверка сетевых интерфейсов, на предмет прослушивания определенных портов.

Установить программу в Ubuntu можно командой:

sudo apt install rkhunter

В CentOS надо выполнить такую команду:

sudo yum install rkhunter


Если у вас другой дистрибутив, вы всегда скачать установочный скрипт на SourceForge:

tar -xvf rkhunter-1.4.2.tar.gz

cd rkhunter-1.4.2
./installer.sh --layout default --install

Перед тем как будет выполнена проверка linux на вирусы, необходимо обновить базу данных утилиты. Для этого выполните:


Теперь необходимо собрать информацию о файлах в системе, это нужно, чтобы программа могла понять пытался ли кто модифицировать системные файлы при следующей проверке. Для этого выполните:

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

Теперь осталось только дать программе права на выполнение:

chmod 755 /etc/cron.daily/rkhunter.sh

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

  • --verbose-logging - максимально подробный вывод
  • --quiet - минимум информации в выводе
  • -l, --logfile - записать лог программы в свой файл
  • --cronjob - не интерактивный режим проверки, используется для запуска с помощью cron, отсюда и название.
  • --list - позволяет посмотреть какие возможности проддерживает программа, можно передать несколько параметров, test - тесты, lang - языки, rootkits - руткиты.
  • --unlock - удаляет файл блокировки базы данных, может быть полезна если предыдущий сеанс работы с программой был завершен некорректно.
  • --check - проверка системы
  • --update - обновление баз руткитов
  • --versioncheck - обновление программы
  • --propupd - создать базу данных файлов

Например, чтобы посмотреть все руткиты, которые может найти программа выполните:

sudo rkhunter --list rootkits

Для того чтобы проверить Linux на вирусы всю систему выполните от суперпользователя:

Программа кроме вывода информации на экран, создаст лог проверки. На информацию выводимую во время проверки не обращайте большого внимания, она немного урезана все станет более понятнее при просмотре лога.

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

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

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


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


Также выполняется проверка параметров файлов, например если файл должен быть бинарным, а он скрипт, то это не порядок:


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

Дальше будет выполнена проверка Linux на вирусы с поиском известных руткитов:


Обычно, если в этом разделе что-то обнаружено, то это значит, что в системе есть руткит и с этим нужно что-то делать, но обычно мы видим строки Not found (не найдено):

Дальше будет запущен поиск нежелательного программного обеспечения:

Проверка опасных портов:


На этапе проверки конфигурационных файлов мы тоже получаем предупреждение:

Но здесь видно, что проблема не в вирусе, а в том, что программе просто нет с чем сравнивать.

Дальше выполняется проверка настроек системы, и здесь тоже программе не все нравится:


А именно две вещи - разрешенный root доступ по ssh и возможность использовать протокол первой версии для подключения к ssh. И она права, это очень небезопасно.

Дальше будет выполнено сканирование файловой системы:


И обнаружено несколько скрытых файлов, но все они, похоже, хорошие. Вы можете отследить какая программа работает с определенным файлом с помощью команды lsof:

sudo lsof | grep /адрес/файла

Осталась проверка приложений:

[12:16:25] Info: Starting test name 'apps'
[12:16:25] Checking application versions..

И небольшой отчет о найденных проблемах:


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

sudo cat /var/log/rkhunter.log | grep -A5 "\[ Warning \]"

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

Теперь давайте рассмотрим еще одну программу с помощью которой может быть выполнена проверка Linux на руткиты. Это chkrootkit. Она мнение функциональна, но тоже хорошо делает свое дело.

Поиск вирусов с помощью Chkrootkit

Chkrootkit - это классический инструмент позволяющий не только искать руткиты Linux, но и проверять систему на признаки чужого присутствия. Программа просканирует ваш компьютер или сервер на наличие подозрительных процессов, руткитов и проверит список известных руткитов. Функциональность программы очень похожа на Rkhunter.

Программа состоит из нескольких отдельных утилит:

  • chkrootkit - скрипт для проверки системы;
  • ifpromisc - сканирование интерфейсов на предмет неразборчивого режима;
  • chklastlog - проверить лог lastlog на предмет удаления записей;
  • chkwtmp - проверка лога wtmp на предмет удаления записей;
  • chkproc - поиск троянских программ и скрытых файлов в подсистеме proc.

Установить программу в Ubuntu можно с помощью команды:

sudo apt install chkrootkit

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

В CentOS вам понадобится установить такие библиотеки перед сборкой:

yum install gcc-c++ glibc-static

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


Лог программы немного похож на предыдущую, поэтому мы не будем его отдельно разбирать. Здесь сначала выполняется проверка системных команд, более ограниченная чем в rkhunter, затем поиск руткитов linux.

Аналогично вы можете выполнить другую утилиту, чтобы проверить на модификацию lastlog:

Но, возможно придется создать символическую ссылку на lastlog, чтобы программа смогла его найти.

Выводы

Ранее мы уже публиковали статьи о поисках вирусов на VDS с Linux. Также до сих пор многие полагают, что вирусов в Linux нет, считая это одним из преимуществ данного семейства операционных систем. И в чём-то эти люди правы. Ведь вредоносных программ, которые самовольно распространялись бы по Linux-системам и заражали другие серверы и компьютеры по сети, во много раз меньше, чем на Windows, а опубликованная ранее статья относилась к вирусам на сайте и веб-уязвимостям, нежели к самой операционной системе.

Но есть и другой тип угроз, к сожалению, характерный для Linux. Это руткиты — программы или скрипты, которые устанавливаются вручную (либо попадают в систему через уязвимости) и скрывают свою деятельность в системе.

Эти программы могут предоставлять установившему их человеку полный доступ к вашей системе, ресурсам и данным. Для этого даже не обязательно знать IP-адрес вашего сервера. Злоумышленник может просто перебирать адреса по подсетям через специальных ботов, и если на вашем сервере окажется искомая им уязвимость, например, слабый пароль ssh или любая другая «дыра» в системных или веб-службах, сайте или ошибка в настройке — ваш сервер может быть взломан.

Ранее мы уже рассказывали о том, как защититься от взлома, а сегодня поговорим о том, какими способами можно выявить сам факт взлома.

Проверка логов на несанкционированные авторизации

Чтобы понять, не подключался ли кто к вашему серверу, вы можете просмотреть содержимое файла /var/log/audit.log или /var/log/secure.

Здесь фиксируются все события в системе, в том числе неудачные попытки входа по ssh . Можете не удивляться, если увидите там записи о попытках подключения — так сканирующие боты перебирают пароли к серверам. Также можно посмотреть логи сервиса sshd с помощью journalctl :


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

Также небольшую выдержку об авторизациях можно получить с помощью команды:

Пример вывода команды:

Как вы можете видеть, выводится таблица с информацией. В ней содержатся имена пользователей, IP-адрес, с которого осуществлялся вход, дата и время входа и продолжительность сессии. Запись вида pts/0 означает, что для входа использовалось SSH соединение (или другое удаленное соединение, например, telnet).

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

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

Для поиска руткитов мы будем использовать утилиту RkHunter , или RootkitHunter . Мы рассмотрим, как её установить и настроить для правильной проверки. Но помните, этот метод хорош только для первичной проверки системы на безопасность. И не может выступать как универсальный инструмент для анализа вредоносной активности на уровне системы.

Поиск руткитов с помощью RkHunter

RkHunter (Rootkit Hunter) — это достаточно популярный и удобный инструмент для сканирования системы Linux / Unix с открытым исходным кодом, выпущенный под лицензией GPL . Утилита выполняет сканирование Linux на предмет руткитов, бэкдоров, эксплойтов и уязвимостей. На данный момент в базе около 350 руткитов, и все их можно найти, если они были использованы в вашей системе.

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

Установка и начальная настройка RkHunter

Установить программу в Debian/Ubuntu можно командой:

В CentOS надо выполнить такую команду:

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

Для установки последней версии скрипта рекомендуем использовать именно этот способ.

Перед тем, как запускать проверку, необходимо обновить базу данных утилиты. Для этого выполните:


Обновление желательно выполнять регулярно, поэтому мы предлагаем вам создать специальный скрипт и добавить его в cron на регулярный запуск, раз в неделю или даже каждый день Создайте файл скрипта:

  • для ежедневной проверки в директории /etc/cron.daily :
  • для еженедельной /etc/cron.weekly :

Созданный файл тут же откроется, туда мы впишем следующее содержимое:

Теперь осталось только дать скрипту права на выполнение:

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


Теперь давайте рассмотрим основные опции программы (ключи запуска), которые мы уже использовали, или те, что могут вам пригодиться:

--verbose-logging — максимально подробный вывод

--quiet — минимум информации в выводе

-l, --logfile — записать лог программы в свой файл

--cronjob — неинтерактивный режим проверки, используется для запуска с помощью cron, отсюда и название.

--list — позволяет посмотреть, какие возможности поддерживает программа, можно передать несколько параметров: test — тесты, lang — языки, rootkits — руткиты.

--unlock — удаляет файл блокировки базы данных, может быть полезна, если предыдущий сеанс работы с программой был завершен некорректно.

--check — проверка операционной системы

--update — обновление баз руткитов

--versioncheck — обновление программы

--propupd — создать запись о файловой системе

Например, чтобы посмотреть все руткиты, которые может найти программа, выполните:

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

Вернуть все тесты в проверку можно следующим образом. Откроем конфигурационный файл RkHunter :

Находим строку, начинающуюся с DISABLE_TESTS

Запуск проверки и просмотр результатов

Для того чтобы проверять всю операционную систему, запуск следует выполнять под пользователем root . Используйте команду:



В процессе проверки информация о её ходе выводится на экран. Одновременно с этим создается лог проверки — именно в нём хранится вся необходимая информация для последующего удобного анализа. Просмотреть его можно командой:

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

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

Пример сканирования и анализа лога

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


RkHunter сканирует системные утилиты и пытается выявить там подозрительные признаки, в том числе проводится сравнение хеша утилиты с хешем, сохраненным в базе данных, чтобы понять, не была ли она изменена. Обычно, если с утилитами все хорошо, лог заполнен такими строками:


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

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

Далее ведётся проверка на известные руткиты:


Обычно, если в этом разделе что-то обнаружено, это значит, что в системе есть руткит. В ином случае мы видим строки Not found (не найдено).

После ведётся поиск нежелательного программного обеспечения:


А также проверка опасных портов:


На этапе проверки конфигурационных файлов можем получить такое предупреждение:

В данном случае проблема не в вирусе, а в том, что программе просто не с чем сравнить.

Затем идёт проверка настроек системы, и здесь также программе может не все понравиться:


Далее будет выполнено сканирование файловой системы:


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

И в завершении пройдёт проверка приложений:

А также небольшой отчёт о найденных проблемах:


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

Параметр A5 означает: показывать ещё пять строк после строки с обнаруженным вхождением. Так вы сможете прочитать не только все предупреждения, но, возможно, и важную сопроводительную информацию. В любом случае так выше шанс ничего не упустить.

Выводы и что делать в случае обнаруженных руткитов

Главная сложность в поиске руткитов — избавление от найденных зловредов. Это всегда достаточно индивидуально, поэтому описать все случаи в статье, к сожалению, не получится. Но если говорить в общем, то необходимо сделать следующее:

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

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

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


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

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

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

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

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

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

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

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

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

Список что может найти 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. Нужно найти все подозрительные строки в бинарных файлах, то нужно выполнить следующую команду:

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

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

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

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

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

Каждые день в 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:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как удалить rootkit (руткиты) в GNU/Linux - Rootkit Hunter - иконка статьи

Если приглядеться к названию, то очень выделяется первая часть слова в названии rootkit , - это root , которая явно указывает, что слово зародилось в мире Unix -компьютеров. Кто такой root в GNU/Linux мы уже описывали здесь.

Сегодня, когда мы говорим о руткитах, то, как правило, речь ведется о Windows -компьютерах (система windows, да простят меня пользователи этих систем, наиболее подвержена заражению) , но раз это слово зародилось в мире Unix , то и поговорим, соответственно, о руткитах в GNU / Linux . Как бы красочно (или устрашающе) не называлась статья, разговор пойдет, все таки, не о борьбе как таковой с руткитами в Linux системах, а о способах проверки.

  • Поиск и удаление руткитов в Linux - Rkhunter
  • Установка Rkhunter
  • Обновление Rkhunter для борьбы с руткитами в Linux
  • Обработка результатов сканирования
  • Предисловие к послесловию
  • Послесловие

Поиск и удаление руткитов в Linux - Rkhunter

Для GNU/Linux есть несколько инструментов сканирования руткитов, которые помогают противостоять известным или потенциальным руткитам. Одним из таких инструментов является Rootkit Hunter или сокращенно rkhunter . Это очень простая в использовании утилита, которая проверяет компьютеры под управлением Unix ( GNU / Linux ) на наличие руткитов. Она имеется во всех GNU / Linux .

Rkhunter конечно не устанавливается по умолчанию, но в репозиториях имеется. Если вдруг, по каким либо причинам, ее там не окажется, то ее всегда можно найти и скачать с официального сайта производителя. Графической оболочкой rkhunter не наделен, поэтому все будем выполнять через. терминал и обязательно с правами суперпользователя (sudo - замена root) , будем делать из Вас настоящих линуксоидов, чтобы никто не боялся командной строки :)

Установка Rkhunter

Итак, для начала пользования этой утилитой, мы ее установим:

Для установки rkhunter на Debian , Ubuntu или Linux Mint (или любой другой оси, которая берет начало от Debian) достаточно в терминале (командной строке) ввести команду (можно потренироваться и набрать ее самостоятельно или просто скопировать и вставить) :
sudo apt-get install rkhunter
Для установки rkhunter на Fedora :
sudo yum install rkhunter
Что может утилита rkhunter : а может она не так уж и мало, а именно, - сравнивает хэши исполняемых системных файлов с известными значениями, содержащимися в базе данных, проверяет на известные руткиты файлы и каталоги, выявляет зловредный код, проводит проверку сетевых портов и интерфейсов, проводит проверку системного boot , проводит проверку групп и аккаунтов, проводит проверку системных конфигурационных файлов, проводит проверку файловой системы в целом.

Единственное, что rkhunter не умеет делать, - это самостоятельно удалять руткиты. Но это скорее плюс, чем минус, потому как утилита не идеальна (кстати, как и не идеальны все антивирусы) , и даже она может ошибаться и ложно срабатывать. Вся проверка записывается в файл /var/log/rkhunter/rkhunter .log . О том, что же делать, если rkhunter все же укажет на наличие подозрительных файлов мы поговорим чуть ниже. А пока перейдем к ее работе.

Обновление Rkhunter для борьбы с руткитами в Linux

как удалить руткиты в линукс - скриншот 1

Первое, что надо сделать после установки утилиты - это обновить ее и удостовериться, что у нас актуальная версия (актуальная версия на сегодня - 1.4.2 ):
sudo rkhunter --update (два дефиса перед update обязательны),
rkhunter --versioncheck

И второе, - раз мы обновили базу, значит изменился конфигурационный файл утилиты (конфигурационный файл расположен в /etc / rkhunter.conf ) и нам нужно сказать (показать) программе, что эти изменения внесены в файл конфигурации, вот для этого нужно сделать снимок (слепок, называйте как вам больше нравится) командой:
rkhunter --propupd
Это в Ваших же интересах, чтобы утилита меньше ложно срабатывала.

как удалить руткиты в линукс - скриншот 2

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

Проверяется это так:

Для дистрибутивов на базе RPM командой:

Для debian -но подобных дистрибутивов программой debsums. По умолчанию эта программа не установлена в системе, ее надо установить:

Какая бы система у вас не была установлена вывод будет примерно одинаковый:

как удалить руткиты в линукс - скриншот 3

(если везде написано "ОК ", значит никаких изменений с файлами не происходило).

как удалить руткиты в линукс - скриншот 4

Ну мы немного отвлеклись. После установки выполним поиск руткитов (правда тут есть большая вероятность, что мы этих руткитов просто не найдем, по причине того, что их просто не будет в вашей системе)
sudo rkhunter -c или
sudo rkhunter --check или
sudo rkhunter -c --enable all --disable none

как удалить руткиты в линукс - скриншот 5

И в конце выведется общий список - информация по тестированию.

как удалить руткиты в линукс - скриншот 6

как удалить руткиты в линукс - скриншот 7

Если вы визуально не хотите наблюдать за ходом тестирования, то можно запустить rkhunter с ключом -rwo, в этом случае будут выводиться только предупреждения:
rkhunter -c --enable all --disable none --rwo

Утилита выдала несколько предупреждений, что такие то процессы в данный момент работают. Под процессами подразумеваются открытые программы, которые работают в фоновом режиме. В тот момент у меня были открыты текстовый редактор, запущен антивирус, работал скайп и pidgin, был открыт терминал, и были открыты еще несколько приложений. На все эти процессы и среагировал rkhunter .

Обработка результатов сканирования

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

как удалить руткиты в линукс - скриншот 9

..то можете дальше ничего не читать, ибо пока у вас просто всё отлично :)

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

Предупреждения могут быть вызваны просто тем, что вы обновили программное обеспечение, или обновили систему в целом, что привело к изменению системных настроек. Поэтому запускать rkhunter --propupd перед сканированием желательно всегда. Во-вторых, надо вспомнить, что вы устанавливали "потустороннего" в систему.

Например, может среагировать на установленный принтер или МФУ . Ведь всё это вы уже устанавливаете в систему дополнительно. Например, пример ложного срабатывания (последние 2 строчки, указывают на то, что после установки системы в домашней директории появились скрытые директории, которых в системе быть не должно, а это был установлен МФУ) :


Просто надо детально смотреть по каждому пути (файлу) на который rkhunter "ругается". Если что-то вызывает сильное сомнение у вас, то надо сравнивать оригиналы файлов с теми, на которые ссылается rkhunter . Это долгий и кропотливый процесс. Ставится виртуальная машина, куда пишется чистая ось и открывая поочередно файлы с чистой оси вы их сравниваете с теми, которые вызывают сомнение. Еще раз повторюсь, что в 99 процентах это ложная тревога.

Ну, а если у вас выпал тот 1% и вы полностью уверены, что в системе сидит руткит, то можно предпринять следующее:

Определить к какой программе относится тот файл, на который указал rkhunter и переустановить эту программу

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

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

В двух словах как-то так. Ну, что еще можно сказать в заключение..

Предисловие к послесловию

    • чтобы вставить текст надо нажать i, затем можно вводить текст
    • чтобы удалить символ(ы) сначала нажать ESC, а затем набрать x
    • чтобы выйти из vi без сохранения нужно нажать ESC, а затем набрать :q!
    • чтобы сохранить и выйти надо нажать ESC, а затем набрать :wq

    как удалить руткиты в линукс - скриншот 10

    А теперь удостоверимся, что мы внесли задания в cron. Введите команду:
    crontab -l

    Задание для cron создано.

    Послесловие

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

    Ну как, очень было сложно? Думаю, что нет. Но, как и всегда, если есть какие-то вопросы, мысли, дополнения и всё такое прочее, то добро пожаловать в комментарии к этой записи.

    Оставайтесь с проектом, здесь Вам всегда рады ;)

    PS: За существование данной статьи спасибо члену команды Pantera

    Белов Андрей (Sonikelf) Заметки Сис.Админа [Sonikelf's Project's] Космодамианская наб., 32-34 Россия, Москва (916) 174-8226

    Читайте также: