| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
Как обойти AVP Цель данной статьи - показать способ взлома вашего компьютера. Автор не несет никакой ответственности за ущерб, который может быть следствием прочтения этого сообщения. Данный метод работает только на Windows 9x русских версиях (для английских версий необходимо подправить каталог автозапуска), а также при инсталляции Antiviral Toolkit Pro в c:\program files\antiviral toolkit pro\ (по умолчанию). Рассмотрим следующую ситуацию: есть хост, имеющий общий ресурс С с полным доступом, установленным Antiviral Toolkit Pro. Как положить на него backdoor? Для этого надо заархивировать с паролем (BackdooR) сервер бакдора (будем использовать Back Oriffice 2000). Пароль используется для того, чтобы AVP сканер не смог обнаружить сервер бакдора: >PKZIP.EXE -a -sBackooR asyslg.dll BO2K.EXE Теперь AVP не сможет увидеть сигнатуры BO2k в ASYSLG.DLL (если установлена опция проверки архивов). Затем необходимо обеспечить запуск сервера и обезвредить AVP. Для этого напишем BAT-файл:
@echo off Расшифровка построчно:
отключение вывода на экран выполняемых команд Почему это будет работать? Потому что при старте Windows если в главном каталоге находится файл WINSTART.BAT он запускается на выполнение. При этом пользователь не увидит ни одного сообщения. Затем необходимо скопировать на удаленный компьютер следующие файлы:
ASYSLG.DLL в директорию c:\windows\ Итого необходимо будет закачать 86.508 байт. Все. После перезагрузки на компьютере из автозагрузки запустится сервер, удалит себя оттуда и запишет себя в c:\windows\system\ (сервер должен быть сконфигурирован на удаление оригинального файла). В принципе, можно использовать архиватор CAB, и проводить распаковывание программой EXTRACT.EXE, которая присутствуют на почти всех компьютерах, что позволит уменьшить размер перекачиваемых данных, однако данный архиватор не позволяет архивировать с паролем, что может привести к обнаружению сервера бакдора сканером (если включена опция проверки архивов). Рекомендации по защите от данного вида атаки:
ZaDNiCa
Модифицируем троян или как обойти AVP #2 Прочитав повествование об обмане AVP при посылке трояна на удаленный компьютер я был сказочно обрадован полетом народной мысли :) Но разве можно заниматься таким вредительством, как удаление баз с вирусными сигнатурами - это сакс (не по-кулхацкерски), к тому же каждый дурак любит постоянно обновлять базы - благо на халяву и автоматом :(
Теперь и я хочу поделиться кое-каким методом. Задача стара как мир - не занимаясь
написанием своего трояна, надо сделать имеющийся незаметным для антивируса. Итак,
нам понадобятся: Так как же антивирус ищет вирусы и трояны? Какое-то время назад я пообщался с очень умными людьми, которые сообщили мне, что это "Страшная Тайна", и официальной информации я по этому поводу не найду. Но если в вкратце, то антивирус, не обнаружив в файле известных сигнатур (последовательностей байт), применяет "эвристику" - начинает смотреть, что за команды идут в файле, и пытается их эмулировать и "смотреть", что же эти команды могут делать, поскольку не может просто запустить файл, дождаться, пока он сам распакуется/расшифруется в память, дабы случайно не заразить комп, на котором запускается этот файл. Однако многие команды (например, настройку импорта) процессора он не может проэмулировать, поэтому, встретив такие команды, он просто забивает на дальнейшую проверку, даже не говоря о своей некомпетентности :) К счастью (или нет), все пакеры для оптимизации пишутся настолько через задницу, что антивирус приходит в дикий восторг, т.е. бросает проверку файла, что нам и надо. Тем не менее, у AVP есть набор функций, с помощью которых он может определить, чем запакован файл, и распаковать его по имеющейся схеме, что он и делает в частности для UPX, и обнаруживает трояна в запакованном файле. Основная идея заключается в том, что нам надо изменить распаковщик таким образом, чтобы антивирус не признал в файле известный ему пакер и пропустил проверку. Итак, займемся делом.
Берем файл patch.ex_ из архива
Entry Point: 00082460h Теперь открываем файл в Hex редакторе Hiew. Переходим в режим дизассемблера (F4/Decode). Отправляемся по адресу Entry Point + Image Base = 00482460h (у кого плохо с шестнадцатеричной математикой, может воспользоваться стандартным мастдайским калькулятором - там есть Hex режим). Для этого жмем Goto (F5) и набиваем в качестве адреса ".482460" (точка перед адресом нужна потому что это виртуальный адрес). Видим начало распаковщика - что то вроде этого:
.00482460: 60 pushad То, что надо. Теперь надо найти свободное место для патча. Пролистаем страниц 6 вниз, и видим немного места забитого нулями - это добрый дядя Билли придумал выравнивание секций. Вот это и нужно было нам. Я выбрал адрес 004825CFh. Теперь подводим курсор к этому адресу и начинаем редактировать файл в ассемблерном режиме (F3/F2). Заколачиваем всего две команды: push OEP и ret (не забывая жать enter после ввода каждой команды :) Где ОЕР это Entry Point + Image Base, т.е. в нашем случае это число 00482460 - для других файлов соответственно будет другое. Итого забили вот что:
Push 00482460
.004825A9: 8903 mov [ebx],eax Остался последний рывок. Снова открываем файл в PE Editor'е от ProcDump32 и меняем точку входа на адрес нашей вставки, не забыв от виртуально адреса отнять Image Base, т.е. в Entry Point пишем 000825CF (Offset - Image Base = 004825CF - 00400000 = 000825CF). Кто знаком с ассемблером, тот поймет, что было сделано, а кто не знает (sic!) - тому это не нужно :) Вся операция занимает 2-3 минуты и литр пива.
Проверьте полученный файл (лежит в Полученный файл прекрасно работает у меня на WinME, как будет он себя вести на Win2k или НТ - Х.З. Я не проверял, но причин для отказа в работе я не вижу. Если у кого-то не получится так сделать - мылить мне не нужно, а надо переустановить драйвера устройства "руки".
Dr.Golova
|
|
| ||||||||||||||||
|