Загрузка...

Пишем криптор (который сам себе делает стабы)

Тема в разделе Вирусология создана пользователем LazersBoy 28 окт 2019. 7823 просмотра

  1. LazersBoy
    LazersBoy Автор темы 28 окт 2019 Заблокирован(а) 163 10 окт 2019
    Всем привет, давно я решил написать криптор для дотнет софта, просто для эксперемента. Да не просто криптор, а криптор с функцией генерации стаба! и не просто рандомное имя переменным, а трешген, методы запуска софта и прочее! Сподвигло меня начать писать крипторы желание посмотреть что из этого выйдет, и то, что я видел просто кучу топиков с продажей крипта от всяких ноунеймов за два бакса.

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

    Идея криптора в том, что он будет сам себе создавать стаб, криптор для C# работает на основе генерации треш кода,
    а криптор для C++ работает на основе генерации большого алгоритма шифрования. Это был просто эксперимент, и
    что из этого получилось вы сможете прочитать ниже.

    В процессе написания крипторов такого рода я понял что антивирусы не любят рандом =)
    Ещё антивирусы как и раньше ведутся на трешкод и тайминг атаки, но только если всё это сделанно
    качественно а не на коленке. Надеюсь вам будет интересно читать эту статью. Посмотрим что из этого выйдет
    Моё мнение по поводу антивирусов и вообще того, что там происходит будет в конце статьи.

    Термины

    Криптор: софт который убирает скантайм детекты у файла и по возможности не добавляет новыйх рантайм детектов.
    Стаб: маска закриптованного файла, обычно содержит немного антиэмуля, алгоритм шифрования и сам массив байтов файла.
    Алгоритм шифрования: ну в крипторах идеальным алгоритмом шифрования является такой алгоритм, который аверы не смогут понять,
    которыйх хорошо скрывает настоящий буффер и который долго отрабатывает (для обхода ав-вм).
    Трешген: код который создаёт мусорный\рандомный код, это для запутывания ав, такой код называвается Трешкод
    Трешкод: сам рандомный код, его добавляют в софт чтобы сбить сигнатурные детекты, привести в тупик
    ав-вм.
    Метод запуска: код который запускает в памяти другой файл используя лишь массив байтов, хороший вариант такого кода это
    LoadPE

    dotNet (жил 3 месяца)

    Начнём с теории. dotNet софт имеет свой язык по типу асма, он называется IL, dotNet софт на сколько я знаю
    запускается в виртуальной машине как и Java.

    Это усложняет работу для ав так как им нужно использовать никальные техники для анализа dotNet файла.
    Я решил использовать это и написал простенький криптор и генератор стаба.

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

    Я сделал в крипторе отдельные генераторы для функций, кода и тп..
    P.S. говнокод, писал очень давно
    Код
                int count = 5;
    int w = 10;
    while (w > count)
    {
    w = Convert.ToInt32(ran.genInt(1));
    }

    switch (w) {
    case 5: return rand5(callfunc);
    case 4: return rand4(callfunc);
    case 3: return rand3(callfunc);
    case 2: return rand2(callfunc);
    case 1: return rand1(callfunc);
    default: return rand1(callfunc);
    }
    Суть такого крипта в том, что он будет жить очень долго, а как умрёт нужно будет
    немного переписать маски рандомного кода и методы запуска софта, и опять будет FUD
    На данный момент я при первом тесте полчил два детекта, а на следующем тесте получил 10 детектов :|
    (Без ESET кстати)

    C++

    Тут я решил попробовать что будет, если я на шарпах буду генерировать алгоритм шифрования, шифровать им массив байтов,
    генерировать C++ сорс и его компилировать, я использовал консольный компилятор GCC для этих целей.

    Мой криптор работал по следующей схеме:
    генерации сида (Пример: +-^^-+--++-+^^^+-^+--+-^),
    генерация алгоритма шифрования на основе этого сида:
    + = сложение
    - = вычитание
    ^ = xor
    шифрование файла этим алгоритмом,
    создание .cpp файла и последующая компиляция gcc

    суть этого метода в том, что если создать большой алгоритм шифрования то авер просто не вывезет это.
    Ну как вы поняли у меня было 0 детектов на скантайме и примерно 2 детекта на рантайме.

    Вообще я не ожидал что это сработает, я просто эксперементировал =)
    Вот код генератора на C#

    Код
            static List<string> polyGen(uint[] c, int decoders_count_min, int decoders_count_max)
    {
    List<string> ret = new List<string>();
    string arrayCode = "unsigned char arcode[" + c.Length + "] = ";

    List<string> decryptors_array = new List<string>();
    List<string> variables = new List<string>();

    arrayCode += "{";

    List<string> decoder = new List<string>();

    arrayCode += cByte(c, decoder, decoders_count_min + (Convert.ToInt32(r.int_(3)) % (decoders_count_max - decoders_count_min + 1)));

    decryptors_array = decoder;

    arrayCode += "};";

    variables = blendArray(variables);
    ret.Add(arrayCode);
    for (int i = 0; i < variables.Count; i++)
    {
    ret.Add(variables[i]);
    }
    for (int i = 0; i < decryptors_array.Count; i++)
    {
    ret.Add(decryptors_array[i]);
    }

    return ret;
    }
    Заключение

    В заключении хочу сказать что крипторы вообще мёртвая тема т.к. современные мощности позваляют
    сделать антивирус который всё это присечёт, к примеру гипервизор. Я не понимаю почему крипторы и малварь вообще
    жива, скорее всего это кому-то выгодно. И по поводу dotNet софта, на мой взгляд этот язык не подходит
    для написания малвари по ряду очевидных причин, но как говорился каждый дрочет так как хочет

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

    На данный момент имеет перспективу APT и fileless малварь, а загрузки и прочее это как-то не интересно =)
    Чтобы написать криптор мне потребовалось немного пива и две недели свободного кодинга (не все сутки, а когда хочу).

    Криптография в крипторах тоже играет очень большую роль, чем сложнее она, тем хуже будет аверам. Ещё я не понимаю
    тех, кто говорит что стаб должен импортировать все функции по хешу и тп, я так не думаю.. ну как, почти. Я думаю что
    стаб должен использовать статические импорты, но критические и 'палевные' части он должен динамически импортировать.
    Я думаю что авер не такой наивный что при виде файлика с нулевыми импортами и непонятным кодом скажет что он чист =)

    Антивирусы делают тоже люди, такие же люди как и мы, и у них тоже есть мозги. Отличие в том, что они работают за зарплату
    в своих офисах, а мы работаем за идею, за цель, за интерес.

    Уже есть теноголии для анализа закриптованной малвари, но внедрили самую хреновую из них =)
    На мой взгляд самая лучшая технология это та, которая при открытии файла помещает его вм с полной симуляцией вызовов а не
    так, как сейчас с ихними заглушками, Про скорость это бред, не так уж и много всего там. Ещё я не понимаю всей чепухи с инжектами,
    почему аверы допускают 'уникальные техники' инжекта. Я думаю что у них хватит денег на разработку системы детектирования внедрения кода
    в чужую память. И отлетят все инжекты. И ведь прикол в том, что этого ещё не сделали! У них огромные компании, а они анализируют файлик ёпт =)

    Единственное что мне нравится в авера так это то, что они хукают функции. Это очень хорошая идея как по мне, хоть и самая последняя т.к.
    файл уже прошёл сигнатурное сканирование и говно-ав-вм. Осталось только это. Ав-вм технология перспективная, но реализовали её не так,
    как это стоило сделать. Повторяюсь, всё что я тут описал это не много для них, у них оффисы, огромные деньги крутятся у них. Денег им
    хватает даже очень (Я говорю про Kaspersky, ESET, Dr.Web и подобные).

    Вобщем антивирусы это очень мутная тема, кто или что их заставляет отказываться от таких решений нам узнать не дано. Возможно это
    правительство, возможно это действительно не выполнимо, а может быть это всё массоны.

    На все сообщения не по теме будет подана жалоба. Статью поймут только взрослые, умные и адекватные люди.
     
  2. Orlean
    Инъекции можно делать разными способами,и за счёт них и держивать рантайм, у меня как раз такая хрень и происходит,что рантайм FUD,но Скантайм приходится уёбывать,потомучто антивирусы даже проактивки палят не твой мальварь а твой инжектор,несмотря на то что ты его на хостинг картинок и т.п. заливал,и делал ****пер с подгрузкой из памяти
     
  3. member01
    member01 27 ноя 2019 Заблокирован(а) 7 2 авг 2018
  4. MVT_inactive2706365
    MVT_inactive2706365 30 дек 2019 Заблокирован(а) 11 16 окт 2019
    тебе что больше всех надо?
     
  5. member01
    member01 2 янв 2020 Заблокирован(а) 7 2 авг 2018
    Да. Я - просто против тырнетства и школодрочерства. Некоторые платят за статьи по 3-5k$ долларов, а особенные уникалы настолько хитры и умны, что потом это копипастят и собирают неположенные им лайки.
     
  6. Requests
    Requests 2 янв 2020 273 3 окт 2019
    member01, +. Даже не хотят указывать источник
     
  7. TaNkIsT_inactive54253
    Интересная статья, есть над чем подумать! ++
     
  8. chikinator
    chikinator 27 мар 2020 0 24 мар 2020
    Еще бы видео инструкцию сделал для чайников
     
Загрузка...
Top