24.07.2021

Hack Pub

Новости интересные и малоизвестные из IT индустрии

Linux.BackDoor.Gates.5 — еще один троянец для Linux

Укоренившееся в сознании некоторых пользователей мнение о том, что для операционных систем, построенных на базе ядра Linux, на сегодняшний день не существует серьезных угроз, все чаще подвергается испытаниям на прочность. В мае 2014 года специалисты антивирусной компании «Доктор Веб» обнаружили рекордное по сравнению с предыдущими месяцами число вредоносных программ для Linux, и уже в июне этот список пополнился новыми представителями Linux-троянцев, получивших общее название Linux.BackDoor.Gates. Вредоносные программы семейства Linux.BackDoor.Gates, об одном из представителей которого, Linux.BackDoor.Gates.5, мы хотели бы рассказать в этой статье, сочетают в себе функциональные возможности классического бэкдора и троянца для организации DDoS-атак. Угроза ориентирована на 32-разрядные дистрибутивы Linux, и по ряду признаков можно сделать вывод о том, что ее авторами являются те же вирусописатели, которые разработали троянцев семейств Linux.DnsAmp и Linux.DDoS. Троянец состоит из двух функциональных модулей: основной представляет собой бэкдор, способный выполнять поступающие от злоумышленников команды, второй, сохраняемый на диск основным модулем в процессе установки троянца, предназначен для осуществления DDoS-атак. В ходе своей работы Linux.BackDoor.Gates.5 собирает и передает злоумышленникам следующую информацию об инфицированном компьютере: Количество ядер CPU (читает из /proc/cpuinfo). Скорость CPU (читает из /proc/cpuinfo). Использование CPU (читает из /proc/stat). IP Gate’a (читает из /proc/net/route). MAC-адрес Gate’a (читает из /proc/net/arp). Информацию о сетевых интерфейсах (читает из /proc/net/dev). MAC-адрес сетевого устройства. Объем памяти (используется параметр MemTotal из /proc/meminfo). Объем переданных и полученных данных (читает из /proc/net/dev). Название и версию ОС (с помощью вызова команды uname). После своего запуска Linux.BackDoor.Gates.5 проверяет путь к папке, из которой он был запущен, и в зависимости от полученного результата может реализовать четыре возможные модели поведения. Если путь расположения исполняемого файла бэкдора отличен от путей утилит netstat, lsof, ps, то троянец запускает себя в системе как демон, после чего начинает процедуру инициализации, в процессе которой расшифровывает из своего тела конфигурационный файл. Этот файл содержит различные данные, необходимые для работы троянца, такие как, например, IP-адрес и порт управляющего сервера, параметры установки бэкдора и некоторые другие. В зависимости от значения параметра g_iGatsIsFx в конфигурационном файле троянец либо самостоятельно соединяется с управляющим сервером, либо ожидает входящего соединения — после успешной установки такового бэкдор проверяет IP-адрес обращающегося к нему узла и работает с ним, как с командным сервером. В процессе своей установки троянец проверяет файл /tmp/moni.lock, и, если он не пустой, читает записанное в него значение (PID процесса) и «убивает» процесс с таким ID. Затем Linux.BackDoor.Gates.5 проверяет, запущен ли в системе DDoS-модуль и собственный процесс бэкдора (если они запущены, эти процессы также «убиваются»). Если в файле конфигурации установлен специальный флаг g_iIsService, то троянец прописывает себя в автозагрузку, записывая строку #!/bin/bash\n в файл /etc/init.d/, после чего Linux.BackDoor.Gates.5 создает следующие символические ссылки: ln -s /etc/init.d/DbSecuritySpt /etc/rc1.d/S97DbSecuritySpt ln -s /etc/init.d/DbSecuritySpt /etc/rc2.d/S97DbSecuritySpt ln -s /etc/init.d/DbSecuritySpt /etc/rc3.d/S97DbSecuritySpt ln -s /etc/init.d/DbSecuritySpt /etc/rc4.d/S97DbSecuritySpt Если в конфигурационном файле установлен флаг g_bDoBackdoor, троянец проверяет также наличие у своего процесса прав root, для чего пытается открыть файл /root/.profile. Затем бэкдор копирует себя в /usr/bin/bsd-port/getty и запускает. На финальном этапе установки Linux.BackDoor.Gates.5 создает еще одну собственную копию в папке /usr/bin/ с именем, записанным в конфигурационном файле, а также замещает собой следующие утилиты: /bin/netstat /bin/lsof /bin/ps /usr/bin/netstat /usr/bin/lsof /usr/bin/ps /usr/sbin/netstat /usr/sbin/lsof /usr/sbin/ps На этом процесс установки троянца завершается и вызывается функция для выполнения его основных задач. В случае использования двух других алгоритмов поведения троянец также стартует на инфицированном компьютере как демон, проверяет, запущены ли его компоненты путем чтения соответствующего .lock-файла (и, если нет, запускает их), однако использует разные имена для сохранения файлов и регистрации себя в автозагрузке. Установив связь с командным сервером, Linux.BackDoor.Gates.5 получает от него конфигурационные данные с заданием, которое должен выполнить бот. По команде злоумышленников троянец способен осуществить автообновление, начать или прервать DDoS-атаку на удаленный узел с заданным IP-адресом и портом, выполнить команду из блока конфигурационных данных или установить соединение для выполнения других команд с удаленным узлом, имеющим заданный IP-адрес.