Упаковщик: отсутствует
Дата компиляции: 2020-07-13
- SHA1-хеш: 1a4b8232237651881750911853cf22d570eada9e
Описание
Троян написан на языке C++. Используется для несанкционированного управления зараженным компьютером.
Принцип действия
В начале работы троян расшифровывает IP-адреса и порты C&C-сервера при помощи операции XOR:
import idaapi
address = 0x416200
for i in xrange(0x7c):
idaapi.patch_byte(address + i, idaapi.get_byte(address + i) ^ 0xEF)
Результат расшифровки:
C&C-сервер — 159.65.157.100:443
Связь с ним происходит с помощью сокетов:
В зависимости от времени будет выбрано подключение к нужному C&C-серверу:
Троян создает файл tmp.0 в папке %tmp%, который используется в качестве журнала логов.
Собирает информацию о системе:
Перед шифрованием и отправкой собранных данных Trojan.DownLoader43.44599 кладет каждое значение в стек. Все эти данные имеют следующий вид:
struct computer_info {
string computer_name;
string user_name;
uint32_t major_version;
uint32_t minor_version;
uint32_t build_number;
uint32_t computer_bitness;
string March01;
uint32_t code_page_id;
uint32_t oem_code_page_id;
};
Для шифрования собранной о системе информации используется алгоритм AES128 в режиме CBC.
Ключ и вектор инициализации зашиты внутрь:
Расшифровывать можно следующим образом:
from Crypto.Cipher import AES
key = '\x95\x2B\x2D\xBF\x09\xC5\x2F\x80\xB4\xBC\x47\x27\x29\xB3\x28\x09'
iv = '\x63\x5F\x72\x2A\xBB\xE3\xE8\x95\xF8\xF9\x32\x87\x53\x6A\x77\xFB'
enc = ...
decipher = AES.new(key, AES.MODE_CBC, iv)
open('dec', 'wb').write(decipher.decrypt(enc))
Цикл выполнения команд, полученных от C&C-сервера:
Таблица команд, составленная по результатам этого цикла:
ID команды | Команда |
---|---|
0x51 | Создание процесса cmd.exe |
0x52 | Выполнение команды exit в cmd.exe |
0x54 | Выполнение команд в cmd.exe |
0x60 | Создание потока, в котором происходит чтение, запись и шифрование файлов |