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

Обход Windows Defender для лоадера

work159

CD-диск
Пользователь
Регистрация
22.06.2025
Сообщения
16
Реакции
0
Написал лоадер на c++, вкратце о нем:
  • Полная обфускация сигнатур
  • Анти-анализ в песочницах
  • Задержка с псевдо-активностью и скрытым окном
  • Загрузка шеллкода с картинок через raw socket, сборка в один буфер
  • Поиск нужного процесса через PEB
  • Инжект в процесс через OpenProcess + VirtualAllocEx + WriteProcessMemory и запуск через NtCreateThreadEx с нативным системным вызовом
Билд выходит на 25 KB, 0/72 на VT, но проблема в том, что Defender иногда снихуя начинает его детектить.
Я знаю, что на актуальных лоадерах есть возможность автоматического добавления в исключения дефендера, но не знаю как это реализуется.
Сможет ли кто нибудь подсказать как это сделать либо предложить другой метод обхода?
 
Последнее редактирование:
Если ты не собираешься получать шеллкод с лоадера и паковать его в другой легитимный бинарник/поморфленный junk-PE что обычно не делается в лоадерах, то ты допустил уже много ошибок, таких как компиляция без CRT судя по весу (ни один легитимный бинарник не отключает его), получение процесса через PEB (эвристический детект на получение PEB если нет opaque predicates), NtCreateThreadEx (дает коллбек в ядро, в паблике есть APC-inject, он тихий), "Загрузка шеллкода с картинок через raw socket" (не стоит юзать raw socket, если идея загрузки шеллкода именно через стеганографию, загружай .png/.ico/.jpeg через http), добавление в исключения дефа так же дает детект везде кроме дефа, а дальше зависит от названия детекта, если это wacatac или другой !ml детект то твой бинарник необычный (нет SEH, TLS, плохой imphash, плохие импорты, копируй с полностью легитимных бинарников без EV imphash, секции, строки)

Анти-анализ в песочницах
а это при не верном сокрытии само по себе дает детекты

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

добавляется папка в исключения %temp%/%programdata% и дропается туда после этого детектируемый файл

Билд выходит на 25 KB, 0/72 на VT
первый раз вижу что бы билд без CRT и в целом на C++ показывал на VT 0/72
 
Последнее редактирование:
Самый простой ответ: нужно интегрировать обход UAC в ваш лоадер, а затем, получив повышенные привилегии, сделать это непосредственно в Powershell или через командную строку, например так:

Код:
powershell -Command Add-MpPreference -ExclusionPath "C:\"

Однако в зависимости от того, как вы обходите UAC или получаете права SYSTEM, это само по себе может быть красным флагом, поэтому... наберитесь терпения и начните тестирование, поочередно включая другие функции вашего загрузчика.
 
Последнее редактирование:
Если ты не собираешься получать шеллкод с лоадера и паковать его в другой легитимный бинарник/поморфленный junk-PE что обычно не делается в лоадерах, то ты допустил уже много ошибок, таких как компиляция без CRT судя по весу (ни один легитимный бинарник не отключает его), получение процесса через PEB (эвристический детект на получение PEB если нет opaque predicates), NtCreateThreadEx (дает коллбек в ядро, в паблике есть APC-inject, он тихий), "Загрузка шеллкода с картинок через raw socket" (не стоит юзать raw socket, если идея загрузки шеллкода именно через стеганографию, загружай .png/.ico/.jpeg через http), добавление в исключения дефа так же дает детект везде кроме дефа, а дальше зависит от названия детекта, если это wacatac или другой !ml детект то твой бинарник необычный (нет SEH, TLS, плохой imphash, плохие импорты, копируй с полностью легитимных бинарников без EV imphash, секции, строки)


а это при не верном сокрытии само по себе дает детекты



добавляется папка в исключения %temp%/%programdata% и дропается туда после этого детектируемый файл


первый раз вижу что бы билд без CRT и в целом на C++ показывал на VT 0/72
Я не так давно в малварь деве. Да компилирую без CRT. Рабочий APC-инжект реализовать у меня пока что не получается. На VT действительно было ноль обнаружений, сейчас один единственный детект: SecureAge Malicious. Дефендер почему-то полностью перестал детектить на других сборках Windows.
Еще один вопрос: Какой метод персистентности подходит для моего лоадера? Или нужно полностью менять логику?
Учту все сказанное и попробую на практике, спасибо.
 
Еще один вопрос: Какой метод персистентности подходит для моего лоадера? Или нужно полностью менять логику?
RunOnce (детект везде кроме дефа, не чекал может у дефа тоже теперь), через schedule tasks закреп менее палевный но так же все что ты найдешь в паблике нигде кроме дефа и нн ав не заработает


Рабочий APC-инжект реализовать у меня пока что не получается
 
Написал лоадер на c++, вкратце о нем:
  • Полная обфускация сигнатур
  • Анти-анализ в песочницах
  • Задержка с псевдо-активностью и скрытым окном
  • Загрузка шеллкода с картинок через raw socket, сборка в один буфер
  • Поиск нужного процесса через PEB
  • Инжект в процесс через OpenProcess + VirtualAllocEx + WriteProcessMemory и запуск через NtCreateThreadEx с нативным системным вызовом
Билд выходит на 25 KB, 0/72 на VT, но проблема в том, что Defender иногда снихуя начинает его детектить.
Я знаю, что на актуальных лоадерах есть возможность автоматического добавления в исключения дефендера, но не знаю как это реализуется.
Сможет ли кто нибудь подсказать как это сделать либо предложить другой метод обхода?
Как твой детект называется который wd кидает?
 
Если ты не собираешься получать шеллкод с лоадера и паковать его в другой легитимный бинарник/поморфленный junk-PE что обычно не делается в лоадерах, то ты допустил уже много ошибок, таких как компиляция без CRT судя по весу (ни один легитимный бинарник не отключает его), получение процесса через PEB (эвристический детект на получение PEB если нет opaque predicates), NtCreateThreadEx (дает коллбек в ядро, в паблике есть APC-inject, он тихий), "Загрузка шеллкода с картинок через raw socket" (не стоит юзать raw socket, если идея загрузки шеллкода именно через стеганографию, загружай .png/.ico/.jpeg через http), добавление в исключения дефа так же дает детект везде кроме дефа, а дальше зависит от названия детекта, если это wacatac или другой !ml детект то твой бинарник необычный (нет SEH, TLS, плохой imphash, плохие импорты, копируй с полностью легитимных бинарников без EV imphash, секции, строки)


а это при не верном сокрытии само по себе дает детекты



добавляется папка в исключения %temp%/%programdata% и дропается туда после этого детектируемый файл


первый раз вижу что бы билд без CRT и в целом на C++ показывал на VT 0/72
твои ученик?)
 
ватакат)
Попробуй код в дллку переписать и использовать технику side loading
Так и стаб будет жить дольше, и смартскрина не будет ну и детекта соответственно
И сможешь открывать шоп super windows defender bypass loader one build $250
 
Когда уже люди дойдут до того что обфускаторы в малвари - прямой путь к детектам 🧐
я имел ввиду обфускацию сигнатруных строк в rc4 и их вызов через get api
 
Поиск нужного процесса через PEB
Инновационный метод. А если серьезно, то проверяйте на реальных EDR а не на виртотализаторе )
 


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