Упаковщик: отсутствует
Дата компиляции: 06:45:11 14.01.2019
SHA1-хеш:
- 2930efc03e958479568e7930f269efb1e2bcea5a
Описание
BackDoor.Mikroceen.11 представляет собой бэкдор, написанный на языке C++ и предназначенный для работы в 64-разрядных системах семейства Microsoft Windows. После установки совершает подключение к управляющему серверу напрямую или с использованием прокси-сервера, а затем приступает к выполнению команд злоумышленников. Способен собирать информацию о зараженном компьютере и выполнять команды путем перенаправления вывода командной оболочки на управляющий сервер. Использовался в целевых атаках на государственные учреждения Казахстана и Киргизии. В обоих случаях устанавливался на контроллер домена.
Принцип действия
Файл представляет собой динамическую библиотеку с единственной экспортируемой функцией NwsapServiceMain. Рассматриваемый образец был установлен в систему как служба и располагался в директории c:\windows\system32\nwsapagent.dll.
В процессе работы ведет журнал событий в файле %TEMP%\\WZ9Jan10.TMP. Сообщения обфусцированы, список возможных вариантов:
- WvSa6a7i — запуск трояна;
- Dfi1r5eJ — подключение к управляющему серверу напрямую;
- PVrVoGx0 —подключение к управляющему серверу через ранее определенный прокси-сервер;
- Q29uUHJv — сбой подключения;
- 10RDu6mf — сбой подключения к прокси-серверу;
- 8sQqvdeX:%d — ошибка приема данных от сервера;
- Lw3s1gMZ — ошибка при подключении к прокси-серверу;
- IsEArF1k — успешное подключение;
- CcFMGQb8 %s:%d — подключение к прокси-серверу, записанному в netlogon.cfg;
- RWehGde0 %s:%d — подключение к прокси-серверу, полученного парсингом файла WZ9Jan10.TMP;
- PV2arRyn %s:%d — подключение к прокси-серверу, найденному через tcptable;
- W560rQz5 — установка SSL-соединения.
Релевантные данные, такие как адрес управляющего сервера, зашифрованы простым сложением значения с каждым байтом строки. Фрагмент дешифровки:
for ( i = 0; i < lstrlenA(v4); ++i )
v4[i] += 32 - i;
BackDoor.Mikroceen.11 пытается подключиться к управляющему серверу напрямую. В случае неудачи пытается произвести подключение через прокси-сервер.
Подключение производится тогда, когда трояну известен адрес прокси-сервера. В противном случае читает файл %WINDIR%\\debug\\netlogon.cfg, который должен содержать строку вида IP:port.
Если файл netlogon.cfg отсутствует или через указанный в нем адрес подключение выполнить не удается, читает строку из своего собственного лога и парсит в ней IP:port.
В случае отсутствия подключения троян парсит информацию о текущих подключениях, затем ищет соединение со статусом MIB_TCP_STATE_ESTAB и следующими портами удаленного хоста: 80, 8080, 3128, 9080. Среди отобранных соединений ищет IP-адрес из подсетей: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16. Найденный подходящий адрес используется в качестве адреса прокси-сервера.
После успешного подключения собирает информацию о системе и заполняет следующую структуру:
#pragma pack(push, 1)
struct st_info
{
_WORD osproducttype;
_WORD processorarch;
_DWORD osservicepackmajor;
_DWORD osvermajor;
_DWORD osverminor;
_DWORD default_lcid;
_DWORD dword30001; // 30001
char id[16]; // "wsx"
char ip[16];
char hostname[32];
};
#pragma pack(pop)
BackDoor.Mikroceen.11 отправляет эту информацию на управляющий сервер и ожидает ответа. При обмене командами используется текстовый протокол, имена команд обфусцированы. Список команд представлен в следующей таблице:
Команда | Аргумент | Описание | Ответ |
---|---|---|---|
QHbU0hQo (команда файлового менеджера) | Прочитать файл | Первый QWORD — размер файла; далее — прочитанный файл блоками по 1024 байта | |
Ki0Swb7I | Получить информацию о логических дисках | Структура с информацией о дисках, но не более 1024 байт.
|
|
J8AoctiB | строка — команда; |
Запустить файловый менеджер | |
hwuvE43y (команда файлового менеджера) | QWORD — размер файла; |
Записать файл | QWORD — размер файла, если он уже существует |
h71RBG8X | строка — команда | Выполнить команду в командной оболочке; exit — закрытие командной оболочки | |
gRQ7mIYr | строка — путь до файла | Запустить файл через CreateProcessA | 4FJTUaUX в случае успеха |
eYTS5IwW | Завершить процесс командной оболочки | bo7aO8Nb (если оболочка не была запущена) | |
AmbZDkEx | строка — пароль | Начало обмена | kjoM4yJg (если аргумент совпадает с зашитой в файле строкой ("12345")) Mf7VLAnr (во всех других случаях) |
5fdi2TfG | Запустить командную оболочку с перенаправлением вывода на сервер |