29.11.2004

Борьба с антивирусом или реверс в вирмейке, часть первая

В настоящее время термин информационная защита следует понимать не только как защита от взлома из сети, а так же как защита от вирусных нападений. В своем цикле статей "Реверс в вирмейке" я хочу показать несовершенство антивирусных машин пользователей и то, как взломщик может получить полный контроль над системой пользователя именно через антивирусную машину Касперского 5.0. Проще говоря, я вам расскажу каким образом можно беспрепятственно затроянить машину пользователя с установленным антивирусом.

Призы для победителей конкурса предоставил компьютерный интернет магазин

Автор:Shturmovik [Shturmovik at bk.ru]

Борьба с антивирусом или реверс в вирмейке.

Глава 1. Заражаем антивирус (Lite)

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

Введение.

Основной темой статей была информационная безопасность, но почему то никто не решил написать про такую безопасность как вирусную. Я тоже решил про нее не писать, но тут как раз у меня возникла мысль. Её я сейчас объясню. Но помните, я только укажу на дверь, войти в нее вы должны сами.

Моя идея заключалась в том чтобы сделать антивирусную машину полностью уязвимой для файлового вируса. Не знаю к горю или радости сейчас мало вирусов которые реально заражают файлы. Однако смысл заключается в том, что сегодняшний пользователь полностью полагается на антивирус, мощь и непобедимость которого рекламируют чуть ли не из каждого утюга. Вирмейкеры не дремлют, но скудеет их фантазия. Все новые вирусы как один похожи друг на друга и самая главная их ошибка, они пытаются быть незаметным в присутствии антивирусной машины. Нет это я не осуждаю, наш несуществующий (потому как создание вирусов это статья УК РФ!) вирус тоже будет прятаться, до того момента как поработит антивирус. Пользователь настолько зависит от антивируса, что антивирус теперь будет обузой.

Почему «Глава 1. Заражаем антивирус (Lite)»? Потому что эта статья это только первая часть, в которой я описал самый быстрый и легкий, но к тому же нестабильный метод заражения антивируса Касперского. Я уже заканчиваю другие части, где описывается способ на ура так сказать, монолитный и непробиваемый. Поэтому я хочу сразу сказать вам, читатели. Если вам не понравится эта статья по причине поверхностного рассмотрения вопроса, то прям так и напишите в обсуждении и тогда я выложу остальные главы где все детально, как я уже сказал разбирается (и еще пишется код :-)), просто я не выложу главную статья если вы этого не захотите. А здесь так … разминка.

Итак, подробности ниже.

Краткость сестра таланта" А.П.Чехов

Итак, в этой статье я расскажу о том как заразить Антивирус Касперского и что из этого можно получить.

План.

  1. Исследование антивируса.

  2. Написание кода на Delphi7.

  3. Открывшиеся возможности.

Ход работы.

Антивирус Касперского я выбрал не случайно, один из известнейших антивирусов. И тогда я решил посмотреть стоит ли он того, чего за него требуют. И я был огорчен жадностью людей.

Исследование.

Сразу что мы видим. А видим мы системную службу kavsvс (kavsvс.exe), которую нельзя ни остановить ни убить процесс. Можно просто отключить. Все беды в ней сразу скажу, её править мы будем самой последней, но ее надо отключить и ни в коем случае не удалять.

Как это сделать? Предлагаю два пути:

  1. Вирусные мистификации – то есть наш вирус при проникновении на машину жертвы первым делом выводит на экран окошко, точно такое же какое выводит Антивирусная машина Касперского, в котором мы напишем примерно следующее: «Антивирус Касперского обнаружил внешнюю службу, которая возможно является вирусом, файл успешно занесен в карантин и будет излечен, однако Антивирусу Касперского не удалось остановить службу. Зайдите в Пуск - Настройка - Панель управления - Администрирование - Службы и установите запуск службы kavsvс в ручной режим». Вот примерно так, это зависит от вашего умения говорить.

  2. Программно с помощью нашего вируса. Для этого всего лишь надо изменить параметры запуска службы kavsvc с автоматической загрузки на «вручную». Все это можно сделать в реестре, для этого надо пройти по путям :

HKLM\ SYSTEM\ControlSet002\Services\kavsvc и HKLM\ SYSTEM\ControlSet003\Services\kavsvc

Где необходимо изменить значение параметра Start, их всего пять вот они

  1. Загрузка

  2. Система

  3. Авто

  4. Вручную

  5. Отключена

нам надо естественно пункт 3.

Итак, службу мы остановили, и теперь мешать она нам не будет. Про то, как я ковырял службу, будет (если не поленюсь) следующая глава.

Если говорить честно, то я мучался и проводил тесты достаточно долго перед тем как встал на правильный путь. Все мои розмыслы я естественно тут писать не буду. Буду предельно краток.

Попробуем изменить хотя бы один байт в главном модуле антивируса - kav.exe ... Можно прям в рестораторе или ему подобном. Смотрим! размер файла изменился и стал не к примеру меньше. В чем дело? Дело, по-видимому, в нашей службе, ее я не стал глубоко изучать, поскольку уже нашел правильную дорогу. Итак, при изменении любого байта из файла kav.exe удаляется несколько последних байтов.

Запускаем теперь антивирус.

Что он нам говорит? А говорит он, что, возможно, заражен и короче, надо все проверить. Мы нажимаем ОК и смотрим - а наш файлик то уже восстановился... не хило подумал я.

Дальше я удалял побольше и побольше и вот каких результатов я добился.

  1. Окно "Внимание! Один из исполняемых файлов Антивируса Касперского......"

  2. Окно "Внимание! Один из исполняемых файлов был... " (куда Касперского дели?)

  3. Окно "Ошибка при запуске серверной части"

  4. Окно "Внимание! один из исполняемых файлов... (Восстановление завершилось неудачно) "

Сразу скажу, чтобы вас не напрягать, что мы будем добиваться пункта номер 4.

Итак, запускаем дизассемблер и открываем в нем kav.exe, пара секунд и все в порядке. Мне даже не требовалось определять, на чем написан и чем упакован Касперский Антивирус. Естественно он ни чем не упакован, иначе бы он не смог проверять свой код. По скорости открытия дизасмом файла - сразу ясно, что написан на Си. Си в дизасме можно как стихи читать.

Не мудря, мы сразу отправляемся в StrnRef и смотрим строки которые он выдает. Теперь самое интересное. Отметьте для себя, что там все наши сообщения есть. С самого начала я хотел плясать от них, но потом увидел загадочную процедуру (вот тут мне повезло! и помогло мне только то что программисты антивируса делают пояснения даже там где не надо) так вот что я увидел.

 **************************************************************
:004021ED 6A04                    push 00000004

* Possible StringData Ref from Data Obj ->"[GUI INIT] 
	Checking modules signature..."
                                  |
:004021EF 6828654100               push 00416528
:004021F4 8BCB                         mov ecx, ebx
:004021F6 FFD7                         call edi
:004021F8 8BCD                        mov ecx, ebp
:004021FA E8B1090000              call 00402BB0
:004021FF 84C0                         test al, al
:00402201 7517                           jne 0040221A
:00402203 6810100000                push 00001010

* Possible Reference to String Resource ID=00039: 
"Attention! One of the executable files has been modified. Th"
                                  |
:00402208 6A27                    push 00000027
:0040220A 6A00                    push 00000000
****************************************************************

вот интересно мне стало, что же это за проверка сигнатур и почему в результате проверки может выскочить уже знакомое нам окно =)

Естественно отвечаю это проверка целостности системы.

Посмотрим прыжок : 00402201 7517 jne 0040221A

***************************************************
:0040221A 6A04                    push 00000004

* Possible StringData Ref from Data Obj 
				->"[GUI INIT] Modules signatures "
				->"are OK"
                                  |
:0040221C 6800654100              push 00416500
:00402221 8BCB                    mov ecx, ebx
:00402223 FFD7                    call edi
**************************************************
Отлично. То есть для успеха нам всего то надо поменять jne на jmp, чтобы в любом случае всегда проверка была успешна.

Запускаем... опля значит у нас не одна проверка. Оно кстати и ясно мы еще не все окна увидели.

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

***************************************************
* Possible StringData Ref from Data Obj 
		->"[GUI INIT] Service started, checking "
		->"self signature..."
                                  |
:004023AD 6824634100              push 00416324
:004023B2 8BCB                    mov ecx, ebx
:004023B4 FFD7                    call edi
:004023B6 8BCD                    mov ecx, ebp
:004023B8 E883080000              call 00402C40
:004023BD 84C0                    test al, al
:004023BF 7545                    jne 00402406
:004023C1 6A01                    push 00000001

* Possible StringData Ref from Data Obj 
		->"[GUI INIT] Own module has wrong "
		->"signature! Quitting...."
                                  |
:004023C3 68EC624100              push 004162EC
************************************************
значит тут такой же переход

:004023BF 7545 ; jne 00402406

понятно что если мы не прыгнем то Антивирус не запустится. Так давайте посмотрим куда вообще мы прыгать будем

*************************************************
:00402406 6A04                    push 00000004

* Possible StringData Ref from Data Obj 
		->"[GUI INIT] Self signature is OK"
                                  |
:00402408 68CC624100              push 004162CC

*************************************************
Тоже самое что и в первом случае.

Правим в HIEW байты

:00402201    7517	на - 	:00402201    EB17
:004023BF   7545 	на -	:004023BF    EB45
Запускаем антивирус. Хм… опять окно. Читаем «Внимание! Один из исполняемых файлов Антивируса Касперского Personal поврежден (возможно, заражен вирусом). Восстановление завершилось неудачно»

Да так и есть, НО ОН ЗАПУСКАЕТСЯ, при этом полностью функционирует, проходит обновление. Короче ведет себя, как ни в чем, ни бывало.

Вот почти все. Защита снята. Теперь мы уберем окошко и, тогда, можно будет заражать и самого Касперского, но вирус писать сам я не буду, на то у вас фантазия есть.

Итак, надо убрать это окно, но перед этим подумаем, а стоит ли? Дело в том что, открыв в рестораторе все dll из папки Касперского, я наткнулся на самую первую, где был русский текст, который выдавало нам окно. Заменим его на «Привет Shturmovik» я не сколько не удивился когда увидел это вместо привычного сообщения. Это так к слову, если вы умеете программно изменять ресурсы и хотите всего лишь подшутить над другом, то можно что-нибудь написать вроде «Компьютер заражен вирусом Win32.Windows.XP! Удалите срочно файл NTOSKRNL.exe» ну или что то вроде.

На этом я откланяюсь. Как убрать вызов окна и загубить службу а так же другое, что я сейчас перечислю вы сможете прочитать в следующей главе. Сейчас она 80% завершена, в силу того, что мне легче сделать, чем описать как я все это сделал. Итак в следующей главе вы увидите:

  1. Полное снятие защиты проверки кода!
  2. Пример заражения главного модуля.
  3. Вводный курс как все устроено (зачем создаются *.tmp файлы и как этого избежать, и зачем все эти *.dll).
  4. Установка ограничения проверки (как раз сейчас разрабатываю, т.е. запретить проверять на вирусы свою папку)
  5. Маленькие хитрости с антивирусом.

Итак на этом заканчивается первая глава про Облегченный способ заражения антивируса Касперского. Попробуйте запустить службу… и все наши труды пойдут на смарку, KavSvc восстановит все в первозданный вид. О том как нам обойти эту и другие погрешности я расскажу в следующей главе. Ждите и помните. Что данная информация предоставлена только в ознакомительных целях, за использование данной информации в неправомерных деяниях, автор ответственности не несет.

А так же ждите выхода цикла моих статей Реверс в вирмейке про уязвимости в других антивирусных продуктах.

или введите имя

CAPTCHA