Сейчас на форуме: ==DJ==[ZLO], Magister Yoda, Rio (+6 невидимых)

 eXeL@B —› Основной форум —› ASPack to ASPR
Посл.ответ Сообщение

Ранг: 0.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 09 февраля 2005 23:49
· Личное сообщение · #1

Предистория:
Модифицируем троян или как обойти AVP

*Dr.Golova*

Модифицируем троян или как обойти AVP


*Dr.Golova*


Прочитав повествование об обмане AVP при посылке трояна на удаленный
компьютер я был сказочно обрадован полетом народной мысли Но разве можно
заниматься таким вредительством, как удаление баз с вирусными
сигнатурами - это сакс (не по-кулхацкерски), к тому же каждый дурак
любит постоянно обновлять базы - благо на халяву и автоматом

Теперь и я хочу поделиться кое-каким методом. Задача стара как мир - не
занимаясь написанием своего трояна, надо сделать имеющийся незаметным
для антивируса.

Так как же антивирус ищет вирусы и трояны? Какое-то время назад я
пообщался с очень умными людьми, которые сообщили мне, что это "Страшная
Тайна", и официальной информации я по этому поводу не найду. Но если в
вкратце, то антивирус, не обнаружив в файле известных сигнатур
(последовательностей байт), применяет "эвристику" - начинает смотреть,
что за команды идут в файле, и пытается их эмулировать и "смотреть", что
же эти команды могут делать, поскольку не может просто запустить файл,
дождаться, пока он сам распакуется/расшифруется в память, дабы случайно
не заразить комп, на котором запускается этот файл. Однако многие
команды (например, настройку импорта) процессора он не может
проэмулировать, поэтому, встретив такие команды, он просто забивает на
дальнейшую проверку, даже не говоря о своей некомпетентности


К счастью (или нет), все пакеры для оптимизации пишутся настолько через
задницу, что антивирус приходит в дикий восторг, т.е. бросает проверку
файла, что нам и надо. Тем не менее, у 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 или НТ - Х.З. Я не проверял, но причин для отказа в
работе я не вижу.
www.xakery.ru

Решил проверить этот способ на сжатом ASPack файле и после этого PEiD показал ASProtect 1.22 - 1.23 Beta [Registred].




Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 09 февраля 2005 23:55
· Личное сообщение · #2

=)




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 10 февраля 2005 08:32
· Личное сообщение · #3

DrGolova пишет как обойти антивирь, в разработке которого сам участвует %)))))))

jurist
_http://wellsite.chat.ru/CrackVirus.zip



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 10 февраля 2005 13:05
· Личное сообщение · #4

WELL пишет:
DrGolova пишет как обойти антивирь, в разработке которого сам участвует %)))))))

этому тексту уже лет сто...




Ранг: 536.4 (!), 171thx
Активность: 0.660.13
Статус: Администратор
Создатель CRACKL@B

Создано: 10 февраля 2005 14:31
· Личное сообщение · #5

jurist пишет:
Вот такой он "народный", "самый лучший" антивирус.

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

-----
Всем не угодишь





Ранг: 536.4 (!), 171thx
Активность: 0.660.13
Статус: Администратор
Создатель CRACKL@B

Создано: 10 февраля 2005 14:32
· Личное сообщение · #6

...а ваще вирусы писать - нехорошо, надо возлюбить ближнего своего и не баловаться.

-----
Всем не угодишь




Ранг: 0.0 (гость)
Активность: 0.040
Статус: Участник

Создано: 10 февраля 2005 21:22
· Личное сообщение · #7

Очень старая статья DrGolov'ы от 2001года =) Так сказать "пионерские годы" Сейчас она не актуальна для AVP (верно, DrGolova? )



Ранг: 111.4 (ветеран)
Активность: 0.060
Статус: Участник

Создано: 11 февраля 2005 16:32
· Личное сообщение · #8

Man1ac
Принцип действия остался актуален..



Ранг: 111.4 (ветеран)
Активность: 0.060
Статус: Участник

Создано: 11 февраля 2005 16:33
· Личное сообщение · #9

Впрочем как раз тока от KAV..


 eXeL@B —› Основной форум —› ASPack to ASPR
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати