Меню Рубрики

Как запустить debug на windows 10

Эксплуатация уязвимостей уровня ядра в ОС Windows. Часть 1 – Настройка рабочей среды

В данном цикле статей мы рассмотрим написание эксплоитов уровня ядра в ОС Windows.

Автор: Mohamed Shahat

Эта серия статей появилась по двум причинам. Во-первых, мне нравится работать с проектом HackSysExtremeVulnerableDriver . Во-вторых, я получил массу пожеланий , чтобы осветить эту тему.

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

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

Предполагается, что после ознакомления со всеми статьями вы будете знать все наиболее распространенные классы брешей и методы эксплуатации, а также сможете портировать эксплоиты с архитектуры x86 на архитектуру x64 (если возможно) и ознакомитесь с новыми методами защиты в Windows 10.

Схема отладки ядра

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

Дополнительный материал для изучения:

Эксплуатация уязвимостей ядра

Этот процесс проходит намного веселее, чем эксплуатация на уровне пользователя J.

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

Темы статей этого цикла

  • Часть 1: Настройка рабочей среды
  • Конфигурирование трех виртуальных машин и системы, которая будет выступать в роли отладчика.
  • Конфигурирование отладчика WinDBG.
  • Часть 2: Полезные нагрузки
  • Изучение наиболее распространенных полезных нагрузок. В последующих частях будут рассматриваться конкретные уязвимости и, при необходимости, указываться ссылки на эту статью.
  • Остальные части.

Жизненный цикл разработки эксплоита уровня ядра

  • Нахождение уязвимости . Эта тема не будет рассматриваться в данном цикле, поскольку мы уже точно знаем, где находятся бреши.
  • Перехват потока выполнения . Некоторые уязвимости предусматривают выполнение кода, для некоторых есть дополнительные требования.
  • Расширение привилегий . Главная цель – получить шелл с системными привилегиями.
  • Восстановление потока выполнения . Неучтенные исключения на уровне ядра приводят к краху системы. Если вы не собираетесь писать эксплоит для DoS-атаки, следует учитывать этот факт.

Типы целевых систем

Мы будем работать с уязвимостями в следующих системах (конкретная версия не принципиальна):

  • Win7 x86 VM
  • Win7 x64 VM
  • Win10 x64 VM

Начнем с архитектуры x86, и далее будем портировать эксплоит для системы Win7 x64. Некоторые эксплоиты не будут запускать на машинах с Win10 из-за присутствия новых защит. В этом случае мы либо будем изменять логику работы эксплоита, либо будем использовать полностью другой подход.

Используемое программное обеспечение:

Настройка систем для отладки

Отладочные системы, с которыми мы будем взаимодействовать, предназначены для загрузки уязвимого драйвера. На этих машинах часто будут возникать крахи, поскольку большинство исключений в ядре способствуют явлениям подобного рода. Необходимо выделить достаточно оперативной памяти для этих систем.

На каждой машине, которая будет отлаживаться, нужно сделать следующее:

  • Внутри директории VirtualKD запустите файл target\vminstall.exe. Добавится новая загрузочная запись и будут доступны функции отладки и автоматическое подключение к серверу VirtualKD, установленному в системе, которая выступает в роли отладчика.

В случае с Windows 10 VM необходимо включить режим test signing, который позволяет загружать неподписанные драйвера в ядро.

После выполнения команды bcdedit /set testsinging on и перезагрузки на рабочем столе появится надпись «Test Mode».

  • Запустите OSR Driver Loader. Зарегистрируйте и запустите службу. Возможно, потребуется перезагрузка.
  • Установите дополнения на гостевой виртуальной машине (необязательное условие).
  • Добавьте учетную запись с низкими привилегиями, которая понадобится во время эксплуатации.

C:\Windows\system32>net user low low /add
The command completed successfully.

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

Хост VirtualKD будет выполнять коммуникацию автоматически через именованный канал, вместо установки соединения вручную. Если вы отлаживаете через сеть в Win10 VM, потребуется протестировать соединение вручную.

  • Установите Windows SDK . Вы можете выбрать только «Debugging Tools for Windows».
  • Проверьте, что установлен отладчик WinDBG. По умолчанию используется папка C:\Program Files (x86)\Windows Kits\10\Debuggers.

Добавьте этот путь в качестве системного и установите путь к отладчику в VirtualKD

Перезапустите гостевые виртуальные машины. Система с VirtualKD, используемая в качестве отладчика, должна быть запущена. После перезагрузки вы сможете начать сессию в WinDBG.

Если все настроено корректно, WinDBG поставит выполнение на паузу и отобразит некоторую информацию, касающуюся целевой системы.

Рисунок 1: Остановка выполнения кода ядра

Символы содержат отладочную информацию для множества бинарных файлов в ОС Window. Загрузить символы можно при помощи следующей команды:

Включаем режим подробного информирования процесса отладки.

ed nt!Kd_Default_Mask 0xf

Должен загрузиться модуль HEVD:

kd> lm m HEVD
Browse full module list
start end module name
fffff80b`92b50000 fffff80b`92b59000 HEVD (deferred)

Сохраняем настройки профиля и любые изменения рабочей среды:

File -> Save Workspace to File

Введите команду g или нажмите клавишу F5 для продолжения выполнения (перечень других команд, которые вам могут пригодиться, хорошо описан в этом документе ).

Краткое описание модуля HEVD

Процедура DriverEntry является стартовой для каждого драйвера:

NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath) <
UINT32 i = 0;
PDEVICE_OBJECT DeviceObject = NULL;
NTSTATUS Status = STATUS_UNSUCCESSFUL;
UNICODE_STRING DeviceName, DosDeviceName = <0>;

  • Эта процедура содержит вызов функции IoCreateDevice, содержащей имя драйвера, которое мы будем использовать во время коммуникации.
  • В объект DriverObject будут добавлены нужные структуры и указатели на функции.
  • Для нас важен указатель функции, связанный с процедурой DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] , отвечающей за обработку IOCTL (I/O Control; управление вводом/выводом);
  • В HEVD эта функция называется IrpDeviceIoCtlHandler , которая представляет собой большое условное выражение со множеством ответвлений для каждого IOCTL. Каждая уязвимость имеет уникальный IOCTL.

Пример: HACKSYS_EVD_IOCTL_STACK_OVERFLOW представляет собой IOCTL, используемый для активации бреши, связанной с переполнением стека.

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

Источник

DEBUG – запустить стандартный отдачик MS DOS — Windows XP.

Debug.exe — программа-отладчик, разработанная для операционной системы MS DOS и используемая для отладки исполняемых файлов. Под более поздние версии операционных систем (Windows NT и старше) работает через эмулятор MS-DOS и имеет ограниченные возможности. До Windows XP включительно, отладчик debug.exe являлся стандартным компонентом системы.

Формат командной строки:

DEBUG [[диск:][путь]имя_файла [параметры_программы]]

Параметры командной строки:

[диск:][путь]имя_файла — путь и имя отлаживаемой программы.

параметры_программы — параметры командной строки для отлаживаемой программы.

debug /? — отобразить краткую справку по использованию.

debug C:\windows\system32\edit.com C:\boot.ini — запустить отладку текстового редактора edit.com , передав ему в качестве параметра командной строки путь и имя редактируемого файла.

debug — при запуске без параметров, отладчик переходит в интерактивный режим, ожидая ввода команд. Подсказку по используемым командам можно получить, введя знак вопроса — ? :

Краткая подсказка по использованию отладчика Debug:

assemble A [адрес]
compare C диапазон адрес
dump D [диапазон]
enter E адрес [список]
fill F диапазон список
go G [=адрес] [адреса]
hex H значение1 значение2
input I порт
load L [адрес] [диск] [превый_сектор] [число]
move M диапазон адрес
name N [путь] [список_аргументов]
output O порт байт
proceed P [=адрес] [число]
quit Q
register R [регистр]
search S диапазон список
trace T [=адрес] [значение]
unassemble U [диапазон]
write W [адрес] [диск] [первый_сектор] [число]
выделение памяти EMS XA [#число_страниц]
освобождение памяти EMS XD [дескриптор]
сопоставление страниц EMS XM [Lстраница] [Pстраница] [дескриптор]
вывод состояния памяти EMS XS

При небольших размерах исполняемого файла, отладчик обладал очень неплохими возможностями, позволяя не только выполнять отладку программ, но и просматривать содержимое памяти, в том числе BIOS материнской платы и плат расширения, выполнять операции ввода-вывода с доступом к регистрам устройств ( в среде MS DOS ), и например, позволял легко сохранить в файл и дизасемблировать главную загрузочную запись MBR.

Для выхода из отладчика используется клавиша q .

Источник

Файл debug.log в папках, на рабочем столе – что это такое, причины появления

В процессе работы за компьютером могут возникать различные ситуации, проблемы и прочие не совсем понятные и объяснимые вещи. И одной из таких проблем может являться появление файла под именем debug.log, который может быть пустым, и, соответственно, файл имеет размер в 0 байт, а может содержать не сильно понятные строки с текстом.

Давайте разберёмся, какова причина этого явления и как с ней справиться.

Спонтанное появление файла debug.log в различных папках

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

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

К примеру, не так давно данная проблема была замечена у весьма серьёзного и довольно популярного программного продукта – графического редактора Adobe Photoshop. При его использовании создаётся файл debug.log в тех папках, откуда берутся изображения и куда сохраняются.

Так как же исправить проблему с появлением файла debug.log. Об этом далее.

Исправить данную проблему достаточно легко – просто установить обновление данного программного обеспечения, где оная проблема устранена. Если на текущий момент более новая версия программы отсутствует, то можно установить предыдущую версию программы.

В конце концов, можно и немного подождать, благо сам софт же функционирует корректно и в полном объёме. А появляющийся файл debug.log можно удалить, ни к какому сбою это не приведёт. Единственное, необходимо отметить, что пока работает программа, которая его создала, оный файл удалить не получится, необходимо предварительно закрыть оную.

Ну вот, теперь вы знаете, что за файл такой под именем debug.log, почему он появляется на компьютере и как можно исправить ситуацию.

В свою очередь, Вы тоже можете нам очень помочь.

Просто поделитесь статьей в социальных сетях и мессенджерах с друзьями.

Поделившись результатами труда автора, вы окажете неоценимую помощь как ему самому, так и сайту в целом. Спасибо!

Источник

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

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

  • Как запустить curl в windows
  • Как запустить crysis 1 на windows 7 x32
  • Как запустить crmp на windows 10
  • Как запустить cortana на windows 10
  • Как запустить composer под windows