Прячем Зло или Чистим АВ-сигнатуры

Рубрика: СтатьиПросмотров: 5189

Прячем Зло или Чистим АВ-сигнатуры

Интро

Надюсь, тебе известно, как в АВ-программах организован поиск зловредов: в антивирусе есть база данных, в которой собраны сигнатуры вирусов - уникальные куски кода/данных. Антивирус ищет в файле эти куски, и если находит - прощай свежий криптор или троян.

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

Суть такого поиска сигнатур - попробовать менять каждый байт вируса, и если после такого он станет чистым в глазах АВ - мы нашли ее! У такой методы есть большое количество минусов - скорость поиска, возможность вообще ничего стоящего не получить и т.п. Но пробовать все-равно стоит!

"Сестра! Скальпель и кувалду!"

Для примера, от настырных глаз АВ будем прятать EXE - контейнер джоинера SunS Joiner. Склеивать будем 2 маленькие свежескомпилированые мирные проги - обе создают по обычному окну. Они есть в архиве к статье (см. внизу).

Софт, который будет использоваться:

1) Free Hex Editor (http://frhed.sourceforge.net/) - простенький хекс-редактор. Можно использовать тот-же WinHex.

2) OllyDbg v1.10 (http://www.ollydbg.de/) - отладчик, нужен для просмотра и редактирования нужной сигнатуры.

3) SunS Joiner v2.2.4 (http://rapidshare.com/files/131667281/SunS-joiner2.2.4.rar.html) - джоинер, которым будем клеить файлы. Жутко палится, но нам это и нужно.

4) [SD] SignDetect (/page/signdetect) - пропиарюсь немного :-) Этой тулзой будем искать сигнатуру.

5) KIS7 (http://www.kaspersky.com/) - собственно, от него и будем прятать файл.

6) PEiD v0.95 (http://www.peid.info/) - для скана контейнера с целью сильно ускорить весь процесс очистки (см. ниже)

"На старт! Внимание! Марш!"

Открывай джоинер:

/downloads/harmful/malwareclean/1.jpg

Жми сразу "Без иконки". Для теста, лучше иконку не ставить, т.к. размер ЕХЕ на выходе будет меньше, соотвественно и сигнатуру искать быстрее будет. Добавляем наши тестовые файлы "poasm1k.exe" и "simple.exe". Нажимай на "Склеить" - сохраняй контейнер под любым именем, например "aaa.exe". Дальше клей нам не понадобится, поэтому закрывай его.

Следующий инструмент в очереди - SignDetect. Немного о нем: суть его работы вот в чем - берет наш контейнер, и по очереди меняет 1 байт (опционально, можно увеличить) файла и сохраняет такой "мод" в отдельной папке. После окончания работы в этой папке будет большое количество таких вот "модов". На эту папку нужно натравить АВ, который чекнет и удалит все палящиеся файлы. Файлы, что останутся в ней после проверки - с очищенной сигнатурой.

Запускай тулзу:

/downloads/harmful/malwareclean/2.jpg

Жми на "..." - выбирай контейнер "aaa.exe". Следующий шаг - определиться с настройками проги.

Опция "Скан файла" предназначена для выбора диапазона байт в файле, которые мы будем менять. Если контейнер большой (более 100 КБ) - процесс записи тулзой файлов будет длится долго, точно как и скан АВером всех файлов и очистка их же. Поэтому, если есть желание, время и фри спэйс на харде, то выбирай "Весь файл". В нашем случае выбираем "Диапазон (HEX)". Нижняя и верхняя границы диапазона - левое и правое поля соответственно. Для удачного в плане скорости выбора следует правильно выбрать их. Нижнее поле - чаще всего надо использовать смещение начала первой секции контейнера. Для этого открываем PEiD, выбираем в нем наш контейнер, и жмем на кнопку просмотра секция файла:

/downloads/harmful/malwareclean/3.jpg

Откроется окно с аттрибутами секций файла. Нам нужно узнать смещение первой секции EXE. Вот оно:

/downloads/harmful/malwareclean/4.jpg

Т.е. нужно выбирать самое наименьшее значение столбца "R. Offset". В данном случае оно равно 400h. На этом PEiD нам отслужил - можно закрывать, больше не понадобится. Вводим 400 в левое поле [SD] - это было нижнее значение. Верхнее - это размер файла. Смотрим его в проводнике или TC (Не забудь - оно там в десятиричном виде, а в [SD] нужно вбивать в HEX. Сконвертируй в калькуляторе или в уме ;-) В нашем случае вышло "560C". Это - верхнее значение, вбивай его в правое поле.

Следующая опция - "Количество байт для записи" - думаю назначение понятно. По умолчанию стоит "1". Если после окончания работы тулзы, все созданные файлы палятся - следует увеличить значение и повторить работу с тулзой.

Перед началом работы тулзы, лучше вырубить защиту АВ, т.к. она начнет буйно реагировать на работу с зараженным файлом. Жмем кнопку "Старт!" и ожидаем окончания работы, о чем нам скажет сообщение - "Готово!". На этом работа с тулзой закончена - можно ее закрывать.

Природный отбор

После окончания работы с [SD], рядом с программой создастся папка "SIGN_DETECT", в которой будут измененные EXEшники нашего контейнера. Натравляем АВ на эту папку (Важно! В антивирусе нужно включить опцию - "удалять зараженные". С ней будет намного удобнее - те файлы, которые остались палевными удалятся, а нужные останутся в папке) и ждем конца проверки. После окончания видим такую картину:

/downloads/harmful/malwareclean/5.jpg

Всего файлов в папке - 21448, а зараженных - 20876. Т.е. очищенных - 572 файла! Это отличный результат. Теперь, чтобы эти файлы не искать, дадим антивирусу удалить грязные файлы. Опять ждем, пока удалится ~20к файлов. После этого в папке остались только нужные нам файлы.

Сама чистка

Закрываем АВ и заходим в папку "SIGN_DETECT". Выбираем любой файл, например "000035A0.exe". Название файла соответствует смещению, по которому изменился байт. Этот файл нам больше не нужен, т.к. все что нужно - смещение, мы узнали.

Запускай Frhed и открывай в нем файл "aaa.exe" - наш контейнер. Топаем по адресу 000035A0 и видим такую картину:

/downloads/harmful/malwareclean/6.jpg

Запоминаем несколько байт по этому адресу, например 8 штук - (BF 68 66 40 00 33 С0 55). Чем больше байт, тем лучше - но в нашем случае восьми будет достаточно. Закрывай Frhed - он больше не понадобится.

Последний инструмент, который будем использовать - OllyDbg. Запускай ее, и открывай в нем наш "aaa.exe".

Откроется окно CPU с кодом программы. Нам нужно найти в этом коде ту последовательность байт, при изменении которой файл перестает палится. Для этого откываем окно "Binary Search" - Ctrl+B, вводи в нижнее поле последовательность байт BF 68 66 40 00 33 С0 55, чтобы это выглядело так:

/downloads/harmful/malwareclean/7.jpg

Жми "Enter" - поиск закончится и указатель в окне CPU станет на найденную инструкцию:

/downloads/harmful/malwareclean/8.jpg

Поиск остановился на адресе 004041A0, на строке "MOV EDI, 406668" - помещение в регистр EDI значения 406668h. Учитывая большое количество отсеяных файлов (572), скорее всего эта строка - только часть сигнатуры, т.е. если мы уберем/перенесем ее - АВ заткнется. Если ее просто изменить на случайное значение - ЕХЕ перестанет работать, поэтому нужно изменить байты так, чтобы код не потерял работоспособности. Самый простой способ - перенести эту команду в неиспользуемое место. Иллюстрация:

/downloads/harmful/malwareclean/9.jpg

Т.е. на место "MOV EDI, 406668" ставим прыжок на неиспользуемое пространство, там вставляем: "MOV EDI, 406668" и переход обратно.

Чтобы это осуществить, нужно найти неиспользуемое место в коде. Листаем 2 экрана вниз в окне CPU и видим много нулей, начиная с адреса 404379. Чтобы было удобнее, возьмем круглый адрес - 404380. Ставим на него указатель, жмем пробел - откроется окно для ввода инструкции. Вводим "MOV EDI, 406668" (без кавычек) и жмем "Assemble". Сюда же вводим команду: "JMP 4041A5" - переход на адрес, по которому лежит инструкция, следующая за "MOV EDI, 406668" в оригинальном ЕХЕ - "aaa.exe".

Последний штрих - по адресу 004041A0 вбиваем команду "JMP 404380". Сохраняем модифицированный ЕХЕ: в контекстном меню окна CPU выбираем "Copy to executable" -> "All modifications" -> "Copy all". В контекстном меню появившегося окна выбираем "Save file" и сохраняем под именем "aaa2.exe".

Готово! Закрывай OllyDbg и запускай "aaa2.exe". Если все делалось правильно - должно появится 2 окна, а значит патч сработал и мы все сделали правильно.

Проверка на вшивость

Каспер удачно заткнулся - можешь проверить на своем. Но есть более интересный результат:

Файл "aaa.exe", который мы не трогали, на VT:

35/41

www.virustotal.com

Файл "aaa2.exe", наша версия:

19/41

www.virustotal.com

Очень отчетливо видно, как заткнулись 16 антивирусов :-D Среди них и продукт ЛК!!!

Аутро

Вот так, имея в запасе 20 минут свободного времени можно забыть об АВ. Такой метод очень хорошо себя проявляет тогда, когда нужно протроянить определенную жертву, когда знаешь, какой у нее АВ - например друзья, родственники и т.д. ;-)

Архив с подобытными кроликами и модифицированным файлом можно найти тут:

/downloads/harmful/malwareclean/rabbitz.zip : vazonez

Видео-туториал можно скачать тут:

http://www.multiupload.com/WH34NG5HA3

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com Google Buzz technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Подписаться на новые записи по RSS

Комментариев: 19

  1. перезалей [SD] SignDetect

  2. Поправил ссылку

  3. Сделал все как описано в статье,нифига адрес не находит,подскажите кто чем может.

  4. 2011-02-06 в 16:49:16 | Геннадий

    Угу, у меня тоже такая проблема! Замену я производил по одному байту, ищу в OllyDbg HEX-символы по смещению - Not Found.

    Есть предположение, что остались после чистки антивируса файлы, не из секции "source", "code" и т.п. (Кстати, в какой секции находится код билда DarkComet?)

    Как с этим бороться?

  5. (BF 68 66 40 00 33 С0 55)

    а почему вместо BF написано 40 ?

    не пойму подскажите плиз

  6. гоьрььььььььььььььььььььь

  7. 2011-06-02 в 19:41:04 | виктор

    блин всё сделал как написано в статье и нифига не может найти,пишет файл не найден((в чём тут дело?вижу не одного у меня эта проблема

  8. блять ктонить ответит в этой теме в чём дело

    ?

  9. народ!!! чтобы в оллидбг искалось нажмите SHIFT+F9 2 раза,и ищите,я тоже долго мучался,получилось

  10. Пиздец, как долго сканирует Др Вэб!!!!

  11. Сначало ничего не получалось но убив весь день сцуко, у меня получилось! Мой низкий поклон.

  12. Как размер файла перевести в НЕХ ?

  13. Здравствуй, Вазонез!

    в SD я выбрал кол-во байт для записи 20, однако после отсева палящихся клонов в пункте "сама чистка" я не могу найти смещение в программе "Frhed", что делать?)

  14. Ахуеть, все гениальное просто! Токошо отчистил зевса от каспера, автоклином 0.5 версии. Спасибо огромное ))

  15. Спасибо) Понял не сразу, но сейчас имею ясное представление что и как. Буду пробывать использовать твой второй способ. Большое спасибо что учишь нубов))

  16. 2012-03-31 в 22:34:47 | Александр

    Блин кто-нибудь помогите, мой скайп aleksandr007265

  17. В крипторе пинч

  18. 2012-05-20 в 00:23:51 | Александр

    Всё жопа, парился над вирусом, а теперь даже и aaa2.exe палится каспером 12, я уже и незнаю что делать, помогите что ли, кто мне сделает "мой файл" безпалевным? могу что-нибудь дать.

  19. 2012-05-20 в 00:25:11 | Александр

    мой скайп aleksandr007265, почта aleksandr-egorychev@mail.ru

Оставьте комментарий!

Используйте нормальные имена.

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

(обязательно)

Последние сообщения форума:

Связь: admin@vazonez.com