1
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
Приветствуем вас,Гость, на форуме IFUD.WS. Обязательно рекомендуется к прочтению правила форума http://ifud.ws/threads/obnovleno-pravila-foruma.7759

Что скрывает Bitdefender или тестируем morphico, Krypton 7.1

Тема в разделе "Чужие", создана пользователем vasenka444, 19 май 2015.

  1. TopicStarter Overlay
    vasenka444

    vasenka444

    Регистрация:
    19 апр 2014
    Сообщения:
    299
    Симпатии:
    203
    Статья писалась несколько лет назад, но я ее немного доработал и решил повторно запостить, тем более что такая инфа всегда актуальна.
    Когда-то давно был сделан релиз криптора Krypton (тупо слитого в паблик самим же автором в блэке), стоимостью этого криптора X000$ и было даже обсуждение (которое кануло влету) этого криптора...
    Цитата
    морфер иконок
    Цитата
    Это что еще за поебень?
    Цитата
    Я думаю это та поебень, которая генерирует рандомную иконку.
    Только не из базы, а за счет смещения пикселей создавая уникальную картинку.
    Это мое предположение
    Вот такие обсуждения были о морфере иконок из этого криптора и стало интересно, что же он умеет за такие-то деньги.
    скачать можно у нас в разделе с исходниками
    Я хочу рассказать о результатах теста здесь.

    Как-то мне дали файл закриптовать и к нему прилагалась иконка, которую нужно было установить в качестве основной.
    Я обычно делаю тесты криптора в начале дня для того чтобы проверить не палится ли криптор на VT. Все было как обычно нормально.
    Я закриптовал этот файл, что мне дали и начал делать проверку на установленных локально антивирусах на виртуальных машинах без доступа в сеть. Такие проверки я делаю для того чтобы избежать случайных срабатываний так как данные получаются рандомные в закриптованном файле и могут сгенерироваться случайным образом так, что могут вызвать случайный детект.
    И вдруг неожиданно Bitdefender заругался Gen:Trojan.Heur.eqW@vrU6Gbbix, я перекриптовал заново и сделал повторно Bitdefender'ом проверку и опять получил детект, но так как у меня криптор создает большую часть рандомных данных, то детект уже получился немного другой Gen:Trojan.Heur.eqW@vbW!c!fix
    Мне предстояло сделать чистку... [​IMG]
    В процессе исследования Bitdefender'а я выяснил, что ругается он именно на иконку и как оказалось там, в базах Bitdefender'а находится хэш-суммы более 1000 иконок, и если хоть одна из них будет присутствовать в закриптованном файле - будет срабатывать детект.
    Мне удалось найти две иконки из этой базы, - одна которую мне дали, а вторую я нашел сам методом "тыка".
    _Please login or register to view links
    [​IMG]
    Вот эти иконки и будут выступать в качестве проверки морфера иконок.

    Заморфив эти две иконки я получил в результате одну иконку (зеленую, ее можно вытащить из C:\WINDOWS\system32\napstat.exe) 48x48x16 и вторую (красную)
    На выходе получил 48x48x256 - значит, морфер не может морфить иконки, которые содержат в себе разные форматы, и выбирает для морфа только одну ту, которая находится первой... - это первый недостаток.
    Место первой иконки можно менять, к примеру, в AWicons Pro, но лучше сразу вытащить нужные форматы иконок, по которым детектит Bitdefender, заморфить их проверить будет ли детектить Bitdefender после морфа.
    Наверное, стоит пояснить, что Bitdefender не осуществляет детект по всем форматам иконок находящимся в иконке, а только лишь по одному из тех, что находятся в иконке при этом форматы эти разные для каждой иконки свой формат.
    Для зеленой иконки детект будет срабатывать по формату иконки 32x32x32bit
    С помощью AWicons Pro я вытащил нужный формат иконки и сохранил в отдельный файл.
    Потом заморфил эту иконку.
    Стало интересно, а что же там такое вообще морфится?
    Для того чтобы узнать что же конкретно морфится в иконке я воспользовался 010 Editor'ом, о котором я писал в прошлой статье.
    У него есть специальный шаблон (файл ICOTemplate.bt, его можно скачать с сайта 010 Editor'а), который создает в структуру удобную для просмотра. (см. рисунок ниже)
    Также 010 Editor позволяет сравнивать два файла и сравнить сделанные изменения.
    Далее мы сравним эти две иконки в 010 Editor для того чтобы увидеть разницу, для этого идем в меню Tools->Compare Files...
    В появившемся окне выбираем фалы для сравнения из выпадающих списков (там находятся открытые файлы в 010 Editor) и установим галочку для синхронизации скроллинга Enable Synchronized Scrolling и жмем Compare
    Таким образом, мы увидим разницу этих двух иконок и убедимся, что они отличаются.
    _Please login or register to view links
    [​IMG]

    На рисунке видно, что морфер не смог сморфить иконку формата 32x32x32bit, а создал из нее 32x32x24bit, что естественно визуально видно. Это уже второй недостаток, который мы видим.
    Ну и третий недостаток. (на мой взгляд, самый важный)
    Морфер делает незначительные изменения в пикселях цвета, что не может повлиять визуально на ее вид, но сделает иконку другой.
    Цвет #3A3A3A он преобразует в #3D3C3B или цвет #292929 он преобразует в #2B2A2C, то есть прибавляет к цвету от 1 до 4, что является незначительным изменением и визуально глазом не будет заметно.
    В реале же это бесполезно, так как Bitdefender преобразует иконку в монохромную маску (где цвет - это 1, а прозрачное место - это 0) и тем самым эти незначительные сделанные изменения становятся бессмысленными, так как в моно-маске сделанные изменения в иконке этим морфером будут всегда как цвет, то есть 1.
    Но этим все еще не заканчивается, Bitdefender по этой маске высчитывает mod-CRC32 и сравнивает в диапазоне от и до.
    Стоит также подметить то, что если просто добавить иконку в обычный HelloWorld.exe, то деткта не будет, так как Bitdefender делает проверку иконок по базам при определенных нюансах, которые зависят от закриптованного файла.
    Итог всего этого:
    Этот морфер можно применить против примитивных антивирусов (типа антивирусной утилиты AVZ, у которого действительно детект осуществляется в частности по MD5), но все же будут смотреть, что показал Bitdefender и его компания!
    Наверное, можно использовать этот морфер иконок совместно с AWicons Pro и 010 Editor (на халяву и уксус сладкий); вполне возможно, что кому-то этот морфер и поможет сбить детект, но вот платить ли за это деньги - каждый решает для себя уже сам.

    Дополнение к статье.
    Я сделал рип кода (который детектит по иконкам) из Bitdefender'а и создал на его основе мини программу, и с помощью нее сделал брут в папке WINDOWS\system32, и оказалось что многие иконки из этой папки в базах Bitdefender'а.
    Иконка калькулятора вообще всех форматов, а также много стандартных иконок типа папок... и есть даже форматы полностью прозрачных иконок.
    Грубо говоря, если троян пытается косить (к примеру, на флэшке) под папку и в нем присутствует иконка папки, то с большей доли вероятности такой троян будет спален по этой иконке.
    Хотелось бы посоветовать: если у вас нет мощного морфера иконок, то лучше не юзайте иконки из папки system32 (да и вообще из системы), так как существует большая вероятность, что спалят вас именно по этой иконке. Старайтесь использовать уникальные иконки.

    Еще хотел дополнить одной любопытной инфой, у меня в крипторе есть простенький генератор рандомных иконок - нужен он для тестов на VT, но вот в один прекрасный момент начала полить меня Avira, при этом если убрать из-за криптованного файла иконку, то детект пропадал.
    Сделав реверс авиры, я выяснил, что детект был настолько примитивный, что даже слов найти невозможно.
    Принцип детекта был следующий: авира проверяет в конце файла (последний DWORD) наличие нулевого значения и если оно ноль, то все хорошо, но вот если это значение отличается от нуля, то начинаются дополнительные проверки.
    У меня в крипторе иконка добавляется при помощи BeginUpdateResource, UpdateResource, EndUpdateResource - так вот у такого способа есть один недостаток, при добавлении иконки в конец файла добавляется и так называемый эффект PADDINGX, из-за чего последний DWORD всегда не является нулем и из-за этого включалась дополнительная проверка.
    А дополнительная проверка заключалась в том, что по смещению от конца файла (перепрыгнув через область ресурсов GROUP_ICON) проверялись еще два DWORD'а на наличие не нулевого значения, а так как у меня в рандомных иконках всегда в конце нули, то и происходил детект.
    Советую всегда в конце закриптованного файла затирать нулями этот эффект PADDINGX, чтобы избегать случайных детектов.

    Если вдруг кого-то интересует тема криптования, то здесь я потихоньку "пилю" платформу по "чистке" стабов.
    Please login or register to view links
    готов выслушать дельные советы и конструктивную критику. [​IMG]

    немного не в тему, но имеет отношение к Krypton
    Цитата
    Морфирование без исходников - используется стороння "pmorph.dll".
    Иммем: Взять файл, обработать морфером, засунуть в свое тело и при запуске запустить из памяти. Все самое вкусне по "мусоризации" в дллке без сорцов.
    Сегодня нашел время и посмотрел эту "pmorph.dll"
    Оказалось что это немного измененный код исходника Morphine v3.5 написанного на Delphi. Просто, если посмотреть на экспортируемую функцию GenerateRubbishCode и посмотреть на то, что пишет автор Morphine
    Код

    procedure GenerateRubbishCode(AMem:Pointer;ASize,AVirtAddr:Cardinal); stdcall;
    //generates a buffer of instructions that does nothing
    //don't forget that flags are usually changed here
    //and don't use nops
    Вот в этом месте он написал немного своего кода, я бы даже сказал, скопировал и вставил кусочки кода из функции InsertRandomInstruction некий гибрид из копипаста, его кода там очень мало.
    Так что можно считать что "pmorph.dll" опенсорсный, я думаю, что эти плагины сделаны из паблик исходников и чтобы не позорится он не стал добавлять исходники в архив, прямое свидетельство того что он не соблюдает авторских прав.
    Хотя о чем это я, это же недешевый коммерческий проект, о какой честности здесь можно рассуждать...
    И это по своей сути не морфер вообще, а генератор мусора. Просто называть замену NOP'ов - морфированием, не совсем этично. [​IMG]
    Морфер - это все же более сложный движок, чем просто банальная замена.
    Хотя помню, когда я исследовал Панду... Помню, натыкался в ней на проверку, принцип которой заключался в следующем, если на OEP идет подряд не более ~40 одинаковых байт (кроме NOP'ов), то это при определенных условиях может убрать детект Suspicious file (эвристик)
    Вполне возможно, что если этот генератор мусора "pmorph.dll" применить на OEP, то возможно, что это уберет детект каких-то антивирусов, в любом случае это все надо тестировать и проверять...

    Итог всего этого:
    Я думаю, что он собрал по сусекам интернета исходники, чего-то там написал свое
    Цитата
    Карманная книжка по чистке. Часть 1 из 42.
    Установил ценник и вперед продавать, потом у него эти исходники покупают различные сервисы по криптованию и криптуют вот этим вот говном за деньги.
    Радует, что жизнь расставила все точки над "Ы" и мы это увидели в паблике и рассказали немного правды.
     
    • Like Like x 1
    • Dislike Dislike x 1
    Метки:

Поделиться этой страницей

Загрузка...