Защити созданное

Другие наши ресурсы

  • free.drweb.kz — бесплатные утилиты, плагины, информеры
  • av-desk.com — интернет-сервис для поставщиков услуг Dr.Web AV-Desk
  • curenet.drweb.kz — сетевая лечащая утилита Dr.Web CureNet!
Закрыть

Библиотека
Моя библиотека

Чтобы добавить ресурс в библиотеку, войдите в аккаунт.

+ Добавить в библиотеку

Ресурсов: -

Последний: -

Моя библиотека

Поддержка
Круглосуточная поддержка | Правила обращения

Позвоните

Глобальная поддержка:
+7 (495) 789-45-86

ЧаВо | Форум

Ваши запросы

  • Все: -
  • Незакрытые: -
  • Последний: -

Позвоните

Глобальная поддержка:
+7 (495) 789-45-86

Свяжитесь с нами Незакрытые запросы: 

Профиль

Профиль

Назад к списку новостей

Trojan.DnsAmp.1 — подробности об угрозе

14 августа 2014 года

Компания "Доктор Веб" представляет подробное техническое описание вредоносной программы Trojan.DnsAmp.1.

Trojan.DnsAmp.1 — троянец, созданный китайскими вирусописателями и предназначенный для организации DDoS-атак. Является Windows-совместимой версией вредоносной программы семейства Linux.DnsAmp, о распространении которой компания «Доктор Веб» сообщала в мае 2014 года. Троянец состоит из дроппера, размещающего вредоносный файл на диске инфицированного компьютера, и нескольких файлов, в одном из которых реализован основной вредоносный функционал. Trojan.DnsAmp.1 способен реализовывать несколько видов DDoS-атак, в частности, Syn Flood, UDP Flood, Ping Flood, HTTP Get Flood, а также загружать и запускать на инфицированном ПК другие вредоносные программы.

Дроппер

Читает 0x90 байт с конца файла, после чего расшифровывает их с помощью алгоритма RC4 с ключом {F918FE01-164A-4e62-9954-EDC8C3964C1B}. Расшифрованные данные имеют следующую структуру:

struct DROP_INFO
{
    char szFirstDrop[0x40]; // имя первого файла
    DWORD dwFirstDropData; // смещение до первого файла
    DWORD dwFirstDropSize; // размер первого файла
    char szSecondDrop[0x40]; // имя второго файла
    DWORD dwSecondDropData; // смещение до второго файла
    DWORD dwSecondDropSize; // размер второго файла
}

Данные файлов располагаются по смещениям: "dwSecondDropData - dwFirstDropData" и "Filesize + 0x90 – dwSecondDropData". Далее дроппер расшифровывает файлы с помощью алгоритма RC4 с ключом {E5A42E7E-8130-4f46-BECC-7E43235496A6} для первого файла и ключом {ADAB6D32-3994-40e2-8C18-2F226306408C} для второго. Файлы сохраняются в папку %TEMP%, после чего запускаются.

Один из файлов является троянцем Trojan.DnsAmp.1

Установка

Устанавливает себя в систему под видом автоматически запускающейся службы с именем Windows Test My Test Server 1.0, создает собственную копию в папке %System32% под именем vmware-vmx.exe. После запуска проверяет текущую дату: если она ранее 2013-02-21, троянец бездействует.

Вредоносный функционал

Установив соединение с двумя командными серверами, отправляет туда собранную информацию о системе. Если на инфицированном компьютере используется ОС Windows 7 или Windows NT, то отправляемые данные будут иметь вид структуры PC_INFO_WIN7, для остальных версий ОС Windows данные будут иметь вид структуры PC_INFO.

struct PC_INFO
{
    DWORD signature; //"UU\t"
    char szOSVersion[16]; //версия ОС
    DWORD dwSpuSpeed; //скорость CPU в МГц
    BYTE dummy[492]; //нули
}
 
struct PC_INFO_WIN7
{
    DWORD signature;      //"UU\t"
    char szOSVersion[16]; //версия ОС
    BYTE dummy[48];       //нули
    DWORD dwSpuSpeed;     //скорость CPU в МГц
    BYTE dummy1[444];     //нули
}

Значение szOSVersion может являться одной из следующих строк:

Windows NT         
Windows 7          
Windows Server 2008
Windows Vista                  
Windows Server 2003
Windows XP         
Windows Server 2000

Отдельным потоком отправляет на сервер информацию о количестве переданных байтов через сетевые интерфейсы. Данные, отправляемые этим потоком, имеют вид:

struct PC_INFO_NETWORK_DATA
{
    DWORD signature; // "ИИ\b"
    DWORD dwPacketsCount; // Вычисленное количество переданных байт
    BYTE dummy[508]; //нули
}

Может загружать и запускать другие вредоносные приложения. После отправки данных троянец ожидает поступления команд от управляющего сервера. Принимаемые пакеты имеют вид:

struct CMD_PACKET
{
    DWORD Cmd; //команда
    BYTE Parameter[512]; //параметр для выполнения команды
}

Возможны три команды:

CmdКомандаКомментарий
0x88Начать DDoS
0x99Остановить DDoSСбрасывается флаг DDoS
0x77798 Загрузить и запустить на исполнение файл

При поступлении команды начать DDoS-атаку троянец проверяет текущее состояние соответствующего флага: если атака уже идет, команда игнорируется.

Формат параметра для DDoS команды имеет следующий вид:

struct DDOS_PARAMS
{
    char szHost; // С-строка содержащая IP адрес для атаки
    DWORD dummy[95]; //нули
    WORD wPort; // порт хоста, на который будет осуществлена атака
    WORD dummy2; // нули
    DWORD dwDuration; // длительность DDoS атаки в секундах
    DWORD dwThreadsCount; //количество потоков для DDoS атаки
    DWORD dwType; // тип DDoS атаки
    DWORD dwFlag; // дополнительный флаг, имеет разное значение при различных видах атак
}

Поддерживаемый тип атак

CmdТип атаки
0x01Syn Flood
0x02Syn Flood
0x03UDP Flood
0x04Ping Flood
0x05HTTP Get Flood

При портировании троянца с ОС Linux на ОС Windows авторы отказались от использования атаки типа DNS Amplification, заменив её на атаку типа HTTP Get Flood.

Загрузка файлов

Для скачивания файлов троянец загружает в память библиотеку urlmon.dll и получает адрес функции URLDownloadToFileA. Ссылка на скачивание файла находится по нулевому смещению параметра Parameter структуры CMD_PACKET.

Файл скачивается в папку %TEMP%, при этом имя файла формируется следующим образом:

DWORD GetRnd(DWORD modulus)
{
  DWORD dwTicks;
  dwTicks = GetTickCount();
  return ticks * (rand() + 3) % modulus;
}
...
dwRnd0 = GetRnd(26u) + 97;
dwRnd1 = GetRnd(26u) + 97;
dwRnd2 = GetRnd(26u) + 97;
dwRnd3 = GetRnd(26u) + 97;
dwRnd4 = GetRnd(26u) + 97;
wsprintfA(wszFileName, "%c%c%c%c%c.exe", dwRnd4, dwRnd3, dwRnd2, dwRnd1, dwRnd0);
strcat(szTmpDir, szFileName);

Новость об угрозе

Нам важно Ваше мнение

Комментарии размещаются после проверки модератором. Чтобы задать вопрос по новости администрации сайта, укажите в начале своего комментария @admin. Если ваш вопрос к автору одного из комментариев — поставьте перед его именем @


Другие комментарии