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