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
|
1 2 3 4 5 6 7 8 9 |
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
|
1 |
5C3A88073824A1BCE4359A7B69ED0A8D (AuditSvc.exe) |
Инструмент для загрузки файлов на файлообменные сервисы
MD5
|
1 |
8BA9EE9FD6BD4B9304F7FB868CE975D8 (transfer.exe) |
IP/URL
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
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
|
1 |
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, почту Яндекса и файлообменные сервисы в качестве каналов связи с командным сервером. |