Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
SwishDbgExt — 事件响应与数字取证调试扩展 | Kitploit
工具/GitHubGitHub/magnetforensics/swishdbgext
内存取证逆向工程调试器恶意软件分析数字取证事件响应
GitHubmagnetforensics/swishdbgext

SwishDbgExt

事件响应与数字取证调试扩展

查看仓库
40197537年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

#SwishDbgExt

SwishDbgExt 是一个 Microsoft WinDbg 调试扩展,扩展了 Microsoft WinDbg 可用命令集,同时也修复并改进了现有命令。 该扩展由 Matt Suiche (@msuiche) 开发——如有需要,欢迎通过 [email protected] 联系我们,提出更多功能需求、提供贡献和/或报告错误。

SwishDbgExt 旨在通过一系列调试、事件响应和内存取证命令,让内核开发者、故障排查人员和安全专家的生活更轻松。 由于 SwishDbgExt 是一个 WinDbg 调试扩展,这意味着它可以在本地或远程内核调试会话、由 Microsoft LiveKd 生成的实时会话、以及由蓝屏崩溃或混合型工具(如 Comae DumpIt)生成的 Microsoft 崩溃转储上使用。

2016 竞赛

更多信息请访问 https://blog.comae.io/comae-2016-contest-swishdbgext-features-3c9a63c62209#.tnt1b9usx

安装

您可以将 WinDbg 扩展复制到相应的(x86 或 x64)WinDbg 文件夹中,或者使用 !load 命令手动加载,如下所示。请注意,目标 dll 的完整路径中不能包含空格或引号。 !load X:\FullPath\SwishDbgExt.dll

###示例:

root@kitploit:~
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.

如果您希望使用更加 DML 友好的模板更新您的 WinDbg 模板,可以直接导入随包附带的 windbg_template.reg 文件。

TODO

  • 定义结构
  • 定义命令
  • 宣布功能竞赛。

命令

!SwishDbgExt.help

显示可用的扩展命令信息。

如果不指定参数,此命令将列出所有命令;如果指定了现有命令作为参数,则将列出该命令的参数列表。

!ms_callbacks

显示回调函数

!ms_checkcodecave

查找已使用的代码洞

!ms_consoles

显示控制台命令历史记录

!ms_credentials

显示用户凭据(基于 gentilwiki 的 mimikatz)

!ms_drivers

显示驱动程序列表。 !ms_drivers 将显示当前已加载的驱动程序列表。 在此示例中,以下是该内核转储崩溃时加载的几个驱动程序: 使用此命令,我们还可以查看驱动程序内部的详细 IRP 信息: 在上图中,我们可以看到 e1cexpress.sys 的 IRP 中特定于驱动程序的 I/O 栈位置。这里我们可以看到函数代码,如 IRP_MJ_CREATE,它打开目标设备对象,表明该设备对象存在且可用于 I/O 操作。

!ms_dump

将内存空间转储到磁盘

!ms_exqueue

显示 Ex 队列工作线程。

!exqueue 在 Windows 8 上无法正常工作,因此需要实现一个可用的版本。与原始命令一样,此命令显示工作线程队列。

!ms_fixit

重置 WinDbg 中的分段(修复 "16.kd>")

!ms_gdt

显示 GDT。

!ms_gdt 显示全局描述符表。注意在 x64 上,每个选择子都是平坦的(0x0000000000000000 到 0xFFFFFFFFFFFFFFFF)。该命令对于检查 GDT 是否存在可疑挂钩特别有用,因为在 x64 上尝试挂钩会触发 bug check。这是因为 x64 禁止对 GDT 进行挂钩。

!ms_hivelist

显示注册表配置单元列表。

ms_hivelist 显示注册表配置单元列表。 我们可以直接查看某个配置单元(例如 \Registry\Machine\Software)的子项、值等:

Alt text

!ms_idt

显示 IDT。

!ms_idt 显示中断描述符表。与 GDT 非常相似,如果在 x64 系统上对 IDT 进行了挂钩,则会触发 bug check。这是因为 Microsoft(通过编程方式)实现了防止内核模式驱动程序挂钩 IDT 的机制,否则驱动程序通常会拦截对 IDT 的调用并进行自己的处理。这就是在上图中,所有条目都显示为“No”的原因。

!ms_malscore

分析内存空间并返回恶意软件评分指数(MSI)——(基于 Frank Boldewin 的工作)

!ms_mbr

扫描主引导记录(MBR)

!ms_netstat

显示网络信息(套接字、连接等)

!ms_object

显示对象列表

!ms_process

显示进程列表。 !ms_process 是 !process 和 !dml_proc 的改进版本。 其中一个值得注意的优点是使用了 DML(调试器标记语言),所有带下划线的命令实际上都是指向命令的链接。 例如,下面可以看到 /vads /scan 的输出,用于扫描 VAD(虚拟地址描述符)。您会注意到其中一列给出了“恶意软件评分指数”,这对于检测 Shellcode 或堆喷射非常有用。 在下面的截图中,您可以看到多个 VAD 中异常高的分数——这是由于使用了堆喷射。只需点击分数即可运行扫描算法。 该扫描算法基于 Frank Boldewin 的 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 显示系统服务调度表。该命令在调查通过直接内核对象操作(DKOM)进行可疑 Rootkit 挂钩时非常有用。如果您在此处看到某个低级例程被挂钩(例如 nt!NtEnumerateKey),这可以帮助您分析可能的 Rootkit 感染。

!ms_store

显示与存储管理器(ReadyBoost)相关的信息。

该命令允许列出操作系统当前使用的 ReadyBoost(需要 USB 3.0)缓存,同时也可以显示由存储管理器管理的内存页面的日志。 参数:/cache

!ms_timers

显示 KTIMER 列表。

!ms_timers 显示 KTIMER 结构,这是一个不透明的结构,表示并包含各种定时器对象。该命令有助于找出哪些驱动程序创建了哪些定时器对象,哪些驱动程序调用了哪些例程等。

!ms_vacbs

显示缓存的 VACB 列表

!ms_verbose

打开/关闭详细模式

!ms_lxss

以下内容基于 Alex Ionescu 发布的研究成果,可在此处获取:https://github.com/ionescu007/lxss/

该功能作为 Windows 10+ 操作系统上的可选功能,可通过以下 PowerShell 命令安装:

root@kitploit:~
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

您可以通过以下链接了解更多关于 Linux 的 Windows 子系统的信息:

  • https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-linux-overview/
  • https://channel9.msdn.com/Blogs/Seth-Juarez/Windows-Subsystem-for-Linux-Architectural-Overview
  • https://msdn.microsoft.com/en-us/commandline/wsl/install_guide
root@kitploit:~
	Windows Subsystem for Linux Overview.
	Instance 0xFFFFE704EEB8F010
	GUID: {E29032FD-35D3-4C53-AB68-6BCEBDA7176F}
	State:            (1) [STARTED]
	Creation Flags:   00000001
	GlobalData:       0xFFFFF802ED4138A0
	Root Handle:      80000834
	Temp Handle:      80000838
	Job Handle:       8000083c
	Token:            80000818
	Event Handle:     800008bc

	Map Paths (0):    0xFFFFE704EF437920
	VFS Context:      0xFFFFE704EEFC4710
	Memory Flags:     0x2

	Last PID:         35
	Thread Groups:    3
		Session 0xFFFFE704EDB79EC0
		Instance:         0xFFFFE704EEB8F010
		Console inode:    0x0
		Foreground PID:   -1
			Process Group 0xFFFFE704EDB79AE0
			Instance:      0xFFFFE704EEB8F010
			Session:       0xFFFFE704EDB79EC0
				Thread Group 0xFFFFE704EF4F8000
				Binary Path:           /init
				Thread(s):             1
				Owner Process Group:   0xFFFFE704EDB79AE0
				Flags:                 0x00000000
				Main Thread:           0xFFFFE704EF5CC010
				Arguments (006 bytes): 0x00007FFFC081D6E0
					Process 0xFFFFE704EF2F1D70
					Instance:            0xFFFFE704EEB8F010
					NT Process Object:   0xFFFFAE05E84EF800
					NT Process Handle:   0xFFFFFFFF80000F58
					VDSO Address:        0x00007FFFC0849000
					Stack Address:       0x00007FFFC001E000
		Session 0xFFFFE704EF5DB830
		Instance:         0xFFFFE704EEB8F010
		Console inode:    0xFFFFE704EF32D7A0
		Foreground PID:   2
			Process Group 0xFFFFE704EF5EF970
			Instance:      0xFFFFE704EEB8F010
			Session:       0xFFFFE704EF5DB830
				Thread Group 0xFFFFE704EF5EE000
				Binary Path:           /bin/bash
				Thread(s):             1
				Owner Process Group:   0xFFFFE704EF5EF970
				Flags:                 0x0000000C
				Main Thread:           0xFFFFE704EF5F8010
				Arguments (010 bytes): 0x00007FFFDF34E418
					Process 0xFFFFE704EDEF6EC0
					Instance:            0xFFFFE704EEB8F010
					NT Process Object:   0xFFFFAE05E84E6800
					NT Process Handle:   0xFFFFFFFF80000D9C
					VDSO Address:        0x00007FFFDF883000
					Stack Address:       0x00007FFFDEB4F000
		Session 0xFFFFE704EF0A8ED0
		Instance:         0xFFFFE704EEB8F010
		Console inode:    0xFFFFE704EF06B9C0
		Foreground PID:   19
			Process Group 0xFFFFE704F059CBC0
			Instance:      0xFFFFE704EEB8F010
			Session:       0xFFFFE704EF0A8ED0
				Thread Group 0xFFFFE704EDE51000
				Binary Path:           /bin/bash
				Thread(s):             1
				Owner Process Group:   0xFFFFE704F059CBC0
				Flags:                 0x0000000C
				Main Thread:           0xFFFFE704EDC78090
				Arguments (010 bytes): 0x00007FFFF78CFB78
					Process 0xFFFFE704F06389B0
					Instance:            0xFFFFE704EEB8F010
					NT Process Object:   0xFFFFAE05E618D800
					NT Process Handle:   0xFFFFFFFF80001650
					VDSO Address:        0x00007FFFF7C99000
					Stack Address:       0x00007FFFF70D0000

!ms_yarascan

使用 Yara 规则扫描进程内存。

扫描单个进程内存。

root@kitploit:~
!ms_yarascan /pid 0x228 /yarafile /yarafile C:\Rules.yar

扫描所有进程内存。

root@kitploit:~
!for_each_process "r? @$t0 = (nt!_EPROCESS *) @#Process; .process /r /p @$t0; !ms_yarascan /pid @@C++(@$t0->UniqueProcessId) /yarafile C:\\Rules.yar"

类

PEFile

MsPEImageFile 包含 Windows 二进制文件(PE)使用的基本通用信息,并派生出三个不同的类:

  • MsProcessObject
  • MsDllObject
  • MsDriverObject
下载工具