当前位置: 首页 > news >正文

WinDBG 技巧:分析程序漏洞是否可以被利用 (!exploitable 命令)

微软在最近的CanSec West 发布了一个开源的WinDBG 插件 MSEC.dll , 该插件可以智能分析程序的漏洞是否可以被黑客利用。 可以去MSEC 开源项目的主页: http://msecdbg.codeplex.com/下载该插件。 解压之后,把 MSEC.dll 放到 WinDBG 安装目录的的 winext 子目录下。

启动WinDBG的之后, 使用 !load MSEC 来装载该插件。接下来就可以用 !exploitable 命令来分析漏洞了。 通常加上-v 选项来打印详细的信息(!exploitable -v)。

下面示范当程序出现空指针访问漏洞的时候如何利用!exploitable 来分析:

0:000> g
ModLoad: 7e410000 7e4a1000 C:\WINDOWS\system32\USER32.dll
ModLoad: 77f10000 77f59000 C:\WINDOWS\system32\GDI32.dll
ModLoad: 76390000 763ad000 C:\WINDOWS\system32\IMM32.DLL
ModLoad: 77dd0000 77e6b000 C:\WINDOWS\system32\ADVAPI32.dll
ModLoad: 77e70000 77f02000 C:\WINDOWS\system32\RPCRT4.dll
ModLoad: 77fe0000 77ff1000 C:\WINDOWS\system32\Secur32.dll
ModLoad: 629c0000 629c9000 C:\WINDOWS\system32\LPK.DLL
ModLoad: 74d90000 74dfb000 C:\WINDOWS\system32\USP10.dll
ModLoad: 77b40000 77b62000 C:\WINDOWS\system32\Apphelp.dll
ModLoad: 77c00000 77c08000 C:\WINDOWS\system32\VERSION.dll
(a3c.10e0): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=00000000 ebx=00000000 ecx=785bb6f8 edx=00000000 esi=00000001 edi=0040337c
eip=00401002 esp=0012ff80 ebp=0012ffc0 iopl=0 nv up ei pl zr na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010246
TestConsole!wmain+0x2:
00401002 8800 mov byte ptr [eax],al ds:0023:00000000=??

0:000> !load MSEC.dll
0:000> !exploitable -v
HostMachine\HostUser
Executing Processor Architecture is x86
Debuggee is in User Mode
Debuggee is a live user mode debugging session on the local machine
Event Type: Exception
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\WINDOWS\system32\kernel32.dll -
Exception Faulting Address: 0x0
First Chance Exception Type: STATUS_ACCESS_VIOLATION (0xC0000005)
Exception Sub-Type: Write Access Violation

Exception Hash (Major/Minor): 0x34777202.0x123b6b02

Stack Trace:
TestConsole!wmain+0x2
TestConsole!__tmainCRTStartup+0x10f
kernel32!RegisterWaitForInputIdle+0x49
Instruction Address: 0x401002

Description: User Mode Write AV near NULL
Short Description: WriteAV
Exploitability Classification: PROBABLY_EXPLOITABLE
Recommended Bug Title: Probably Exploitable - User Mode Write AV near NULL starting at TestConsole!wmain+0x2 (Hash=0x34777202.0x123b6b02)

User mode write access violations that are near NULL are probably exploitable.

相关文章:

  • 编程基本功(4)
  • Agile实践日志一 -- Grooming Session
  • 获取SQL Server服务器的连接信息用脚本(在原邹建写的基础上作一点改进)
  • Agile实践日志(2)-- Daily Stand up 和 Retrospective Session
  • 一短查询SQL Server服务器阻塞和死锁信息用的脚本
  • VB.Net 2005 WinFrom 文件上传程序...
  • 论道谈谈
  • WinDBG 技巧:设断点命令详解(bp, bu, bm, ba 以及bl, bc, bd, be)
  • Auto Complete -- Typeahead 和DateRangePicker
  • 有多少域名被漏掉了?
  • C# Windows Azure Queue的操作
  • 移动设备管理(MDM)与OMA(OTA)DM协议向导(二)——WAP协议(1)
  • Submit disabled Dropdown
  • Validation failed for one or more entities. See 'EntityValidationErrors' property for more details
  • [Windows编程] 如何判断操作系统是64位还是32位
  • Git学习与使用心得(1)—— 初始化
  • IDEA常用插件整理
  • Java 内存分配及垃圾回收机制初探
  • leetcode386. Lexicographical Numbers
  • OSS Web直传 (文件图片)
  • SpringCloud集成分布式事务LCN (一)
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • vagrant 添加本地 box 安装 laravel homestead
  • Webpack 4 学习01(基础配置)
  • 大数据与云计算学习:数据分析(二)
  • 关于 Cirru Editor 存储格式
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 前端_面试
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 深度学习中的信息论知识详解
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​configparser --- 配置文件解析器​
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • "无招胜有招"nbsp;史上最全的互…
  • #define用法
  • $.ajax()
  • $.ajax()方法详解
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (06)金属布线——为半导体注入生命的连接
  • (二)斐波那契Fabonacci函数
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (数据结构)顺序表的定义
  • (算法)N皇后问题
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .net快速开发框架源码分享
  • .Net中间语言BeforeFieldInit
  • .net中生成excel后调整宽度
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题