• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Пишем криптор который сам себе делает стабы

Crypto Locker

(L3) cache
Забанен
Регистрация
22.10.2019
Сообщения
177
Реакции
116
Пожалуйста, обратите внимание, что пользователь заблокирован
Всем привет, это моя вторая статья, давно я решил написать криптор для дотнет софта, просто для
эксперемента. Да не просто криптор, а криптор с функцией генерации стаба! и не просто рандомное имя переменным, а
трешген, методы запуска софта и прочее! Сподвигло меня начать писать крипторы желание посмотреть что из этого выйдет, и
то, что я видел просто кучу топиков с продажей крипта от всяких ноунеймов за два бакса.

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

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

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

Термины

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

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

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

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

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

Я сделал в крипторе отдельные генераторы для функций, кода и тп..
P.S. говнокод, писал очень давно

C#:
            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 кстати)

Src: https://anonfile.com/F7Idq794n0/sharp_rar

C++

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

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

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

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

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;
        }

Src: https://anonfile.com/f5Kaq198n4/cplusplus_rar

Заключение

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

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

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

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

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

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

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

Вобщем антивирусы это очень мутная тема, кто или что их заставляет отказываться от таких решений нам узнать не дано. Возможно это
правительство, возможно это действительно не выполнимо, а может быть это всё массоны:smile95:
 
Последнее редактирование:
крипторы вообще мёртвая тема т.к. современные мощности позваляют сделать антивирус который всё это присечёт, к примеру гипервизор.
О великий гуру, а что скажете на счет протекторов, которым бывает накрывают белый софт? Задача криптора это скантайм фуд. Гипервизор решает совершенно другие задачи, не понятно причем здесь скантайм и гипервизор.

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

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

Криптография в крипторах тоже играет очень большую роль, чем сложнее она, тем хуже будет аверам.
Чем сложнее криптография тем выше будет на выходе энтропия.

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

В общем заключение походит на то что пишут школьники, после решения задач на физике. Вода вода вода. А может у меня просто эти дни.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
О великий гуру, а что скажете на счет протекторов, которым бывает накрывают белый софт? Задача криптора это скантайм фуд. Гипервизор решает совершенно другие задачи, не понятно причем здесь скантайм и гипервизор.



Сами себе противоречите. Есть задачи, которые вполне себе хорошо решает .net


Раз уж вы заикнулись по поводу "нормального криптора" - могли бы и расписать его критерии, что бы не быть голословным.


Чем сложнее криптография тем выше будет на выходе энтропия.


Я тоже не понимаю чепухи с инжектами которую вы написали. Причем здесь инжекты? Инжектами уже занимается проактивка, в то время как мы говорим про статику.

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



Сами себе противоречите. Есть задачи, которые вполне себе хорошо решает .net


Раз уж вы заикнулись по поводу "нормального криптора" - могли бы и расписать его критерии, что бы не быть голословным.


Чем сложнее криптография тем выше будет на выходе энтропия.


Я тоже не понимаю чепухи с инжектами которую вы написали. Причем здесь инжекты? Инжектами уже занимается проактивка, в то время как мы говорим про статику.

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

А про инжекты, чёт говно их проактивка если давно открыли такой метод как AtomBombing и тп, если их
технология допускает такое то она по определению параша
Я до сих пор не понимаю причем здесь инжекты и крипторы. Не могли бы вы объяснить подробнее, может быть я что то упускаю? =(
 
Чем сложнее криптография тем выше будет на выходе энтропия.
ыыы... эт вы батенька пизданули не подумавши. хвантазии у вас нету.
А про и нжекты и правда хрень.
Ну напшите кодес который всем запретит OpenProcess на варйт делов то =) и установите его на своем кампеге и кампегах своих друзей, если у вас нет друзей то купите загрузы и установите там.
Еще запатентуйте и продайте аверам =).
 
P.S говнокод, понимаю, писал ну прям очень давно, сейчас уже не так =)
А мне вот интересно, многие пишут "Сорри за говнокод и тд, это было давно. и тд.", но никто не пишет где именно кто-то сговнокодил и как нужно было.
Так вот, мб растолкуете где у вас говнокод и как бы вы сейчас написали ваш "тогдашний говнокод"
 
Пожалуйста, обратите внимание, что пользователь заблокирован
А мне вот интересно, многие пишут "Сорри за говнокод и тд, это было давно. и тд.", но никто не пишет где именно кто-то сговнокодил и как нужно было.
Так вот, мб растолкуете где у вас говнокод и как бы вы сейчас написали ваш "тогдашний говнокод"
а лучше просто написали толковый криптер )))
 
Пожалуйста, обратите внимание, что пользователь заблокирован
А мне вот интересно, многие пишут "Сорри за говнокод и тд, это было давно. и тд.", но никто не пишет где именно кто-то сговнокодил и как нужно было.
Так вот, мб растолкуете где у вас говнокод и как бы вы сейчас написали ваш "тогдашний говнокод"
Код не красивый
 
красота относительна. Раз уж в паблике - главное чтоб работал:cool:
Однако же забавно когда автор рассуждает про скорость криптоалгоритмов а потом выкладывает код где ...[..%8]. Работает же, опять же его компиль наверное поправил на ...[..&7], но оно ведь знаете как бывает здесь слегда переперчили, а там слегка не досолили, потом слегка не доварили потом подали на стол слегка переостудив..красота она ведь в мелочах.
 
Всем привет, это моя вторая статья, давно я решил написать криптор для дотнет софта, просто для
эксперемента. Да не просто криптор, а криптор с функцией генерации стаба! и не просто рандомное имя переменным, а
трешген, методы запуска софта и прочее! Сподвигло меня начать писать крипторы желание посмотреть что из этого выйдет, и
то, что я видел просто кучу топиков с продажей крипта от всяких ноунеймов за два бакса.

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

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

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

Термины

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

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

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

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

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

Я сделал в крипторе отдельные генераторы для функций, кода и тп..
P.S. говнокод, писал очень давно

C#:
            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 кстати)

Src: https://anonfile.com/F7Idq794n0/sharp_rar

C++

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

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

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

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

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;
        }

Src: https://anonfile.com/f5Kaq198n4/cplusplus_rar

Заключение

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

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

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

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

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

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

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

Вобщем антивирусы это очень мутная тема, кто или что их заставляет отказываться от таких решений нам узнать не дано. Возможно это
правительство, возможно это действительно не выполнимо, а может быть это всё массоны:smile95:
Я заметил что тот метод которым упаковывает pyinstaller , неплохо так защищает от детекта. (Поэксперементирую сделаю про это статью.)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Что такое антиэмуль ?
Почитай ,что такое АВ эмулятор ,тогда поймешь ,что такое антиэмулятор :)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Не кидайтесь камнями за данный вопрос (я запускаю визуал студию второй раз)
Но как запустить это чудо? Закинул сорсы в визуал студию, а далее?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Не кидайтесь камнями за данный вопрос (я запускаю визуал студию второй раз)
Но как запустить это чудо? Закинул сорсы в визуал студию, а далее?
Выбирай нужный проект (c#, c++)
кидай туда все сорсы
компиль
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх