SysWhispers — AV/EDR Уклонение через прямые системные вызовы

Обзор Монитора AOC Q2790PQU/BT
Обзор Монитора AOC Q2790PQU/BT — стоит ли покупать?
4 января, 2020
BetterBackdoor - бэкдор с множеством функций
BetterBackdoor — бэкдор с множеством функций
4 января, 2020
Показать все
SysWhispers - AV/EDR Уклонение через прямые системные вызовы
67 / 100 SEO оценка

SysWhispers помогает с уклонением, генерируя заголовочные /ASM-файлы, которые можно использовать для выполнения прямых системных вызовов.
Все основные системные вызовы поддерживаются от Windows XP до 10. Пример сгенерированных файлов доступен в example-output/

Введение

Различные продукты безопасности размещают хуки в интерфейсах API пользовательского режима, которые позволяют им перенаправлять поток выполнения на свои движки и обнаруживать подозрительное поведение. Функции в ntdll.dll, которые делают системные вызовы, состоят всего из нескольких инструкций по сборке, так что повторная реализация их в вашем собственном импланте может обойти срабатывание этих крючков продукта безопасности. Этот метод был популяризирован @Cn33liz, в его посте есть больше технических деталей, которые стоит прочитать.
SysWhispers обеспечивает возможность создания заголовка пар/ASM для любого системного вызова в образе ядра (ntoskrnl.exe) в любой версии Windows, начиная с XP. Заголовки также будут содержать необходимые определения типов.
Основное различие реализации между этим и Dumpert POC заключается в том, что он не вызывает RtlGetVersion для запроса версии операционной системы, а вместо этого делает это в сборке, запрашивая PEB напрямую. Преимущество заключается в возможности вызова одной функции, поддерживающей несколько версий Windows, вместо вызова нескольких функций, каждая из которых поддерживает одну версию.

Установка

Использование и примеры

Выход скрипта

Пример ДО и ПОСЛЕ классического CreateRemoteThread внедрения DLL

Общие функции
Использование общего переключателя —preset common создаст пару заголовков /ASM со следующими функциями:

Нажмите, чтобы развернуть список функций

  • NtCreateProcess (CreateProcess)
  • NtCreateThreadEx (CreateRemoteThread)
  • NtOpenProcess (OpenProcess)
  • NtOpenThread (OpenThread)
  • NtSuspendProcess
  • NtSuspendThread (SuspendThread)
  • NtResumeProcess
  • NtResumeThread (ResumeThread)
  • NtGetContextThread (GetThreadContext)
  • NtSetContextThread (SetThreadContext)
  • NtClose (CloseHandle)
  • NtReadVirtualMemory (ReadProcessMemory)
  • NtWriteVirtualMemory (WriteProcessMemory)
  • NtAllocateVirtualMemory (VirtualAllocEx)
  • NtProtectVirtualMemory (VirtualProtectEx)
  • NtFreeVirtualMemory (VirtualFreeEx)
  • NtQuerySystemInformation (GetSystemInfo)
  • NtQueryDirectoryFile
  • NtQueryInformationFile
  • NtQueryInformationProcess
  • NtQueryInformationThread
  • NtCreateSection (CreateFileMapping)
  • NtOpenSection
  • NtMapViewOfSection
  • NtUnmapViewOfSection
  • NtAdjustPrivilegesToken (AdjustTokenPrivileges)
  • NtDeviceIoControlFile (DeviceIoControl)
  • NtQueueApcThread (QueueUserAPC)
  • NtWaitForMultipleObjects (WaitForMultipleObjectsEx)

 

Импорт в Visual Studio

  1. Скопируйте сгенерированные файлы H/ASM в папку проекта.
  2. В Visual Studio выберите «Project» → «Build Customizations…» и включите MASM.
  3. В Solution Explorer добавьте файлы .h и .asm в проект в качестве заголовочных и исходных файлов соответственно.
  4. Перейдите к свойствам файла ASM и установите Item Type в Microsoft Macro Assembler .
  5. Убедитесь, что платформа проекта установлена ​​на x64. (32-битные проекты в настоящее время не поддерживаются)

Предостережения и ограничения

  • В настоящее время поддерживается только 64-разрядная версия Windows.
  • Системные вызовы из графической подсистемы (win32k.sys) не поддерживаются.
  • Протестировано на Visual Studio 2019 (v142) с Windows 10 SDK.

Исправление проблем

  • ModuleNotFoundError в скрипте Python.
    • Убедитесь, что необходимые модули установлены с pip3 install -r requirements.txt
  • Ошибки переопределения типов: проект может не скомпилироваться, если определения типов в syscalls.h уже определены.
    • Убедитесь, что включены только необходимые функции (—preset all Редко требуется)
    • Если typedef уже определен в другом используемом заголовке, то он может быть удален из syscalls.х

Скачать
Для просмотра скрытого содержимого необходимо Войти или Зарегистрироваться

Нашли ошибку в тексте! Выдели фрагмент текста и нажмите Ctrl+Enter.

0
https://fyfor.com/syswhispers-av-edr-uklonenie-cherez-pryamye-sistemnye-vyzovy/

Автор публикации

не в сети 1 месяц

Михаил Старс

5
Комментарии: 2Публикации: 80Регистрация: 12-12-2019

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

восемь − один =

Авторизация
*
*

один × три =

Регистрация
*
*
*
Пароль не введен
*

девятнадцать − пятнадцать =

Генерация пароля

двадцать + 8 =

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: