SHA1:
- afecbbc9d6dbc326fa448674b7b252c05e3c0c9b - BackDoor.Crane.1
- 33817963d25d8bf45bbaf8c09e6e82a26532b4e3 - CmdModule.dll
- 61e7f7a02d8b63af4b3738ca6086a442a4a72359 - DownloadModule.dll
- 5596a021c1a7532c876c13bf0645b863b322cf84 - FilelistingModule.dll
- 96ca14351bd7e34536b0cd945c3d952bfb0a5f6d - ScreenshotModule.dll
- 3aa2c53361d79172c0f6e8a57fad7f9f14667bf2 - UploadModule.dll
- 6a1d24439c15aa559b34e411f2f52d8fb564dba1 - UploadToAdminModule.dll
Модульный троянец-бэкдор, задействованный злоумышленниками при проведении целевой атаки на крупнейшие российские предприятия, занимающиеся производством портальных и грузоподъемных кранов, а также сопутствующего оборудования. Написан на языке С++, дата компиляции исследованного образца: Thu Apr 21 10:56:19 2016. Путь до отладочной информации:
C:\Users\User\Desktop\14\bin\Bot.pdb
После запуска создает отдельный поток, в котором выполняет все свои вредоносные функции. Проверяет наличие конфигурационного файла connfig.json в каталоге "%ALLUSERSPROFILE%\\yandex_service". В случае обнаружения получает оттуда необходимые для дальнейшей работы данные, при отсутствии создает такой файл с содержимым по умолчанию:
{
"frequency" : 60,
"id" : "*******",
"proxy" :
{
"host" : "",
"pass" : "",
"port" : 0,
"protocol" : 0,
"user" : ""
},
"script_name" : "***.php",
"servers" :
[
{
"host" : "*****.**",
"port" : 80,
"useSSL" : false
}
]
}
Определив имя папки, из которой он был запущен, троянец ищет собственные модули, перебирая файлы по маске:
< dir>\\modules\\*Module.dll
Обнаруженные модули загружаются в память с использованием LoadLibrary, при этом троянец проверяет, чтобы загружаемая библиотека имела экспорты GetModuleName, GetModuleCommand, CreateModule, DeleteModule, RunCommand.
После загрузки модулей вредоносная программа с определенной периодичностью обращается к управляющему серверу за заданиями. В первую очередь троянец регистрируется на сервере, при этом он отправляет на управляющий сервер сведения об инфицированном компьютере, включающие его имя, имя пользователя, IP-адрес и список запущенных процессов, а также сгенерированный определенным образом идентификатор бота. Примечательно, что в процессе обмена информацией с командным центром троянец использует в качестве значения параметра User-Agent строку «RSDN HTTP Reader».
{
"action":"auth",
"controller":"api",
"data":"
{
\"computer_name\":\"*****\",
\"frequency\":60,
\"id\":\"*****\",
\"network_interfaces\":[\"A.В.C.D\"],
\"processes\":[\"System\",\"smss.exe\",\"csrss.exe\",\"wininit.exe\",\"csrss.exe\",\"winlogon.exe\",\"services.exe\",\"lsass.exe\",\"lsm.exe\",\"svchost.exe\",\"svchost.exe\",\"svchost.exe\",\"svchost.exe\",\"svchost.exe\",\"svchost.exe\",\"svchost.exe\",\"explorer.exe\",\"spoolsv.exe\",\"taskhost.exe\",\"svchost.exe\",
\"proxy\":0,
\"script_name\":\"***.php\",
\"servers\":[{\"host\":\"***\",\"port\":80,\"userSSL\":false}],\"user_name\":\"user\"
}\n"
}
В ответ на этот запрос сервер отправляет подтверждение:
{"status":"SUCCESS"}
После этого троянец ожидает поступления команд, отправляя на сервер GET-запросы. Ответы сервера имеют формат JSON:
{"status":"SUCCESS","data":null}
В данном примере поле "data" не содержит данных, а значит, боту не нужно выполнять никаких команд. При отправке команды поле "data" имеет следующую структуру:
{
"id": <bot_id>,
"command": {
"command": <command_name>,
"cmd": {
"wait": true
}
}
}
где <bot_id> соответствует идентификатору бота, <command_name> - имя команды или модуля, которому предназначена команда. Сам троянец способен выполнять только одну команду: "updateConf" — обновление конфигурационного файла. Все остальные команды выполняются модулями.
Модули
Все модули имеют имена *Module.dll, располагаются в каталоге "<dir>\\modules\\" и имеют экспорты GetModuleName, GetModuleCommand, CreateModule, DeleteModule, RunCommand.
CreateModule
Создает структуру st_module и возвращает указатель на нее:
struct st_module
{
char * name;
char * command;
};
GetModuleName
Возвращает поле «name» структуры st_module.
GetModuleCommand
Возвращает поле «cmd» структуры st_module.
DeleteModule
Освобождает память, в которой была создана структура st_module.
RunCommand
Выполняет заданную команду.
CmdModule
Путь до отладочных символов: C:\Users\User\Desktop\14\bin\modules\CmdModule.pdb
name: "CmdModule"
command: "cmd"
Выполняет переданную команду с помощью интерпретатора команд cmd.
DownloadModule
Путь до отладочных символов: C:\Users\User\Desktop\14\bin\modules\DownloadModule.pdb
name: "DownloadModule"
command: "download"
Скачивает файл по заданной ссылке и сохраняет его в указанную папку на инфицированном компьютере.
FilelistingModule
Путь до отладочных символов: C:\Users\User\Desktop\14\bin\modules\FilelistingModule.pdb
name: "FilelistingModule"
command: "filelisting"
Составляет и передает на управляющий сервер перечень содержимого заданной директории.
ScreenshotModule
Путь до отладочных символов: C:\Users\User\Desktop\14\bin\modules\ScreenshotModule.pdb
name: "ScreenshotModule"
command: "screenshot"
Создает и передает на управляющий сервер снимки экрана.
UploadModule
Путь до отладочных символов: C:\Users\User\Desktop\14\bin\modules\UploadModule.pdb
name: "UploadModule"
command: "upload"
Загружает файл на указанный злоумышленниками сервер с использованием протокола FTP.
UploadToAdminModule
Путь до отладочных символов: C:\Users\User\Desktop\14\bin\modules\UploadToAdminModule.pdb
name: "UploadToAdminModule"
command: "uploadtoadmin"
Загружает файл на указанный злоумышленниками сервер с использованием протокола HTTP.