8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 6 7 8 9 10 11 12 ... 102

fAeqajvS!pOflTH0r0 внедРения вирусов

Ниже в качестве примера приведен фрагмент вируса I-Worm.Kiliez.e, на малоизвестное™ которого жаловаться не приходится (Вах! Как трудно взглянуть на дамп того, что вы запускаете!) (листинг 1.1). Текстовые строки, содержащиеся в теле I-Worm.Kiliez.e, выдают агрессивные намерения последнего с головой!

Листинг 1.1- Фрагмент вируса I-Worm.Kilez.e

data:0040Е048 aQui:db QUIT .OQh.OAh.C

data:0040E05Cdb . .ODr.OAh.O

data:0040E058 aDacadb DATA .0D1.OAh.0

data:0040E060 aHeloSdb HELO %s.ODh.OAh.O

data: 0040E06C asc 40db >-.ODh.OAn.0

data:0040E070 aMailFromdb MAIL FROM: <\0

data:004CE080 aRcptTodb RCPTTOiV.O

data:0040F244 aSoftwareMicrosdb Softwa~e\№crosoft\Hindows\CurrentVersion\ .0

data:004CF279 aRundbRun.C

data:0040F27D aRunoncedb RunOnce.O

data:0040F285 aSystemCurrentcdb "SystemXCurrentControlSetVServices" .0

data:0040F2A7 aSoftwareMicr 0db Software\№crosoft\WAB\WAB4\Wab File Name.O

data:0C40F2Dl aRunservicesdb RunServices.0

data-.0040F2DD alnternetSettindb Internet Settings\CacHe\Pa№s.0

data:0040F302 aHidb Hi..O

data: 0040F306 aHel 1 оdb Hel 1 о.. 0

data:0040F30D aRedb Re: .0

data:0040F311 aFwdb Fw: .0

data-.0040F315 aUndeliverableMdb Undel iverable mail-"Ss" .0

data:0040F32E aReturnedMai ISdb Returned mail-s".0

ИДЕНТИФИКАЦИЯ УПАКОВЩИКА И АВТОМАТИЧЕСКАЯ РАСПАКОВКА

Упаковка исполняемых файлов «навесными» упаковщиками была широко распространена еще во времена господства MS-DOS и преследовала собой следующие пели:

• Уменьшение размеров программы на диске; сокрытие текстовых строк от посторонних глаз; затруднение анализа программы; *°слеиление» сигнатурного поиска.

Упа "°След,1их пункта стоит отметить особо. Напрямую дизассемблировать ся с Ванную программу нельзя. Прежде исследователю предстоит разобрать-Л)е11УПаковШиком, зачастую основанным на весьма нетривиальном алгорит-чИков°ДеРЖа,ЦИМ °°льшое количество разнообразных приемов против отлад-(чап И/,ИЛ11 Дизассемблеров. Также существуют и полиморфные упаковщики ИдедИМеР Elock), генерирующие машинный род распаковщика на «лету» ЖиМиаЮЦИе зашифрованные экземпляры одной и той же программы не похо-ДрУг на друга.


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

С переходом на Windows многое изменилось. Количество упаковщиков резко возросло, но ни одного универсального распаковщика до сих нор так и не появилось, а потому анатиз упакованных файлов представляет собой одну из актуальнейших проблем современной антивирусной индустрии.

ПРИМЕЧАНИЕ---

Если при дизассемблировании исследуемого файла большую часть исполняемого кода дизассемблер представил в виде дампа или выдал на выходе бессмысленный мусор (неверные опокоды команд, обращения к портам ввода/вывода, привилегированные команды, несуществующие смещения и т. д.), то файл, скорее всего, упакован и/или зашифрован.

Зачастую расшифровщик крайне примитивен и состоит из десятка-другого машинных команд, смысл которых понятен с первого взгляда. В таком случае распаковать файл можно и самостоятельно. Для этого вам даже не придется выходить из дизассемблера — всю работу можно выполнить и на встроенном языке (если, конечно, ваш дизассемблер поддерживает такой язык). Для расшифровки простейших «ксорок» хорошо подходит HIEW, а задачи посложнее решаются с помощью IDA (листинг 1.2). Подробное изложение методики расшифровки исполняемых файлов вы найдете в книге Криса Каснерски «Образ мышления — дизассемблер IDA».

Листинг 1.2. Пример типичного «ксорного» расшифровщика с комментариями

text:004010DA loc 4010DA:

CODE XREF: sub 401090+58ij

text:00401ODA

mov

dl. [esp+ecx+OO"]

загрузить в OL след. байт

text:004010DE

xor

dl. 66h

расшифровать по XOR 66h

text:004010El

mov

[esp+ecx+OCh], dl

положить на место

text:004010E5

inc

ecx

увеличить счетчик на единицу

text:004010E6

cmp

ecx. eax

еще есть что расшифровывать?

text:004010E8

jl

short ioc 4010DA

„если да. то могаем цикл

text:004010EA loC 4010EA:

CODE XREF: sub 401C90+48tj

Если же код расшифровщика но своей дремучести напоминает непроходимый таежный лес, у исследователя есть все основания считать, что подопытная программа упакована одним из навесных упаковщиков, к которым, в частности, принадлежат ASPack, UPX, NeoLite н другие. Отождествить конкретный упаковщик при наличии достаточного опыта можно и самостоятельно (даже полиморфные упаковщики легко распознаются визуально, стоит только столкнуться с ними три-пять раз кряду), а во всех остатьных случаях вам помогут


ВНИМАНИЕ-—-

Установка программной точки останова с кодом CCh в подавляющем большинстве случаев приведет к краху распаковщика, для предотвращения которого следует воспользоваться аппаратными точками останова; за подробностями обращайтесь к руководству пользователя вашего отладчика, в частности, в soft-ice установка аппаратной точки останова осуществляется командой ВРМ адрес X.

pe-scan:: msbJast.exe

! detected.: signage LI

3EZL

op&ns

gut

Рис. 1.2. РЕ-SCAN в действии

А как быть, если РЕ-SCAN не сможет определить оригинальную точку входа или ни один из найденных вами распаковщиков не справляется с данным файлом? Если исследуемый файл хотя бы однократно запускался (то есть ваша Машина уже потенциально заражена), можно взять procdump (http://proc-dump32.cjb.net) и, запустив распаковываемый файл еще раз, снять с него полный дамп памяти (task ► имя процесса ► dump fill). Конечно, чтобы полученный Дамп превратился в полноценный РЕ-файл, над ним придется как следует поработать, но для дизассемблирования сойдет и так. Шансы распаковать файл без его запуска средствами procdump относительно невелики, да и качество Распаковки оставляет желать лучшего. Зачастую распакованный файл не пригоден даже для дизассембл ирования, не то что запуска!

1 Упаковщик UNPX также содержит в себе п распаковщик, хотя это скорее исключение, чем "Равило.

специальные сканеры, самым известным (и мощным!) из которых является бесплатно распространяемый РЕ-SCAN (http://k-Iine.cjb.netytools/pe-scan.zip). Давайте возьмем файл с вирусом Worm.Win32.Lovesan (также известный под именем MSblast) и «натравим» на него РЕ-SCAN (рис. 1.2). Сканер тут же сообщит, что вирус упакован упаковщиком UPX, который можно скачать с сервера upx.sour-ceforge.net а при нажатии на кнопку ОЕР определит и адрес оригинальной точки входа в файл (в данном случае она равна HCBh). Ну, коль скоро мы знаем имя упаковщика, найти готовый распаковщик не составит больших проблем («UPX» + «ипраск» в любом поисковике)1. Вместе с тем. знание оригинальной точки входа в файл позволяет установить на этот адрес точку останова, и тогда в момент передачи управления только что распакованному файлу отладчик немедленно отреагирует.



0 ... 6 7 8 9 10 11 12 ... 102