Эксперты Group-IB проанализировали троян, атакующий клиентов банков США, и выложили в публичный доступ результаты глубокого разбора формата динамических конфигурационных данных с Python-скриптами и информацию по CnC-серверам.

image

В ноябре 2017 года команда исследователей из IBM X-Force опубликовала отчет по новому трояну — IcedID, который нацелен преимущественно на клиентов американских банков. Бот обладает многими возможностями печально известного вредоносного ПО Zeus, в том числе: загружает и запускает модули, собирает и передает на сервер аутентификационные данные, информацию о зараженном устройстве, осуществляет атаку man-in-the-browser (MITB). Несмотря на то, что по своим функциональным возможностям новый троян оказался похож на другие популярные банкеры — Trickbot, GOZI, Dridex, активно атакующие клиентов банков, IcedID использует нестандартный бинарный формат хранения конфигурационных данных. Другой отличительной особенностью этого вредоносного ПО является возможность развертывания прокси-сервера прямо на зараженнои? машине для проведения атаки MITB.

Текст: Иван Писарев, специалист по анализу вредоносного кода Group-IB

Сразу отметим, что IcedID не так сильно распространен по сравнению с другими троянами, однако уже сейчас имеет достаточно функциональных возможностей для достижения поставленных перед ним задач, из которых главной является кража учетных данных жертв. Достигнуть этого можно многими способами, начиная от банальной кражи файлов и записей реестра с зараженного компьютера, и заканчивая перехватом и изменением зашифрованного трафика браузера (атака man-in-the-browser).

В случае IcedID происходила кража данных из учетных записей: Windows Live Mail, Windows Mail, RimArts, Poco Systems Inc, IncrediMail, The Bat! и Outlook. Атака MITB производится при помощи Proxy-сервера, который троян поднимает на зараженном устройстве, тем самым пропуская весь сетевой трафик через себя и модифицируя его. Также IcedID имеет модуль обработки команд от сервера, позволяющий удаленно загружать и запускать файл (к примеру, в исследуемом случае семпл загрузил модуль VNC, программный код которого имеет схожие участки кода с IcedID).

Использование Proxy-сервера для MITB является нетипичным поведением для данного типа троянов. Чаще происходит встраивание вредоносной программы в контекст браузера и перенаправление вызовов функций из стандартных библиотек на ее функции-обработчики (пример: WinHttpConnect(), InternetConnect(), InternetReadFile(), WinHttpReadData() и т.д.). Ранее трюк с Proxy-сервером уже был использован в GootKit.

IcedID распространялся с помощью другого вредоносного ПО — Emotet (в настоящее время он часто используется как загрузчик, хотя имеет расширенные функциональные возможности) и уже на старте включал в себя обширный список современных методов хищения пользовательских данных.

Сейчас троян имеет достаточно слабые механизмы противодействия анализу (шифрование строк, header corrupt) и не имеет никаких методов VM-detect. С точки зрения исследователя, вредоносное ПО все еще находится в разработке и данные механизмы защиты будут добавлены позже.

Система киберразведки Group-IB Threat Intelligence не обнаружила продажи IcedID на тематических форумах, что означает либо появление новой группы на арене банковских троянов, либо продажу трояна по приватным каналам. Цели бота, судя по динамическим конфигурационным данным (далее – конфиги), расположены в основном в США.

Список целей
Chase
Charles Schwab
Bank of America
USAA
American Express
Wells Fargo
Capital One
Td Commercial Banking
TD Bank
Central Bank
U.S. Bank
Union Bank of California
Amazon
PNC Online Banking
Synovus
BB&T Bank
Citibank
eBanking
Huntington
Сashanalyzer
E-Trade
JPMorgan Chase
CIBC
Regions OnePass
Post Oak Bank
Comerica
Discover Bank
KeyBank
Frost Cash Manager
HSBC
RBC
Halifax
Verizon Wireless
Lloyds Bank
M&T Bank
VirWoX
ADP

Данная статья включает в себя подробный анализ трояна, глубокий разбор формата динамических конфигов с Python-скриптами и информацию по CnC.

Техническая часть


Общее описание работы трояна


Изначально секция .data трояна зашифрована. В первую очередь после запуска он расшифровывает секцию по алгоритму:

image

Переменные initial_seed и size_seed находятся вначале секции данных (первые 8 байт секции), после чего находятся зашифрованные данные размером size байт. Функция make_seed() – уникальная функция генератора псевдослучайных чисел (ГПСЧ) для IcedID, к которой мы еще неоднократно вернемся. Python-вариант функции вы можете найти тут.

Изначально бот содержит зашифрованные строки. С целью облегчения анализа для IDA Pro был написан скрипт, расшифровывающий строки (необходимо вставить адрес функции расшифрования в вашем семпле).

Следующий этап – добавление обработчика исключений при помощи функции SetUnhandledExceptionFilter(). При возникновении любого исключения в процессе работы приложения просто происходит его перезапуск.

После добавления обработчика исключений троян собирает информацию о зараженной системе:

  1. Версия ОС
  2. Номер сборки ОС
  3. Версия Service Pack
  4. Разрядность системы
  5. Тип ОС

Приложение создает дескриптор безопасности: D:(A;;GA;;;WD)(A;;GA;;;AN)S:(ML;;NW;;;S-1-16-0), после чего выделяет память для логирования информации в процессе работы трояна. Пример логируемых строк (строки были получены при помощи скрипта в IDA):

  1. E|C|IN|INS|ISF|CP %u
  2. I|C|IN|INT|CI| %u
  3. W|C|IN|INT|CI|CRLL

IcedID может принимать несколько параметров. Среди них:

  • --svc= — сохраняет строку из параметра в реестр по ключу с именем IcedID_reg(«*p*»), где IcedID_reg(str) — функция генерации имени ключа от строки str (алгоритм генерации имен ключей реестра будет описан позже), после чего троян обращается к событию с именем Global\<%Строка из случайных символов%>. В случае возникновения ошибки бот создает копию своего процесса с параметром /w=. Если и это не удалось сделать, создает значение в реестре:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\<%Строка длины 9 из случайных символов алфавита [a-z]%>

тем самым обеспечивая себе персистентность в системе. Данный ключ предназначен для первоначального запуска трояна.

  • /u – по умолчанию вредоносное ПО пытается запустить себя от имени администратора домена (посредством программы runas). Если присутствует данный флаг, троян не производит данную операцию и просто создает свою копию в директории C:\Users\<%username%>\AppData\Local\<%Строка длины 9 из случайных символов алфавита [a-z]%> с именем <%Строка длины 9 из случайных символов алфавита [a-z]%>.exe, и записывает путь к файлу в реестр, тем самым обеспечивая себе персистентность в системе.

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\<%Строка длины 9 из случайных символов алфавита [a-z]%>

Похоже, данный ключ используется при обновлении банкера. Перед перезапуском троян “засыпает” на 5 секунд.

  • /c – перед исполнением вредоносных функций троян «засыпает» на 5 секунд
  • /w= — сохраняет строку из параметра в реестр по ключу с именем IcedID_reg(«*p*»)

После обработки параметров приложение обращается к реестру и достает оттуда динамические конфигурационные данные, которые содержат CnC-адреса, а также Web-инжекты. Формат хранения данных в реестре описан в следующих разделах.

После обращения к реестру программа создает поток, который раз в 5 или 10 минут (в зависимости от внутреннего флага) обращается к CnC с целью получения команд. Тут стоит отметить нестандартный механизм «засыпания» бота между обращением к CnC: разработчики не стали использовать стандартную функцию Sleep(), вместо этого они создали событие в несигнальном состоянии и не переводя его в сигнальное состояние вызывают функцию WaitForSingleObject(). Функция создания потока обращения к CnC:

image

Аналог функции Sleep() в IcedID:

image

Долгий промежуток обращения к серверу, а также нестандартная «функция засыпания» скорее всего предназначены для противодействия анализу.

Для скрытия трафика между сервером и приложением используется протокол SSL.

После запуска потока бот «поднимает» на локальной машине Proxy-сервер с целью обработки трафика на зараженной машине.

Протокол общения сервера и зараженного устройства будут разобраны в следующих разделах. Однако стоит отметить, что вредоносная программа по команде сервера может обновлять конфиги, запускать и останавливать VNC-сервер, исполнять команды cmd.exe, загружать файлы.

Взаимодействие IcedID и CnC-сервера


Список CnC-адресов хранится в теле банкера в зашифрованном виде, а также в реестре в виде динамического конфига. Взаимодействие между сервером и трояном осуществляется при помощи протокола HTTPS. Данные отправляет на сервер POST-запросами, для получения данных использует GET.

Строка запроса к серверу имеет следующий вид:

<%CnC%> /forum/viewtopic.php?a=<%Integer%>&b=<%Long integer%>&d=<%Integer%>&e=<%Integer%>&<%Другие данные%>

Значение полей:

  • a – тип запроса, данное поле может принимать значения:
    Значение Действие
    0,1 Отправить информацию о зараженной машине
    2,3 Отправить другие данные на сервер
    4 Получить последнюю версию динамических конфигов и поместить их в реестр по ключу с именем IcedID_reg(«*cfg1»)
    5 Получить последнюю версию динамических конфигов и поместить их в реестр по ключу с именем IcedID_reg(«*cfg0»)
    6 Получить последнюю версию динамических конфигов и поместить их в реестр по ключу с именем IcedID_reg(«*rtd») (CnC-адреса)
    7 Получить последнюю версию VNC-модуля
    8 Получить последнюю версию бота
  • b – ID бота
  • d – флаг
  • e – константа, находится непосредственно в коде бота

Далее значения полей зависят от поля «a». Если оно равно 0 либо 1, то запрос выглядит следующим образом:

POST /forum/viewtopic.php?a=<%0 или 1%>&b=<%BotID%>&d=<%Integer%>&e=<%Constant%>&f=<%Cfg1 Checksum%>&g=<%Cfg0 Checksum%>&h=<%Rtd Checksum%>&r=<%VNС Checksum%>&i=<%Время запроса%> HTTP/1.1
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length:

Тело запроса содержит информацию о зараженной машине. Информация предоставляется в виде:

k=<%String%>&l=<%String%>%j=<%Integer%>&n=<%Integer%>&m=<%String%>

Где:

  • k – имя компьютера в UNICODE
  • l – участник домена в UNICODE
  • m – Информация о системе:
    1. Версия ОС
    2. Номер сборки ОС
    3. Версия Service Pack
    4. Разрядность системы
    5. Тип ОС

Если поле равно 2 либо 3, то запрос выглядит следующим образом:

POST /forum/viewtopic.php?a=<%3 или 2%>&b=<%BotID%>&d=<%Integer%>&e=<%Constant%> HTTP/1.1
Connection: close
Content-Type: application/octet-stream
Content-Length:

В противном случае запрос выглядит следующим образом:

GET /forum/viewtopic.php?a=<%4-8%>&b=<%BotID%>&d=<%Integer%>&e=<%Constant%>&o=<%Object checksum%>
HTTP/1.1
Connection: close

Content-Type: application/x-www-form-urlencoded
Content-Length:

Примеры запросов представлены на рисунках ниже. Заголовок пакета при обращении к серверу:

image

Тело сообщения:

image

Троян может принимать команды от сервера. Команды представлены в виде целочисленных значений. Все команды приходят боту в виде строк, параметры которой разделены символом «;». Программа может обрабатывать 23 команды:

Команда Значение
0 Ничего не делает (вероятно в дальнейшем будет добавлен функционал)
1 Обновить значение по ключу реестра с именем IcedID_reg(«*cfg0»)
2 Обновить значение по ключу реестра с именем IcedID_reg(«*cfg1»)
3 Обновить значение по ключу реестра с именем IcedID_reg(«*rtd»)
4 Загрузить файл, сохранить в директории AppData и исполнить
5 Запустить программу, имя и аргументы запуска приходят как параметры
6 Получить информацию о запущенных процессах, среди которых: PID и имя процесса
7 Выключить компьютер с информацией, в качестве параметров функции:
SHTDN_REASON_FLAG_PLANNED
SHTDN_REASON_MINOR_INSTALLATION
SHTDN_REASON_MAJOR_APPLICATION

8 Записать значение в реестр (имя генерируется на основании алгоритма, описанного ниже)
9 Прочитать значение в реестре (имя генерируется на основании алгоритма, описанного ниже)
10 Удалить ключ из реестра (имя генерируется на основании алгоритма, описанного ниже)
11 Запустить расширенный модуль обработки команд от сервера
12 Остановить работу расширенного модуля обработки команд от сервера
13 Обновить VNC модуль (расположен в директории %TEMP%)
14 Получить список файлов на рабочем столе зараженного устройства
15 Загрузить файл, сохранить его с именем <%Строка из случайных символов%>.tmp и запустить его с ключом \u. Похоже, данная команда необходима для обновления версии бота на зараженном устройстве.
16 Удалить файл, имя которого содержит строку (приходит как параметр)
17 Запустить модуль распространения по сети. Распространение происходит посредством копирования и запуска бота в директорию Windows на другое устройство при помощи протокола LDAP.
18 Получить лог-данные бота
19 Перевести событие обращения к серверу в сигнальное состояние
20 Получить данные учетных записей следующих приложений: Windows Live Mail, Windows Mail, RimArts, Poco Systems Inc, IncrediMail, The Bat! и Outlook
21 Изменить интервал между обращением к серверу
22 Получить путь из переменной окружения, скачать файл и сохранить его по данному пути
21 Загрузить файл в директорию AppData, запустить его с параметрами /t=<%Хендл специально сгенерированного события%> /f=<%Хендл 2 специально сгенерированного события%>. После перевода событий в сигнальное состояние загруженый файл удаляется из директории AppData

В случае успешного исполнения команды троян отправляет на сервер строку «True», иначе «False».

В случае получения команды на запуск модуля расширенных команд приложение отправляет на сервер два байта, после чего ожидает ответ. Первый полученный от сервера байт соответсвует расширенной команде из таблицы:

Команда Значение
5 Запустить поток, исполняющий на зараженной машине команды cmd.exe.
6 Запустить VNC-сервер. В исследуемом случае VNC-сервер был представлен в виде DLL-библиотеки, которая имела схожий алгоритм шифрования строк. VNC-сервер представлял из себя DLL-библиотеку, которая запускалась при помощи функции CreateProcessA() с параметрами rundll32.exe kernel32,Sleep -s <%Путь к DLL%>, либо с параметрами svchost.exe -s <%Имя из алфавита [0-9A-Z]%>. Для запуска VNC-модуля при помощи функции CreateDesktop() бот создает Desktop с именем Default1<%Номер VNC-сессии%>. В качестве параметра передавался адрес ранее загруженного VNC-модуля.
7 Исполнить команду из таблице выше. Для получения обычной команды троян отправляет на сервер два символа, уведомляющих сервер о готовности принятием бота команд.

Как видно из представленного списка IcedID обладает широким спектром возможностей для полного управления зараженной машиной. Даже если оператор столкнется с проблемой отсутствия какой-либо функции, он просто загрузит при помощи трояна другую программу и выполнит поставленные перед ним задачи. К примеру, в конце декабря 2017 года нами было зафиксировано распространение с помощью данного банкера TrickBot’a.

Информация о конфигурационных данных


Генерация имен для записей в реестре


Все конфигурационные данные, которые программа получает от сервера, хранятся в реестре зараженного устройства (за исключением VNC-модуля, который хранится в директории %TEMP% в формате tmp%0.8X01.dat).

Имена ключей реестра, в которых хранятся интересующие нас конфигурационные данные, вычисляются при помощи следующей функции:

image

Как видно из представленного рисунка, имя ключа – MD5-хеш значение от двух переменных – str и computerSeed. От значения первой переменной зависит какого типа данные хранятся в переменной реестра. К примеру, при значении переменной – *cfg0 или *cfg1 ключ реестра хранит Web-инжекты, при значении *rtd ключ хранит список CnC.

computerSeed – уникальная для конкретного пользователя переменная. Высчитывается она на основании SID’a пользователя. В скрипте представлена python-версия вычисления данной переменной.

Полный путь к конфигурационным записям в реестре:

HKEY_CLASSES_ROOT\CLSID\<%MD5-значение в формате: {%0.8X-%0.4X-%0.4X-%0.4X-%0.4X%0.8X}%>

Описанный выше алгоритм как раз и является алгоритмом генерации имени IcedID_reg(), которые неоднократно упоминался выше.

Мы обнаружили следующие значения строк, которые учувствуют в генерации имен реестра важной для банкера информации:

  • *cfg0 — содержит в себе общий список Web-инжектов
  • *cfg1 — содержит в себе список адресов и строк для полной кражи данных страницы
  • *rtd — список CnC-адресов
  • *bc* — уведомляет о состоянии модуля обработки расширенных команд от сервера. Если данная запись присутствует в реестре – модуль запущен
  • *p* — сохраняет параметры запуска с ключами --svc= и /w=

Структура хранения динамических конфигурационных файлов


Динамические конфиги хранятся в реестре в зашифрованном виде. VNC-сервер, который находится в %TEMP% директории, зашифрован аналогичным образом.

Для шифрования данных используются два алгоритма: собственный алгоритм трояна и RC4. Схема алгоритма расшифрования:

image

Давайте перейдем от теории к практике. Изначально зашифрованные данные после прочтения из реестра:

image

После получения данных вредоносная программа расшифровывает их при помощи собственного алгоритма:

image

И мы снова встречаемся с функцией make_seed()!

После расшифрования имеем (обратите внимание на адреса – расшифровывается в том же участке памяти):

image

После уже второго расшифрования в памяти мы видим следующее:

image

После данные разархивируются и парсятся. Примечательно, что перед освобождением памяти данные обратно зашифровываются по RC4 — защита от динамического анализа приложения.

Дальнейшая структура данных зависит от типа конфигурационных данных. К примеру, конфигурационные данные с префиксом rtd хранятся в формате:

typedef struct CNCStruct {  
    char md5sum[128];
    int checksum;
    BStrings cnc[N];
} CNCStruct;

typedef struct BStrings {
    int length;
    char str[length];
} BStrings;

Список CnC-адресов в одном из исследований:

image

Перед обращением к CnC-адресам из полученного списка бот проверяет цифровую подпись. Ключ для проверки подписи хранится в теле бота в зашифрованном виде.

Конфигурации с префиксом cfg хранятся в формате:

typedef struct CfgStruct {
    int checksum;
    int elements_count;
    char config[];
} CfgStruct;

В исследуемом случае мы видели следующие данные:

image

Данные хранятся в уникальном бинарном формате, который будет рассмотрен далее.

Алгоритм генерации ключей реестра, а также расшифрования конфигурационных данных вы можете посмотреть в скрипте.

Алгоритм разбора конфигурационных данных


После расшифрования данных программа парсит их и сохраняет в виде связного списка, который в дальнейшем участвует при анализе трафика на зараженном устройстве (MITB). В первую очередь данные разбиваются на блоки, которые имеют структуру:

typedef struct BaseBlock {
    int size;
    char type;
    char global_flag; 
    char data[size - 6];
} BaseBlock; 

Структура поля data зависит от флага type. Флаг в данной структуре говорит о том, что происходит при обнаружении строки в URL/теле запроса. Поле может принимать следующие значения:

Флаг Значение
0x10 Частичная замена тела страницы, в качестве параметров – теги, между которыми необходимо провести замену, а также значение, на которое будет заменено тело
0x11,0x13 Частичная замена тела страницы, в качестве параметров – участок страницы, который необходимо заменить, а также значение, на которое будет заменено тело
0x12 Полная замена тела страницы
0x20 Кража тела страницы. В качестве параметров – теги, между которыми находится интересующий участок страницы
0x21 Полная кража тела страницы
0x22 Полная кража тела страницы, тело сохраняется в реестр
0x2E Поиск в теле страницы строк с тегами 0x40 и 0x41, в случае обнаружения – кража тела страницы
0x30 Блокирование запроса
0x31 Сделать screenshot страницы
0x32,0x33 Редирект на другую страницу (путь к странице — один из параметров). Помимо этого в качестве параметра — строка <%Registry Salt%>#<%URL%>, бот обращается к <%URL%>, загружает оттуда данные, после чего сохраняет их в реестр по ключу IcedID_reg(<%Registry Salt%>)
0x34 Редирект на другую страницу (путь к странице — один из параметров)
0x40,0x41 Строки-паттерны в теле страницы
0x51 Проигнорировать страницу
0x60 Сохранить значение переменной в реестр (заменяет тело страницы на «True» либо «False» в зависимости от результата выполнения команды, имя генерируется на основании алгоритма, описанного выше)
0x61 Продемонстрировать переменную из реестра (имя генерируется на основании алгоритма, описанного выше)
0x62 Удалить переменную из реестра (заменяет тело страницы на «True» либо «False» в зависимости от результата выполнения команды, имя генерируется на основании алгоритма, описанного выше)
0x63 Запустить расширенный модуль обработки команд от сервера (заменяет тело страницы на «True» либо «False» в зависимости от результата выполнения команды)
0x64 Сохранить тело страницы в память бота (заменяет тело страницы на «True» либо «False» в зависимости от результата выполнения команды)
Структура поля data если type равен 0x40 или 0x41:

typedef struct ConfigBlock {
    BStrings patterns[N];
    int(0);
} ConfigBlock;

Иначе структура поля:

typedef struct BaseBlock {
    int typeSizeStr;
    string urlStr;
    int flagSize;
    char flag[flagSize];
    int firstOptStrSize;
    char firstOptStr[firstOptStrSize];
    int secondOptStrSize;
    char secondOptStr[secondOptStrSize];
    int thirdOptStrSize;
    char thirdOptStr[thirdOptStrSize];
} BaseBlock; 

Давайте поближе рассмотрим один из блоков семпла:

image

Обратим в первую очередь внимание на поле «Config block type» в блоке «Config block common information». Оно равно 0x11 – значит, что при загрузке пользователем страницы, URL которой попадает под правило регулярного выражения ^[^=]*\/wcmfd\/wcmpw\/CustomerLogin$ произойдет замена в теле страницы строки <body (второй аргумент) на строку <body style=«display: none;» (третий аргумент).

В памяти приложения для каждого из типов создается связный список. Алгоритм парса на связные списки представлен на рисунке ниже в виде скрина IDA Pro. Python-скрипт парса конфигурационных данных вы можете увидеть тут.

image

Информация по CnC


За несколько месяцев наблюдения за развитием IcedID мы обнаружили много доменов, которые троян включал в список динамических конфигов в раздел CnC. Домены представим в виде соответствия (e-mail с которого происходила регистрация > домен):
Почта Домены
davidphugley@jourrapide.com percalabia.com
borrespons.com
divorough.com
eyrannon.com
britically.com
joshuastaube@dayrep.com manismay.com
deterhood.com
marrivate.com
greatoric.com
phonetarif.com
CynthiaTHeller@grr.la binncu.net
PatriceAAdams@grr.la arcadyflyff.com
LindaJRowan@dayrep.com yutlitsi.com
SeanHumphreys@pokemail.net urnachay.com
RuthFThigpen@pokemail.net oksigur.net
FlorenceTButler@pokemail.net rfisoty.com
FreidaDDelgado@pokemail.net urnisim.net
TinaLHobson@grr.la cupicratings.com
ElisaRTucker@pokemail.net freegameshacks.net
DaleKMontes@pokemail.net gordondeen.net
patrickggutierez@dayrep.com poorloo.com
dismissey.com
euphratt.com
detrole.com
JustineRBoatner@pokemail.net lumpyve.com
MatthewAPerkins@grr.la gooblesooq.com
fzlajsf.net
JosephLSmith@grr.la newpctoday.com
triodgt.com
DominicNDecker@pokemail.net onsunga.net
MarcellaBCraighead@pokemail.net rybatas.com
KellyJMaldonado@grr.la netocraze.net
irtazin.net

Давайте теперь подробно рассмотрим пользователей, на которые были зарегистрированы домены:

Информация о регистрирующих лицах
Почта davidphugley@jourrapide.com:

  • Registrar: PDR Ltd. d/b/a PublicDomainRegistry.com
  • Name: David P. Hugley (registrant, admin, tech)
  • Street: 2453 Round Table Drive (registrant, admin, tech)
  • City: Hamilton (registrant, admin, tech)
  • State: Ohio (registrant, admin, tech)
  • Postal: 45011 (registrant, admin, tech)
  • Country: US (registrant, admin, tech)
  • Phone: 15138878784 (registrant, admin, tech)

Почта joshuastaube@dayrep.com:

  • Registrar: PDR Ltd. d/b/a PublicDomainRegistry.com
  • Name: Joshua S. Taube (registrant, admin, tech)
  • Organization:
  • Street: 2173 Kyle Street (registrant, admin, tech)
  • City: Hay Springs (registrant, admin, tech)
  • State: Nevada (registrant, admin, tech)
  • Postal: 69347 (registrant, admin, tech)
  • Country: US (registrant, admin, tech)
  • Phone: 13086385612 (registrant, admin, tech)

Почта CynthiaTHeller@grr.la:

  • Registrar: Eranet International Limited
  • Name: Cynthia Heller (registrant, admin, billing, tech)
  • Organization:
  • Street: 396 Tennessee Avenue (registrant, admin, billing, tech)
  • City: Southfield (registrant, admin, billing, tech)
  • State: MX (registrant, admin, billing, tech)
  • Postal: 48034 (registrant, admin, billing, tech)
  • Country: US (registrant, admin, billing, tech)
  • Phone: 12482469621 (registrant, admin, billing, tech)

Почта PatriceAAdams@grr.la:

  • Registrar: Eranet International Limited
  • Name: Patrice Adams (registrant, admin, billing, tech)
  • Organization
  • Street: 3997 Marietta Street (registrant, admin, billing, tech)
  • City:Cazadero (registrant, admin, billing, tech)
  • State: JL (registrant, admin, billing, tech)
  • Postal: 95421 (registrant, admin, billing, tech)
  • Country: US (registrant, admin, billing, tech)
  • Phone: 17076322681 (registrant, admin, billing, tech)

Почта LindaJRowan@dayrep.com:

  • Registrar: Eranet International Limited
  • Name: Linda Rowan (registrant, admin, billing, tech)
  • Organization:
  • Street: 1908 Luke Lane (registrant, admin, billing, tech)
  • City: Elk City (registrant, admin, billing, tech)
  • State: EK (registrant, admin, billing, tech)
  • Postal: 73644 (registrant, admin, billing, tech)
  • Country: US (registrant, admin, billing, tech)
  • Phone: 15802259140 (registrant, admin, billing, tech)

Почта SeanHumphreys@pokemail.net:

  • Registrar: Eranet International Limited
  • Name: Sean Humphreys (registrant, admin, billing, tech)
  • Organization:
  • Street: 4661 Kincheloe Road (registrant, admin, billing, tech)
  • City: Portland (registrant, admin, billing, tech)
  • State: EL (registrant, admin, billing, tech)
  • Postal: 97205 (registrant, admin, billing, tech)
  • Country: US (registrant, admin, billing, tech)
  • Phone: 16384273711 (registrant, admin, billing, tech)

Почта RuthFThigpen@pokemail.net:

  • Registrar: Eranet International Limited
  • Name: Ruth Thigpen (registrant, admin, billing, tech)
  • Organization
  • Street: 765 Michael Street (registrant, admin, billing, tech)
  • City: Houston (registrant, admin, billing, tech)
  • State: DK (registrant, admin, billing, tech)
  • Postal: 77021 (registrant, admin, billing, tech)
  • Country: US (registrant, admin, billing, tech)
  • Phone: 17137485876 (registrant, admin, billing, tech)

Почта FlorenceTButler@pokemail.net:

  • Registrar: Eranet International Limited
  • Name: Florence Butler (registrant, admin, billing, tech)
  • Organization:
  • Street: 4554 Par Drive (registrant, admin, billing, tech)
  • City: Lompoc (registrant, admin, billing, tech)
  • State: JL (registrant, admin, billing, tech)
  • Postal: 93436 (registrant, admin, billing, tech)
  • Country: US (registrant, admin, billing, tech)
  • Phone: 198058660048 (registrant, admin, billing, tech)

Почта FreidaDDelgado@pokemail.net:

  • Registrar: Eranet International Limited
  • Name: Freida Delgado (registrant, admin, billing, tech)
  • Organization:
  • Street: 4439 Burning Memory Lane (registrant, admin, billing, tech)
  • City: Philadelphia (registrant, admin, billing, tech)
  • State: BX (registrant, admin, billing, tech)
  • Postal: 19115 (registrant, admin, billing, tech)
  • Country: US (registrant, admin, billing, tech)
  • Phone: 12153306416 (registrant, admin, billing, tech)

Почта TinaLHobson@grr.la:

  • Registrar: Eranet International Limited
  • Name: Tina Hobson (registrant, admin, billing, tech)
  • Organization:
  • Street: 3960 Woodridge Lane (registrant, admin, billing, tech)
  • City: Memphis (registrant, admin, billing, tech)
  • State: TN (registrant, admin, billing, tech)
  • Postal: 38110 (registrant, admin, billing, tech)
  • Country: US (registrant, admin, billing, tech)
  • Phone: 19012994734 (registrant, admin, billing, tech)

Почта ElisaRTucker@pokemail.net:

  • Registrar: Eranet International Limited
  • Name: Elisa Tucker (registrant, admin, billing, tech)
  • Organization
  • Street: 3316 Corbin Branch Road (registrant, admin, billing, tech)
  • City: Johnson City (registrant, admin, billing, tech)
  • State: TN (registrant, admin, billing, tech)
  • Postal: 37601 (registrant, admin, billing, tech)
  • Country: US (registrant, admin, billing, tech)
  • Phone: 14234332211 (registrant, admin, billing, tech)

Почта DaleKMontes@pokemail.net:

  • Registrar: Eranet International Limited
  • Name: Dale Montes (registrant, admin, billing, tech)
  • Organization:
  • Street: 2719 Norman Street (registrant, admin, billing, tech)
  • City: Los Angeles (registrant, admin, billing, tech)
  • State: JL (registrant, admin, billing, tech)
  • Postal: 90008 (registrant, admin, billing, tech)
  • Country: US (registrant, admin, billing, tech)
  • Phone: 13232919311 (registrant, admin, billing, tech)

Почта patrickggutierez@dayrep.com:

  • Registrar: PDR Ltd. d/b/a PublicDomainRegistry.com
  • Name: Patrick G. Gutierez (registrant, admin, tech)
  • Organization:
  • Street: 1146 Mount Olive Road (registrant, admin, tech)
  • City: Atlanta (registrant, admin, tech)
  • State: Georgia (registrant, admin, tech)
  • Postal: 30328 (registrant, admin, tech)
  • Country: US (registrant, admin, tech)
  • Phone: 16789874672 (registrant, admin, tech)

Почта JustineRBoatner@pokemail.net:

  • Registrar: Eranet International Limited
  • Name: Justine Boatner (registrant, admin, billing, tech)
  • Organization:
  • Street: 2875 Kemper Lane (registrant, admin, billing, tech)
  • City: Kearns (registrant, admin, billing, tech)
  • State: YT (registrant, admin, billing, tech)
  • Postal: 84118 (registrant, admin, billing, tech)
  • Country: US (registrant, admin, billing, tech)
  • Phone: 18019026902 (registrant, admin, billing, tech)

Почта MatthewAPerkins@grr.la:

  • Registrar: Eranet International Limited
  • Name: Matthew Perkins (registrant, admin, billing, tech)
  • Organization:
  • Street: 2507 Locust Street (registrant, admin, billing, tech)
  • City: Ellaville (registrant, admin, billing, tech)
  • State: QZ (registrant, admin, billing, tech)
  • Postal: 31806 (registrant, admin, billing, tech)
  • Country: US (registrant, admin, billing, tech)
  • Phone: 12299379022 (registrant, admin, billing, tech)

Почта JosephLSmith@grr.la:

  • Registrar: Eranet International Limited
  • Name: Joseph Smith (registrant, admin, billing, tech)
  • Organization:
  • Street: 2808 Ruckman Road (registrant, admin, billing, tech)
  • City: Oklahoma City (registrant, admin, billing, tech)
  • State: EK (registrant, admin, billing, tech)
  • Postal: 73102 (registrant, admin, billing, tech)
  • Country: US (registrant, admin, billing, tech)
  • Phone: 14058506091 (registrant, admin, billing, tech)

Почта DominicNDecker@pokemail.net:

  • Registrar: Eranet International Limited
  • Name: Dominic Decker (registrant, admin, billing, tech)
  • Organization:
  • Street: 1169 Golden Ridge Road (registrant, admin, billing, tech)
  • City: Gloversville (registrant, admin, billing, tech)
  • State: NY (registrant, admin, billing, tech)
  • Postal: 12078 (registrant, admin, billing, tech)
  • Country: US (registrant, admin, billing, tech)
  • Phone: 15187485876 (registrant, admin, billing, tech)

Почта MarcellaBCraighead@pokemail.net:

  • Registrar: Eranet International Limited
  • Name: Marcella Craighead (registrant, admin, billing, tech)
  • Organization:
  • Street: 1659 Lilac Lane (registrant, admin, billing, tech)
  • City: Savannah (registrant, admin, billing, tech)
  • State: QZ (registrant, admin, billing, tech)
  • Postal: 31401 (registrant, admin, billing, tech)
  • Country: US (registrant, admin, billing, tech)
  • Phone: 19125956971 (registrant, admin, billing, tech)

Почта KellyJMaldonado@grr.la:

  • Registrar: Eranet International Limited
  • Name: Kelly Maldonado (registrant, admin, billing, tech)
  • Organization: NA
  • Street: 4391 Ben Street (registrant, admin, billing, tech)
  • City: Albany (registrant, admin, billing, tech)
  • State: NY (registrant, admin, billing, tech)
  • Postal: 12207 (registrant, admin, billing, tech)
  • Country: US (registrant, admin, billing, tech)
  • Phone: 15182623616 (registrant, admin, billing, tech)


И наконец, рассмотрим хронологию изменения IP-адресов доменов. В таблицу были добавлены все IP-адреса начиная с ноября 2017 года:

Таблица IP-адресов
Domain IP Country First seen in the wild
gooblesooq.com 185.127.26.227 RU 11/7/2017
irtazin.net 185.127.26.227 RU 11/7/2017
netocraze.net 185.5.251.33 RU 11/7/2017
triodgt.com 185.5.251.33 RU 11/7/2017
newpctoday.com 185.5.251.33 RU 11/7/2017
fzlajsf.net 185.127.26.227 RU 11/25/2017
netocraze.net 185.48.56.139 NL 11/27/2017
triodgt.com 185.48.56.139 NL 11/27/2017
newpctoday.com 185.48.56.139 NL 11/29/2017
netocraze.net 185.22.65.17 KZ 12/1/2017
triodgt.com 185.22.65.17 KZ 12/1/2017
newpctoday.com 185.22.65.17 KZ 12/1/2017
gordondeen.net 185.127.26.227 RU 12/11/2017
netocraze.net 46.148.26.106 UA 12/11/2017
arcadyflyff.com 46.148.26.106 UA 12/12/2017
cupicratings.com 46.148.26.106 UA 12/12/2017
freegameshacks.net 185.127.26.227 RU 12/12/2017
newpctoday.com 46.148.26.106 UA 12/13/2018
onsunga.net 107.150.99.20 CN 12/17/2017
oksigur.net 107.150.99.20 CN 12/17/2017
rfisoty.com 107.150.99.20 CN 12/17/2017
rybatas.com 107.150.99.20 CN 12/17/2017
urnachay.com 107.150.99.20 CN 12/17/2017
rfisoty.com 46.148.26.106 UA 1/24/2018
rybatas.com 185.127.26.227 RU 1/24/2018
urnachay.com 185.127.26.227 RU 1/24/2018
yutlitsi.com 185.127.26.227 RU 1/24/2018
urnisim.net 185.127.26.227 RU 1/24/2018
oksigur.net 185.127.26.227 RU 1/26/2018
urnachay.com 109.234.35.121 RU 1/31/2018
oksigur.net 109.234.35.121 RU 1/31/2018
yutlitsi.com 109.234.35.121 RU 2/1/2018
urnisim.net 109.234.35.121 RU 2/1/2018
divorough.com 46.148.26.106 UA 2/21/2018
percalabia.com 109.234.35.121 RU 2/22/2018
borrespons.com 46.148.26.106 UA 2/26/2018
britically.com 46.148.26.106 UA 2/26/2018
eyrannon.com 109.234.35.121 RU 2/26/2018
deterhood.com 109.234.35.121 RU 3/1/2018
greatoric.com 109.234.35.121 RU 3/1/2018
manismay.com 46.148.26.106 UA 3/1/2018
marrivate.com 109.234.35.121 RU 3/1/2018
moindal.com 46.148.26.106 UA 3/1/2018
phonetarif.com 46.148.26.106 UA 3/1/2018
moindal.com 185.169.229.119 CH 3/5/2018
dismissey.com 46.148.26.106 UA 4/3/2018
euphratt.com 109.234.35.121 RU 4/4/2018
percalabia.com 46.148.26.11 UA 4/23/2018
deterhood.com 46.148.26.11 UA 4/24/2018
eyrannon.com 46.148.26.11 UA 4/24/2018
greatoric.com 46.148.26.11 UA 4/24/2018
marrivate.com 46.148.26.11 UA 4/24/2018
euphratt.com 46.148.26.11 UA 4/25/2018
borrespons.com 185.48.56.134 NL 5/7/2018
britically.com 185.48.56.134 NL 5/7/2018
dismissey.com 185.48.56.134 NL 5/7/2018
divorough.com 185.48.56.134 NL 5/7/2018
rfisoty.com 185.48.56.134 NL 5/7/2018
detrole.com 109.236.87.25 NL 5/8/2018
manismay.com 185.48.56.134 NL 5/8/2018
phonetarif.com 185.48.56.134 NL 5/13/2018
binncu.net 46.148.26.106 UA 5/17/2018
urnisim.net 46.148.26.11 UA 5/17/2018
urnachay.com 46.148.26.11 UA 5/18/2018
yutlitsi.com 46.148.26.11 UA 5/18/2018
oksigur.net 46.148.26.11 UA 5/21/2018
greatoric.com 5.187.0.158 DE 5/22/2018
marrivate.com 5.187.0.158 DE 5/22/2018
percalabia.com 5.187.0.158 DE 5/22/2018
urnachay.com 5.187.0.158 DE 5/22/2018
yutlitsi.com 5.187.0.158 DE 5/22/2018
lumpyve.com 185.48.56.134 NL 5/24/2018
urnisim.net 5.187.0.158 DE 5/27/2018
borrespons.com 85.143.202.82 RU 6/7/2018
manismay.com 85.143.202.82 RU 6/7/2018
phonetarif.com 85.143.202.82 RU 6/7/2018
rfisoty.com 85.143.202.82 RU 6/7/2018
borrespons.com 212.83.61.213 DE 6/20/2018
manismay.com 212.83.61.213 DE 6/20/2018
rfisoty.com 212.83.61.213 DE 6/20/2018
lumpyve.com 212.83.61.213 DE 6/20/2018
phonetarif.com 212.83.61.213 DE 6/20/2018


Изучив представленные данные, можно резюмировать, что все домены регистрируются на почту, сгенерированную при помощи сервиса временной почты. Местоположение фиктивного региструющего лица — США, в то время как сами домены расположены в России, Украине, Нидерландах, Китае, Казахстане и Германии (в последнее время наблюдается тенденция «переезда» доменов на Украину и в Германию). Все домены находятся в доменных зонах «com» и «net». Алфавит, из которого состоит домен, включает в себя только буквы английского алфавита. На стороне CnC поднят Web-сервер OpenResty.

Заключение


Несмотря на «древность» зевсоподобных троянов, их актуальность не падает. Как результат – появление IcedID на арене троянов, нацеленных на клиентов банков. Хотя банкер уже на старте имел обширный список возможностей, он все еще совершенствуется: усложняются методы распаковки, происходит расширение списка целей. Вероятнее всего в дальнейшем вредоносная программа обзаведется механизмами противодействия анализу, а CnC-сервер начнет избирательно отдавать Web-инжекты зараженным устройствам. Пока же троян не удовлетворяют всем требованием своих «пользователей», о чем говорит использование в декабре прошлого года TrickBot’а совместно с IcedID.

Комментарии (3)


  1. DrMefistO
    25.08.2018 10:42

    Сначала пишете, что противодействия анализу нет (строки не шифрованы и т.д.), а затем приводите алго расшифровки строк, говорите, что они зашифрованы, и вообще описываете практически один в один описание функционала и семплов Dridex'а (разбирал его когда-то).


    1. DrMefistO
      25.08.2018 10:46

      Извиняюсь, увидел, что слова Нет нету.


  1. qw1
    25.08.2018 23:20

    VNC-сервер представлял из себя DLL-библиотеку, которая запускалась при помощи функции CreateProcessA() с параметрами rundll32.exe kernel32,Sleep -s <%Путь к DLL%>
    Что обозначает параметр -s? Поискал, нигде это не документировано.