Skip to content
KitploitKITPLOIT
ИнструментыБлог
Log in
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
SwishDbgExt — Расширение для отладки в сфере реагирования на инциденты и цифровой криминалистики | Kitploit
Инструменты/GitHubGitHub/magnetforensics/swishdbgext
Криминалистика памятиОбратная инженерияОтладчикиАнализ вредоносных программЦифровая криминалистикаРеагирование на Инциденты
GitHubmagnetforensics/swishdbgext

SwishDbgExt

Расширение для отладки в сфере реагирования на инциденты и цифровой криминалистики

Репозиторий
40197637 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

#SwishDbgExt

SwishDbgExt — это расширение для отладчика Microsoft WinDbg, которое расширяет набор доступных команд Microsoft WinDbg, а также исправляет и улучшает существующие команды. Это расширение было разработано Мэттом Сюишем (@msuiche) — не стесняйтесь обращаться по адресу [email protected], чтобы запросить новые функции, предложить свой вклад и/или сообщить об ошибках.

SwishDbgExt призван облегчить жизнь разработчикам ядра, специалистам по устранению неполадок и экспертам по безопасности с помощью серии команд для отладки, реагирования на инциденты и анализа памяти. Поскольку SwishDbgExt является расширением WinDbg, его можно использовать в сеансах локальной или удаленной отладки ядра, в сеансах реального времени, созданных с помощью Microsoft LiveKd, а также на аварийных дампах Microsoft, созданных при синем экране смерти, или с помощью гибридных утилит, таких как Comae DumpIt.

2016 Конкурс

Дополнительная информация: https://blog.comae.io/comae-2016-contest-swishdbgext-features-3c9a63c62209#.tnt1b9usx

Установка

Вы можете либо скопировать расширение WinDbg в соответствующую папку (x86 или x64) WinDbg, либо загрузить его вручную с помощью команды !load, как показано ниже. Обратите внимание: в полном пути к загружаемой DLL не должно быть пробелов или кавычек. !load X:\FullPath\SwishDbgExt.dll

Пример:

kd> !load E:\projects\labs\SwishDbgExt\bin\x64\SwishDbgExt.dll;
       SwishDbgExt v0.7.0 (Nov  2 2016) - Incident Response & Digital Forensics Debugging Extension
       SwishDbgExt Copyright (C) 2016 Comae Technologies FZE - http://www.comae.io
       SwishDbgExt Copyright (C) 2014-2016 Matthieu Suiche (@msuiche)

       This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
       This is free software, and you are welcome to redistribute it
       under certain conditions; type `show c' for details.

Если вы хотите обновить шаблон WinDbg на более DML-дружественный, вы можете напрямую импортировать прилагаемый файл windbg_template.reg.

TODO

  • Определить структуры
  • Определить команды
  • Объявить конкурс на функции.

Команды

!SwishDbgExt.help

Отображает информацию о доступных командах расширения.

Эта команда выводит список всех команд, если не указан аргумент, или список параметров для существующей команды, если она указана в качестве аргумента.

!ms_callbacks

Отображает callback-функции

!ms_checkcodecave

Ищет используемые code cave

!ms_consoles

Отображает историю команд консоли

!ms_credentials

Отображает учетные данные пользователя (на основе mimikatz от gentilwiki)

!ms_drivers

Отображает список драйверов. Команда !ms_drivers выводит список драйверов, загруженных в данный момент. В этом примере показаны некоторые драйверы, загруженные в момент сбоя в этом дампе ядра: С помощью этой команды мы также можем просмотреть подробную информацию об IRP для конкретного драйвера: На изображении выше мы видим расположение стека I/O, специфичного для драйвера e1cexpress.sys в его IRP. Здесь мы видим такие коды функций, как IRP_MJ_CREATE, который открывает целевой объект устройства, указывая на его наличие и доступность для операций I/O.

!ms_dump

Сохраняет пространство памяти на диск

!ms_exqueue

Отображает очередь экспонированных рабочих (Ex queued workers).

!exqueue неправильно работает в Windows 8, поэтому необходимо реализовать рабочую версию. Как и оригинальная команда, эта отображает очередь рабочих потоков.

!ms_fixit

Сбрасывает сегментацию в WinDbg (исправляет "16.kd>")

!ms_gdt

Отображает GDT.

!ms_gdt отображает глобальную дескрипторную таблицу (GDT). Обратите внимание, что на x64 каждый селектор является плоским (от 0x0000000000000000 до 0xFFFFFFFFFFFFFFFF). Эта команда может быть особенно полезна для проверки на перехват GDT, так как попытка сделать это на x64 вызовет проверку ошибок, поскольку x64 запрещает перехват GDT.

!ms_hivelist

Отображает список кустов реестра.

ms_hivelist отображает список кустов реестра. Мы можем напрямую заглянуть в куст (\Registry\Machine\Software, например), чтобы увидеть его подразделы, значения и т.д.:

Альтернативный текст

!ms_idt

Отображает IDT.

!ms_idt отображает таблицу дескрипторов прерываний (IDT). Как и в случае с GDT, если IDT перехвачена в системе x64, это вызовет проверку ошибок. Это связано с тем, что Microsoft программно реализовала предотвращение перехвата IDT драйвером режима ядра, который обычно перехватывает вызовы к IDT и добавляет свою собственную обработку. Поэтому на изображении выше везде указано «Нет».

!ms_malscore

Анализирует пространство памяти и возвращает индекс вредоносности (MSI) — основан на работе Frank Boldewin

!ms_mbr

Сканирует главную загрузочную запись (MBR)

!ms_netstat

Отображает сетевую информацию (сокеты, соединения и т.д.)

!ms_object

Отображает список объектов

!ms_process

Отображает список процессов. !ms_process — улучшенная версия !process и !dml_proc. Одна из приятных особенностей, как видно ниже, — использование DML (Debugger Markup Language) с командами. Все подчеркнутые команды на самом деле являются ссылками на команды. Например, ниже показан вывод /vads /scan для сканирования VAD (дескрипторов виртуальных адресов). Вы можете заметить, что один столбец отображает «Malware Score Index», что может быть полезно для обнаружения shellcode или heap-spray. На скриншоте ниже видно аномально высокий показатель в нескольких VAD из-за использования heap-spray. Просто нажав на показатель, вы запустите алгоритм сканирования. Алгоритм сканирования основан на утилите Frank Boldewin’s OfficeMalScanner. И возвращает информацию о том, где находится shellcode: Опция /scan также может использоваться для экспортируемых функций, чтобы узнать, была ли изменена таблица экспорта адресов (EAT) или модифицирован пролог функции.

Аналогичные тесты доступны для SSDT (!ms_ssdt).

!ms_readkcb

Чтение блока управления ключа

!ms_readknode

Чтение узла ключа. Команда !reg в WinDbg долгое время вызывала разочарование из-за некоторых ошибок. Именно поэтому SwishDbgExt имеет собственные функции для работы с реестром, чтобы максимально упростить доступ к данным реестра.

!ms_readkvalue

Чтение значения ключа

!ms_scanndishook

Сканирование и отображение подозрительных NDIS-перехватчиков

!ms_services

Отображает список служб

!ms_ssdt

Отображает функции таблицы системных служб (SDT). !ms_ssdt отображает таблицу системных служб (System Service Dispatch Table). Эта команда чрезвычайно полезна при расследовании предполагаемых перехватов руткитами через прямую манипуляцию объектами ядра (DKOM). Если вы видите, что низкоуровневая процедура (например, nt!NtEnumerateKey) перехвачена, это может помочь в анализе возможного заражения руткитом.

!ms_store

Отображает информацию, связанную с Store Manager (ReadyBoost).

Данная команда позволяет вывести список текущего кэша ReadyBoost (требуется USB 3.0), используемого операционной системой, а также отобразить журналы страниц памяти, управляемых Store Manager. Параметр: /cache

!ms_timers

Отображает список KTIMER.

!ms_timers отображает структуру KTIMER, которая представляет собой непрозрачную структуру, содержащую различные объекты таймеров. Эта команда может помочь определить, какие драйверы создали какие объекты таймеров, какие драйверы вызывали какие процедуры и т.д.

!ms_vacbs

Отображает список кэшированных VACB

!ms_verbose

Включает/выключает подробный режим

!ms_lxss

Основано на исследовании, опубликованном Алексом Ионеску (Alex Ionescu) и доступном здесь: https://github.com/ionescu007/lxss/

Скачать инструмент