投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第2部分

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第2部分
Мы продолжаем серию статей, посвященных анализу вредоносного программного обеспечения. В 第一個 части мы рассказывали, как Илья Померанцев, специалист по анализу вредоносного кода CERT Group-IB, провел детальный анализ файла, полученного по почте одной из европейских компаний, и обнаружил там шпионскую программу 代理特斯拉. В этой статье Илья приводит результаты поэтапного анализа основного модуля 代理特斯拉.

Agent Tesla 是一款模組化間諜軟體,以合法的鍵盤記錄產品為幌子,使用惡意軟體即服務模型進行分發。 Agent Tesla 能夠從瀏覽器、電子郵件用戶端和 FTP 用戶端提取使用者憑證並將其傳輸到伺服器給攻擊者,記錄剪貼簿資料並擷取裝置螢幕。截至分析時,開發商的官方網站無法存取。

設定檔

В таблице ниже перечислено, какие функциональные возможности применяются в используемом сэмпле:

描述
Флаг использования KeyLogger
Флаг использования ScreenLogger
Интервал отправки лога KeyLogger в минутах 20
Интервал отправки лога ScreenLogger в минутах 20
Флаг обработки клавиши Backspace. False – только логгирование. True – стирание предыдущей клавиши
Тип CnC. Варианты: smtp, webpanel, ftp SMTP
Флаг активации потока для завершения процессов из списка «%filter_list%»
Флаг отключения UAC
Флаг отключения менеджера задач
Флаг отключения CMD
Флаг отключения окна «Выполнить»
Флаг отключения инструмента просмотра реестра
Флаг отключения точек восстановления системы
Флаг отключения панели управления
Флаг отключения MSCONFIG
Флаг отключения контекстного меню в проводнике
Флаг закрепления в системе
Путь для копирования основного модуля при закреплении в системе %startupfolder% %insfolder%%insname%
Флаг задания атрибутов «Системный» и «Скрытный» для закрепленного в системе основного модуля
Флаг выполнения рестарта при закреплении в системе
Флаг перемещения основного модуля во временную папку
Флаг выполнения обхода UAC
Формат даты и времени для записи в лог yyyy-MM-dd HH:mm:ss
Флаг использования фильтра программ для KeyLogger
Тип фильтрации программ.
1 – имя программы ищется в заголовках окна
2 – имя программы ищется в имени процесса окна
1
Фильтр программ «facebook»,
«twitter»,
«gmail»,
«instagram»,
«movie»,
«skype»,
«porn»,
«hack»,
«whatsapp»,
«discord»

Закрепление основного модуля в системе

Если установлен соответствующий флаг, основной модуль копируется по пути, указанному в конфиге как путь для закрепления в системе.

В зависимости от значения из конфига файлу даются атрибуты «Скрытый» и «Системный».
Автозапуск обеспечивается двумя ветками реестра:

  • HKCU SoftwareMicrosoftWindowsCurrentVersionRun%insregname%
  • HKCUSOFTWAREMicrosoftWindowsCurrentVersionExplorerStartupApprovedRun %insregname%

Поскольку загрузчик производит инжект в процесс RegAsm, установка флага персиста для основного модуля приводит к довольно интересным последствиям. Вместо того, чтобы скопировать само себя, ВПО закрепило в системе оригинальный файл RegAsm程序, в процесс которого осуществлялся инжект.

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第2部分
投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第2部分

與命令與征服的互動

無論使用哪種方法,網路通訊都是從使用資源獲取受害者的外部IP開始的 checkip[.]amazonaws[.]com/.
Далее описаны методы сетевого взаимодействия, представленные в ВПО.

webpanel

Взаимодействие идет по HTTP-протоколу. ВПО выполняет POST-запрос со следующими заголовками:

  • User-Agent: Mozilla/5.0 (Windows U Windows NT 6.1 ru rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)
  • Connection: Keep-Alive
  • 內容類型:application / x-www-form-urlencoded

Адрес сервера задается значением %PostURL%. Зашифрованное сообщение передается в параметре «P». Механизм шифрования описан в разделе «Алгоритмы шифрования» (Метод 2).

Передаваемое сообщение имеет следующий вид:

type={0}nhwid={1}ntime={2}npcname={3}nlogdata={4}nscreen={5}nipadd={6}nwebcam_link={7}nclient={8}nlink={9}nusername={10}npassword={11}nscreen_link={12}

參數 類型 указывает на тип сообщения:

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第2部分
哈維德 — записывается MD5-хеш от значений серийного номера материнской платы и ID процессора. Вероятнее всего, используется в качестве User ID.
時間 — служит для передачи текущего времени и даты.
pcname — определяется как <Имя пользователя>/<Имя компьютера>.
logdata — данные лога.

При передаче паролей сообщение имеет вид:

type={0}nhwid={1}ntime={2}npcname={3}nlogdata={4}nscreen={5}nipadd={6}nwebcam_link={7}nscreen_link={8}n[passwords]

Далее следуют описания украденных данных в формате nclient[]={0}nlink[]={1}nusername[]={2}npassword[]={3}.

SMTP

Взаимодействие идет по SMTP-протоколу. Передаваемое письмо имеет формат HTML. Параметр BODY 具有以下形式:

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第2部分
Заголовок письма имеет общий вид: <ИМЯ ПОЛЬЗОВАТЕЛЯ>/<ИМЯ КОМПЬЮТЕРА> <ТИП КОНТЕНТА>. Содержимое письма, как и его вложения, не шифруются.

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第2部分
Взаимодействие идет по ftp-протоколу. На указанный сервер передается файл с именем <ТИП КОНТЕНТА>_<ИМЯ ПОЛЬЗОВАТЕЛЯ>-<ИМЯ КОМПЬЮТЕРА>_<ДАТА И ВРЕМЯ>.html. Содержимое файла не шифруется.

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第2部分

加密演算法

В данном кейсе используются следующие методы шифрования:

1方法

Этот метод используется для шифрования строк в основном модуле. Для шифрования применяется алгоритм AES.

На вход подается шестизначное десятичное число. Над ним производится следующее преобразование:

f(x) = (((x >> 2 — 31059) ^ 6380) — 1363) >> 3

Полученное значение является индексом для вшитого массива данных.

Каждый элемент массива — последовательность DWORD. При объединении DWORD получается массив байтов: первые 32 байта — ключ шифрования, далее следуют 16 байтов вектора инициализации, а оставшиеся байты — зашифрованные данные.

2方法

Используется алгоритм 3DES 在模式中 歐洲央行 с дополнением в целых байтах (PKCS7).

Ключ задается параметром %urlkey%, однако при шифровании используется его MD5-хеш.

惡意功能

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

鍵盤記錄器

При наличии соответствующего флага ВПО при помощи WinAPI-функции 設置WindowsHookEx назначает свой обработчик для событий нажатия клавиш на клавиатуре. Функция обработчика начинается с получения заголовка активного окна.

Если установлен флаг выполнения фильтрации приложений, производится фильтрация в зависимости от заданного типа:

  1. имя программы ищется в заголовках окна
  2. имя программы ищется в имени процесса окна

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

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第2部分
Затем записывается информация о нажатой клавише:

關鍵 記錄
Backspace鍵 В зависимости от флага обработки клавиши Backspace: False – {BACK}
True – стирание предыдущей клавиши
大寫鎖定 {CAPSLOCK}
ESC {ESC}
上一頁 {PageUp}
DELETE {DEL}
F5 {F5}
& -
F10 {F10}
TAB {TAB}
< <
> >
差距
F8 {F8}
F12 {F12}
F9 {F9}
ALT + TAB {ALT+TAB}
結束 {END}
F4 {F4}
F2 {F2}
CTRL {CTRL}
F6 {F6}
Up
F1 {F1}
左列
下一頁 {PageDown}
插入 {Insert}
Win {Win}
NumLock鍵 {NumLock}
F11 {F11}
F3 {F3}
首頁 {HOME}
ENTER {ENTER}
ALT + F4 {ALT+F4}
F7 {F7}
Другая клавиша Символ в верхнем или нижнем регистре в зависимости от положений клавиш CapsLock и Shift

С заданной периодичностью собранный лог отправляется на сервер. Если передача оказалась неудачной, лог сохраняется в файл %TEMP%log.tmp в формате:

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第2部分
Когда сработает таймер, файл будет передан на сервер.

螢幕記錄器

С заданной периодичностью ВПО создает снимок экрана в формате JPEG 有意義 品質 равным 50 и сохраняет его в файл %APPDATA %<Произвольная последовательность из 10 символов>.jpg. После передачи файл удаляется.

剪貼簿記錄器

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

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第2部分
После этого текст вставляется в лог:

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第2部分

密碼竊取者

ВПО может производить выгрузку паролей из следующих приложений:

瀏覽器 郵件客戶端 FTP клиенты
Chrome瀏覽器 Outlook FileZilla中
火狐瀏覽器 雷鳥 WS_FTP
IE/Edge FOXMAIL WinSCP賦予
蘋果瀏覽器 Opera郵件 核心FTP
歌劇瀏覽器 的IncrediMail FTP Navigator
Yandex的 Pocomail FlashFXP的
科摩 尤多拉 SmartFTP的
ChromePlus 球棒 FTPCommander
郵箱
火炬 ClawsMail
7Star
朋友
BraveSoftware Jabber клиенты VPN клиенты
中央瀏覽器 Psi/Psi+ 打開VPN
切多
椰子
Elements Browser 下載管理器
史詩隱私瀏覽器 網絡下載管理器
彗星 JDownloader
軌道
人造衛星
uCozMedia
維瓦爾第
設備SeaMonkey
Flock瀏覽器
UC瀏覽器
黑鷹
網絡狐
K-Meleon的
冰貓
Icedragon
蒼白的月亮
水狐
獵鷹瀏覽器

動態分析的反作用

  • Использование функции 寵物床. Позволяет обойти по таймауту некоторые песочницы
  • Уничтожение потока 區域標識符. Позволяет скрыть факт загрузки файла из интернета
  • 在參數中 %filter_list% задается список процессов, которые ВПО будет завершать с интервалом в одну секунду
  • 斷開 UAС
  • Отключение менеджера задач
  • 斷開 CMD
  • Отключение окна “跑”
  • Отключение панели управления
  • Отключение инструмента 註冊表編輯器
  • Отключение точек восстановления системы
  • Отключение контекстного меню в проводнике
  • 斷開 MSCONFIG
  • 旁路 UAC:

Неактивные возможности основного модуля

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

蠕蟲

В отдельном потоке отслеживаются события подключения съемных носителей. При подключении в корень файловой системы копируется ВПО с именем scr.exe, после чего выполняется поиск файлов с расширением LNK. Команда каждого LNK 更改為 cmd.exe /c start scr.exe&start <оригинальная команда>& exit.

Каждой директории в корне носителя дается атрибут “隱” и создается файл с расширением LNK с именем скрытой директории и командой cmd.exe /c start scr.exe&explorer /root,»%CD%<ИМЯ ДИРЕКТОРИИ>» & exit.

MouseTracker

Метод выполнения перехвата аналогичен используемому для клавиатуры. Этот функционал пока находится в разработке.

Файловая активность

路徑 描述
%Temp%temp.tmp Содержит счетчик попыток обхода UAC
%startupfolder%%insfolder%%insname% Путь для закрепления в системе ВПО
%Temp%tmpG{Текущее время в милесекундах}.tmp Путь для бэкапа основного модуля
%Temp%log.tmp Лог-файл
%AppData%{Произвольная последовательность из 10 симоволов}.jpeg 截圖
C:UsersPublic{Произвольная последовательность из 10 симоволов}.vbs Путь к vbs файлу, который загрузчик может использовать для закрпления в системе
%Temp%{Произвольное имя папки}{Имя файла} Путь, используемый загрузчиком для закрепления в системе

攻擊者簡介

Благодаря «зашитым» данным аутентификации нам удалось получить доступ к командному центру.

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第2部分
Это позволило нам выявить конечную почту злоумышленников:

junaid[.]in***@gmail[.]com.

Доменное имя командного центра зарегистрировано на почту sg***@gmail[.]com.

結論

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

主要危險 代理特斯拉 как DataStealer в том, что для выполнения своих задач ему не требуется производить закрепление в системе или ожидать получения управляющей команды. Попадая на машину, он немедленно начинает сбор приватной информации и передает ее на CnC. Такое агрессивное поведение в некотором роде схоже с поведением шифровальщиков, с той лишь разницей, что вторым не требуется даже наличие сетевого соединения. При столкновении с этим семейством после очистки зараженной системы от самого ВПО следует в обязательном порядке произвести смену всех паролей, которые могли хотя бы теоретически оказаться сохраненными в одном из перечисленных выше приложений.

Забегая вперед, скажем, что злоумышленники, рассылающие 代理特斯拉, очень часто меняют первоначальный загрузчик. Это позволяет в момент атаки оставаться незамеченными для статических сканеров и эвристических анализаторов. А склонность этого семейства сразу же начинать свою деятельность делает бесполезными системные мониторы. Наилучший способ борьбы с AgentTesla — предварительный анализ в песочнице.

В третьей статье этого цикла мы рассмотрим другие загрузчики, используемые 代理特斯拉, а также изучим процесс их полуавтоматической распаковки. Не пропустите!

哈希

SHA1
A8C2765B3D655BA23886D663D22BDD8EF6E8E894
8010CC2AF398F9F951555F7D481CE13DF60BBECF
79B445DE923C92BF378B19D12A309C0E9C5851BF
15839B7AB0417FA35F2858722F0BD47BDF840D62
1C981EF3EEA8548A30E8D7BF8D0D61F9224288DD

C&C

網址
sina-c0m[.]icu
smtp[.]sina-c0m[.]icu

RegKey

註冊表
HKCUSoftwareMicrosoftWindowsCurrentVersionRun{Имя скрипта}
HKCUSoftwareMicrosoftWindowsCurrentVersionRun%insregname%
HKCUSOFTWAREMicrosoftWindowsCurrentVersionExplorerStartupApprovedRun%insregname%

互斥

Индикаторы отсутствуют.

Файловая активность
%Temp%temp.tmp
%startupfolder%%insfolder%%insname%
%Temp%tmpG{Текущее время в милесекундах}.tmp
%Temp%log.tmp
%AppData%{Произвольная последовательность из 10 симоволов}.jpeg
C:UsersPublic{Произвольная последовательность из 10 симоволов}.vbs
%Temp%{Произвольное имя папки}{Имя файла}

Samples Info

姓名 未知
MD5 F7722DD8660B261EA13B710062B59C43
SHA1 15839B7AB0417FA35F2858722F0BD47BDF840D62
SHA256 41DC0D5459F25E2FDCF8797948A7B315D3CB0753
98D808D1772CACCC726AF6E9
類別 PE (.NET)
尺寸 327680
原名 AZZRIDKGGSLTYFUBCCRRCUMRKTOXFVPDKGAGPUZI_20190701133545943.exe
日期戳 01.07.2019
編譯器 VB.NET

姓名 IE庫.dll
MD5 BFB160A89F4A607A60464631ED3ED9FD
SHA1 1C981EF3EEA8548A30E8D7BF8D0D61F9224288DD
SHA256 D55800A825792F55999ABDAD199DFA54F3184417
215A298910F2C12CD9CC31EE
類別 PE (.NET DLL)
尺寸 16896
原名 IE庫.dll
日期戳 11.10.2016
編譯器 Microsoft Linker(48.0*)

來源: www.habr.com

添加評論