Загрузчик PlugX распространяли в архиве, оформленном как сборка Android Debug Bridge. После распаковки три файла получили атрибуты Hidden и System, и в проводнике Windows их не видно. Запуск adb вёл к обходу UAC, закреплению через службу Windows и инъекции нагрузки в svchost. Сколько систем затронуто, автор разбора не сообщает.
Описание
Подписанный adb.exe загружал недоверенную библиотеку AdbWinApi.dll из собственного каталога. Так работает side-loading DLL: цифровая подпись подтверждает издателя исполняемого файла, но ничего не говорит о лежащей рядом библиотеке. После переноса в служебный каталог поведение повторилось. Подмену маскировали имена: библиотека и файл справки назывались так же, как настоящие компоненты отладчика.
По данным разбора, опубликованного в LinkedIn, цепочку повышения привилегий запускает rundll32.exe. Он подгружает модуль UAC.TMP и вызывает экспорт BypassUAC, передавая тому командную строку загрузчика. Первый аргумент задаёт режим установки и закрепления, второй - идентификатор родительского процесса, который начал цепочку. Дальше команда выполняется с повышенными правами, и следующая стадия закрепляется в системе.
С аргументом 200 adb.exe создавал приостановленный svchost.exe и внедрял в него полезную нагрузку. У легитимного svchost.exe в командной строке есть ключ с именем группы служб; в этом запуске его не было. Из внедрённого процесса нагрузка попадала в msiexec.exe в каждой пользовательской сессии. Дублированный токен пользователя открывал ей доступ к сессиям.
Режимы запуска 100, 200, 201 и 209 делят роли: обход UAC, инъекция и запуск, основная стадия RAT и вспомогательный процесс для пользовательской сессии. В зависимости от аргумента одна и та же команда ведёт себя как установщик, инжектор или основной компонент. Загрузчик также анализирует boot.cfg: получает размер файла, читает зашифрованные данные в память и после расшифровки извлекает адрес сервера управления. Пять хешей - adb.exe, adb.dat, UAC.TMP, AdbWinApi.dll и boot.cfg - вынесены в приложение.
Закрепление шло через службу Windows с именем Adb в системной ветке реестра. Записать службу туда можно только с правами администратора - обход UAC как раз их и давал. Основная стадия после этого работала от имени SYSTEM. Сетевое правило для активности PlugX сработало на обращении к домену управления, что связало находку в трафике с разбором хоста.
Загрузчик открывал boot.cfg, читал зашифрованное содержимое в память и после расшифровки получал встроенный адрес сервера управления (C2). По HTTP-отпечатку заголовков одного из узлов поиск в Shodan нашёл ещё три адреса с тем же шаблоном. Картина расширилась до кластера из четырёх узлов.
Автор с умеренной уверенностью связывает инфраструктуру с группой Earth Berberoka. Основание - сходство HTTP-отпечатка и родительского домена с тем, что ранее описывала Trend Micro. При этом адрес не входит в список, который приводила Trend Micro, атрибуция опирается на один непроверенный источник, а все узлы были недоступны. Что именно выполняет нагрузка после инъекции, в разборе не раскрыто. Число заражённых систем, география и срок работы инфраструктуры в публикации на момент разбора не раскрываются.