Для кампании Darkhotel в 2014 году и ранее характерны разнообразные техники внедрения hta-файлов, использование украденных сертификатов и применение нестандартных методов, таких как проникновение в Wi-Fi сети отелей с целью внедрить бэкдор в систему жертвы. В 2015 году многие из этих методов и техник по-прежнему в ходу. Однако в дополнение к новым вариантам вредоносных hta-файлов, мы обнаруживаем новые жертвы целевого фишинга на основе rar-вложений с шифрованием по методу RTLO, а также использование уязвимостей нулевого дня от компании Hacking Team.
Кампания Darkhotel APT продолжает вести целевой фишинг по всему миру, его географические рамки шире, чем у предшествующего выстраивания ботнетов и атак на Wi-Fi сетей отелей. Некоторые атаки нацелены на дипломатов или имеют стратегические коммерческие интересы.
География целей Darkhotel и жертв атак в 2015 году:
- Северная Корея
- Россия
- Южная Корея
- Япония
- Бангладеш
- Таиланд
- Индия
- Мозамбик
- Германия
Сайты, использовавшиеся Darkhotel в 2015 году для распространения hta-файлов, бэкдоров, эксплойтов, а также в качестве командных серверов:
- storyonboard[.]net
- tisone360[.]org
- openofficev[.]info
- saytargetworld[.]net
- error-page[.]net
- eonlineworld[.]net
- enewsbank[.]net
- thewordusrapid[.]com
Имена вложений, использовавшихся для целевого фишинга в 2015 году:
- schedule(6.1~6).rar -> schedule(6.1~6)_?gpj.scr
- schedule(2.11~16).rar -> schedule(2.11~16)_?gpj.scr
- congratulation.rar -> congratulation_?gpj.scr
- letter.rar -> letter_?gpj.scr
Последовательное использование hta-загрузчиков, подвергнутых обфускации
Каким бы способом ни происходило заражение – через целевой фишинг, физический доступ к системе или через использование уязвимости нулевого дня от компании Hacking Team – зачастую для общения вновь зараженной системы с командным сервером Darkhotel используется один и тот же метод:
Незначительно подвергнутый обфускации (значения javascript-переменных прикрыты двойными escapе-последовательностями) скрипт, содержащийся внутри hta-файла, записывает на диск исполняемый файл и запускает его.
Интересно, что данная группа в течение многих лет распространяет код бэкдоров и загрузчиков в виде hta-файлов. В 2010 году мы наблюдали, как вредоносный код был укрыт в hta-файлах статей Брукингского института (американский аналитический центр) о Северной Корее чтобы атаковать цели, имеющие отношение к северокорейской проблематике. Группа также рассылала по электронной почте ссылки на свои вредоносные hta-файлы группам туристов в Северную Корею, экономистам, имеющим интерес к Северной Корее, и так далее. Несколько странно видеть столь сильную приверженность давнишней и применимой только в системе Windows технологии HTML-приложений, которую Microsoft представил в 1999 году.
Фрагмент недавнего файла sendspace.servermsys.com/downloader.hta:.
После своего запуска hta-файл использует древние компоненты Adodb.stream, чтобы записать строку, зашифрованную с помощью XOR 0x3d, в качестве исполняемого файла и запустить его.
Этот код ведет к исполнению файла internet_explorer_Smart_recovery.exe (MD5: 054471f7e168e016c565412227acfe7f) и к тому, что скрытое окно браузера связывается с командным сервером. Похоже, в этом случае операторы Darkhotel проверяют, является ли в системе жертвы Internet Explorer браузером по умолчанию, так как все версии IE возвращают значение «0», а другие браузеры оставляют поле appMinorVersion пустым (undefined). Такая картина выглядит немного странно, поскольку hta-файлы поддерживаются и запускаются только в системах Windows с помощью mshta.exe, по-прежнему входящего в состав Windows 8. Возможно, это артефакт, оставшийся от ранней версии кода. Вот ссылка на недавнюю версию:
“hxxp://sendspace.servermsys.com/readme.php?type=execution&result=created_and_executed&info=” + navigator.appMinorVersion + ”.
Файл internet_explorer_Smart_recovery.exe – это простой подвергнутый обфускации загрузчик. С помощью серии вызовов XOR 0x28 расшифровывается содержимое самоликвидирующегося batch-файла, который затем записывается на диск и запускается. Далее по ходу исполнения с помощью более сложного алгоритма rc4 расшифровывается url-адрес загрузки, а также другие строки и данные.
В итоге расшифрованный url-адрес обратной связи выглядит как http://sendspace.servermsys.com/wnctprx.
Загружаемый файл (b1f56a54309147b07dda54623fecbb89) получает расширение .tmp, сохраняется в %temp%, запускается, и загрузчик прекращает свою работу. Загруженный файл больше по размеру, представляет из себя бэкдор/загрузчик с поддержкой ssh и загружает на диск свои ключи для взаимодействия по ssh. Мы обнаружили ранние версии модулей Darkhotel для кражи информации, которые загружались в систему и запускались при помощи этих загрузчиков.
Целевой фишинг и вложения rar-файлов с RTLO
Чтобы успешно компрометировать системы, APT-кампания Darkhotel будет беспрестанно подвергать фишингу определенные цели. Некоторые из них подвергаются атакам такого типа неоднократно, при этом используются примерно одни и те же схемы социальной инженерии. Например, вложение schedule(2.11~16).rar может быть послано 10 февраля, а в конце мая Darkhotel может предпринять вторую попытку атаки на эту же цель, используя вложение schedule(6.1~6).rar.
Группировка последовательно создает rar-архивы с исполняемыми scr-файлами, которые названы с использованием метода RTLO, чтобы цель видела в них невинные jpg-файлы. Эти исполняемые файлы являются установщиками, и содержат отвлекающие внимание jpeg-файлы вместе с кодом для создания lnk-загрузчика.
Когда цель пытается открыть то, что принимает за изображение в формате jpg, запускается исполняемый код. Код загружает jpg-изображение на диск и затем открывает его с помощью mspaint.exe в фоновом режиме. Это «поздравительный» текст на корейском языке, дающий правдоподобное описание предполагаемой цели.
Одновременно с показом изображения код загружает на диск измененный ярлык mspaint.lnk и запускает его. Ярлык содержит несколько строк shell-скрипта. Эта техника используется и другими APT-кампаниями в качестве постоянного механизма, что было зафиксировано нашими коллегами из Mandiant. Файл с расширением .lnk имеет размер 64 КБ и содержит код загрузчика:
При запуске этого lnk-файла начинается реализованная на AJAX загрузка файла unzip.js (a07124b65a76ee7d721d746fd8047066) с openofficev.info. Это еще один wsh-скрипт, использующий AJAX для загрузки и запуска сравнительно большого компилированного исполняемого файла:
Этот исполняемый код сохраняется под именем %temp%csrtsrm.exe и запускается. Он достаточно большой (ок. 1,2 МБ) и занимается тем, что внедряет вредоносный код и создает удаленные потоки внутри легитимных процессов в системе.
Украденные сертификаты и обход систем обнаружения
Создается впечатление, что группировка обладает запасом украденных сертификатов и использует их для подписи распространяемых ею загрузчиков и бэкдоров. Некоторые из числа отозванных недавно сертификатов включают сертификаты, принадлежащие Xuchang Hongguang Technology Co. Ltd.
Сейчас Darkhotel склонна скрывать свой код под несколькими слоями шифрования. Вероятно, это происходит от того, что группировка медленно приспосабливается к атакам на более защищенные системы и не желает преждевременно тратить эти украденные цифровые сертификаты. Во время предыдущих атак она могла просто положиться на большой список слабых, взломанных сертификатов.
Группировка не только усиливает свои приемы обфускации, но и наращивает список методов, препятствующих обнаружению своей активности. Например, загрузчик, подписанный как d896ebfc819741e0a97c651de1d15fec, постепенно расшифровывает набор строк со списком действующего анти-вредоносного ПО, чтобы выяснить, какими защитными технологиями обладает только что зараженная система. Затем он открывает каждый процесс в поисках совпадающего имени образа:
c:avast! sandboxWINDOWSsystem32kernel32.dll — Avast!
avp.exe — Kaspersky Lab
mcagent.exe;mcuicnt.exe — Intel/Mcafee
bdagent.exe — BitDefender
ravmon.exe,ravmond.exe — Beijing Rising
360tray.exe,360sd.exe,360rp.exe,exeMgr.exe — Qihoo 360
ayagent.aye,avguard.;avgntsd.exe — Avira Antivirus
ccsvchst.exe,nis.exe — Symantec Norton
avgui.exe,avgidsagent.exe,avastui.exe,avastsvc.exe — Avast!
msseces.exe;msmpeng.exe — Microsoft Security Essentials and Microsoft Anti-Malware Service
AVK.exe;AVKTray.exe — G-Data
avas.exe — TrustPort AV
tptray.exe — Toshiba utility
fsma32.exe;fsorsp.exe — F-Secure
econser.exe;escanmon.exe — Microworld Technologies eScan
SrvLoad.exe;PSHost.exe — Panda Software
egui.exe;ekrn.exe — ESET Smart Security
pctsSvc.exe;pctsGui.exe — PC Tools Spyware Doctor
casc.exe;UmxEngine.exe — CA Security Center
cmdagent.exe;cfp.exe — Comodo
KVSrvXP.exe;KVMonXP.exe — Jiangmin Antivirus
nsesvc.exe;CClaw.exe — Norman
V3Svc.exe — Ahnlab
guardxup. — IKARUS
FProtTray. — F-Prot
op_mon — Agnitum Outpost
vba332ldr.;dwengine. — DrWeb
Даже идентификационная информация, которую бэкдор пытается узнать у системы, не расшифровывается до момента запуска. Подобно модулю кражи данных, описанному в нашем предыдущем отчете по Darkhotel, этот компонент пытается выкрасть набор данных, помогающих идентифицировать зараженную систему. Значительная часть информации собирается при помощи тех же самых вызовов, т.е. kernel32.GetDefaultSystemLangID, kernel32.GetVersion и kernel32.GetSystemInfo:
- Кодовая страница по умолчанию
- Информация о сетевом адаптере
- Архитектура процессора
- Имя хоста и IP-адрес
- Версии ОС Windows и Service Pack
По сути, большая часть кода этого модуля кражи данных не отличается от той, что мы наблюдали при предыдущих атаках.
Tisone360.com, посещения и Flash-уязвимость нулевого дня от компании Hacking Team
Сайт tisone360.com представлял для нас особый интерес. В апреле 2015 года Darkhotel рассылала электронные письма со ссылками на Flash-эксплойт ранней версии (cve-2014) и затем, в начале июля, начала рассылать то, что стало известно как уязвимость нулевого дня во Flash Player от Hacking Team.
Похоже, что APT-кампания Darkhotel могла использовать украденную у Hacking Team Flash-уязвимость нулевого дня для атаки на определенные системы. Некоторые из этих действий мы можем идентифицировать, отталкиваясь от адреса tisone360.com. Сайт был активен еще 22 июля 2015 года. Но это, видимо, малая часть его активности. Похоже, что помимо уязвимости нулевого дня от компании Hacking Team в icon.swf (214709aa7c5e4e8b60759a175737bb2b), в апреле через сайт tisone360.com распространялся Flash-эксплойт CVE-2014-0497. В январе 2014 мы передали в Adobe информацию о схожей уязвимости, когда ее использовала APT-кампания Darkhotel.
В последнее время APT-кампания Darkhotel поддерживала на своем сайте несколько рабочих каталогов.
Наиболее активен каталог ims2. Он содержит набор бэкдоров и эксплойтов. Самым интересным из них является icon.swf с Flash-уязвимостью нулевого дня от Hacking Team. В течение нескольких дней после появления публичных упоминаний об этом сервере, его команда постепенно перекрыла доступ к каталогу /ims2/. Так или иначе, его содержимое продолжает активно использоваться.
icon.swf (214709aa7c5e4e8b60759a175737bb2b) -> icon.jpg (42a837c4433ae6bd7490baec8aeb5091)
-> %temp%RealTemp.exe (61cc019c3141281073181c4ef1f4e524)
После того, как flash-эксплойт загружает icon.jpg, файл декодируется через XOR с мультибайтным ключом 0xb369195a02. Затем он загружает остальные компоненты.
Интересно отметить, что группа, похоже, сменила даты компиляции и компоновки ссылок в своем исполняемом коде на даты в 2013 году. Мы видим это на ряде примеров, впервые внедренных и обнаруженных в середине 2015 года, включая загрузчик icon.jpg.
Лог посещений сайта показывает, что каталог был создан 8 июля. 8 и 9 июля было зафиксировано некоторое количество заходов на определенный URL на сервере с пяти систем, расположенных в различных местах. Некоторые из этих систем, вероятно, являются целями Darkhotel APT-кампании:
- Германия
- Южная Корея
- Китай (вероятно, исследование)
- США
- Япония
Однако одна из этих систем 9 числа нанесла по сайту удар, сгенерировав почти 12 тысяч визитов за 30 минут. Объем трафика говорит скорее о неаккуратной попытке просканировать систему, а не о DoS-атаке на сайт.
Посещения сайта, зафиксированные после 9 числа, недостоверны и могут говорить о дальнейших исследованиях, вызванных растущей известностью сайта после публичных сообщений 9 числа. Из примерно 50 этих посещений многие идут из подмножества упомянутых выше систем и повторяются несколько раз. Посещения из следующих мест зафиксированы 10 числа и позже:
- Германия (вероятно, исследование)
- Украина (вероятно, исследование)
- платформа Amazon Web Services, различные локации (вероятно, исследование)
- Googlebot, различные локации
- США
- Ирландия (вероятно, исследование)
- Россия
- Бразилия
- Китай
- Финляндия
- Канада
- Тайвань
- Франция (вероятно, исследование)
- Чехия
Неизменная схема атаки
Группировка Darkhotel склонна придерживаться проверенных методов работы. Например, мы годами наблюдаем повторяющееся использование целевого фишинга с помощью hta-файлов. Сейчас, подобно упомянутому выше неоднократному использованию сайта tisone360.com, мы наблюдаем повторяющееся использование оригинального набора установочных элементов:
- загрузчик -> внедрение hta -> модуль кражи данных -> другие скомпилированные компоненты;
- установщик драйвера -> wsh-скрипт -> wsh-скрипт -> модуль кражи данных -> другие скомпилированные компоненты;
- целевой фишинг -> установщик драйвера -> внедрение hta -> загрузчик -> модуль кражи данных
Хотя методика доставки, включающая подвергнутые обфускации скрипты внутри hta-файлов, появилась еще в 2011 году, ее использование, похоже, стало набирать обороты в 2014 году и продолжает расти в 2015.
openofficev[.]info (2015)
office-revision[.]com (2014)
online.newssupply[.]net (2011)
Маскировка инфраструктуры у всех на виду
Сегодня группировка проявляет больше бдительности, поддерживая свои сайты, работая над конфигурацией и содержимым ответов. Прямо сейчас ее командный сервер в ответах использует кадры с антигероем из мультсериала «Шоу пьяного ворона».
Другие командные сервера Darkhotel пытаются слиться со случайными сайтами в сети, у которых якобы была запрошена неверная или отсутствующая страница. Они берут изображения либо из фотобанка FOTOLIA, либо из статей о кустарных производителях мороженного:
Технические детали
MD5 хеши hta-файлов
021685613fb739dec7303247212c3b09
1ee3dfce97ab318b416c1ba7463ee405
2899f4099c76232d6362fd62ab730741
2dee887b20a06b8e556e878c62e46e13
6b9e9b2dc97ff0b26a8a61ba95ca8ff6
852a9411a949add69386a72805c8cb05
be59994b5008a0be48934a9c5771dfa5
e29693ce15acd552f1a0435e2d31d6df
fa67142728e40a2a4e97ccc6db919f2b
fef8fda27deb3e950ba1a71968ec7466
MD5 хеши вложений при целевом фишинге
5c74db6f755555ea99b51e1c68e796f9
c3ae70b3012cc9b5c9ceb060a251715a
560d68c31980c26d2adab7406b61c651
da0717899e3ccc1ba0e8d32774566219
d965a5b3548047da27b503029440e77f
dc0de14d9d36d13a6c8a34b2c583e70a
39562e410bc3fb5a30aca8162b20bdd0 (впервые замечен в конце 2014 г., использовался в 2015 г.)
e85e0365b6f77cc2e9862f987b152a89 (впервые замечен в конце 2014 г., использовался в 2015 г.)
MD5 хеши больших загрузчиков, использовавшихся в 2015 году:
5e01b8bc78afc6ecb3376c06cbceb680
61cc019c3141281073181c4ef1f4e524
3d2e941ac48ae9d79380ca0f133f4a49
fc78b15507e920b3ee405f843f48a7b3
da360e94e60267dce08e6d47fc1fcecc
33e278c5ba6bf1a545d45e17f7582512
b1f56a54309147b07dda54623fecbb89
009d85773d519a9a97129102d8116305
Хеши модулей кражи информации, загруженные в 2015 году:
61637a0637fb25c53f396c305efa5dc5
a7e78fd4bf305509c2fc1b3706567acd
Используемые адреса и хосты:
tisone360.com/img_h/ims2/icon.swf
tisone360.com/img_h/ims2/1.php
tisone360.com/img_h/ims2/icon.jpg
tisone360.com/noname/img/movie.swf
tisone360.com/noname/minky/face.php
tisone360.com/htdoc/ImageView.hta
tisone360.com/htdoc/page1/page.html
daily.enewsbank.net/wmpsrx64
daily.enewsbank.net/newsviewer.hta
saytargetworld.net/season/nextpage.php
sendspace.servermsys.com/wnctprx
error-page.net/update/load.php
photo.storyonboard.net/wmpsrx64
photo.storyonboard.net/photoviewer.hta
photo.storyonboard.net/readme.php
unionnewsreport.net/aeroflot_bonus/ticket.php
www.openofficev.info/xopen88/office2
www.openofficev.info/dec98/unzip.js
www.openofficev.info/open99/office32
www.openofficev.info/decod9/unzip.js
Атаки Darkhotel в 2015 году