Малварь как искусство Фреймворк криптора/протектора на шелл-кодах x86/x64 (2 Viewers)

Кто просматривает этот контент: "Тема" (Всего пользователей: 0; Гостей: 2)


X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
5 825
Репутация
15 073
Jabber
Telegram
Всем привет !

Большую популярность на форуме приобрела тема Фреймворк криптора/протектора с антиэмуляцией

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

Хотел его довести до ума, но появилась новая идея, а именно.

Итак идея:

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

Поэтому основная идея - Это шифровка и скрытие основных частей криптора, например можно пошифровать модуль криптора, который отвечает за запуск зверька в памяти, пошифровать модуль антиэмуляции и т.д.

Эти шифрованные части можно хранить в ресурсах, дата-секции, или вообще загружать по сети.)))

Тем самым стаб будет минимален, а все остальное - это пошифрованные шелл-коды...

Например получившийся стаб этого криптора, всего 15 строк си кода.

Итак, что получилось:

Решение состоит из двух проектов:

1)LoadPeToShell - Переводит в шифрованный шелл-код модуль LoadPe, по сути создаёт заголовочный файл "loadpe.h", с шифрованным шелл-кодом.

LoadPe - Это основной модуль криптора, по сути там все.)

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

Также в LoadPeToShell шифруется пейлоад и создается заголовочный файл "payload.h".

Алгоритм шифрования RC4.

2)stub - Сам шифрованный зверек.

Как пользоваться:

1)В Release положить файл, который нужно закриптовать с именем PayloadExe.exe.

2)Запустить файл "LoadPeToShell.exe".

3)Собрать проект в Visual Studio C++.

Получится файл в Release "stub.exe".

Это и есть ваш криптованный зверек.

В репозитории есть пример, запуск безобидного файла, в папке Release.

Также полезен как протектор, для защиты файлов.)))

Данное решение не воспринимайте как готовое решение, а как каркас для создания чего-то своего...)))

Результаты на
dyncheck.com:

1)Статик детект на DarkComet (Изначально детектят все):


Image alt


2)Рантайм детект (DarkComet):

Image alt


3)Детект на безобидный файл (Рантайм):

Image alt


То-что восклицательный знак, говорят можно за детект не считать, также на разные зверьки может реагировать по разному.)))

Скачать исходники можно на гитхабе:XShar/shell_crypor_framework
 

mickeybeasy

Житель форума
Форумчанин
Регистрация
01.10.2019
Сообщения
1
А какая версия студии нужна для компиляции сборки проекта после запуска "LoadPeToShell.exe"?
 

X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
5 825
Репутация
15 073
Jabber
Telegram

ser44

Житель форума
Форумчанин
Регистрация
30.03.2020
Сообщения
8
Очень классная статья,в интернете не встречал.У меня 2 вопроса:

1)В стабе для скрытия VirtualAlloc я использую проект lazy_importer, рекомендую отказаться от него и вообще нужно отрефакторить код.
Если отказаться от lazy_importer чем его заменить тогда? Что именно отрефакторить?

2)Сам шелл-код, как и криптованного зверька можно прятать в картинках на сайта, или в любом другом месте,
Как прятать шелл код в картинках не понятно?
 

X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
5 825
Репутация
15 073
Jabber
Telegram
Ответы:

1)lazy_importer - Тянет много лишнего и в итоге может-быть детект на сам lazy_importer.
Рекомендую использовать свой движек, вот например мой:XShar/Win_API_Obfuscation

2)Очень просто.
Можно разместить в оверлей картинке криптованный шелл-код, далее качаете картинку и по нужному смещению получаете шелл-код.

Пример:Как легко спрятать файлы внутри JPEG-изображения (Компьютерная стенография для новичков)

Если почитаете тему, там @Антоха, спрятал в картинку шифрованную программу. Так нужно сделать и с шелл-кодом.

Блин жалко, что он больше незаходит на форумы и связь потерял с ним, хотя может и читает посты как гость.
Респект, твои темы до сех-пор актуальны !)))
 

coder_

Житель форума
Форумчанин
Регистрация
03.04.2020
Сообщения
4
Репутация
1
Когда открываю LoadPeToShell.sln в Visual Studio 2019 появляется два проекта (LoadPeToShell и stub). Если делаю собрать 2 проекта - ссыпит ошибками. Если собираю только stub - сборка stub проходит успешно без ошибок. Но криптованный файл оказывается не работоспособным. Что делаю не так ?
 

X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
5 825
Репутация
15 073
Jabber
Telegram
А решение "Realese", вообще LoadPeToShell необязательно собирать, достаточно сделать так:

1)В Release положить файл, который нужно закриптовать с именем PayloadExe.exe.

2)Запустить файл "LoadPeToShell.exe".

3)Собрать проект stub в Visual Studio C++.

Попробуйте собрать вначале пример в гите.
Сказать честно данный пример, для тех-кто имеет базовые навыки работы в Visual Studio и знает язык Си, на базовом уровне.

Все остальные могут столкнуться с проблемами, при сборке и т.д.

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

coder_

Житель форума
Форумчанин
Регистрация
03.04.2020
Сообщения
4
Репутация
1
Я пробую закриптовать xmrig данным способом, у кого нибудь получалось? Или этот криптор не подойдет?
 

X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
5 825
Репутация
15 073
Jabber
Telegram
Я пробую закриптовать xmrig данным способом, у кого нибудь получалось? Или этот криптор не подойдет?
Теоретически должен работать.)

Но это неотлажено все, а что за ошибку выдает стаб ?

Может если будет время попробую собрать.
 
Верх