Меню

32 что такое windows атаки

Что такое Win32: основные понятия и простейшие методы устранения возникающих ошибок

Наверное, не нужно объяснять, что многие пользователи частенько в самый неподходящий момент наблюдают на экране монитора сообщение о том, что какой-то исполняемый файл не является приложением Win32. Давайте посмотрим, что такое Win32 и почему возникают ошибки архитектуры или файловой системы. Рассмотрев эти два вопроса, можно будет найти решение проблемы несоответствия приложения данному стандарту.

Что такое Win32

Если говорить о понятии в целом, обычно его относят к архитектуре «операционки» и приложений, поддерживаемых в ней для запуска и работы.

Из истории создания операционных систем известно, что сначала они были 8- и 16-битными, чуть позднее трансформировались в 32-битные и, наконец, в 64-битные. Наравне с эволюцией принципов работы самих «операционок» изменялись и файловые системы. Самой распространенной до недавнего времени считалась файловая система FAT32. Она завоевала такую популярность, что до сих пор разработчики IT-гиганта Microsoft не исключают ее поддержку в новейших версиях ОС Windows.

Кстати, понятие того, что такое Win32, в равной степени применимо и к «операционкам» типа XP и Vista, поскольку даже при наличии файловой системы NTFS, пришедшей на смену FAT32, все равно версии самих ОС в плане архитектуры оставались 32-разрядными.

С появлением Windows 7 был осуществлен переход на архитектуру 64 бита, однако для пользовательской установки можно найти и 32-битную версию любой из четырех сборок «семерки».

Почему возникают ошибки

Теперь рассмотрим всех волнующий вопрос, что такое «Не является Win32-приложением» (такой-то и такой-то установочный или исполняемый компонент). Во-первых, самой простой причиной можно назвать сам файл, созданный, допустим, в Linux или Mac OS X, который, естественно, во всех системах Windows просто не распознается по причине того, что «операционка», так сказать, не знает, что это за компонент и чем его открыть. Очень часто такие ситуации можно наблюдать при работе с образами дисков типа .dmg или некоторыми архивными данными.

С другой стороны ошибки могут возникать и с «родными» приложениями Windows. Отвечая на вопрос о том, что такое приложение Win32, стоит отметить, что это программа, динамическая библиотека или драйвер, изначально созданные с использованием архитектуры 32 бита. Теперь, наверное, понятно, что 64-битное приложение или драйвер в 32-битной системе работать не будет.

Реже встречаются ошибки открытия исполняемых файлов или архивов. Тут проблема может заключаться в том, что файл не был загружен (скопирован) целиком или при этом произошли сбои. В этом случае система точно так же может выдавать сообщение о несоответствии формата или типа открываемого файла требованиям самой системы.

Простейшие методы устранения ошибок

Однако методов устранения таких неполадок существует очень много. Простейшим решением может стать загрузка из сети Интернет специализированного файла Win32.reg с его последующим запуском.

Что такое Win32.reg? Это файл системного реестра, который вносит в него специфичные записи и ключи, позволяющие упростить процесс открытия проблемных приложений.

Иногда ситуация может быть связана с несоответствием файловых систем. В этом случае понадобится произвести форматирование диска или раздела с применением, например, FAT32 (особенно при переходе с ОС 64 бита на 32 бита).

Бывают ситуации, когда требуется обновление Microsoft .NET Framework, где в настройках платформы нужно указать поддержку абсолютно всех процессоров, включая x86. В общем, примеров можно приводить достаточно много.

Если это вирус

Самым неприятным случаем возникновения сбоев подобного характера является воздействие вирусов и вредоносных кодов, которые маскируются под системные службы, отвечающие за запуск или вызов 32-битных приложений типа rundll32, svchost и т.д.

Рассмотрим одну из самых известных угроз. Что такое Trojan:Win32 (Gatak или еще какая-либо модификация)? Да, обычный компьютерный вирус (троян), который, используя бреши в системе безопасности, пытается получить доступ к компьютеру удаленного пользователя с целью кражи информации или получения над компьютерным терминалом полного контроля.

Тут уж точно в своем распоряжении нужно иметь качественный штатный антивирус или максимальное мощное средство проверки системы в виде сканера (например, Kaspersky Virus Removal Tool или Rescue Disc), поскольку иногда стандартными методами отследить появление угрозы в системе не представляется возможным.

Заключение

Вот, собственно, хоть и кратко, мы рассмотрели вопрос о том, что такое Win32. Конечно, информация подана в сжатом виде, однако рядовому пользователю лезть в дебри программирования и понимания принципов использования архитектуры «операционки» или файловой системы и не нужно. В крайнем случае достаточно выяснить проблему возникновения ошибок и выбрать методику их устранения.

Как обнаружить атаки на Windows-инфраструктуру: изучаем инструментарий хакеров

С каждым годом растет количество атак в корпоративном секторе: например в 2017 году зафиксировали на 13% больше уникальных инцидентов чем в 2016 г., а по итогам 2018 — на 27% больше инцидентов, чем в предыдущем периоде. В том числе и тех, где основным рабочим инструментом является операционная система Windows. В 2017—2018 годах группировки APT Dragonfly, APT28, APT MuddyWater проводили атаки на правительственные и военные организации Европы, Северной Америки и Саудовской Аравии. И использовали для этого три инструмента — Impacket, CrackMapExec и Koadic. Их исходный код открыт и доступен на GitHub.

Читайте также:  Диск 100 процентов windows 10 тормозит

Стоит отметить, что эти инструменты используются не для первичного проникновения, а для развития атаки внутри инфраструктуры. Злоумышленники используют их на разных стадиях атаки, следующих после преодоления периметра. Это, к слову сказать, сложно детектируется и зачастую только с помощью технологий выявления следов компрометации в сетевом трафике или инструментов, позволяющих обнаружить активные действия злоумышленника после проникновения его в инфраструктуру. Инструменты обеспечивают множество функций — от передачи файлов до взаимодействия с реестром и выполнения команд на удаленной машине. Мы провели исследование этих инструментов, чтобы определить их сетевую активность.

Что нам необходимо было сделать:

  • Понять, как работает хакерский инструментарий. Узнать, что необходимо атакующим для эксплуатации и какими технологиями они могут воспользоваться.
  • Найти то, что не детектируется средствами информационной безопасности на первых стадиях атаки. Стадия разведки может быть пропущена, либо потому что атакующим выступает внутренний злоумышленник, либо потому что атакующий пользуется брешью в инфраструктуре, о которой не было известно ранее. Появляется возможность восстановить всю цепочку его действий, отсюда возникает желание обнаруживать дальнейшее передвижение.
  • Устранить ложные срабатывания средств обнаружения вторжений. Нельзя забывать и о том, что при обнаружении тех или иных действий на основе одной только разведки возможны частые ошибки. Обычно в инфраструктуре существует достаточное количество способов, неотличимых от легитимных на первый взгляд, получить какую-либо информацию.

Что же дают атакующим эти инструменты? Если это Impacket, то злоумышленники получают большую библиотеку модулей, которые можно использовать на разных стадиях атаки, следующих после преодоления периметра. Многие инструменты используют модули Impacket у себя внутри — например, Metasploit. В нем имеются dcomexec и wmiexec для удаленного выполнения команд, secretsdump для получения учетных записей из памяти, которые добавлены из Impacket. В итоге правильное обнаружение активности такой библиотеки обеспечит и обнаружение производных.

О CrackMapExec (или просто CME) создатели неслучайно написали «Powered by Impacket». Кроме того, CME имеет в себе готовую функциональность для популярных сценариев: это и Mimikatz для получения паролей или их хешей, и внедрение Meterpreter либо Empire agent для удаленного исполнения, и Bloodhound на борту.

Третий выбранный нами инструмент — Koadic. Он достаточно свеж, был представлен на международной хакерской конференции DEFCON 25 в 2017 году и отличается нестандартным подходом: работой через HTTP, Java Script и Microsoft Visual Basic Script (VBS). Такой подход называют living off the land: инструмент пользуется набором зависимостей и библиотек, встроенных в Windows. Создатели называют его COM Сommand & Сontrol, или С3.

IMPACKET

Функциональность Impacket весьма широка, начиная от разведки внутри AD и сбора данных с внутренних серверов MS SQL, заканчивая техниками для получения учетных данных: это и атака SMB relay, и получение с контроллера домена файла ntds.dit, содержащего хеши паролей пользователей. Также Impacket удаленно выполняет команды, используя четыре различных способа: через WMI, сервис для управления планировщиком Windows, DCOM и SMB, и для этого ему нужны учетные данные.

Secretsdump

Давайте рассмотрим secretsdump. Это модуль, целью которого могут быть как машины пользователей, так и контроллеры домена. С его помощью можно получать копии областей памяти LSA, SAM, SECURITY, NTDS.dit, поэтому его можно увидеть на разных стадиях атаки. Первым шагом в работе модуля является аутентификация через SMB, для которой необходим либо пароль пользователя, либо его хеш для автоматического проведения атаки Pass the Hash. Далее идет запрос на открытие доступа к Service Control Manager (SCM) и получение доступа к реестру по протоколу winreg, используя который атакующий может узнать данные интересующих его веток и получить результаты через SMB.

На рис. 1 мы видим, как именно при использовании протокола winreg происходит получение доступа по ключу реестра с LSA. Для этого используется команда DCERPC с opcode 15 — OpenKey.


Рис. 1. Открытие ключа реестра по протоколу winreg

Далее, когда доступ по ключу получен, происходит сохранение значений командой SaveKey с opcode 20. Impacket делает это весьма специфично. Он сохраняет значения в файл, имя которого — это строка из 8 случайных символов с добавлением .tmp. Кроме того, дальнейшая выгрузка этого файла происходит через SMB из директории System32 (рис. 2).


Рис. 2. Схема получения ключа реестра с удаленной машины

Выходит, обнаружить подобную активность в сети можно по запросам к определенным веткам реестра по протоколу winreg, специфичным именам, командам и их порядку.

Также этот модуль оставляет следы в журнале событий Windows, благодаря которым он легко обнаруживается. Например, в результате выполнения команды

Читайте также:  Sacred underworld не запускается windows 10

в журнале Windows Server 2016 увидим следующую ключевую последовательность событий:

1. 4624 — удаленный Logon.
2. 5145 — проверка прав доступа к удаленному сервису winreg.
3. 5145 — проверка прав доступа к файлу в директории System32. Файл имеет случайное имя, упомянутое выше.
4. 4688 — создание процесса cmd.exe, который запускает vssadmin:

5. 4688 — создание процесса с командой:

6. 4688 — создание процесса с командой:

7. 4688 — создание процесса с командой:

Smbexec

Как и у многих инструментов для постэксплуатации, у Impacket есть модули для удаленного выполнения команд. Мы остановимся на smbexec, который дает интерактивную командную оболочку на удаленной машине. Для этого модуля также требуется аутентификация через SMB либо паролем, либо его хешем. На рис. 3 мы видим пример работы такого инструмента, в данном случае это консоль локального администратора.


Рис. 3. Интерактивная консоль smbexec

Первым этапом работы smbexec после аутентификации является открытие SCM командой OpenSCManagerW (15). Запрос примечателен: в нем поле MachineName имеет значение DUMMY.


Рис. 4. Запрос на открытие Service Control Manager

Далее происходит создание сервиса с помощью команды CreateServiceW (12). В случае smbexec мы можем видеть каждый раз одинаковую логику построения команды. На рис. 5 зеленым цветом отмечены неизменяемые параметры команды, желтым — то, что атакующий может изменить. Нетрудно заметить, что имя исполняемого файла, его директорию и файл output изменить можно, но оставшееся поменять куда сложнее, не нарушая логику работы модуля Impacket.


Рис. 5. Запрос на создание сервиса с помощью Service Control Manager

Smbexec также оставляет явные следы в журнале событий Windows. В журнале Windows Server 2016 для интерактивной командной оболочки с командой ipconfig увидим следующую ключевую последовательность событий:

1. 4697 — установка сервиса на машине жертвы:

2. 4688 — создание процесса cmd.exe с аргументами из пункта 1.
3. 5145 — проверка прав доступа к файлу __output в директории C$.
4. 4697 — установка сервиса на машине жертвы.

5. 4688 — создание процесса cmd.exe с аргументами из пункта 4.
6. 5145 — проверка прав доступа к файлу __output в директории C$.

Impacket является основой для разработки инструментов для атак. Он поддерживает почти все протоколы в Windows-инфраструктуре и при этом имеет свои характерные особенности. Здесь и конкретные winreg-запросы, и использование SCM API с характерным формированием команд, и формат имен файлов, и SMB share SYSTEM32.

CRACKMAPEXEC

Инструмент CME призван в первую очередь автоматизировать те рутинные действия, которые приходится выполнять атакующему для продвижения внутри сети. Он позволяет работать в связке с небезызвестными Empire agent и Meterpreter. Чтобы выполнять команды скрытно, CME может их обфусцировать. Используя Bloodhound (отдельный инструмент для проведения разведки), атакующий может автоматизировать поиск активной сессии доменного администратора.

Bloodhound

Bloodhound как самостоятельный инструмент позволяет вести продвинутую разведку внутри сети. Он собирает данные о пользователях, машинах, группах, сессиях и поставляется в виде скрипта на PowerShell или бинарного файла. Для сбора информации используются LDAP или протоколы, базирующиеся на SMB. Интеграционный модуль CME позволяет загружать Bloodhound на машину жертвы, запускать и получать собранные данные после выполнения, тем самым автоматизируя действия в системе и делая их менее заметными. Графическая оболочка Bloodhound представляет собранные данные в виде графов, что позволяет найти кратчайший путь от машины атакующего до доменного администратора.


Рис. 6. Интерфейс Bloodhound

Для запуска на машине жертвы модуль создает задачу, используя ATSVC и SMB. ATSVC является интерфейсом для работы с планировщиком задач Windows. CME использует его функцию NetrJobAdd (1) для создания задач по сети. Пример того, что отправляет модуль CME, показан на рис. 7: это вызов команды cmd.exe и обфусцированный код в виде аргументов в формате XML.


Рис.7. Создание задачи через CME

После того как задача поступила на исполнение, машина жертвы запускает сам Bloodhound, и в трафике это можно увидеть. Для модуля характерны LDAP-запросы для получения стандартных групп, списка всех машин и пользователей в домене, получение информации об активных пользовательских сессиях через запрос SRVSVC NetSessEnum.


Рис. 8. Получение списка активных сессий через SMB

Кроме того, запуск Bloodhound на машине жертвы с включенным аудитом сопровождается событием с ID 4688 (создания процесса) и именем процесса «C:\Windows\System32\cmd.exe» . Примечательным в нем являются аргументы командной строки:

Enum_avproducts

Весьма интересен с точки зрения функциональности и реализации модуль enum_avproducts. WMI позволяет с помощью языка запросов WQL получать данные различных объектов Windows, чем по сути и пользуется этот модуль CME. Он генерирует запросы к классам AntiSpywareProduct и AntiМirusProduct о средствах защиты, установленных на машине жертвы. Для того чтобы получить нужные данные, модуль выполняет подключение к пространству имен root\SecurityCenter2, затем формирует WQL-запрос и получает ответ. На рис. 9 показано содержимое таких запросов и ответов. В нашем примере нашелся Windows Defender.

Читайте также:  Не устанавливаются драйвера клавиатуры windows 10


Рис. 9. Сетевая активность модуля enum_avproducts

Зачастую аудит WMI (Trace WMI-Activity), в событиях которого можно найти полезную информацию о WQL-запросах, может оказаться выключенным. Но если он включен, то в случае запуска сценария enum_avproducts сохранится событие с ID 11. В нем будет содержаться имя пользователя, который отправил запрос, и имя в пространстве имен root\SecurityCenter2.

У каждого из модулей CME обнаружились свои артефакты, будь то специфические WQL-запросы или создание определенного вида задачи в task scheduler с обфускацией и характерная для Bloodhound активность в LDAP и SMB.

KOADIC

Отличительной особенностью Koadic является использование встроенных в Windows интерпретаторов JavaScript и VBScript. В этом смысле он следует тренду living off the land — то есть не имеет внешних зависимостей и пользуется стандартными средствами Windows. Это инструмент для полноценного Command & Control (CnC), поскольку после заражения на машину устанавливается «имплант», позволяющий ее контролировать. Такая машина, в терминологии Koadic, называется «зомби». При нехватке привилегий для полноценной работы на стороне жертвы Koadic имеет возможность их поднять, используя техники обхода контроля учетных записей (UAC bypass).


Рис. 10. Командная оболочка Koadic

Жертва должна сама инициировать общение с сервером Command & Control. Для этого ей необходимо обратиться по заранее подготовленному URI и получить основное тело Koadic с помощью одного из стейджеров. На рис. 11 показан пример для стейджера mshta.


Рис. 11. Инициализация сессии с CnC-сервером

По переменной WS ответа становится понятно, что исполнение происходит через WScript.Shell, а переменные STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE содержат ключевую информацию о параметрах текущей сессии. Это первая пара запрос-ответ в HTTP-соединении с CnC-сервером. Последующие запросы связаны непосредственно с функциональностью вызываемых модулей (имплантов). Все модули Koadic работают только с активной сессией c CnC.

Mimikatz

Так же, как CME работает с Bloodhound, Koadic работает с Mimikatz как с отдельной программой и имеет несколько способов ее запуска. Ниже представлена пара запрос-ответ для загрузки импланта Mimikatz.


Рис. 12. Передача Mimikatz в Koadic

Можно заметить, как изменился формат URI в запросе. В нем появилось значение у переменной csrf, которая отвечает за выбранный модуль. Не обращайте внимание на ее имя; все мы знаем, что под CSRF обычно понимают другое. В ответ пришло все то же основное тело Koadic, в которое добавился код, связанный с Mimikatz. Он достаточно большой, поэтому рассмотрим ключевые моменты. Перед нами закодированная в base64 библиотека Mimikatz, сериализованный .NET-класс, который будет ее инжектировать, и аргументы для запуска Mimikatz. Результат выполнения передается по сети в открытом виде.


Рис. 13. Результат выполнения Mimikatz на удаленной машине

Exec_cmd

В Koadic также есть модули, способные удаленно выполнять команды. Здесь мы увидим все тот же метод генерации URI и знакомые переменные sid и csrf. В случае модуля exec_cmd в тело добавляется код, который способен выполнять shell-команды. Ниже показан такой код, содержащийся в HTTP-ответе CnC-сервера.


Рис. 14. Код импланта exec_cmd

Переменная GAWTUUGCFI со знакомым атрибутом WS необходима для выполнения кода. С ее помощью имплант вызывает shell, обрабатывая две ветки кода — shell.exec с возвращением выходного потока данных и shell.run без возращения.

Koadic не является типичным инструментом, но имеет свои артефакты, по которым его можно найти в легитимном трафике:

  • особое формирование HTTP-запросов,
  • использование winHttpRequests API,
  • создание объекта WScript.Shell через ActiveXObject,
  • большое исполняемое тело.

Изначальное соединение инициирует стейджер, поэтому появляется возможность обнаруживать его активность через события Windows. Для mshta это событие 4688, которое говорит о создании процесса с атрибутом запуска:

Во время выполнения Koadic можно увидеть и другие события 4688 с атрибутами, которые отлично его характеризуют:

Выводы

Тренд living off the land набирает популярность среди злоумышленников. Они используют встроенные в Windows инструменты и механизмы для своих нужд. Мы видим, как популярные инструменты Koadic, CrackMapExec и Impacket, следующие этому принципу, все чаще встречаются в отчетах об APT. Число форков на GitHub у этих инструментов также растет, появляются новые (сейчас их уже около тысячи). Тренд набирает популярность в силу своей простоты: злоумышленникам не нужны сторонние инструменты, они уже есть на машинах жертв и помогают обходить средства защиты. Мы сосредоточены на изучении сетевого взаимодействия: каждый описанный выше инструмент оставляет свои следы в сетевом трафике; подробное их изучение позволило нам научить наш продукт PT Network Attack Discovery их обнаруживать, что в итоге помогает расследовать всю цепочку киберинцидентов с их участием.

  • Антон Тюрин, руководитель отдела экспертных сервисов, PT Expert Security Center, Positive Technologies
  • Егор Подмоков, эксперт, PT Expert Security Center, Positive Technologies
Adblock
detector