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

且行且记录

点滴记录,行的更远!

 
 
 

日志

 
 

客户端ntlm响应的计算  

2014-06-03 16:11:27|  分类: 原理分析 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

客户端收到服务端挑战后,与一个客户端挑战一起加密生成加密的挑战

之后用这个加密的挑战ntlm散列生成客户端ntlm响应


0:000> u 77C48E2F 77C48E67
msv1_0!MspLm20GetChallengeResponse+0x5aa:
77c48e2f 6a08            push    8 长度8字节
77c48e31 8d45ec          lea     eax,[ebp-14h]
77c48e34 50              push    eax 客户挑战缓冲区
77c48e35 e8c08fffff      call    msv1_0!SspGenerateRandomBits (77c41dfa) 生成客户挑战
77c48e3a 8d4318          lea     eax,[ebx+18h]
77c48e3d 8b08            mov     ecx,dword ptr [eax]
77c48e3f 894de4          mov     dword ptr [ebp-1Ch],ecx
77c48e42 8b4804          mov     ecx,dword ptr [eax+4]
77c48e45 894de8          mov     dword ptr [ebp-18h],ecx
77c48e48 50              push    eax 输出缓冲区8字节加密后服务挑战
77c48e49 8d4dec          lea     ecx,[ebp-14h]
77c48e4c 51              push    ecx 客户挑战
77c48e4d 50              push    eax 服务器挑战
77c48e4e e84dfdffff      call    msv1_0!MsvpCalculateNtlm2Challenge (77c48ba0)
77c48e53 8d9578fdffff    lea     edx,[ebp-288h]
77c48e59 52              push    edx 响应的输出缓冲区
77c48e5a 8d4610          lea     eax,[esi+10h]
77c48e5d 8d4b18          lea     ecx,[ebx+18h]
77c48e60 50              push    eax 散列
77c48e61 51              push    ecx 加密后服务挑战
77c48e62 e8c5fdffff      call    msv1_0!SystemFunction009 (77c48c2c) 计算响应

77C48BA0  /$  mov     edi, edi
77C48BA2  |.  push    ebp
77C48BA3  |.  mov     ebp, esp
77C48BA5  |.  sub     esp, 70
77C48BA8  |.  mov     eax, dword ptr [77C5F3E8]
77C48BAD  |.  push    ebx
77C48BAE  |.  mov     ebx, dword ptr [ebp+C] 第二个参数
77C48BB1  |.  push    esi
77C48BB2  |.  mov     esi, dword ptr [ebp+10] 第三个参数
77C48BB5  |.  mov     dword ptr [ebp-4], eax
77C48BB8  |.  push    edi
77C48BB9  |.  mov     edi, dword ptr [ebp+8] 第一个参数
77C48BBC  |.  lea     eax, dword ptr [ebp-70]
77C48BBF  |.  push    eax
77C48BC0  |.  call    <jmp.&cryptdll.MD5Init>
77C48BC5  |.  push    8
77C48BC7  |.  push    edi 第一个参数的8字节加密
77C48BC8  |.  lea     eax, dword ptr [ebp-70]
77C48BCB  |.  push    eax
77C48BCC  |.  call    <jmp.&cryptdll.MD5Update>
77C48BD1  |.  push    8
77C48BD3  |.  push    ebx 第二个参数的8字节加密
77C48BD4  |.  lea     eax, dword ptr [ebp-70]
77C48BD7  |.  push    eax
77C48BD8  |.  call    <jmp.&cryptdll.MD5Update>
77C48BDD  |.  lea     eax, dword ptr [ebp-70]
77C48BE0  |.  push    eax
77C48BE1  |.  call    <jmp.&cryptdll.MD5Final>
77C48BE6  |.  mov     eax, dword ptr [ebp-18]
77C48BE9  |.  mov     ecx, dword ptr [ebp-4]
77C48BEC  |.  mov     dword ptr [esi], eax 加密结果写到第三个参数指向的地方8字节
77C48BEE  |.  mov     eax, dword ptr [ebp-14]
77C48BF1  |.  pop     edi
77C48BF2  |.  mov     dword ptr [esi+4], eax
77C48BF5  |.  pop     esi
77C48BF6  |.  pop     ebx
77C48BF7  |.  call    77C415F5
77C48BFC  |.  leave
77C48BFD  \.  retn    0C

 

用如下脚本可以验证

* ldlib.x
* LoadLibraryA
* g @$exentry
.dvalloc /b 0c0c0000 4000
f 0c0c0c0c l100 cc
r @$t0=kernel32!LoadLibraryA
***
ed @esp 0c0c0c0c 0c0c0100
eza 0c0c0100 "msv1_0.dll"
g=@$t0

*test.x

*77c48e48 push    eax 输出缓冲区8字节加密后服务挑战响应
*77c48e49 lea     ecx,[ebp-14h]
*77c48e4c push    ecx 客户挑战
*77c48e4d push    eax 服务器挑战
*77c48e4e call    msv1_0!MsvpCalculateNtlm2Challenge (77c48ba0)
r @esp=@esp-100
ed @esp 0c0c0c0c 0c0c0100 0c0c0200 0c0c0300
*ntlm server challenge
eb 0c0c0100 58 ff 03 1c f4 5f 78 0f
*ntlm client challenge
eb 0c0c0200 07 99 e3 64 ec 6e e8 09
g=77c48ba0
.echo ==output==
db 0c0c0300 l8
*0c0c0300  45 a4 09 88 10 14 61 9a
*****
r @$t0=ADVAPI32!SystemFunction009
ed @esp 0c0c0c0c 0c0c0300 0c0c0400 0c0c0500
*123456 nthash
f 0c0c0400 l10 32 ed 87 bd b5 fd c5 e9 cb a8 85 47 37 68 18 d4
g=@$t0
.echo === chalenge response ===
db 0c0c0500 l18
*0c0c0500  60 b0 74 b9 d2 29 56 8a-a3 63 ce 37 13 e0 bb 33
*0c0c0510  fe 61 bd 7a 0b 5b 4a c6
r @esp=@esp+100

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

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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