Исследуем зловред WindowsRecovery
Как-то блуждая по ресурсу , я нашёл тему в которой начинающий реверсер, просил помочь с распаковкой исполняемого файла. Ясное дело, не простого файла, а испорченного вредоносным кодом. Мне стало интересно, что же это за файлик такой и насколько серьёзный там спрятан вирус. Через несколько секунд, файл был уже у меня на жёстком диске и морально готовился к раскрытию всех своих тайн.
На первый взгляд, этот вирус можно запросто спутать с документом формата PDF, так как иконка взята как раз с этого формата. Но это - всего лишь иллюзия, так как свойства файла, говорят нам что это никакой не PDF, а самый обычный .exe файл. Открываем файл в любом HEX-редакторе и видим стандартный PE-заголовок, который присущ всем исполняемый файлам. Давайте изучим что это за зверь и с чем его едят.
1. Внешнее изучение.
Запускаем наш файл и видим, что через какое-то время “раздумий”, появляется окно программы WindowsRecovery. То что что-то тут не так, становится понятно тогда, когда при закрытии программы, она просто не хочет закрываться и вдобавок, висит поверх всех окон. Но и это ещё не всё, после запуска нашего приложения, появились проблемы на жёстком диске(у меня их оказалось 11), которые(судя по всему), нужно срочно исправлять, для дальнейшей корректной работы системы.
Попробуем перезагрузиться, может после перезагрузки всё наладится?После перезагрузки становится всё только хуже, а именно пропадают иконки с рабочего стола, да и сам рабочий стол оказывается заблокированным. Ну и самое страшное, пропали все файлы на жёстком диске! Даже папка Windows(интересно, если всё пропало, как загрузилась система?). Ну ладно, пора заканчивать делать удивлённые глаза и уже переходить к делу. Конечно, никакие файлы не удалены и сколько не перезагружай систему, она не отойдёт от поразившего её трояна. Но об этом немного ниже, сначала рассмотрим интерфейс нашего фейкового “целителя” системы. Интерфейс у неё манящий и как бы говорящий нам, что трояны или другие вредоносы в этом болоте не обитают даже близко. И правда, дизайн выдержан в традициях таких программ как “Advanced windows care”, что может(и должно по замыслу) ввести в заблуждение невезучего пользователя. Во время работы программы, перед нами постоянно выскакивают “страшные” сообщения с красными крестами типа “The System has detected a problem with one or more installed IDE / SATA hard disk. It is recommended that you restart the system.” Или сообщение из трея “Critical Error. Windows cant find free space on hard drive”. Причём периодичность их, довольно регулярна. Конечно, такая психологическая атака может и дать результат в виде паники, но это если человек совсем слабонервный, да ещё и мало разбирающийся.
Что же нам предлагает сделать эта программа? Для начала, нам надо проверить диск на ошибки. Во время первой проверки, как раз и происходит сокрытие файлов. После проверки, появляется определённое количество ошибок, которое было найдено на жёстком диске.У меня например их обнаружилось целых одиннадцать, хотя это число видимо может быть любым, далее предлагают сделать дефрагментацию диска якобы для того, чтобы эти самые ошибки исправить. Делаем, но всё равно пять ошибок остаётся и для окончательного исправления, нам предлагают купить программу. Я не пробовал покупать, так как меня отпугнул тот факт, что при нажатии на кнопку “Buy Now”, выскочил фейковый IE. Кстатии он выскакивает также, если нажать на “Help & Support”.Кроме того, программа содержит и другие опции и фишки, но говорить о них смысла особого нет, так как никаких действий тут не происходит. Главное действие уже случилось - система заражена.
Теперь подробнее о том, что делает данный вирус
1. Удаление всех иконок с рабочего стола.
2. Сокрытие всех файлов, которые есть на дисках(поэтому создаётся иллюзия, что диски пустые)
3. Удаление всех программ из списка программ.
4. Блокировка диспетчера задач.
Сам вирус находится в папке C:\Documents and Settings\All Users\Application Data\random_name.exe.
Для запуска, в реестр HKCU\Software\Microsoft\CurrentVersion\Run приписывается имя и путь данного файла.
5. После всех этих действий, файл вируса удаляется.
В принципе на этом, можно закончить изучение побочных действий, которые несёт за собой этот троян и перейти к самому интересному - изучению его внутренностей.
2. Внутреннее изучение.
Открываем наш троян в Иде и ищем за чтобы нам зацепиться. Старт программы выглядит так:
text:00401000 sub esp, 8 .text:00401003 push ebx .text:00401004 push ebp .text:00401005 push esi .text:00401006 mov esi, ds:AddAce .text:0040100C push edi .text:0040100D xor ebp, ebp .text:0040100F push ebp ; nAceListLength .text:00401010 push ebp ; pAceList .text:00401011 push ebp ; dwStartingAceIndex .text:00401012 push ebp ; dwAceRevision .text:00401013 push ebp ; pAcl … .text:0040101D add edi, 1Fh ; .text:00401020 call esi ; AddAce
Такой код, с вызовом функции AddAce, повторяется много раз. Полезная нагрузка этой конструкции сомнительна, но по всей видимости, данный фрагмент кода, устанавливает права доступа для выполнения программы в данной учётной записи. В конце функция AreAnyAccessesGranted проверяет установленные изменения.
Дальше происходит одна из самых важных частей инициализации вируса. А именно, загрузка dll и получение из них адресов функций. Я не буду приводить имена функций, которые будут принимать участите в программе, назову только библиотеки:
Kernel32.dll
User32.dll
Advapi32.dll
WinItet.dll
Shell32.dll
А вот и сам код этого места(приводится частично):
.text:00401153 mov ecx, [edi+0Ch] ; Смещение по которому находится имя dll .text:00401156 add ecx, ebp ; Добавляем адрес для загрузки dll(не всегда) .text:00401158 push ecx ; загружаем в параметр функции имя dll .text:00401159 call ds:LoadLibraryA; Загружаем dll в память .text:0040115F mov ecx, eax ; записываем адрес начала dll .text:00401161 mov [esp+18h+hModule], ecx .text:00401165 lea edx, [edx+ebx]; Загружаем адрес вызова первой функции .text:00401168 test ecx, ecx ; Если адрес не равен 0, то продолжаем … .text:00401193 lea edi, [eax+edi*2] ; Из массива достаётся адрес функции .text:00401196 mov ecx, [esp+18h+hModule]; Считывается параметр .text:0040119A lea eax, [eax+ebp+2]; Загружается имя функции .text:0040119E push eax ; lpProcName ; Кладётся в стек имя функции .text:0040119F .text:0040119F loc_40119F: .text:0040119F push ecx ; кладётся в стек идентификатор dll .text:004011A0 call ds:GetProcAddress ; получаем адрес функции
После инициализации библиотек и получение адресов функций, переходим к самому интересному, а именно - к процессу заражения. Тут всё довольно просто, вирус записывается в адресное пространство одного из процессов svchost.exe, далее проверяет соединение с интернетом и если оно есть, то скачивает с определённого сайта свою основную часть(ту в которой и есть WindowsRecovery). Собственно на этом и заканчивается путь нашего трояна и начинается путь фейкового WindowsRecovery. О нём я уже написал выше, повторяться думаю смысла нет.
Суммируем алгоритм работы трояна
1. Установка прав на выполнение данного приложения.
2. Инициализация библиотек и получение из них адресов функций.
3. Проверяем соединение с интернетом.
4. Скачивание файла pusk.exe.
5. После скачивания, сразу запускаем только что скачанный файл.
Алгоритм работы скачанного файла.
1. Удаляем файл с троянцем.
2. Сканируем и скрываем все файлы на диске.
3. Блокируем рабочий стол и диспетчер задач.
4. Прописываемся в реестр для последующих запусков.
5. Не менее чем раз в три минуты, показываем сообщения о проблемах на жёстком диске.
Вот так, в общих чертах, выглядит алгоритм работы нашего сегодняшнего трояна.
Теперь насчёт того, как антивирусы реагируют на нашего зловреда. Почти все антивирусы видят в исходном файле троян, что хорошо. А вот в самой оболочки , вирусный объект, признают не все. Например DrWeb CureIT спокойно прошёл мимо, а вот NOD32 сразу почувствовал неладное. В любом случае, расслабляться ни на минуту нельзя.
3. Защита.
Антивирус + файерволл уберегут вас от непрошенного гостя на жёстком диске. Если эти компоненты отсутствуют, то банальное внимание, ведь .EXE от .PDF отличить в принципе не сложно.
4. Удаление трояна и восстановление работы системы.
Ну, и напоследок, про устранение последствий. Так он обнаруживается почти всеми известными антивирусами, то проблем с удалением возникнуть не должно. На всякий случай напомню, что нам надо удалить из реестра HKCU\Software\Microsoft\CurrentVersion\Run имя файла(наверное всем сразу будет понятно по имени, что это троян) и из папки C:\Documents and Settings\All Users\Application Data(и из папки windows\system32) удалить файлы с именем типа 82f585r5d.exe. Далее, следует отключить сокрытие файлов. Для этого, нажимаем на свойство папки и убираем флажок с свойства “Скрытый”.
Мы рассмотрели один из распространённых видов троянов. При должной защите и при внимании, эта опасность пройдёт стороной. Поэтому, даже с самыми современными средствами борьбы, нужно не терять бдительность. Удачи!
- Uranium's блог
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 1336 просмотров



Комментарии
2 комментария(ев)Дата: Втр, 04/10/2011 - 22:48
Классная статья!) Интересно почитать "для души".
Дата: ПТ, 07/10/2011 - 21:37
Спс, для начала неплохо, ждем продолжения о более серьезных угрозах и способах их устранения.