-
-
[原创]挑战响应机制的测试及其反射攻击可能性
-
发表于: 2025-6-1 16:24 90
-
现有条件只有两台虚拟机都是xpsp3,v机为\\vxp,h机为\\xpsp3,都是管理员账户,密码不一样。
xpsp3 msv1_0.dll [5.1.2600.5512]
以下的挑战响应等十六进制都是用之前的测试工具注入调试输出的。
【以下测试为正向、反向两个会话收集一些测试数据】
===========
v机访问h机
vh会话打印文件内容
v上的调试输出
C:\vxp>type \\xpsp3\xpsp3\xpsp3.log
登录失败: 未知的用户名或错误密码。
[*] 接收的服务端挑战:48dd66a619a82782
[*] 产生的客户端挑战:ac4c4a84c297537e
[*] 加密后的服务端挑战:f578aee3df4c4c4a
[*] 可能是密码散列之类:b3caec92c804b9da152522ae784a140d6f320784eb7f14fb【注:这个不在网络传递】
[*] 计算后的客户端响应:e2e94d583dc5a30d750e70c7eadfa5edaa9027ab04619a69
wireshare抓包smb如下
35 39.138263000 192.168.153.128 192.168.153.129 SMB 313 48dd66a619a82782 Session Setup AndX Response, NTLMSSP_CHALLENGE, Error: STATUS_MORE_PROCESSING_REQUIRED
36 39.140229000 192.168.153.129 192.168.153.128 SMB 390 ac4c4a84c297537e Administrator e2e94d583dc5a30d750e70c7eadfa5edaa9027ab04619a69 Session Setup AndX Request, NTLMSSP_AUTH, User: VXP\Administrator
是用v机的当前用户
VXP\Administrator
==============
第二次打印输出
C:\vxp>type \\xpsp3\xpsp3\xpsp3.log
登录失败: 未知的用户名或错误密码。
[*] 接收的服务端挑战:8091736e5fc5ecb0
[*] 产生的客户端挑战:db07b52394e3c3da
[*] 加密后的服务端挑战:88125c4ab29dcf9d
[*] 可能是密码散列之类:b3caec92c804b9da152522ae784a140d6f320784eb7f14fb【注:只要是同一个账号都是不变的】
[*] 计算后的客户端响应:2a1a7e5a776ed1923d4d48b6a2acd2305d278161065028e7
wireshare抓包smb如下
120 91.840591000 192.168.153.128 192.168.153.129 SMB 313 8091736e5fc5ecb0 Session Setup AndX Response, NTLMSSP_CHALLENGE, Error: STATUS_MORE_PROCESSING_REQUIRED
125 91.842938000 192.168.153.129 192.168.153.128 SMB 390 db07b52394e3c3da Administrator 2a1a7e5a776ed1923d4d48b6a2acd2305d278161065028e7 Session Setup AndX Request, NTLMSSP_AUTH, User: VXP\Administrator
是用v机的当前用户
VXP\Administrator
===================
h机访问v机
hv会话打印文件内容
h上的调试输出
C:\vvhh>type \\vxp\vxp\vxp.log
登录失败: 未知的用户名或错误密码。
[*] 接收的服务端挑战:a17d245406f0d0e2
[*] 产生的客户端挑战:6d8026166ef3c57d
[*] 加密后的服务端挑战:4eeff46ac8f77eb2
[*] 可能是密码散列之类:0bed68391b4818b833272340ff7f9a7072f2f9cb353247e7【注:另一台机账号密码相关,也是不变的】
[*] 计算后的客户端响应:67abb3d439c6067bdd16698ad3bfcf9e9af84359bc200a21
wireshare抓包smb如下
427 573.465190000 192.168.153.129 192.168.153.128 SMB 293 a17d245406f0d0e2 Session Setup AndX Response, NTLMSSP_CHALLENGE, Error: STATUS_MORE_PROCESSING_REQUIRED
428 573.469749000 192.168.153.128 192.168.153.129 SMB 398 6d8026166ef3c57d Administrator 67abb3d439c6067bdd16698ad3bfcf9e9af84359bc200a21 Session Setup AndX Request, NTLMSSP_AUTH, User: XPSP3\Administrator
是用h机的当前用户
XPSP3\Administrator
===============
C:\vvhh>type \\vxp\vxp\vxp.log
登录失败: 未知的用户名或错误密码。
[*] 接收的服务端挑战:6b4a1f08462143c7
[*] 产生的客户端挑战:a21ca1837ca0d93f
[*] 加密后的服务端挑战:47d6f00babcfada7
[*] 可能是密码散列之类:0bed68391b4818b833272340ff7f9a7072f2f9cb353247e7【同上】
[*] 计算后的客户端响应:6640bc608f68eb75da6b01efe607439194a2207edc9d0733
wireshare抓包smb如下
456 598.983415000 192.168.153.129 192.168.153.128 SMB 293 6b4a1f08462143c7 Session Setup AndX Response, NTLMSSP_CHALLENGE, Error: STATUS_MORE_PROCESSING_REQUIRED
459 598.985541000 192.168.153.128 192.168.153.129 SMB 398 a21ca1837ca0d93f Administrator 6640bc608f68eb75da6b01efe607439194a2207edc9d0733 Session Setup AndX Request, NTLMSSP_AUTH, User: XPSP3\Administrator
是用h机的当前用户
XPSP3\Administrator
==============
【以下测试是验证响应一样既可以认证通过!】
认证测试
vh打印文件内容
v方正常访问是失败的
C:\vxp>type \\xpsp3\xpsp3\xpsp3.log
登录失败: 未知的用户名或错误密码。
在h方上修改响应认证的地方改变条件
==cmp_cliresp==
00d5e6ac 000e0698 00d5e6e8 00000018
msv1_0!MsvpPasswordValidate+0x159:
77c4fa06 ff153012c477 call dword ptr [msv1_0!_imp__RtlCompareMemory (77c41230)]
000e0698 53 59 cf 26 28 67 d7 4c 9d ce 0f 28 2b 19 fe bc 7f fc 34 bc eb 5f 58 33
00d5e6e8 d0 4c 0b e4 d8 cc 63 95 df 04 ff d3 4c 12 53 85 a0 b6 11 cb 91 08 6f 7f
==after resp cmp==
eip=77c4fa0f esp=00d5e6b8 ebp=00d5e714 iopl=0 nv up ei ng nz ac p
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=0000
msv1_0!MsvpPasswordValidate+0x162:
77c4fa0f 0f8493010000 je msv1_0!MsvpPasswordValidate+0x2fb (77c4fba8) [br=0]
0:011> r zf=1【人为干预验证测试】
这样访问能够成功
这说明只要计算的响应正确就能认证成功
C:\vxp>type \\xpsp3\xpsp3\xpsp3.log
I am xpsp3
【以下构思反射攻击步骤,数字为顺序】
====================
v-->h正向连接
v-->h[1wait]等待对方
v<--h[4h_srvcha]用对方提供的挑战发送出去
v-->h[5v_clicha/v_resp]接收对方计算的响应【这里等效给我们提供输入密码得到散列的机会】
========================
v<--h反向连接
v<--h[2net use]反连过去
v-->h[3v_srvcha]得到对方服务挑战
v<--h[6h_clicha/h_resp]把对方计算的响应发送出去即可
【以下用一些数据说明一下】
=========v-->h正向连接===========
v-->h[1wait]
v<--h[4h_srvcha] *4<==*3 48..82
v-->h[5v_clicha/v_resp] ac..7e/e2..69
=========v<--h反向连接===========
v<--h[2net use]
v-->h[3v_srvcha] 48..82
v<--h[6h_clicha/h_resp] *6<==*5 ac..7e/e2..69
v方计算出的
[*] 接收的服务端挑战:48dd66a619a82782
[*] 产生的客户端挑战:ac4c4a84c297537e
[*] 可能是密码散列之类:b3caec92c804b9da152522ae784a140d6f320784eb7f14fb
[*] 计算后的客户端响应:e2e94d583dc5a30d750e70c7eadfa5edaa9027ab04619a69
===============
h方计算出的
[*] 接收的服务端挑战:48dd66a619a82782
[*] 产生的客户端挑战:ac4c4a84c297537e
[*] 可能是密码散列之类:0bed68391b4818b833272340ff7f9a7072f2f9cb353247e7
[*] 计算后的客户端响应:4a19a29c12ad32f2f7df34fafc7f53624f64f4789ed43871【这里肯定验证不过的】【只有替换掉才能成功】
可以这样说,本机计算的响应在对方验证不过,但肯定能在自身验证的过。
反射攻击就是利用了这样的原理。
赞赏
- [求助]测试挑战响应反射失败不知什么原因 53
- [原创]挑战响应机制的测试及其反射攻击可能性 91
- [原创]输出挑战响应计算值 101
- [原创]在xpsp3上再验证用ntlm散列直接登录 1133
- [求助]ie11 下 退不出 2455