Случалось такое: надо срочно найти утилиту под специфическую задачу, например, «конвертер видео», но точного названия не знаешь и надо гуглить? Другие пытаются сэкономить и сразу используют установщик для пиратского софта. Перейдя по первой же ссылке в поисковой выдаче и обнаружив заветную кнопку Download, пользователь без особых раздумий запускает скачанный софт, даже не подозревая, какую опасность может скрывать обычный, на первый взгляд, файл. Илья Померанцев, руководитель группы исследований и разработки CERT-GIB, рассматривает три кейса, жертва которых могла стать «входными воротами» для вредоносной программы и даже случайным соучастником хакерской атаки. Помните: 23% пиратских ресурсов представляют опасность — содержат вредоносные программы либо присутствуют в «черных списках» антивирусных вендоров.


Кейс 1


В начале ноября 2020 года отдел мониторинга и реагирования на компьютерные инциденты CERT-GIB зафиксировал подозрительную активность на одном из наших зарубежных сенсоров. Внимание привлек User-Agent в http-коммуникации при скачивании исполняемого файла, а также отсутствие поля Referer: это говорит о том, что загрузка была инициирована не пользователем.


Мы передали файл на анализ вирусному аналитику.

Анализ файла


Сигнатурное сканирование в утилите Detect Is Easy не дало результата, после чего файл был открыт в hex-редакторе и причина стала ясна.


В начале файла был записан байт 0x0A. Это подтвердило наше предположение, что файл предназначен для запуска не пользователем. Сам сэмпл представляет собой установщик Inno Installer. Анализ сценария установки показал, что после распаковки должен запускаться извлеченный исполняемый файл.


Установочная директория C:\Program Files\Ound Recorder\ будет содержать следующие файлы:


Файл mp3recorder.exe содержит большой фрагмент сжатых данных.


ВПО закрепляется в системе как системный сервис. Для этого либо создается новый с названием TranslateService, либо заменяется оригинальный файл GoogleUpdate.exe.


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


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

Для взаимодействия с CnC используется алгоритм генерации доменных имен. Для их разрешения поочередно используются 5 DNS-серверов, зашитые в ВПО:

  • 163.172.91[.]242
  • 217.23.6[.]51
  • 151.80.38[.]159
  • 217.23.9[.]168
  • 37.187.122[.]227

Если же ни один из них не отвечает — сгенерированный домен используется в качестве логина для сервиса bddns[.]cc. Пароль, как мы писали, — HID.


Интервал обращения к серверу — 15 секунд.

При достижении лимита в 1500 запросов ВПО обращается по URL /global.php к IP-адресу, с которым была последняя удачная коммуникация. В ответ оно ждет полезную нагрузку в виде зашифрованного исполняемого файла, который будет запущен без сохранения на диск.

Если удалось успешно получить адрес командного центра — выполняется http-запрос вида:

/single.php?c={Зашифрованные данные}

Для шифрования используется RC4 с ключом heyfg645fdhwi.

Исходные данные имеют вид:

client_id=[HID]&connected=[Флаг установленного соединения]&server_port=[Порт Proxy-сервера]&debug=[Захардкоженное значение 35]&os=[Версия операционной системы]&dgt=[]&dti=[]

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

Для взаимодействия используется User-Agent Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US).

Ответ сервера зашифрован RC4 с тем же ключом.

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

c=[Команда]&[Некоторая последовательность аргументов, зависящая от переданной команды]

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

  • disconnect — разорвать соединение
  • idle — удерживать соединение
  • updips — обновить список auth_ip на указанные в команде
  • connect — установить соединение с указанным хостом
    Команда должна содержать следующие параметры:
    1. ip — IP-адрес хоста
    2. auth_swith — использовать авторизацию
      Если установлено значение «1» — ВПО получает параметры auth_login, auth_pass. Если установлено значение «0» — троянцу передается параметр auth_ip, в противном случае соединение не установится.
    3. auth_ip — аутентификация по IP
    4. auth_login — логин для авторизации
    5. auth_pass — пароль для авторизации
    6. block — список портов, по которым будет запрещено взаимодействие

c=connect&ip=51.15.3.4&auth_swith=0&auth_ip=178.132.0.31:500;217.23.5.14:500;185.158.249.250:300;193.242.211.170:300;151.0.6.74:300;185.87.194.13:300;35.192.146.152:300;176.31.126.122:300&auth_login=&auth_pass=&block=25;465;995

Далее на машине жертвы поднимается TCP-сервер и используется в качестве Proxy-сервера при проведении дальнейших атак.

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

Кейс 2


Этот пример относится к схеме мошенничества, которая активно используется уже более 10 лет, однако до сих пор не потеряла своей актуальности.

Пользователь в поисках нелицензионного софта переходит по ссылке из поисковой системы, например, Google:


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


После открытия подгружается и исполняется скрипт, который перенаправляет пользователя на целевую страницу с заветной кнопкой «Скачать»:


Возможные сомнения пользователя, по задумке злоумышленников, должны быть развеяны поддельными комментариями из сети ВКонтакте и присутствием иконки антивируса Касперского рядом с надписью «Вирусов нет».

При попытке скачивания вас попросят ввести номер телефона, на который должен быть отправлен «код активации»:


А затем придется еще и отправить СМС на короткий номер.


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


Кейс 3


Рассмотрим еще один сценарий. На этот раз будем искать популярный активатор для Windows 10 — KMSAuto. Нас снова встречает страница с большой зеленой кнопкой «Скачать»:


В архиве лежат файлы активатора, однако сам активатор подозрительно большого размера:


Сигнатурный анализ показывает, что это NSIS-установщик, который распаковывается обычным архиватором 7z:


Внутри оригинальный исполняемый файл KMSAuto и приложение с многообещающим названием start3.exe, которое представляет собой откомпилированный AutoIt-скрипт:



Скрипт извлечет на диск и распакует архив CR_Debug_Log.7z, который содержит два исполняемых файла под 32-хбитную и 64-хбитную архитектуру соответственно. Оба файла — также откомпилированные AutoIt-скрипты.

В рамках этой статьи мы отметим лишь основные действия, которые они выполняют.

ВПО сохраняет на диск архив с файлами Tor и исполняемый файл 7z для его распаковки. С помощью Tor скачивается исполняемый файл по одной из следующих ссылок:

  • ist4tvsv5polou6uu5isu6dbn7jirdkcgo3ybjghclpcre5hzonybhad[.]onion/public/32/32.txt
  • bobsslp6f4w23r2g375l6ndbbz7i5uwg7i7j5idieeoqksuwm4wy57yd[.]onion/public/32/32.txt
  • shmauhvdvfcpkz7gl23kmkep5xtajau3ghxtswur6q5bznnpmfam3iqd[.]onion/public/32/32.txt
  • nt4flrgftahnjzrazdstn2uwykuxuclosht46fnbwlcsjj4zaulomlad[.]onion/public/32/32.txt


Файл представляет собой закодированный 7z-архив, внутри которого содержится исполняемый файл майнера XMRig.

Управляющий сервер расположен по адресу 185.186.142[.]17 на порту 3333.

Заключение


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