SHA1:
- 001c13d05841d2a82229a35fe58235743f1564fe (dropper)
- 0660cadef21d2061e776e4bcaa6aa4fb48a778be (avicap32.dll)
Троянец-бэкдор для Microsoft Windows, имеет самоназвание Spy-Agent. Для шпионажа использует компоненты программы удаленного администрирования TeamViewer. Троянец имеет три зашифрованных блока исполняемого кода, которые расшифровываются последовательно. Первый блок зашифрован с использованием BASE64 и XOR, остальные - BASE64 + RC4.
Основной вредоносный функционал сосредоточен в библиотеке avicap32.dll. После запуска троянец отключает показ ошибок для приложения TeamViewer. После чтения конфигурации зашифровывает ее локальным ключом и сохраняет в прежнее место. Устанавливает перехваты вызовов функций в адресном пространстве TeamViewer. Устанавливает атрибуты «скрытый», «системный» и «только для чтения» всем файлам в собственной папке.
Троянец имеет список контрольных сумм файлов TeamViewer и регулярно проверяет их с помощью функции API MapFileAndCheckSumA. Если для нормальной работы TeamViewer на атакованном компьютере не хватает каких-либо файлов или компонентов, троянец скачивает их со своего управляющего сервера. Для обеспечения автоматической загрузки троянец модифицирует соответствующие ветви системного реестра Windows, выбирая при этом ветви реестра HKCU или HKLM в зависимости от наличия или отсутствия административных прав.
Также троянец удаляет файл tvicap32.dll. Запускает отдельный поток, который «убивает» процессы TeamViewer, если на инфицированной машине будет запущен процесс TASKMGR.EXE или PROCEXP.EXE.
Вредоносная программа может использовать дополнительные модули-плагины, хранящиеся в файлах с расширением .pg в той же папке, где расположен троянец. Для их запуска бэкдор обходит собственную папку в поиске .pg-файлов, и при их обнаружении запускает несколько потоков (по количеству найденных файлов), которые расшифровывают эти файлы с использованием алгоритма RC4 и загружают их в память.
Для передачи сообщения о собственном состоянии троянец определяет положение курсора и по истечении указанного в конфигурации количества секунд отправляет на управляющий сервер следующий запрос:
http://188.***.***.27/windiws/update/gate.php?id=<TV_ID>&stat=<botId>&sidl=<cur_time>
Где адрес взят из конфигурации, <TV_ID> - ID TeamViewer, <botId> - уникальный идентификатор зараженного компьютера, <cur_time> - текущее время в формате "YYYY-MM-DD hh:mm:ss".
Дальнейшие запросы отправляются только в случае смены позиции курсора или если на компьютере нажата одна из следующих клавиш: VK_RETURN, VK_SPACE, VK_SHIFT. Тогда выполняется запрос:
http://188.***.***.27/windiws/update/gate.php?id=<TV_ID>&stat=<botId>&eidl=<cur_time>?cidl=<uptime>
Где адрес взят из конфигурации, <TV_ID> - ID TeamViewer, <botId> - уникальный идентификатор зараженного компьютера, <cur_time> - текущее время в формате "YYYY-MM-DD hh:mm:ss",
Для получения заданий от управляющего сервера троянец ожидает заданное в параметрах конфигурации количество секунд, после чего отсылает на управляющий сервер следующий запрос:
http://188.***.***.27/windiws/update/gate.php?id=<TV_ID>&stat=<botId>&cidl=<uptime>
Где адрес взят из конфигурации, <TV_ID> - ID TeamViewer, <botId> - уникальный идентификатор зараженного компьютера, <uptime> - время работы бэкдора в режиме простоя в секундах (с момента отправки последнего запроса серверу).
В полученном с управляющего сервера ответе троянец ищет знак "!" - это маркер начала команды. Затем он разбивает строку на массив строк с разделителями ';', '\r'. Первая строка в полученном массиве является командой.
После выполнения команд на сервер отправляется следующий запрос:
http://188.***.***.27/windiws/update/gate.php?id=<TV_ID>&stat=<botId>&cmd=&device=2
Троянец может выполнять следующие команды:
Команда | Описание |
---|---|
shutdown | Перезагрузить ПК |
poweroff | Выключить ПК |
delproc | Удалить TeamViewer |
restart | Перезапустить TeamViewer |
startaudio | Начать прослушивание звука с микрофона |
stopaudio | Завершить прослушивание звука с микрофона |
startvideo | Начать просмотр через веб-камеру |
stopvideo | Завершить просмотр через веб-камеру |
lexec | Скачать файл во временную папку (%TEMP%) и запустить его |
updef | Обновить конфигурационный файл или файл троянца |
vid | Определить наличие веб-камеры |
cmd | Подключиться по указанному адресу, после чего запустить cmd.exe с перенаправлением ввода-вывода на удаленный хост |
delpg | Удалить плагин с диска |
uppg | Скачать/обновить плагин |
upcfgpg | Заменить конфигурационный файл плагина на указанный в команде |
oftvdel | Переименовать avicap32.dll в tvicap32.dll |
noexit | Установить значение параметра в единицу |
cfgaudio | Установить значение для соответствующего параметра в конфигурации |
cfgvideo | |
cfgnomedia | |
cfghostfile | |
cfgwin7kill | |
cfgxpkill | |
cfgpgkey | |
fakedel | |
cfgpassteam | |
cfg | |
cfgnoexit | |
Cfggenid |