В первой части нашего ресерча мы рассмотрели несколько особенностей вредоносной программы Linux/Remaiten, а именно, внутреннее устройство загрузчика бота, его взаимодействие с управляющим C&C-сервером, обрабатываемые ботом команды, а также сканер telnet для поиска других потенциальных жертв. Мы также отметили присутствие компонентов вредоносной программы для микропроцессоров архитектур MIPS и ARM. Кроме этого, мы удивились, обнаружив намек на присутствие ботов для таких платформ Power PC и SuperH.
![](https://habrastorage.org/files/e87/48b/a39/e8748ba3920b4818b19613a967eef3b3.jpeg)
Во второй части мы более детально остановимся на процессе заражения вредоносной программой других устройств, а также другой интересной функции, которая позволяет Linux/Remaiten завершать процессы других ботов и программ в Linux.
Заражение других устройств
Первым шагом в этом процессе является поиск записываемой (writable) директории. Бот содержит список популярных путей к таким директориям, их список указан ниже на скриншоте.
![](https://habrastorage.org/files/534/10f/500/53410f5000544372850eea32a8f13d58.png)
Рис. 19. Список директорий на устройстве жертвы, куда может быть скопирован загрузчик.
После этого бот, по непонятным причинам, создает исполняемые файлы под названием «.t», «retrieve» и «binary». Файл «retrieve» будет содержать сам загрузчик, а «binary» запрашивается ботом с управляющего C&C-сервера. Файл «.t» вредоносной программой не используется.
![](https://habrastorage.org/files/6de/d2d/162/6ded2d1628a3416f81bc3b8e63646df7.png)
Рис. 20. Десятый кейс специализируется на подготовке переноса полезной нагрузки на устройство и его исполнении.
Вредоносная программа использует странный способ создания пустых исполняемых файлов: она копирует стандартный исполняемый файл под названием busybox, который присутствует в большинстве embedded-устройств, а затем удаляет из него все содержимое командой «>file». Загрузчик передается на устройство через telnet простой echo-командой, при этом каждый байт исполняемого файла кодируется с использованием escape-последовательности «xHH». Мы наблюдали схожую технику распространения в другой вредоносной программе под названием Linux/Moose.
![](https://habrastorage.org/files/8ca/5fa/403/8ca5fa403f7f4cdc9a4b9db94a11957d.png)
Рис. 21. Код из 11-го кейса, который специализируется на передаче полезной нагрузки с использованием команды echo.
Исполнение загрузчика и IRC-бота
После того как загрузчик был скопирован на устройство жертвы, он пытается загрузить на него полезную нагрузку вредоносной программы. Загрузчик запрашивает исполняемый файл бота с управляющего C&C-сервера и записывает его в поток stdout. В начале своего запуска, загрузчик перенаправляет поток stdout в файл с названием «binary». Наконец, файл «binary» запускается на исполнение и IRC-бот становится активным.
![](https://habrastorage.org/files/393/ed0/cf7/393ed0cf731e407890dbd447a28bd6fd.png)
Рис. 22. Код из 13-го кейса, который специализируется на запуске на исполнение загрузчика и бота.
Отправка статуса на управляющий C&C-сервер
Последним этапом для бота является информирование C&C-сервера об успешности заражения другого устройства. В обоих случаях, т. е. как в случае успешного заражения, так и нет, бот также отправляет на сервер пару логин/пароль, которая использовалась для доступа к аккаунту telnet. Возможно, операторы попытаются заразить устройство вручную, если с этим не справится используемый автоматический метод вредоносной программы.
![](https://habrastorage.org/files/3ef/a6f/6c5/3efa6f6c534f40ec921992b7209a2d53.png)
Рис. 23. Код 14-го кейса, который специализируется на информировании C&C-сервера о статусе заражения другого устройства.
Завершение работы других ботов
Другой интересной командой бота является команда «KILLBOTS». В случае ее получения, вредоносная программа извлекает список запущенных процессов и выполняет поиск тех из них, которые нужно завершить. Поиск основывается на нескольких критериях, основным из которых является поиск по названию.
![](https://habrastorage.org/files/434/b67/23c/434b6723cd1d46caaa94c2ada8980105.png)
Рис. 24. Список названий процессов для завершения.
![](https://habrastorage.org/files/e8c/f2b/fd6/e8cf2bfd656740169d6cf886e61c7a4f.png)
Рис. 25. Список процессов, которые бот игнорирует.
Вредоносная программа Linux/Remaiten специализируется на завершении только тех процессов, которые были запущены от интерактивной оболочки (shell) /dev/tty. Она также отправляет на C&C-сервер название завершенного процесса. Возможно, такая операция осуществляется для улучшения белого и черного списка процессов вредоносной программы.
![](https://habrastorage.org/files/994/3cf/f03/9943cff0384241a6b644875a7b24e162.png)
Рис. 26. Бот отправляет сообщение на сервер, а потом убивает сам процесс API-функцией kill.
Эволюция бота
Между различными версиями бота присутствуют несущественные изменения, например, различается состав белых и черных списков процессов для завершения, отличаются директории, используемые загрузчиком для копирования туда тела бота и др. Логично предположить, что эти и другие аналогичные изменения в каждом новом билде вредоносной программы, присутствуют в одной и той же версии вредоносной программы. Загрузчик не подвергается изменению, за исключением изменения списка жестко зашитых IP-адресов и номеров портов.
Однако, в версии 2.2 вредоносной программы авторы внесли существенное изменение. Оно заключается в использовании команд wget/tftp для загрузки скрипта shell, который, в свою очередь, специализируется на загрузке бота. Схожая схема используется вредоносной программой Gafgyt. В том случае, когда эти две команды не выполняют свою работу корректно, он загружает на устройство сам загрузчик.
![](https://habrastorage.org/files/511/fb0/7e5/511fb07e5aef4ec187f833e264f113c2.png)
Рис. 27. Вредоносная программа информирует свой C&C-сервер о развертывании бота с использованием инструментов wget/tftp.
Скрипт командной строки распространяется через другой сервер, который также используется для вредоносной программы Gafgyt.
![](https://habrastorage.org/files/0d6/dc2/196/0d6dc2196fda46a796a8a9fda2580202.png)
Рис. 28. Командный shell-скрипт, который распространяется через другой сервер.
Командный файл al.sh указывает на присутствие у злоумышленников ботов для микропроцессоров архитектур PowerPC и SuperH. До вредоносной программы Remaiten мы не наблюдали использование злоумышленниками ботов для таких архитектур.
![](https://habrastorage.org/files/1f1/666/5b7/1f16665b7f88459fb0ca5078553bfbec.png)
Рис. 29. Поддерживаемые злоумышленниками архитектуры.
![](https://habrastorage.org/files/535/54c/63c/53554c63c4624019ad0fb625cfc3f19a.png)
Рис. 30. Начало файла скрипта.
Управляющий C&C-сервер, который используется в версии 2.0 вредоносной программы, использует странное welcome-сообщение. Оно содержит ссылку на известный блог исследователей вредоносных программ под названием MalwareMustDie.
![](https://habrastorage.org/files/8a1/9b7/d79/8a19b7d79f4f403385da2c03623bf683.png)
Рис. 31. Welcome-сообщение версии бота 2.0 содержит отсылку к блогу MalwareMustDie.
Мы предполагаем, что это попытка скомпрометировать команду MalwareMustDie в глазах пользователей, т. к. они размещали достаточное количество материала, который изобличает деятельность Gafgyt и Tsunami.
Индикаторы компрометации (IoC)
Версия бота 2.0
![](https://habrastorage.org/files/992/649/fb6/992649fb6a2a4aa1a6d7d7c6f0b0f768.png)
Версия бота 2.1
![](https://habrastorage.org/files/694/20b/1a7/69420b1a7561406495961d0514447a03.png)
Версия бота 2.2
![](https://habrastorage.org/files/74f/233/1c0/74f2331c0e94441ba785afab28c33ba7.png)
![](https://habrastorage.org/files/261/efb/a45/261efba4591d4bcfa99a28068a62d7b1.png)
Версия загрузчика 2.0
![](https://habrastorage.org/files/7bc/cc7/9a0/7bccc79a08ce49739160adb4033fa95f.png)
Версия загрузчика 2.1
![](https://habrastorage.org/files/edd/ba9/b39/eddba9b398344f68953c762565faac4c.png)
Версия загрузчика 2.2
![](https://habrastorage.org/files/ae8/5f6/e9a/ae85f6e9aa4d4aaebfdafc82c8e1507f.png)
C&C версии 2.0
Бот: 185.130.104.131:443
Загрузчик: 185.130.104.131:25566
C&C версии 2.1
Бот: 185.130.5.201:53
Загрузчик: 185.130.5.201:25566
C&C версии 2.2
Бот:185.130.5.202:23
Загрузчик: 185.130.5.202:443
![](https://habrastorage.org/files/e87/48b/a39/e8748ba3920b4818b19613a967eef3b3.jpeg)
Во второй части мы более детально остановимся на процессе заражения вредоносной программой других устройств, а также другой интересной функции, которая позволяет Linux/Remaiten завершать процессы других ботов и программ в Linux.
Заражение других устройств
Первым шагом в этом процессе является поиск записываемой (writable) директории. Бот содержит список популярных путей к таким директориям, их список указан ниже на скриншоте.
![](https://habrastorage.org/files/534/10f/500/53410f5000544372850eea32a8f13d58.png)
Рис. 19. Список директорий на устройстве жертвы, куда может быть скопирован загрузчик.
После этого бот, по непонятным причинам, создает исполняемые файлы под названием «.t», «retrieve» и «binary». Файл «retrieve» будет содержать сам загрузчик, а «binary» запрашивается ботом с управляющего C&C-сервера. Файл «.t» вредоносной программой не используется.
![](https://habrastorage.org/files/6de/d2d/162/6ded2d1628a3416f81bc3b8e63646df7.png)
Рис. 20. Десятый кейс специализируется на подготовке переноса полезной нагрузки на устройство и его исполнении.
Вредоносная программа использует странный способ создания пустых исполняемых файлов: она копирует стандартный исполняемый файл под названием busybox, который присутствует в большинстве embedded-устройств, а затем удаляет из него все содержимое командой «>file». Загрузчик передается на устройство через telnet простой echo-командой, при этом каждый байт исполняемого файла кодируется с использованием escape-последовательности «xHH». Мы наблюдали схожую технику распространения в другой вредоносной программе под названием Linux/Moose.
![](https://habrastorage.org/files/8ca/5fa/403/8ca5fa403f7f4cdc9a4b9db94a11957d.png)
Рис. 21. Код из 11-го кейса, который специализируется на передаче полезной нагрузки с использованием команды echo.
Исполнение загрузчика и IRC-бота
После того как загрузчик был скопирован на устройство жертвы, он пытается загрузить на него полезную нагрузку вредоносной программы. Загрузчик запрашивает исполняемый файл бота с управляющего C&C-сервера и записывает его в поток stdout. В начале своего запуска, загрузчик перенаправляет поток stdout в файл с названием «binary». Наконец, файл «binary» запускается на исполнение и IRC-бот становится активным.
![](https://habrastorage.org/files/393/ed0/cf7/393ed0cf731e407890dbd447a28bd6fd.png)
Рис. 22. Код из 13-го кейса, который специализируется на запуске на исполнение загрузчика и бота.
Отправка статуса на управляющий C&C-сервер
Последним этапом для бота является информирование C&C-сервера об успешности заражения другого устройства. В обоих случаях, т. е. как в случае успешного заражения, так и нет, бот также отправляет на сервер пару логин/пароль, которая использовалась для доступа к аккаунту telnet. Возможно, операторы попытаются заразить устройство вручную, если с этим не справится используемый автоматический метод вредоносной программы.
![](https://habrastorage.org/files/3ef/a6f/6c5/3efa6f6c534f40ec921992b7209a2d53.png)
Рис. 23. Код 14-го кейса, который специализируется на информировании C&C-сервера о статусе заражения другого устройства.
Завершение работы других ботов
Другой интересной командой бота является команда «KILLBOTS». В случае ее получения, вредоносная программа извлекает список запущенных процессов и выполняет поиск тех из них, которые нужно завершить. Поиск основывается на нескольких критериях, основным из которых является поиск по названию.
![](https://habrastorage.org/files/434/b67/23c/434b6723cd1d46caaa94c2ada8980105.png)
Рис. 24. Список названий процессов для завершения.
![](https://habrastorage.org/files/e8c/f2b/fd6/e8cf2bfd656740169d6cf886e61c7a4f.png)
Рис. 25. Список процессов, которые бот игнорирует.
Вредоносная программа Linux/Remaiten специализируется на завершении только тех процессов, которые были запущены от интерактивной оболочки (shell) /dev/tty. Она также отправляет на C&C-сервер название завершенного процесса. Возможно, такая операция осуществляется для улучшения белого и черного списка процессов вредоносной программы.
![](https://habrastorage.org/files/994/3cf/f03/9943cff0384241a6b644875a7b24e162.png)
Рис. 26. Бот отправляет сообщение на сервер, а потом убивает сам процесс API-функцией kill.
Эволюция бота
Между различными версиями бота присутствуют несущественные изменения, например, различается состав белых и черных списков процессов для завершения, отличаются директории, используемые загрузчиком для копирования туда тела бота и др. Логично предположить, что эти и другие аналогичные изменения в каждом новом билде вредоносной программы, присутствуют в одной и той же версии вредоносной программы. Загрузчик не подвергается изменению, за исключением изменения списка жестко зашитых IP-адресов и номеров портов.
Однако, в версии 2.2 вредоносной программы авторы внесли существенное изменение. Оно заключается в использовании команд wget/tftp для загрузки скрипта shell, который, в свою очередь, специализируется на загрузке бота. Схожая схема используется вредоносной программой Gafgyt. В том случае, когда эти две команды не выполняют свою работу корректно, он загружает на устройство сам загрузчик.
![](https://habrastorage.org/files/511/fb0/7e5/511fb07e5aef4ec187f833e264f113c2.png)
Рис. 27. Вредоносная программа информирует свой C&C-сервер о развертывании бота с использованием инструментов wget/tftp.
Скрипт командной строки распространяется через другой сервер, который также используется для вредоносной программы Gafgyt.
![](https://habrastorage.org/files/0d6/dc2/196/0d6dc2196fda46a796a8a9fda2580202.png)
Рис. 28. Командный shell-скрипт, который распространяется через другой сервер.
Командный файл al.sh указывает на присутствие у злоумышленников ботов для микропроцессоров архитектур PowerPC и SuperH. До вредоносной программы Remaiten мы не наблюдали использование злоумышленниками ботов для таких архитектур.
![](https://habrastorage.org/files/1f1/666/5b7/1f16665b7f88459fb0ca5078553bfbec.png)
Рис. 29. Поддерживаемые злоумышленниками архитектуры.
![](https://habrastorage.org/files/535/54c/63c/53554c63c4624019ad0fb625cfc3f19a.png)
Рис. 30. Начало файла скрипта.
Управляющий C&C-сервер, который используется в версии 2.0 вредоносной программы, использует странное welcome-сообщение. Оно содержит ссылку на известный блог исследователей вредоносных программ под названием MalwareMustDie.
![](https://habrastorage.org/files/8a1/9b7/d79/8a19b7d79f4f403385da2c03623bf683.png)
Рис. 31. Welcome-сообщение версии бота 2.0 содержит отсылку к блогу MalwareMustDie.
Мы предполагаем, что это попытка скомпрометировать команду MalwareMustDie в глазах пользователей, т. к. они размещали достаточное количество материала, который изобличает деятельность Gafgyt и Tsunami.
Индикаторы компрометации (IoC)
Версия бота 2.0
![](https://habrastorage.org/files/992/649/fb6/992649fb6a2a4aa1a6d7d7c6f0b0f768.png)
Версия бота 2.1
![](https://habrastorage.org/files/694/20b/1a7/69420b1a7561406495961d0514447a03.png)
Версия бота 2.2
![](https://habrastorage.org/files/74f/233/1c0/74f2331c0e94441ba785afab28c33ba7.png)
![](https://habrastorage.org/files/261/efb/a45/261efba4591d4bcfa99a28068a62d7b1.png)
Версия загрузчика 2.0
![](https://habrastorage.org/files/7bc/cc7/9a0/7bccc79a08ce49739160adb4033fa95f.png)
Версия загрузчика 2.1
![](https://habrastorage.org/files/edd/ba9/b39/eddba9b398344f68953c762565faac4c.png)
Версия загрузчика 2.2
![](https://habrastorage.org/files/ae8/5f6/e9a/ae85f6e9aa4d4aaebfdafc82c8e1507f.png)
C&C версии 2.0
Бот: 185.130.104.131:443
Загрузчик: 185.130.104.131:25566
C&C версии 2.1
Бот: 185.130.5.201:53
Загрузчик: 185.130.5.201:25566
C&C версии 2.2
Бот:185.130.5.202:23
Загрузчик: 185.130.5.202:443