注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

且行且记录

点滴记录,行的更远!

 
 
 

日志

 
 

调试ms11080  

2013-02-06 14:52:28|  分类: 调试记录 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

同ms11046的调试一样,该漏洞也是在afd.sys模块里。

对照ms11046,先看下HalDispatchTable,以免再次启动系统。
kd> dd nt!HalDispatchTable
8054db38  00000003 806fa3f2 806fa3ce 80615247
8054db48  00000000 8050c4e5 805c1151 805bec6d

下断点

kd> ba w4 8054db3c

运行ms11080.exe
中断如下

eax=8054db3e ebx=82184054 ecx=c0000207 edx=00000000 esi=820a1d70 edi=820ffad0
eip=f7fb13a7 esp=f4d03998 ebp=f4d039c8 iopl=0         nv up ei pl zr na pe nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00000246
afd!AfdConnectApcKernelRoutine+0x31:
f7fb13a7 834dfcff        or      dword ptr [ebp-4],0FFFFFFFFh ss:0010:f4d039c4=00000000

看断点附近的代码以及堆栈

kd> ub
afd!AfdConnectApcKernelRoutine+0x1a:
f7fb1390 8975e4          mov     dword ptr [ebp-1Ch],esi
f7fb1393 8b4518          mov     eax,dword ptr [ebp+18h]
f7fb1396 8b00            mov     eax,dword ptr [eax]
f7fb1398 8945e0          mov     dword ptr [ebp-20h],eax
f7fb139b 8365fc00        and     dword ptr [ebp-4],0
f7fb139f 8b463c          mov     eax,dword ptr [esi+3Ch]
f7fb13a2 8b4e18          mov     ecx,dword ptr [esi+18h]
f7fb13a5 8908            mov     dword ptr [eax],ecx <--------------还是在这里写入
kd> u
afd!AfdConnectApcKernelRoutine+0x31:
f7fb13a7 834dfcff        or      dword ptr [ebp-4],0FFFFFFFFh
f7fb13ab ff75e0          push    dword ptr [ebp-20h]
f7fb13ae 56              push    esi
f7fb13af ff75dc          push    dword ptr [ebp-24h]
f7fb13b2 e8db700000      call    afd!AfdFinishConnect (f7fb8492)
f7fb13b7 8a1511e0faf7    mov     dl,byte ptr [afd!AfdPriorityBoost (f7fae011)]
f7fb13bd 8bce            mov     ecx,esi
f7fb13bf ff15acd5faf7    call    dword ptr [afd!_imp_IofCompleteRequest (f7fad5ac)]
kd> kn
 # ChildEBP RetAddr 
00 f4d039c8 804edaba afd!AfdConnectApcKernelRoutine+0x31
01 f4d03a18 806f5c0e nt!KiDeliverApc+0xb3
02 f4d03a18 806f00b3 hal!HalpApcInterrupt2ndEntry+0x31
03 f4d03aa4 804e646c hal!KfLowerIrql+0x43
04 f4d03ac4 f7fc229a nt!KeInsertQueueApc+0x4b
05 f4d03af8 804e4d48 afd!AfdRestartJoin+0x187
06 f4d03b28 f7ffa942 nt!IopfCompleteRequest+0xa2
07 f4d03b40 f8000471 tcpip!TCPDataRequestComplete+0xa6
08 f4d03b54 f8005c0a tcpip!TCPRequestComplete+0x12
09 f4d03b8c f7ffc7a0 tcpip!TCPConnect+0xbc
0a f4d03ba8 804e4807 tcpip!TCPDispatchInternalDeviceControl+0x13f
0b f4d03bb8 f7fb3130 nt!IopfCallDriver+0x31
0c f4d03c24 f7fb72d7 afd!AfdJoinLeaf+0x493
0d f4d03c34 804e4807 afd!AfdDispatchDeviceControl+0x53
0e f4d03c44 80568f71 nt!IopfCallDriver+0x31
0f f4d03c58 8057bc7f nt!IopSynchronousServiceTail+0x70
10 f4d03d00 805893d4 nt!IopXxxControlFile+0x611
11 f4d03d34 804df7ec nt!NtDeviceIoControlFile+0x2a
12 f4d03d34 7c92e514 nt!KiFastCallEntry+0xf8
13 0012fbf0 7c92d28a ntdll!KiFastSystemCallRet

现在在看nt!HalDispatchTable
kd> dd nt!HalDispatchTable
8054db38  00000003 /0207a3f2/ /806fc000/ 80615247
8054db48  00000000 8050c4e5 805c1151 805bec6d

这里的利用方式跟ms11046一模一样,也是在afd!AfdConnectApcKernelRoutine函数里写入。

然后调用  NtQueryIntervalProfile( 2, &status );执行。

在同一个位置,一开始我还以为是同一个漏洞。后来认为不可能,不然也不会出两个漏洞号,

尽管写入前没检查,但位置不一定是这里,而是更前。可能经过了多个检查,是其中的某个环节

检查疏忽,导致其后的执行出错,最后导致执行到这里。

 

最后检查两个漏洞在同一个位置写入时的堆栈发现,两者并不一致。

参考网上的文章,发现问题是在afd!AfdJoinLeaf里。

具体见http://www.offensive-security.com/vulndev/ms11-080-voyage-into-ring-zero/#!prettyPhoto

  评论这张
 
阅读(382)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017