Упаковщик: UPX
- SHA1-хеш: be4d8344669f73e9620b9060fd87bc519a05617a
Описание
Бэкдор написан на языке Go и упакован с помощью UPX. Исследованная версия бэкдора: V2.5.5 z 2021.7.19.
Принцип действия
В начале работы вредоносный код проверяет, запущена ли другая копия бэкдора. Для этого троян проверяет наличие файла c:\windows\inf\mdmslbv.inf и, если он есть, то читает его. Для расшифровки можно использовать следующий скрипт:
import sys
with open(sys.argv[1], 'rb') as f:
d = f.read()
s = bytearray()
for i in range(len(d)):
s.append(d[i])
for i in range(len(s)-2, 0, -1):
s[i] = (((s[i + 1] * s[i + 1]) ^ s[i]) & 0xff)
with open(sys.argv[1] + '.dec', 'wb') as f:
f.write(s)
Пример расшифрованного файла:
Формат файла:
- случайная строка длиной от 10 до 19 символов;
- между тэгами <a>...</a> содержится PID процесса бэкдора;
- между тэгами <b>...</b> находится имя процесса;
- случайная строка длиной от 10 до 19 символов.
Троян проверяет наличие процесса с указанными параметрами и, если находит, то завершает свою работу.
Если процесса с указанными параметрами или же самого файла mdmslbv.inf не нашлось, троян формирует данные, как показано выше, шифрует и записывает в файл c:\windows\inf\mdmslbv.inf.
Связь с управляющим сервером
В троянскую программу вшит управляющий сервер: blog[.]globnewsline[.]com
Троян отправляет GET-запрос на следующий URL-адрес: hxxps://blog.globnewsline.com:443/db/db.asp , используя User-Agent «Mozilla/5.0 (X11; Windows x86_64; rv:70.0) Gecko/20100101 Firefox/70.0». Если ответ сервера содержит подстроку Website under construction , то троян считает, что управляющий сервер доступен. Если сервер недоступен, вредоносный код проверяет наличие файла с конфигурацией прокси-сервера c:\windows\inf\bksotw.inf и, при его наличии, считывает параметры, записанные в файле.
Бэкдор использует MAC-адреса в качестве ID бота сетевого интерфейса. Для heartbeat-запросов используются POST-запросы следующего вида:
https://blog.globnewsline.com:443/db/db.asp?m=w&n=~A<macaddr>.t
где <macaddr> — строка MAC-адреса, приведенная к верхнему регистру с вырезанными знаками двоеточия.
Следом отправляется GET-запрос на получение списка команд:
https://blog.globnewsline.com:443/db/A<macaddr>.c
Ответ сервера зашифрован так же, как и файл с PID-ом процесса бэкдора.
Возможные команды:
- up;
- down;
- bg;
- bgd;
- getinfo.
Результат команды шифруется так же, как была зашифрована команда, и отсылается в теле POST-запроса на следующий URL-адрес:
https://blog.globnewsline.com:443/db/A<macaddr>.c