MALWARE На этом первую часть, посвященную появлению Trojan.Win32.<strong>TDSS</strong> на компьютере, можно считать завершенной. Мы рассмотрели все скрипты, расположенные на зараженной странице, их поведение. Также был затронут анализ типичного даунлодера Packed.Win32. Krap.x, защищенного зловредным упаковщиком. Оказалось, что путь от посещения «плохого» сайта до появления <strong>TDSS</strong> на компьютере очень длинный. ÊÎÂÛÐßÅÌ ÎÁÐÀÇÅÖ Первым делом исследуемый образец был подвергнут визуальному осмотру в Hiew. В файле была обнаружена одна секция с исполняемым кодом размером ~0x1000, а большую его часть (~0x60000 байт) составляли зашифрованные данные. Насторожила таблица импортов, в которой, помимо довольно обычных функций для расшифровщика (VirtualProtect, GetTempPathA, GetModuleHandle из библиотеки Kernel32.dll), содержались записи, предназначенные для работы с диалоговыми окнами – GetDlgCtrlId, GetParent из user32.dll. Наличие только двух таких функций вызывает недоумение и указывает на возможность их использования для реализации антиэмуляции. Исполняемая часть выглядит весьма своеобразно – присутствует большое количество повторяющихся символов: «H», «.», «f». Они соответствуют инструкциям LEA, префиксу семгента CS, префиксу размера операнда. В режиме дизассемблера в глаза бросилась явная обфускация – множество инструкций, которые не несут полезной нагрузки, например, LEA AX, CS:[EAX + 0]; LEA AX, [EAX + 0]; LEA AX, [EAX] и др. Ôðàãìåíòû ïðåîáðàçîâàííîãî äèçàññåìáëèðîâàííîãî êîäà Trojan.Win32.Tdss В процессе отладки обнаружилась антиэмуляция. Она заключается в последовательном вызове функций GetDlgCtrlID и GetParent и косвенному обращению к FS: с использованием кодов возврата. Это смещение соответствует полю LastErrorValue недокументированной структуры Windows – TEB. Затем значение поля сравнивается с эталонным. Далее происходит обращение к полю SpareBool структуры PEB. Его значение впоследствии используется для корректной работы зловреда. После отработки разнообразных защитных механизмов приходит время исполнения полезной составляющей. В данном случае это расшифровка основного тела вредоносного файла с помощью алгоритма RC4. Причем вначале подготавливается алфавит от 0x0 до 0x100 с полученным значением SpareBool, а затем и основной ключ. С помощью программы PETools был получен дамп, содержащий расшифрованное тело. Оказалось, что оно было скомпилировано с помощью MSVC и содержит еще один файл, который был незамедлительно извлечен. Он оказался динамической библиотекой, которая работает в связке с исходным вредоносом, также упакована <strong>TDSS</strong> и содержит в себе еще файл. Такое повторялось несколько раз, и в результате, помимо исходного экземпляра, появилось еще три файла. С каждого был снят дамп памяти процесса. Ôðàãìåíò ðàñøèôðîâàííîãî ó÷àñòêà ôàéëà êîìïîíåíòà ðàññìàòðèâàåìîãî çëîâðåäà Ôðàãìåíòû äèçàññåìáëèðîâàííîãî êîäà Trojan.Win32.Tdss, ñîäåðæàùèå îáôóñêàöèþ Для того, чтобы упростить анализ, коды вышеупомянутых инструкций были заменены на последовательности из NOP’ов. После выполнения этого действия оказалось, что только ~25% кода что–то реально выполняют. Кстати, полностью обфускацию мы не убрали – осталась та, которую исключить уже сложнее, например, четыре вызова inc reg подряд вместо add reg, 4. Однако даже преобразованный фрагмент анализировать под отладчиком получается очень непросто ввиду того, что выполнение происходит нелинейно – управление непрерывно передается с помощью JMP’ов в разные участки исполняемой области. «Участок не такой простой – в нем используется антиэмуляция на основе FakeApi и работы с исключениями» 084 По приведенному выше скриншоту можно однозначно идентифицировать класс вредоносного файла – фальшивый антивирус. Его основное назначение – напугать пользователя так, чтобы он согласился заплатить деньги за «излечение» системы от вирусов. Этот экземпляр также прописывается в автозагрузке, выполняет множество других деструктивных действий и пытается отключить целый ряд легальных антивирусов (строки взяты в дампе одного из компонентов): Malwarebytes' Anti-Malware_is1; NOD32; Agnitum Outpost Security Suite Pro_is1; Avira AntiVir Desktop; avast!; AntiVir PersonalEdition Classic; Sophos; Sophos Client Firewall; Sophos Antivirus; Kaspersky 2010; Kaspersky 2008; F-Secure Web Filter. ÇÀÊËÞ×ÅÍÈÅ Результат банален: все свелось к получению прибыли путем обмана пользователя. Фальшивый антивирус оказался очень хорошо защищен как от антивирусов (путем использования полиморфизма, обфускации и антиэмуляции), так и от людей, пытающихся его разобрать. Очень интересна цепочка, по которой происходит распространение <strong>TDSS</strong> – в ней принимает участие несколько скриптов, а также защищенный даунлоадер. Вполне возможно, что вирусописатели разработали фальшивый антивирус, затем купили упаковщик <strong>TDSS</strong>, а потом стали распространять свое детище через партнерку..z XÀÊÅÐ 09 /140/ 10
Реклама