Шифровальщик Bad Rabbit

Обновление 27.10.2017. Оценка возможности дешифрования. Возможность восстановления файлов. Вердикты.

Что произошло?

Во вторник 24 октября мы получили уведомления о массовых атаках с использованием вымогателя Bad Rabbit («Плохой кролик»). Пострадали организации и отдельные пользователи — преимущественно в России, но были и сообщения о жертвах из Украины. Такое сообщение видят жертвы:

Что представляет собой Bad Rabbit?

Bad Rabbit относится к ранее неизвестному семейству программ-вымогателей.

Как он распространяется?

Зловред распространятся с помощью drive-by-атаки: жертва посещает легитимный веб-сайт, а на ее компьютер из инфраструктуры организатора атаки загружается дроппер. Преступники не использовали эксплойты, поэтому для заражения пользователь должен был вручную запустить файл, замаскированный под установщик Adobe Flash. Тем не менее, наш анализ подтверждает, что Bad Rabbit использовал эксплойт EternalRomance для распространения внутри корпоративных сетей. Этот же эксплойт использовался шифровальщиком ExPetr.

Мы обнаружили ряд взломанных ресурсов — все они представляют собой новостные порталы и сайты СМИ.

На кого нацелена атака?

Большинство жертв находятся в России. Схожие, но менее массовые атаки затронули другие страны — Украину, Турцию и Германию. Общее количество целей, согласно статистике KSN, доходит до 200.

Когда «Лаборатория Касперского» обнаружила угрозу?

Мы смогли отследить исходный вектор атаки в самом ее начале, утром 24 октября. Активная фаза продолжалась до полудня, хотя отдельные атаки фиксировались до 19.55 по Москве. Сервер, с которого распространялся дроппер Bad rabbit, был отключен тем же вечером.

Чем Bad Rabbit отличается от шифровальщика ExPetr? Или это тот же зловред?

По нашим наблюдениям, сейчас речь идет о целевой атаке на корпоративные сети, ее методы схожи с применявшимися во время атаки ExPetr. Более того, анализ кода Bad Rabbit продемонстрировал его заметное сходство с кодом ExPetr.

Технические подробности

По нашим данным, программа-вымогатель распространятся посредством drive-by атаки. Дроппер вымогателя загружается с адреса hxxp://1dnscontrol[.]com/flash_install.php.

Жертвы перенаправляются на этот вредоносный ресурс с легитимных новостных сайтов.

Загруженный файл install_flash_player.exe жертва должна запустить вручную. Для правильной работы файлу требуются права администратора, которые он запрашивает через стандартное уведомление UAC. В случае запуска зловред сохраняет вредоносную DLL-библиотеку как C:\Windows\infpub.dat и запускает его через rundll32.


Псевдокод процедуры установки вредоносной DLL

По всей видимости, библиотека infpub.dat «брутфорсит» учетные данные NTLM к Windows-машинам с псевдослучайными IP-адресами.


Жестко прописанный список учетных данных

Библиотека infpub.dat также устанавливает вредоносный исполняемый файл dispci.exe в  C:\Windows и создает задачу для его запуска.


Псевдокод процедуры, создающей задачу запуска вредоносного исполняемого файла

Более того, infpub.dat действует как типичный шифровальщик-вымогатель: он находит данные жертвы по встроенному списку расширений и шифрует файлы публичным 2048-битным RSA-ключом, принадлежащим злоумышленникам.


Публичный ключ злоумышленников и список расширений

Параметры публичного ключа:

Public-Key: (2048 bit)
Modulus:
  00:e5:c9:43:b9:51:6b:e6:c4:31:67:e7:de:42:55:
  6f:65:c1:0a:d2:4e:2e:09:21:79:4a:43:a4:17:d0:
  37:b5:1e:8e:ff:10:2d:f3:df:cf:56:1a:30:be:ed:
  93:7c:14:d1:b2:70:6c:f3:78:5c:14:7f:21:8c:6d:
  95:e4:5e:43:c5:71:68:4b:1a:53:a9:5b:11:e2:53:
  a6:e4:a0:76:4b:c6:a9:e1:38:a7:1b:f1:8d:fd:25:
  4d:04:5c:25:96:94:61:57:fb:d1:58:d9:8a:80:a2:
  1d:44:eb:e4:1f:1c:80:2e:e2:72:52:e0:99:94:8a:
  1a:27:9b:41:d1:89:00:4c:41:c4:c9:1b:0b:72:7b:
  59:62:c7:70:1f:53:fe:36:65:e2:36:0d:8c:1f:99:
  59:f5:b1:0e:93:b6:13:31:fc:15:28:da:ad:1d:a5:
  f4:2c:93:b2:02:4c:78:35:1d:03:3c:e1:4b:0d:03:
  8d:5b:d3:8e:85:94:a4:47:1d:d5:ec:f0:b7:43:6f:
  47:1e:1c:a2:29:50:8f:26:c3:96:d6:5d:66:36:dc:
  0b:ec:a5:fe:ee:47:cd:7b:40:9e:7c:1c:84:59:f4:
  81:b7:5b:5b:92:f8:dd:78:fd:b1:06:73:e3:6f:71:
  84:d4:60:3f:a0:67:06:8e:b5:dc:eb:05:7c:58:ab:
  1f:61
Exponent: 65537 (0x10001)

Исполняемый файл dispci.exe, похоже, основан на коде легальной утилиты DiskCryptor. Он действует как модуль шифрования диска и параллельно устанавливает модифицированный загрузчик, блокируя нормальный процесс загрузки инфицированной системы.

В ходе анализа образцов этой угрозы мы отметили интересную деталь: по всей видимости, авторы вредоносной программы являются поклонниками «Игры престолов». Некоторые строки в коде представляют собой имена персонажей из этой вселенной.


Имена драконов из «Игры престолов»


Имена персонажей из «Игры престолов»

Схема шифрования

Как мы уже упоминали, вымогатель Bad Rabbit шифрует файлы и жесткий диск жертвы. Для файлов используются следующие алгоритмы:

  1. AES-128-CBC
  2. RSA-2048

Это типичная схема, используемая зловредами-вымогателями.

Интересно, что вымогатель перечисляет все запущенные процессы и сравнивает хэш от имени каждого процесса с имеющимся у него списком хэшей. При этом используемый алгоритм хэширования похож на тот, что использовался зловредом exPetr.


Сравнение процедур хэширования Bad Rabbit и ExPetr


Особая ветвь исполнения программы


Процедура инициализации флагов времени исполнения

Полный список хэшей от имен процессов:

Хэш Имя процесса
0x4A241C3E dwwatcher.exe
0x923CA517 McTray.exe
0x966D0415 dwarkdaemon.exe
0xAA331620 dwservice.exe
0xC8F10976 mfevtps.exe
0xE2517A14 dwengine.exe
0xE5A05A00 mcshield.exe

Разделы на жестком диске жертвы шифруются с помощью драйвера dcrypt.sys программы DiskCryptor (он загружается в C:\Windows\cscc.dat). Шифровальщик посылает этому драйверу необходимые IOCTL коды. Отдельные функции берутся «как есть» из исходников DiskCryptor (drv_ioctl.c), другие, как кажется, были добавлены разработчиками зловреда.

Разделы диска шифруются драйвером DiskCryptor с использованием AES в режиме XTS. Пароль генерируется dispci.exe с использованием функции WinAPI CryptGenRandom и имеет длину 32 символа.

Оценка возможности дешифрования

Наши данные свидетельствуют, что Bad rabbit, в отличие от ExPetr, не создавался как вайпер (о том, что создатели ExPetr технически не способны расшифровать MFT, зашифрованную с помощью GoldenEye, мы писали ранее). Алгоритм работы вредоносного ПО предполагает, что у злоумышленников, стоящих за Bad rabbit, есть необходимые средства для дешифровки.

Данные, которые отображаются на экране зараженной машины как «personal installation key#1», это зашифрованная RSA-2048 и закодированная base64 двоичная структура, которая содержит следующую информацию из зараженной системы:

Злоумышленники могут использовать свой секретный ключ RSA для расшифровки этой структуры и отправить пароль для расшифровки диска жертве.

Обратите внимание, что значение поля id, которое передается dispci.exe — просто 32-битное число, используемое чтобы различать зараженные компьютеры, а вовсе не ключ AES для шифрования диска, как говорилось в некоторых отчетах, опубликованных в интернете.

В процессе анализа мы под отладкой извлекли пароль, создаваемый вредоносным ПО, и попытались использовать его на заблокированной системе после перезагрузки — пароль подошел, и загрузка продолжилась.

К сожалению, расшифровать данные на дисках без ключа RSA-2048 злоумышленников невозможно: симметричные ключи безопасно генерируются на стороне зловреда, что на практике исключает возможность их подбора.

Однако мы обнаружили ошибку в коде dispci.exe: сгенерированный пароль не удаляется из памяти, что дает небольшой шанс на его извлечение до завершения процесса dispci.exe. На скриншоте ниже можно заметить, что, хотя переменная dc_pass (которая будет передана драйверу) будет безопасно стерта после использования, это не относится к переменной rand_str, которая содержит копию пароля.


Псевдокод процедуры, которая генерирует пароль и шифрует разделы диска

Шифрование файлов

Как мы уже писали, троянец использует типичную схему шифрования файлов. Он генерирует случайную строку длиной 32 байта и использует ее в алгоритме деривации ключа. К сожалению, при создании этой строки используется функция CryptGenRandom.

Алгоритм деривации ключа

Зашифрованный пароль вместе с информацией о зараженной системе записывается в файл Readme как «personal installation key#2».

Интересный факт: зловред не шифрует файлы с атрибутом «Только для чтения».

Возможность восстановления файлов

Мы обнаружили, что Bad Rabbit не удаляет теневые копии файлов после их шифрования. Это означает, что если служба теневого копирования была включена до заражения и полное шифрование диска по какой-то причине не произошло, жертва может восстановить зашифрованные файлы, используя стандартные средства Windows или сторонние утилиты.


Теневые копии, незатронутые Bad Rabbit

Рекомендации

Эксперты «Лаборатории Касперского» подробно анализируют шифровальщик, чтобы найти возможные недостатки в его криптографических алгоритмах.

Корпоративным клиентам «Лаборатории Касперского» рекомендуется:

  • проверить, что все механизмы включены согласно рекомендациям; отдельно проследить, чтобы не были выключены компоненты KSN и «Мониторинг системы» (они активны по умолчанию);
  • оперативно обновить антивирусные базы.

Этого должно быть достаточно. Но в качестве дополнительных мер предосторожности мы советуем:

  • запретить в Kaspersky Endpoint Security выполнение файлов C:\Windows\infpub.dat и C:\Windows\cscc.dat.
  • настроить и включить режим «Запрет по умолчанию» в компоненте «Контроль запуска программ» в Kaspersky Endpoint Security.

Продукты «Лаборатории Касперского» определяют эту угрозу как:

  • Trojan-Ransom.Win32.Gen.ftl
  • Trojan-Ransom.Win32.BadRabbit
  • DangerousObject.Multi.Generic
  • PDM:Trojan.Win32.Generic
  • Intrusion.Win.CVE-2017-0147.sa.leak

IoC:

http://1dnscontrol[.]com/
fbbdc39af1139aebba4da004475e8839 — install_flash_player.exe
1d724f95c61f1055f0d02c2154bbccd3 — C:\Windows\infpub.dat
b14d8faf7f0cbcfad051cefe5f39645f — C:\Windows\dispci.exe

Публикации на схожие темы

Всего комментариев: 1
  1. Роман

    Здравствуйте. подскажите какими отладчиками и редакторами вы пользуетесь при исследовании зловреда? часто вижу в ваших статьях одни и те же и не один. спасибо.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *