Дата компиляции:
- 03.04.2019 15:23:54
SHA1-хеш:
- 3884263dfe67a3da0079fe40d6186950b853145c
Описание
Троянская программа-бэкдор, работающая в среде 32-битных операционных систем семейства Microsoft Windows. Написана на C++. Ее основная функция – получение несанкционированного доступа к зараженным компьютерам и выполнение на них вредоносных действий по команде злоумышленников.
Принцип действия
При запуске BackDoor.Siggen2.3238 инициирует ряд предварительных проверок. Вначале он получает адреса следующих экспортируемых функций:
- CreateDirectoryExW
- NtQueryDirectoryFile
- NtDeleteFile
- NtWriteFile
- NtReadFile
- NtCreateFile
- NtSetInformationFile
Затем проверяет указатель на каждую из этих функций, используя следующий алгоритм:
Если данные по указателю совпали с проверяемыми, троян выделяет в памяти область размером в 1 байт, заполняет в ней нулями 10 байт и пытается освободить ее:
Данная операция выполняется для каждой экспортируемой функции. Наиболее вероятно, что так бэкдор проверяет наличие перехватов (хуков) в них и пытается аварийно завершить работающий процесс.
После этого BackDoor.Siggen2.3238 проверяет, совпадают ли вшитые в его код строки false и true. Если да, троян выполняет проверку на присутствие в системе компонентов виртуальных машин VMWare и VirtualBox – VMWare Guest Additions, Virtual Machine Additions и Virtualbox Guest Additions. После проверки наличия виртуальных машин ее результат обнуляется, и троян впадает в бесконечный цикл, в котором бездействует.
Основная функциональность
BackDoor.Siggen2.3238 способен поддерживать связь с управляющим сервером по двум протоколам: HTTP и HTTPS. В исследованном образце задействован протокол HTTPS. В запросах к серверу используется следующий User-Agent:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; SE)
При этом все запросы снабжаются следующим набором параметров:
%s;type=%s;length=%s;realdata=%send
где каждая строка %s соответственно заменяется на:
- идентификатор зараженного компьютера;
- тип отправляемого запроса;
- длину данных в поле realdata;
- данные.
По завершении предварительных проверок на начальном этапе работы BackDoor.Siggen2.3238 генерирует собственный идентификатор, используя следующую функцию:
Далее он собирает информацию об инфицированной системе и формирует строку вида:
lan=%s;cmpname=%s;username=%s;version=%s;
где lan – IP-адрес зараженного компьютера, cmpname – имя компьютера, username – имя пользователя, version – строка 0.0.4.03.
Эта информация с идентификатором sysinfo через POST-запрос отправляется на управляющий сервер, расположенный по адресу https://31.214.157.14/log.txt. Если в ответ BackDoor.Siggen2.3238 получает сигнал HEART, соединение считается успешным, и троян приступает к основному циклу общения с сервером.
Для получения новой команды бэкдор отправляет пакет с идентификатором команды HEART и данными heart. Последующий ответ сервера парсится регулярным выражением вида:
type=([^&]+);first=([^&]+);second=([^&]+);third=([^&]+);
Строка type в нем характеризует, какую именно команду требуется выполнить, тогда как остальные строки содержат параметры для команд.
BackDoor.Siggen2.3238 может получать следующие команды:
Команда | Описание |
---|---|
HEART | Heartbeat (сигнал-маяк, поддерживающий соединение сервера с бэкдором). |
OK | Подтверждение сервером успешного приема данных, переданных трояном. |
CMDINFO | Запустить cmd.exe с перенаправлением ввода-вывода в именованные каналы (pipes), через которые данные отправляются на сервер и обратно. |
PROCESSINFO | Собрать информацию о запущенных процессах. Информация по каждому процессу имеет вид proName=%1%;PID=%2%;proPath=%3%;Tport=%4%;Uport=%5%;descrip=%6%; |
PROCESSTERMINATE | Завершить процесс с указанным идентификатором PID. |
LISTDRIVE | Собрать информацию о дисках. Информация по каждому диску имеет вид diskName=%s;driveType=%s;. |
LISTFILE | Собрать листинг заданной директории. Информация по каждому файлу или каталогу имеет вид fileName=%1%;path=%2%;fileType=%3%;fileSize=%4%;access=%5%;create=%6%;. |
DELETEFILE | Удалить заданный файл. |
DOWNLOAD | Загрузить заданный файл на управляющий сервер. |
UPLOAD | Скачать заданный файл с управляющего сервера. |
RUN | Запустить заданный файл. |