10 августа 2023
Техники, тактики и процедуры атак на промышленные компании. Импланты для выгрузки данных на сервер
Это третья часть нашего исследования, посвященного анализу серии атак на промышленные компании в Восточной Европе.
Атакующие стремились организовать постоянно действующий канал для вывода украденных данных, включая данные, размещенные на физически изолированных (air-gapped) системах.
В ходе исследования в общей сложности мы обнаружили более 15 имплантов и их вариантов, установленных злоумышленниками в разных сочетаниях.
Весь стек имплантов, примененных в атаках, можно разделить на три категории исходя из их ролей:
- Импланты первого этапа для обеспечения бесперебойного удаленного доступа и первоначального сбора данных
- Импланты второго этапа для сбора данных и файлов, в том числе с физически изолированных систем
- Импланты третьего этапа и инструменты для выгрузки данных на командные серверы
В этой части представлена информация о четырех типах имплантов и двух инструментах, которые использовались на последнем (третьем) этапе обнаруженных атак. Атакующие развертывали импланты третьего этапа с помощью импланта первого этапа, а также импланта второго этапа.
У имплантов третьего этапа много общего с имплантами первого этапа, включая использование облачного хранилища данных (например, Dropbox, Yandex Disk), обфускацию кода, а также процедуры выполнения кода, основанные на технике подмены DLL (DLL hijacking).
Полный текст отчёта опубликован на портале Kaspersky Threat Intelligence.
Дополнительную информацию вы можете запросить по адресу ics-cert@kaspersky.com.
Стек имплантов, предназначенных для выгрузки файлов на Dropbox
В ходе нашего исследования мы обнаружили стек имплантов, предназначенных для выгрузки файлов на сервис Dropbox и рассчитанных на работу в связке с имплантом второго этапа для сбора данных.
Набор вредоносных программ состоит из трех имплантов, образующих прямую цепочку выполнения (в три шага).
Вредоносное ПО, выполняемое на первом шаге, используется для закрепления в системе, развертывания и запуска модуля вредоносного ПО второго шага, которое отвечает за выгрузку собранных файлов на сервер через вызов импланта третьего шага и удаление временных объектов.
Такая архитектура позволяет злоумышленникам изменять поток выполнения путем замены одного модуля в цепочке. В ходе анализа мы обнаружили 5 вариантов имплантов третьего шага и 2 варианта имплантов второго шага, развернутых через несколько месяцев после первоначальной атаки.
Самые первые варианты имплантов второго шага в цепочке были предназначены для расшифровки вредоносной нагрузки третьего шага и ее внедрения в память легитимного процесса (например, «msiexec.exe»). Все варианты вредоносной нагрузки третьего шага в этой цепочке были практически идентичны и различались только адресами командных серверов.
Наше внимание привлек IP-адрес командного сервера в одном из имплантов третьего шага, потому что это был локальный IP-адрес. Это означает, что злоумышленники развернули командный сервер внутри периметра компании и, по-видимому, использовали его как прокси для вывода украденных данных с хостов, не имеющих прямого подключения к интернету.
Позднее злоумышленники развернули новый вариант импланта второго шага, возможности которого включали поиск в папке Outlook имен файлов (т.е. имен учетных записей электронной почты), выполнение удаленных команд и загрузку локальных или удаленных «.rar» файлов на сервис Dropbox через вызов импланта третьего шага.
В таблице ниже представлены краткие сведения о всех командах, выполнение которых поддерживает имплант второго шага (который завершает свою работу, если он вызван без аргументов командной строки):
Команда | Параметры | Описание |
---|---|---|
uploadlocal | Вызвать имплант третьего шага для выгрузки в папку на сервисе Dropbox локальных .rar файлов из «C:\ProgramData\NetWorks\ZZ» и удаления временных объектов. | |
Uploadremote | [имя_пользователя] [домен] [SID] [хост] [ntlm-хэш] | Скопировать .rar файлы из «C:\ProgramData\NetWorks\ZZ» на удаленной машине в локальную папку, затем удалить файлы на удаленной машине и вызвать имплант третьего этапа для выгрузки локальных .rar файлов в папку на сервисе Dropbox, затем удалить временные объекты |
checkoutlook | [имя_пользователя] [домен] [SID] [хост] [ntlm-хэш] | Осуществить поиск папки Outlook на локальном или удаленном хосте и вывести список файлов на stdout. |
Wmic | [имя_пользователя] [домен] [SID] [хост] [ntlm-хэш] [команда] | Выполнить команду в интерпретаторе командной строки локально или удаленно и записать результат в файл «c:\windows\debug\out.txt», затем прочитать файл и вывести его содержимое на stdout, затем удалить файл «out.txt» (локально или удаленно) |
Прежде чем удаленно выполнить какую-либо команду, имплант проверяет, имеются ли достаточные привилегии для доступа к удаленном хосту. Для этого он вызывает некую не обнаруженную в ходе исследования утилиту с именем «libvlc.exe» со следующими параметрами: имя пользователя, домен, SID, имя хоста и ntlm-хэш.
Для выгрузки на сервер файлов с локальной машины имплант второго шага вызывает имплант третьего шага, который к этому моменту уже должен быть развернут на машине по статическому пути «c:/users/public/» или по тому же пути, что и имплант второго шага.
Необходимо отметить, что перед тем, как вызвать имплант третьего шага для выгрузки файлов на сервер, имплант второго шага добавляет в начало каждого «.rar» файла нестандартный заголовок, который содержит имя хоста — источника файла и первоначальное имя файла (состоит из даты и времени создания файла). Злоумышленники делают это, чтобы избежать потери метаданных: при загрузке файла на Dropbox имплант меняет имя файла на псевдослучайную последовательность чисел.
Все варианты импланта третьего шага предназначены для выгрузки собранных «.rar» файлов на Dropbox из «C:\ProgramData\NetWorks\ZZ» с локальной машины. Эта операция выполняется следующим образом:
- Подключение к Dropbox с помощью встроенного OAuth-токена, создание папки с именем локальной машины.
- Загрузка маленького файла «host», содержащего основные сведения о локальной машине (имя компьютера, имя пользователя, IP-адрес, MAC-адрес) и зашифрованного с помощью алгоритма RC4.
- Шифрование всех «.rar» файлов алгоритмом RC4 и загрузка их на Dropbox.
- Удаление всех «.rar» файлов в «C:\ProgramData\NetWorks\ZZ» на локальной машине.
Вместе с описанным выше стеком имплантов мы обнаружили «.bat» файл, содержащий скрипт, предназначенный для удаления файлов промежуточных шагов и артефактов из «c:\Users\Public». Этот скрипт, вероятно, использовался перед обновлением стека имплантов или в случаях принятия злоумышленниками решения покинуть зараженную машину.
Инструменты для выгрузки украденных файлов вручную
Наряду с другими имплантами мы обнаружили два инструмента, с помощью которых злоумышленники отправляли украденные данные вручную.
Инструмент для выгрузки файлов на Yandex Disk
Один из инструментов с именем «AuditSvc.exe» был предназначен для выгрузки произвольных файлов на сервис Yandex Disk и загрузки с него. OAuth-токен, путь к файлу и некоторые другие параметры можно было передавать как аргументы командной строки. При этом параметры можно было определить и в конфигурационном файле с именем «MyLog.ini».
Инструмент для выгрузки файлов на файлообменные сервисы
Второй обнаруженный инструмент с именем «transfer.exe» был предназначен для выгрузки произвольных файлов на 16 поддерживаемых файлообменных сервисов, а также с этих сервисов на компьютер.
Сервис | URL-адрес |
---|---|
imgonl(onl) | https://img[.]onl/api/upload.php |
litterbox(lit) | https://litterbox.catbox[.]moe/resources/internals/api.php |
imgbb(ibb) | https://imgbb[.]com/ |
transfer(trs) | https://transfer[.]sh |
schollz | https://share.schollz[.]com |
null(0x0) | https://0x0[.]st/ |
tinyimg(tin) | https://tinyimg[.]io/upload |
gifyu(gif) | https://gifyu[.]com/ |
imgshare(ims) | https://imgshare[.]io/ |
imgpile(imp) | https://imgpile[.]com/ |
zippyimage(zip) | https://zippyimage[.]com/ |
extraimage(ext) | https://extraimage[.]info/ |
picpaster(pic) | https://upload.picpaste[.]me/ |
imaurupload(imu) | https://imgurupload[.]org |
sm.ms(sms) | https://sm[.]ms/api/v2/upload |
easycaptures(esy) | https://easycaptures[.]com/upload_file_new.php |
Помимо использования различных параметров, предназначенных для обеспечения гибкости и оптимизации, инструмент может генерировать и использовать RSA-ключ на стороне клиента.
После выгрузки данных на сервис инструмент создаёт JSON-файл с префиксом «upload_», содержащий URL-ссылку, сгенерированную файлообменным сервисом для доступа к размещенным на нем данным.
Вероятнее всего, злоумышленники использовали этот инструмент в ручном или полу-ручном режиме для выгрузки на файлообменные сервисы журналов и других файлов. При этом итоговый JSON-файл с URL-адресами мог быть выгружен на сервер любым из имплантов первого этапа (описаны в первой части статьи), или имплантом, предназначенным для отправки единственного файла — «111.log» — в виде почтового вложения через почтовый сервис Яндекса (описан ниже).
Имплант для отправки файлов через почтовый сервис Яндекса
Имплант для отправки файлов через почтовый сервис Яндекса загружался с Yandex Disk. К нему была статически прилинкована библиотека libcurl.dll.
Имплант предназначен для отправки единственного файла, размещенного по статическому пути «C:\Users\Public\Downloads\111.log» (жестко закодированному в импланте). Файл «.log» должен отправляться в виде вложения в электронном письме, содержащем текст «Download the attachment pls.». Имплант форматировал тело электронного письма и использовал API «curl_perform» библиотеки libcurl.dll для отправки письма через smtp.yandex.ru, порт TCP 465.
Файл «111.log», вероятнее всего, создается одним из имплантов предыдущих этапов. Он может содержать результаты выполнения команд в интерпретаторе команд Windows или URL-адреса файлов, загруженных на файлообменный сервис описанным выше инструментом.
После единственной попытки отправить электронное письмо имплант завершает свою работу. Подобный прямой поток выполнения и отсутствие возможностей закрепления в системе может означать, что имплант предполагалось использовать как инструмент, а не как самодостаточную службу. Тем не менее, не исключено, что злоумышленники использовали простую технику запуска с помощью планировщика задач, чтобы обеспечить закрепление импланта в системе и его периодический запуск, как в случае варианта «E» вредоносной программы FourteenHi.
Заключение
В ходе исследования мы проанализировали широкий набор имплантов, применяемых злоумышленниками для удаленного доступа к системам, сбора данных и загрузки данных на серверы.
Использование популярных облачных хранилищ данных может позволять злоумышленникам обходить меры по обеспечению безопасности. В то же время, оно открывает возможность для повторной утечки украденных данных в случае получения третьими лицами доступа к хранилищу злоумышленников.
Рекомендации
- Установите защитное ПО с поддержкой централизованного управления политиками безопасности на все серверы и рабочие станции и поддерживайте антивирусные базы и программные модули всех защитных решений в актуальном состоянии.
- Убедитесь, что все компоненты защитного решения включены на всех системах и что действует политика, требующая ввода пароля администратора при любой попытке отключить защиту.
- Рассмотрите возможность применения технологий разрешительных списков и контроля программ, чтобы предотвратить выполнение неизвестных приложений.
- Убедитесь, что политики Active Directory предусматривают ограничения на попытки входа в систему со стороны пользователей. Пользователь должен иметь возможность входа только в те системы, которые необходимы ему для выполнения служебных обязанностей.
- Ограничьте сетевые соединения между системами в технологической сети, включая VPN; заблокируйте соединения на всех портах, использования которых не требует технологический процесс.
- Используйте в качестве второго фактора аутентификации смарт-карты (токены) или одноразовые коды при установлении VPN-соединения. В случаях, где это применимо, используйте технологию ACL (Access Control List), чтобы задать список IP-адресов, с которых может инициироваться VPN-соединение.
- Организуйте обучение персонала безопасной работе с интернетом, электронной почтой и другими каналами связи. В частности, разъясните сотрудникам возможные последствия загрузки и запуска файлов из непроверенных источников.
- Ограничьте использование учетных записей с правами локального администратора и администратора домена, за исключением случаев, когда такие права необходимы для выполнения служебных обязанностей.
- Рассмотрите возможность использования специализированного решения для управления паролями учетных записей локальных администраторов на всех системах.
- Внедрите парольную политику, предусматривающую минимальные требования к уровню сложности паролей и требующую регулярной смены паролей.
- Рассмотрите возможность использования сервисов класса Managed Detection and Response для получения оперативного доступа к знаниям и опыту экспертов высокого уровня в области безопасности.
- Используйте специализированное защитное решение для обеспечения безопасности технологического процесса. Kaspersky Industrial CyberSecurity защищает узлы технологической сети и позволяет осуществлять мониторинг этой сети для обнаружения и блокирования вредоносной активности.
Приложение I — Индикаторы компрометации
Замечание: Индикаторы в этом разделе актуальны на момент публикации.
Полная версия индикаторов компрометации, в том числе правила Yara, доступна в .ioc-файле на портале Kaspersky Threat Intelligence.
Стек имплантов для загрузки файлов на Dropbox
MD5
1A1B8EFE8D72984C4744662D2D233C02 (CrashReport.dll) 03C74722A8E6E5E7EA0A5ED0C9F23696 (a.exe) 19BC4620FB5DA10192676F01C3DC71B3 (cl.exe) EE8AFC6F3BB68F86A64FC6389F2EDC3F (cl.exe) F8553382DE7E1E349D8E91EDB7C57953 (cu.exe) 5137C61734E2096018CEE99149DAC009 (conhost.exe) 5660CB556D856D081A3DCD497549F47A (Rar2.exe) 976B59F170136B9C3C88BD9A8FC4CE4E (Rar3.exe) D6CC6A4AF4720DAF8EEE0835D6E5D374 (Rar4.exe)
Инструмент для загрузки файлов на Yandex Disk
MD5
5C3A88073824A1BCE4359A7B69ED0A8D (AuditSvc.exe)
Инструмент для загрузки файлов на файлообменные сервисы
MD5
8BA9EE9FD6BD4B9304F7FB868CE975D8 (transfer.exe)
IP/URL
img[.]onl/api/upload.php litterbox.catbox[.]moe/resources/internals/api.php imgbb[.]com transfer[.]sh share.schollz[.]com 0x0[.]st/ tinyimg[.]io/upload gifyu[.]com/ imgshare[.]io imgpile[.]com/ zippyimage[.]com extraimage[.]info upload.picpaste[.]me imgurupload[.]org sm[.]ms/api/v2/upload easycaptures[.]com/upload_file_new.php
Имплант для загрузки файлов на сервер через почтовый сервис Яндекса
MD5
971B0687C8281778B28721239801084E (qclite.dll)
Приложение II — категории MITRE ATT&CK
Представленная ниже таблица содержит все тактики, техники и процедуры, обнаруженные при анализе активности, описываемой в настоящем отчете.
Тактика | Номер техники | Название и описание техники |
---|---|---|
Initial Access | T1566.001 | Phishing: Spearphishing Attachment Использование злоумышленниками документов-приманок для развертывания стандартного шпионского ПО. |
Execution | T1204.002 | User Execution: Malicious File Заражение системы при запуске вредоносного ПО пользователем, считающим, что это легитимный документ. |
T1059.003 | Command and Scripting Interpreter: Windows Command Shell Использование cmd.exe для выполнения серии команд. |
|
T1106 | Native API Использование функции CreateProcessW для выполнения команд в интерпретаторе командной строки Windows |
|
T1053.005 | Scheduled Task/Job: Scheduled Task Выполнение вредоносного ПО с помощью созданной злоумышленниками задачи планировщика задач Windows. |
|
Persistence | T1547.001 | Registry Run Keys / Startup Folder: Закрепление вредоносного ПО в системе путем его добавления в ключ автозапуска системного реестра. |
T1543.003 | Create or Modify System Process: Windows Service Установка вредоносным ПО себя в качестве службы для закрепления в системе. |
|
T1053.005 | Scheduled Task/Job: Scheduled Task Выполнение вредоносного ПО посредством созданной злоумышленниками задачи планировщика задач Windows. |
|
Defense Evasion | T140 | Deobfuscate/Decode Files or Information спользование RC4-ключа для расшифровки конфигурации вредоносного ПО и сетевого взаимодействия. |
T1055.002 | Process Injection: Portable Executable Injection Внедрение при выполнении вредоносного ПО его кода в различные легитимные процессы (msiexec.exe, svchost.exe). |
|
T1497.001 | System >Checks Осуществление различных проверок системы с целью обнаружить и предотвратить выполнение в средах виртуализации и анализа. |
|
T1497.003 | Time Based Evasion Использование различных методов, основанных на учете времени, для обнаружения и избегания сред виртуализации и анализа. |
|
T1574.002 | Hijack Execution Flow: DLL Side-Loading Использование злоумышленниками бинарных файлов легитимных приложений для загрузки вредоносной DLL. |
|
Discovery | T1083 | File and Directory Discovery Попытки со стороны вредоносного ПО обнаружить файлы различных типов (.doc, .docx, .xls, .xlsx, .ppt, .pptx, .pdf, .rtf, .eml). |
T1016 | System Network Configuration Discovery Использование злоумышленниками утилит netstat и ipconfig для получения конфигурации локального сетевого интерфейса и списка открытых портов. |
|
T1033 | System Owner/User Discovery Использование злоумышленниками systeminfo, whoami и net для получения информации о пользователе и зараженной системе. |
|
T1057 | Process Discovery Использование злоумышленниками tasklist для получения списка активных процессов. |
|
Command and Control | T1071.001 | Application Layer Protocol: Web Protocols Взаимодействие вредоносного ПО с командным сервером по протоколам HTTPS и raw TCP. |
T1573.001 | Encrypted Channel: Symmetric Cryptography Использование вредоносным ПО алгоритмов RC4 и SSL TLS v3 (с помощью libssl.dll) для шифрования соединений. |
|
Credential Access | T1003.004 | OS Credential Dumping: Cached Domain Credentials Использование злоумышленниками Mimikatz и Reg для извлечения учетных данных из кэша. |
Collection | T1005 | Data from Local System Применение вредоносного ПО, предназначенного для сбора и отправки произвольных данных, в том числе с физически изолированных систем, через сменные носители. |
Exfiltration | T1041 | Exfiltration Over C2 Channel Вывод злоумышленниками украденных данных через Dropbox, Yandex Disk, почту Яндекса и файлообменные сервисы в качестве каналов связи с командным сервером. |