വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1

വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1
Недавно в Group-IB обратилась европейская компания-производитель электромонтажного оборудования — ее сотрудник получил по почте подозрительное письмо с вредоносным вложением. ഇല്യ പോമറാൻസെവ്, специалист по анализу вредоносного кода CERT Group-IB, провел детальный анализ этого файла, обнаружил там шпионскую программу AgentTesla и рассказал, чего ждать от подобного ВПО и чем оно опасно.

Этим постом мы открываем серию статей о том, как проводить анализ подобных потенциально опасных файлов, а самых любопытных ждем 5 декабря на бесплатный интерактивный вебинар по теме «Анализ вредоносного ПО: разбор реальных кейсов». Все подробности — под катом.

Механизм распространения

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

വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1
Анализ заголовков показывает, что отправитель письма был подделан. В действительности письмо ушло с vps56[.]oneworldhosting[.]com.

വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1
В аттаче письма находится архив WinRar qoute_jpeg56a.r15 с вредоносным исполняемым файлом QOUTE_JPEG56A.exe അകത്ത്.

വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1

ക്ഷുദ്രവെയർ ഇക്കോസിസ്റ്റം

Теперь посмотрим, как выглядит экосистема исследуемого вредоносного ПО. На схеме ниже изображена его структура и направления взаимодействия компонентов.

വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1
Теперь рассмотрим каждый из компонентов ВПО подробнее.

ലോഡർ

Исходный файл QOUTE_JPEG56A.exe представляет собой откомпилированный AutoIt v3 скрипт.

വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1
Для обфускации исходного скрипта использовался обфускатор с аналогичными PELock AutoIT-Obfuscator характеристиками.
Деобфускация производится в три этапа:

  1. Снятие обфускации For-If

    Первым делом необходимо восстановить поток управления скрипта. Запутывание потока управления (Control Flow Flattening) — один из наиболее распространенных способов защиты бинарного кода приложений от анализа. Запутывающие преобразования резко увеличивают трудоемкость выделения и распознавания алгоритмов и структур данных.

    വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1

  2. Восстановление строк

    Для шифрования строк используются две функции:

    • gdorizabegkvfca — выполняет Base64-подобное декодирование

      വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1

    • xgacyukcyzxz — простой побайтовый XOR первой строки с длиной второй

      വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1

    വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1

  3. Снятие обфускации BinaryToString и നിർവ്വഹിക്കുക

    വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1

Основная нагрузка хранится в разделенном виде в директории ഫോണ്ടുകൾ секции ресурсов файла.

വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1
Порядок склейки следующий: TIEQHCXWFG, ഇഎംഐ, SPDGUHIMPV, KQJMWQQAQTKTFXTUOSW, AOCHKRWWSKWO, JSHMSJPS, NHHWXJBMTTSPXVN, BFUTIFWWXVE, HWJHO, AVZOUMVFRDWFLWU.

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

Дешифрованный исполняемый файл поступает на вход функции RunPE, которая осуществляет ProcessInject в RegAsm.exe при помощи встроенного ഷെൽകോഡ് (പുറമേ അറിയപ്പെടുന്ന RunPE ShellCode). Авторство принадлежит пользователю испанского форума indetectables[.]net под ником Wardow.

വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1
വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1
Стоит также отметить, что в одной из веток этого форума обсуждался обфускатор для ഓട്ടോഇറ്റ് с аналогичными выявленным в процессе анализа сэмпла свойствами.

തന്നെത്താൻ ഷെൽകോഡ് довольно прост и привлекает к себе внимание лишь позаимствованной у хакерской группы AnunakCarbanak. функцией хеширования API-вызовов.

വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1
വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1

Нам также известны случаи использования Frenchy Shellcode различных версий.
Помимо описанного функционала мы также выявили неактивные функции:

  • Блокировка ручного завершения процесса в менеджере задач

    വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1

  • Перезапуск дочернего процесса в случае его завершения

    വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1

  • UAC ബൈപാസ് ചെയ്യുക

    വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1

  • Сохранение полезной нагрузки в файл

    വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1

  • Демонстрация модальных окон

    വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1

  • Ожидание смены позиции курсора мыши

    വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1

  • AntiVM и AntiSandbox

    വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1

  • സ്വയം നാശം

    വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1

  • Выкачивание полезной нагрузки из сети

    വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1

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

വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1

Основной модуль ВПО

Далее кратко опишем основной модуль ВПО, а более подробно рассмотрим его во второй статье. В данном случае он представляет собой приложение на ഭാഷയായി.

വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1
В ходе анализа мы выявили, что использовался обфускатор ConfuserEX.

വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1

IELibrary.dll

Библиотека хранится в виде ресурса основного модуля и является известным плагином для ഏജന്റ് ടെസ്ല, который предоставляет функционал для извлечения различной информации из браузеров Internet Explorer и Edge.

ഒരു നിയമാനുസൃത കീലോഗർ ഉൽപ്പന്നത്തിന്റെ മറവിൽ ക്ഷുദ്രവെയർ-ആസ്-എ-സർവീസ് മോഡൽ ഉപയോഗിച്ച് വിതരണം ചെയ്യുന്ന ഒരു മോഡുലാർ ചാരപ്പണി സോഫ്റ്റ്‌വെയറാണ് ഏജന്റ് ടെസ്‌ല. ബ്രൗസറുകൾ, ഇമെയിൽ ക്ലയന്റുകൾ, എഫ്‌ടിപി ക്ലയന്റുകൾ എന്നിവയിൽ നിന്ന് സെർവറിലേക്ക് ആക്രമണകാരികളിലേക്ക് ഉപയോക്തൃ ക്രെഡൻഷ്യലുകൾ എക്‌സ്‌ട്രാക്റ്റുചെയ്യാനും കൈമാറാനും, ക്ലിപ്പ്ബോർഡ് ഡാറ്റ റെക്കോർഡുചെയ്യാനും ഉപകരണ സ്‌ക്രീൻ ക്യാപ്‌ചർ ചെയ്യാനും ഏജന്റ് ടെസ്‌ലയ്ക്ക് കഴിയും. വിശകലന സമയത്ത്, ഡെവലപ്പർമാരുടെ ഔദ്യോഗിക വെബ്സൈറ്റ് ലഭ്യമല്ല.

Точкой входа служит функция GetSavedPasswords класса InternetExplorer.

വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1
В целом, исполнение кода линейно и не содержит средств защиты от анализа. Внимания заслуживает лишь нереализованная функция GetSavedCookies. Видимо, функционал плагина предполагалось расширить, но это так и не было сделано.

വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1

Закрепление загрузчика в системе

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

  1. ഫോൾഡറിൽ С:UsersPublic создается скрипт വിഷ്വൽ ബേസിക്

    സ്ക്രിപ്റ്റ് ഉദാഹരണം:

    വോട്ടെടുപ്പ് പരാജയപ്പെട്ടു: നമുക്ക് AgentTesla ശുദ്ധജലത്തിലേക്ക് തുറന്നുകാട്ടാം. ഭാഗം 1

  2. Содержимое файла загрузчика дополняется нулевым символом и сохраняется в папку %Temp%<Произвольное имя папки><Имя файла>
  3. В реестре создается ключ на автозапуск для файла скрипта HKCUSoftwareMicrosoftWindowsCurrentVersionRun<Имя скрипта>

Итак, по результатам первой части анализа нам удалось установить названия семейств всех компонентов изучаемого ВПО, разобрать схему заражения, а также получить объекты для написания сигнатур. Мы продолжим разбор этого объекта в следующей статье, где более детально рассмотрим основной модуль ഏജന്റ് ടെസ്ല. Не пропустите!

Кстати, 5 декабря приглашаем всех читателей на бесплатный интерактивный вебинар по теме «Анализ вредоносного ПО: разбор реальных кейсов», где автор этой статьи, специалист CERT-GIB, в онлайн-режиме покажет первый этап анализа ВПО — полуавтоматическую распаковку сэмплов на примере трех реальных мини-кейсов из практики, а вы сможете принять участие в анализе. Вебинар подойдет специалистам, которые уже имели опыт анализа вредоносных файлов. Регистрация строго с корпоративной почты: രജിസ്റ്റർ ചെയ്യുക. Ждем вас!

പ്രാധ്യാന്യം

rule AgentTesla_clean{
meta:
    author = "Group-IB"
    file = "78566E3FC49C291CB117C3D955FA34B9A9F3EEFEFAE3DE3D0212432EB18D2EAD"
    scoring = 5
    family = "AgentTesla"
strings:
    $string_format_AT = {74 00 79 00 70 00 65 00 3D 00 7B 00 30 00 7D 00 0D 00 0A 00 68 00 77 00 69 00 64 00 3D 00 7B 00 31 00 7D 00 0D 00 0A 00 74 00 69 00 6D 00 65 00 3D 00 7B 00 32 00 7D 00 0D 00 0A 00 70 00 63 00 6E 00 61 00 6D 00 65 00 3D 00 7B 00 33 00 7D 00 0D 00 0A 00 6C 00 6F 00 67 00 64 00 61 00 74 00 61 00 3D 00 7B 00 34 00 7D 00 0D 00 0A 00 73 00 63 00 72 00 65 00 65 00 6E 00 3D 00 7B 00 35 00 7D 00 0D 00 0A 00 69 00 70 00 61 00 64 00 64 00 3D 00 7B 00 36 00 7D 00 0D 00 0A 00 77 00 65 00 62 00 63 00 61 00 6D 00 5F 00 6C 00 69 00 6E 00 6B 00 3D 00 7B 00 37 00 7D 00 0D 00 0A 00 73 00 63 00 72 00 65 00 65 00 6E 00 5F 00 6C 00 69 00 6E 00 6B 00 3D 00 7B 00 38 00 7D 00 0D 00 0A 00 5B 00 70 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 73 00 5D 00}
    $web_panel_format_string = {63 00 6C 00 69 00 65 00 6E 00 74 00 5B 00 5D 00 3D 00 7B 00 30 00 7D 00 0D 00 0A 00 6C 00 69 00 6E 00 6B 00 5B 00 5D 00 3D 00 7B 00 31 00 7D 00 0D 00 0A 00 75 00 73 00 65 00 72 00 6E 00 61 00 6D 00 65 00 5B 00 5D 00 3D 00 7B 00 32 00 7D 00 0D 00 0A 00 70 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 5B 00 5D 00 3D 00 7B 00 33 00 7D 00 00 15 55 00 52 00 4C 00 3A 00 20 00 20 00 20 00 20 00 20 00 20 00 00 15 55 00 73 00 65 00 72 00 6E 00 61 00 6D 00 65 00 3A 00 20 00 00 15 50 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 3A 00}
condition:
     all of them
}

rule  AgentTesla_obfuscated {
meta:
    author = "Group-IB"
    file = "41DC0D5459F25E2FDCF8797948A7B315D3CB075398D808D1772CACCC726AF6E9"
    scoring = 5
    family = "AgentTesla"
strings:
    $first_names = {61 66 6B 00 61 66 6D 00 61 66 6F 00 61 66 76 00 61 66 79 00 61 66 78 00 61 66 77 00 61 67 6A 00 61 67 6B 00 61 67 6C 00 61 67 70 00 61 67 72 00 61 67 73 00 61 67 75 00}
    $second_names = "IELibrary.resources"
condition:
     all of them
}

rule AgentTesla_module_for_IE{
meta:
    author = "Group-IB"
    file = "D55800A825792F55999ABDAD199DFA54F3184417215A298910F2C12CD9CC31EE"
    scoring = 5
    family = "AgentTesla_module_for_IE"
strings:
    $s0 = "ByteArrayToStructure" 
    $s1 = "CryptAcquireContext" 
    $s2 = "CryptCreateHash" 
    $s3 = "CryptDestroyHash" 
    $s4 = "CryptGetHashParam" 
    $s5 = "CryptHashData"
    $s6 = "CryptReleaseContext" 
    $s7 = "DecryptIePassword" 
    $s8 = "DoesURLMatchWithHash" 
    $s9 = "GetSavedCookies" 
    $s10 = "GetSavedPasswords" 
    $s11 = "GetURLHashString"  
condition:
     all of them
}

rule RunPE_shellcode {
meta:
    author = "Group-IB"
    file = "37A1961361073BEA6C6EACE6A8601F646C5B6ECD9D625E049AD02075BA996918"
    scoring = 5
    family = "RunPE_shellcode"
strings:
    $malcode = {
      C7 [2-5] EE 38 83 0C // mov     dword ptr [ebp-0A0h], 0C8338EEh
      C7 [2-5] 57 64 E1 01 // mov     dword ptr [ebp-9Ch], 1E16457h
      C7 [2-5] 18 E4 CA 08 // mov     dword ptr [ebp-98h], 8CAE418h
      C7 [2-5] E3 CA D8 03 // mov     dword ptr [ebp-94h], 3D8CAE3h
      C7 [2-5] 99 B0 48 06 // mov     dword ptr [ebp-90h], 648B099h
      C7 [2-5] 93 BA 94 03 // mov     dword ptr [ebp-8Ch], 394BA93h
      C7 [2-5] E4 C7 B9 04 // mov     dword ptr [ebp-88h], 4B9C7E4h
      C7 [2-5] E4 87 B8 04 // mov     dword ptr [ebp-84h], 4B887E4h
      C7 [2-5] A9 2D D7 01 // mov     dword ptr [ebp-80h], 1D72DA9h
      C7 [2-5] 05 D1 3D 0B // mov     dword ptr [ebp-7Ch], 0B3DD105h
      C7 [2-5] 44 27 23 0F // mov     dword ptr [ebp-78h], 0F232744h
      C7 [2-5] E8 6F 18 0D // mov     dword ptr [ebp-74h], 0D186FE8h
      }
condition:
    $malcode 
}

rule AgentTesla_AutoIT_module{
meta:
    author = "Group-IB"
    file = "49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08C05B5E3BD36FD52668D196AF"
    scoring = 5
    family = "AgentTesla"
strings:                                    
    $packedexeau = {55 ED F5 9F 92 03 04 44 7E 16 6D 1F 8C D7 38 E6 29 E4 C8 CF DA 2C C4 E1 F3 65 48 25 B8 93 9D 66 A4 AD 3C 39 50 00 B9 60 66 19 8D FC 20 0A A0 56 52 8B 9F 15 D7 62 30 0D 5C C3 24 FE F8 FC 39 08 DF 87 2A B2 1C E9 F7 06 A8 53 B2 69 C3 3C D4 5E D4 74 91 6E 9D 9A A0 96 FD DB 1F 5E 09 D7 0F 25 FB 46 4E 74 15 BB AB DB 17 EE E7 64 33 D6 79 02 E4 85 79 14 6B 59 F9 43 3C 81 68 A8 B5 32 BC E6}
condition:
     all of them
}

ഹാഷുകൾ

പേര് qoute_jpeg56a.r15
MD5 53BE8F9B978062D4411F71010F49209E
ശക്സനുമ്ക്സ A8C2765B3D655BA23886D663D22BDD8EF6E8E894
ശക്സനുമ്ക്സ 2641DAFB452562A0A92631C2849B8B9CE880F0F8F

890E643316E9276156EDC8A

ടൈപ്പ് ചെയ്യുക Archive WinRAR
വലുപ്പം 823014
പേര് QOUTE_JPEG56A.exe
MD5 329F6769CF21B660D5C3F5048CE30F17
ശക്സനുമ്ക്സ 8010CC2AF398F9F951555F7D481CE13DF60BBECF
ശക്സനുമ്ക്സ 49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08

C05B5E3BD36FD52668D196AF

ടൈപ്പ് ചെയ്യുക PE (Compiled AutoIt Script)
വലുപ്പം 1327616
യഥാർത്ഥ പേര് അറിയപ്പെടാത്ത
തീയതി മുദ്ര 15.07.2019
ലിങ്കർ Microsoft Linker(12.0)[EXE32]
MD5 C2743AEDDADACC012EF4A632598C00C0
ശക്സനുമ്ക്സ 79B445DE923C92BF378B19D12A309C0E9C5851BF
ശക്സനുമ്ക്സ 37A1961361073BEA6C6EACE6A8601F646C5B6ECD

9D625E049AD02075BA996918

ടൈപ്പ് ചെയ്യുക ഷെൽകോഡ്
വലുപ്പം 1474

അവലംബം: www.habr.com

ഒരു അഭിപ്രായം ചേർക്കുക