Наш Jabber-сервер расположен по адресу fuckav.in. Добро пожаловать!!! |
|
Статьи Раздел с интересными статьями! |
Для того, чтобы ответить в теме, необходимо зарегистрироваться. |
|
Опции темы | Опции просмотра |
11-11-2009 | #1 |
|
Прячем Зло или Чистим АВ-сигнатуры
Прячем Зло или Чистим АВ-сигнатуры
Интро Надюсь, тебе известно, как в АВ-программах организован поиск зловредов: в антивирусе есть база данных, в которой собраны сигнатуры вирусов - уникальные куски кода/данных. Антивирус ищет в файле эти куски, и если находит - прощай свежий криптор или троян. В далекие времена, когда дети сидели за партами, а не писали вирусы, сигнатуры можно было выдрать из аверских баз, найти в малваре этот кусок, поменять - и опа, никто нас не видит. Но с тех пор, Евгений поумнел (или умных нанял), и начал хорошенько прятать сигнатуры. Доковыряться до них - задача не из легких, поэтому мы выберем путь полегче - найдем их самостоятельно, не копаясь в базах продуктов мозговой жизнедеятельности аверов. Суть такого поиска сигнатур - попробовать менять каждый байт вируса, и если после такого он станет чистым в глазах АВ - мы нашли ее! У такой методы есть большое количество минусов - скорость поиска, возможность вообще ничего стоящего не получить и т.п. Но пробовать все-равно стоит! "Сестра! Скальпель и кувалду!" Для примера, от настырных глаз АВ будем прятать EXE - контейнер джоинера SunS Joiner. Склеивать будем 2 маленькие свежескомпилированые мирные проги - обе создают по обычному окну. Они есть в архиве к статье (см. внизу). Софт, который будет использоваться: 1) Free Hex Editor ([Ссылки могут видеть только зарегистрированные пользователи.]) - простенький хекс-редактор. Можно использовать тот-же WinHex. 2) OllyDbg v1.10 ([Ссылки могут видеть только зарегистрированные пользователи.]) - отладчик, нужен для просмотра и редактирования нужной сигнатуры. 3) SunS Joiner v2.2.4 ([Ссылки могут видеть только зарегистрированные пользователи.]) - джоинер, которым будем клеить файлы. Жутко палится, но нам это и нужно. 4) [SD] SignDetect ([Ссылки могут видеть только зарегистрированные пользователи.]) - пропиарюсь немного :-) Этой тулзой будем искать сигнатуру. 5) KIS7 ([Ссылки могут видеть только зарегистрированные пользователи.]) - собственно, от него и будем прятать файл. 6) PEiD v0.95 ([Ссылки могут видеть только зарегистрированные пользователи.]) - для скана контейнера с целью сильно ускорить весь процесс очистки (см. ниже) "На старт! Внимание! Марш!" Открывай джоинер: Жми сразу "Без иконки". Для теста, лучше иконку не ставить, т.к. размер ЕХЕ на выходе будет меньше, соотвественно и сигнатуру искать быстрее будет. Добавляем наши тестовые файлы "poasm1k.exe" и "simple.exe". Нажимай на "Склеить" - сохраняй контейнер под любым именем, например "aaa.exe". Дальше клей нам не понадобится, поэтому закрывай его. Следующий инструмент в очереди - SignDetect. Немного о нем: суть его работы вот в чем - берет наш контейнер, и по очереди меняет 1 байт (опционально, можно увеличить) файла и сохраняет такой "мод" в отдельной папке. После окончания работы в этой папке будет большое количество таких вот "модов". На эту папку нужно натравить АВ, который чекнет и удалит все палящиеся файлы. Файлы, что останутся в ней после проверки - с очищенной сигнатурой. Запускай тулзу: Жми на "..." - выбирай контейнер "aaa.exe". Следующий шаг - определиться с настройками проги. Опция "Скан файла" предназначена для выбора диапазона байт в файле, которые мы будем менять. Если контейнер большой (более 100 КБ) - процесс записи тулзой файлов будет длится долго, точно как и скан АВером всех файлов и очистка их же. Поэтому, если есть желание, время и фри спэйс на харде, то выбирай "Весь файл". В нашем случае выбираем "Диапазон (HEX)". Нижняя и верхняя границы диапазона - левое и правое поля соответственно. Для удачного в плане скорости выбора следует правильно выбрать их. Нижнее поле - чаще всего надо использовать смещение начала первой секции контейнера. Для этого открываем PEiD, выбираем в нем наш контейнер, и жмем на кнопку просмотра секция файла: Откроется окно с аттрибутами секций файла. Нам нужно узнать смещение первой секции EXE. Вот оно: Т.е. нужно выбирать самое наименьшее значение столбца "R. Offset". В данном случае оно равно 400h. На этом PEiD нам отслужил - можно закрывать, больше не понадобится. Вводим 400 в левое поле [SD] - это было нижнее значение. Верхнее - это размер файла. Смотрим его в проводнике или TC (Не забудь - оно там в десятиричном виде, а в [SD] нужно вбивать в HEX. Сконвертируй в калькуляторе или в уме ;-) В нашем случае вышло "560C". Это - верхнее значение, вбивай его в правое поле. Следующая опция - "Количество байт для записи" - думаю назначение понятно. По умолчанию стоит "1". Если после окончания работы тулзы, все созданные файлы палятся - следует увеличить значение и повторить работу с тулзой. Перед началом работы тулзы, лучше вырубить защиту АВ, т.к. она начнет буйно реагировать на работу с зараженным файлом. Жмем кнопку "Старт!" и ожидаем окончания работы, о чем нам скажет сообщение - "Готово!". На этом работа с тулзой закончена - можно ее закрывать. Природный отбор После окончания работы с [SD], рядом с программой создастся папка "SIGN_DETECT", в которой будут измененные EXEшники нашего контейнера. Натравляем АВ на эту папку (Важно! В антивирусе нужно включить опцию - "удалять зараженные". С ней будет намного удобнее - те файлы, которые остались палевными удалятся, а нужные останутся в папке) и ждем конца проверки. После окончания видим такуюю картину: Всего файлов в папке - 21448, а зараженных - 20876. Т.е. очищенных - 572 файла! Это отличный результат. Теперь, чтобы эти файлы не искать, дадим антивирусу удалить грязные файлы. Опять ждем, пока удалится ~20к файлов. После этого в папке остались только нужные нам файлы. Сама чистка Закрываем АВ и заходим в папку "SIGN_DETECT". Выбираем любой файл, например "000035A0.exe". Название файла соответствует смещению, по которому изменился байт. Этот файл нам больше не нужен, т.к. все что нужно - смещение, мы узнали. Запускай Frhed и открывай в нем файл "aaa.exe" - наш контейнер. Топаем по адресу 000035A0 и видим такую картину: Запоминаем несколько байт по этому адресу, например 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, чтобы это выглядело так: Жми "Enter" - поиск закончится и указатель в окне CPU станет на найденную инструкцию: Поиск остановился на адресе 004041A0, на строке "MOV EDI, 406668" - помещение в регистр EDI значения 406668h. Учитывая большое количество отсеяных файлов (572), скорее всего эта строка - только часть сигнатуры, т.е. если мы уберем/перенесем ее - АВ заткнется. Если ее просто изменить на случайное значение - ЕХЕ перестанет работать, поэтому нужно изменить байты так, чтобы код не потерял работоспособности. Самый простой способ - перенести эту команду в неиспользуемое место. Иллюстрация: Т.е. на место "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 [Ссылки могут видеть только зарегистрированные пользователи.] Файл "aaa2.exe", наша версия: 19/41 [Ссылки могут видеть только зарегистрированные пользователи.] Очень отчетливо видно, как заткнулись 16 антивирусов :-D Среди них и продукт ЛК. Аутро Вот так, имея в запасе 20 минут свободного времени можно забыть об АВ. Такой метод очень хорошо себя проявляет тогда, когда нужно протроянить определенную жертву, когда знаешь, какой у нее АВ - например друзья, родственники и т.д. ;-) Архив с подобытными кроликами и модифицированным файлом можно найти тут: [Ссылки могут видеть только зарегистрированные пользователи.] : vazonez Оригинал: [Ссылки могут видеть только зарегистрированные пользователи.] Видео-туториал можно скачать тут: [Ссылки могут видеть только зарегистрированные пользователи.] Последний раз редактировалось vazonez; 31-07-2010 в 17:20. |
Для того, чтобы ответить в теме, необходимо зарегистрироваться. |
Метки |
avast, backdoor, bifrose, drweb, dword, file, short, start, trojan, virez, ав-сигнатуры, геморой, прячем, чистим |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | |
Опции просмотра | |
|
|