Недавно компания Netskope проанализировала вредоносный бэкдор, написанный на Nim, который является относительно новым языком программирования. Лаборатория Netskope Threat Labs отмечает рост числа вредоносных программ на базе Nim за последний год и ожидает, что они станут еще более популярными, поскольку злоумышленники продолжают модифицировать существующие образцы на базе Nim.
Nim backdoor
Для распространения бэкдора Nim использовался вредоносный документ Word. Документ был отправлен в виде вложения в электронное письмо, в котором отправитель утверждал, что он является представителем правительства Непала, отправляющим меры безопасности. Несмотря на контроль безопасности, установленный на макросы в файлах Office, мы все еще видим, как вредоносные программы, созданные APT, используют их для передачи полезной нагрузки, как, например, вредоносная программа Menorah, которую мы анализировали пару месяцев назад.
При первоначальном открытии файла отображается пустой документ с инструкцией по включению макросов. Когда пользователь нажмет кнопку "Включить содержимое", в коде будет выполнена процедура автотриггера (Document_Open). После вызова основной функции код выполняется через дополнительные функции VBA внутри документа.
Чтобы обойти антивирусные и статические средства обнаружения, проект VBA защищен паролем, а макросы обфусцированы с помощью функции Chr( ) VBA и конкатенации строк.
Документ Word содержит вредоносный бэкдор под названием "conhost.exe". Вредоносная программа написана на языке Nim и, скорее всего, была скомпилирована 20 сентября 2023 года. Nim - это статически типизированный компилируемый язык программирования. Его универсальность проявляется в возможности компиляции в C, C++ или JavaScript в сочетании с синтаксисом Pythonic для удобства разработчиков.
Бэкдор работает под теми же привилегиями, что и текущий пользователь, вошедший в систему. Он пытается продолжить свою уловку с тем, что файл был получен от непальских властей, имитируя правительственные домены для своего C&C-сервера ([.]govnp[.]org). Когда этот бэкдор остается незамеченным, пользователи подвергаются риску получения злоумышленниками удаленного доступа.
Перед подключением к командно-контрольному серверу вредоносная программа выполняет простую фоновую проверку. Вначале бэкдор Nim запускает командную строку tasklist.exe и проверяет наличие запущенных процессов из списка известных инструментов анализа. Бэкдор завершит свою работу в ближайшее время, если увидит, что какой-либо из инструментов анализа из списка запущен.
Убедившись в отсутствии инструментов анализа, бэкдор запускает еще один экземпляр командной строки, чтобы узнать имя хоста машины, а затем подключается к своему C&C-серверу. Он шифрует имя хоста с помощью функции под названием bakery. Зашифрованное имя хоста дважды кодируется в base64, вставляется за случайно выбранным URL-адресом C&C-сервера, а затем объединяется с суффиксом ".asp" в конце, чтобы получить URL-адрес конечной команды. Команда, передаваемая C&C-сервером, поступает через HTTP-запрос GET.
Ответные данные GET содержат команду от C&C-сервера. Если ответные данные отличаются от тех, что были получены в прошлый раз, это означает, что C&C-сервер выдал новую команду. В противном случае он будет находиться в состоянии покоя и продолжать запрашивать команду у C&C-сервера. Расшифровка ответных данных (команды) выполняется функцией confectionary, затем конкатенируется с cmd /c для выполнения команды. Результат выполнения также отправляется обратно на сервер через GET-запрос. Для шифрования и расшифровки используется ключ "NPA", который может быть аббревиатурой NP (Nepal) Agent.
Чтобы сохранить доступ к машине, в папку запуска помещается VBscript с именем "OCu3HBg7gyI9aUaB.vbs". Сценарий первоначально подтвердит подключение к Интернету, используя класс WMI "Win32_PingStatus", чтобы пропинговать https://www.google[.]com. В случае успеха он запустит пакетный файл с именем "8lGghf8kIPIuu3cM.bat".
Основная задача пакетного файла "8lGghf8kIPIuu3cM.bat" - сбросить файлы, которые в дальнейшем будут распакованы, и создать запланированное задание для полезной нагрузки. В пакетном файле будут созданы дополнительные скрипты, которые выполнят эти подзадачи:
- unz.vbs используется для распаковки исполняемого файла из архива в ту же директорию
- unzFile.vbs создает unz.vbs
- 2L7uuZQboJBhTERK.bat служит для создания цепочки; запускает unzFile.vbs, затем запускает 2BYretPBD4iSQKYS.bat
- 2BYretPBD4iSQKYS.bat просто для цепочки; запускает unz.vbs, затем запускает d.bat
- d.bat создает запланированную задачу распакованной полезной нагрузки (conhost.exe), затем запускает e.bat
- e.bat удаляет себя и другие скрипты, созданные 8lGghf8kIPIuu3cM.bat.
Пакетный файл с именем "d.bat" создает запланированное задание для достижения еще одного постоянного выполнения вредоносной программы на целевой машине. Задача по расписанию называется "ConsoleHostManager".
Indicators of Compromise
Domains
- dns.govnp.org
- mail.mofa.govnp.org
- mx1.nepal.govnp.org
- nitc.govnp.org
MD5
- 32c5141b0704609b9404eff6c18b47bf
- 777fcc34fef4a16b2276e420c5fb3a73
- e2a3edc708016316477228de885f0c39
- ef834a7c726294ce8b0416826e659baa
SHA1
- 0599969ca8b35bb258797aee45fbd9013e57c133
- 3aa803baf5027c57ec65eb9b47daad595ba80bac
- 4cae7160386782c02a3b68e7a9ba78cc5ffb0236
- 5d2e2336bb8f268606c9c8961bed03270150cf65
SHA256
- 1246356d78d47ce73e22cc253c47f739c4f766ff1e7b473d5e658ba1f0fdd662
- 696f57d0987b2edefcadecd0eca524cca3be9ce64a54994be13eab7bc71b1a83
- 88fa16ec5420883a9c9e4f952634494d95f06f426e0a600a8114f69a6127347f
- b5c001cbcd72b919e9b05e3281cc4e4914fee0748b3d81954772975630233a6e