-
-
[求助]MS11-046在Win7下的测试问题
-
发表于: 2012-6-25 21:56 3316
-
使用Windbg调试MS11-046漏洞利用程序的过程如下:
1、成功触发漏洞
2、成功执行ShellCode,进程Token修改为System Token
3、执行CreateProcess函数时出错(如果不修改进程Token,则函数调用成功)
出错时调用情况如下
STACK_TEXT:
8d4e614c 83cf1e71 00000003 857e9188 00000065 nt!RtlpBreakWithStatusInstruction
8d4e619c 83cf296d 00000003 8705e030 8567c008 nt!KiBugCheckDebugBreak+0x1c
8d4e6560 83cf1d10 000000c2 0000000d 8567c008 nt!KeBugCheck2+0x68b
8d4e6584 83cccd06 000000c2 0000000d 8567c008 nt!KeBugCheckEx+0x1e
8d4e65a8 83d3477f 00000000 8d4e6c20 00000000 nt!ExpReleasePoolQuota+0x3d
8d4e660c 83e6a106 8567c008 00000000 8732d8c8 nt!ExFreePoolWithTag+0x779
8d4e6620 83e6b6c0 857e9d14 0016f27c 0016ef74 nt!PspDeleteCreateProcessContext+0x65
8d4e6d00 83c5842a 0016f27c 0016f258 02000000 nt!NtCreateUserProcess+0x8df
8d4e6d00 77a064f4 0016f27c 0016f258 02000000 nt!KiFastCallEntry+0x12a
0016ef3c 77a04bcc 76294a0b 0016f27c 0016f258 ntdll!KiFastSystemCallRet
0016ef40 76294a0b 0016f27c 0016f258 02000000 ntdll!NtCreateUserProcess+0xc
0016f59c 7629f699 00000000 00000000 002cad88 kernel32!CreateProcessInternalW+0xe75
0016f67c 7624208e 00000000 00000000 00291978 kernel32!CreateProcessInternalA+0x2f8
0016f6b4 00f203db 00000000 00291978 00000000 kernel32!CreateProcessA+0x2c
0016fc34 00f22107 00000002 00291940 002919b0 Win7_MS11_046!main+0x67b [f:\projects\win7-ms11-046\win7-ms11-046\win7-ms11-046.cpp @ 409]
0016fc80 00f21fdf 0016fc94 76291174 7ffd5000 Win7_MS11_046!__tmainCRTStartup+0x117 [f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c @ 266]
0016fc88 76291174 7ffd5000 0016fcd4 77a1b3f5 Win7_MS11_046!mainCRTStartup+0xf [f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c @ 182]
0016fc94 77a1b3f5 7ffd5000 77bdd11c 00000000 kernel32!BaseThreadInitThunk+0xe
0016fcd4 77a1b3c8 00f1dbf4 7ffd5000 00000000 ntdll!__RtlUserThreadStart+0x70
0016fcec 00000000 00f1dbf4 7ffd5000 00000000 ntdll!_RtlUserThreadStart+0x1b
提示nt!PspDeleteCreateProcessContext+0x65出错
在Windows XP下是没有问题的,请问是不是Win7下存在进程的保护机制,不能修改Token啊?
请大牛们帮忙看看吧
1、成功触发漏洞
2、成功执行ShellCode,进程Token修改为System Token
3、执行CreateProcess函数时出错(如果不修改进程Token,则函数调用成功)
出错时调用情况如下
STACK_TEXT:
8d4e614c 83cf1e71 00000003 857e9188 00000065 nt!RtlpBreakWithStatusInstruction
8d4e619c 83cf296d 00000003 8705e030 8567c008 nt!KiBugCheckDebugBreak+0x1c
8d4e6560 83cf1d10 000000c2 0000000d 8567c008 nt!KeBugCheck2+0x68b
8d4e6584 83cccd06 000000c2 0000000d 8567c008 nt!KeBugCheckEx+0x1e
8d4e65a8 83d3477f 00000000 8d4e6c20 00000000 nt!ExpReleasePoolQuota+0x3d
8d4e660c 83e6a106 8567c008 00000000 8732d8c8 nt!ExFreePoolWithTag+0x779
8d4e6620 83e6b6c0 857e9d14 0016f27c 0016ef74 nt!PspDeleteCreateProcessContext+0x65
8d4e6d00 83c5842a 0016f27c 0016f258 02000000 nt!NtCreateUserProcess+0x8df
8d4e6d00 77a064f4 0016f27c 0016f258 02000000 nt!KiFastCallEntry+0x12a
0016ef3c 77a04bcc 76294a0b 0016f27c 0016f258 ntdll!KiFastSystemCallRet
0016ef40 76294a0b 0016f27c 0016f258 02000000 ntdll!NtCreateUserProcess+0xc
0016f59c 7629f699 00000000 00000000 002cad88 kernel32!CreateProcessInternalW+0xe75
0016f67c 7624208e 00000000 00000000 00291978 kernel32!CreateProcessInternalA+0x2f8
0016f6b4 00f203db 00000000 00291978 00000000 kernel32!CreateProcessA+0x2c
0016fc34 00f22107 00000002 00291940 002919b0 Win7_MS11_046!main+0x67b [f:\projects\win7-ms11-046\win7-ms11-046\win7-ms11-046.cpp @ 409]
0016fc80 00f21fdf 0016fc94 76291174 7ffd5000 Win7_MS11_046!__tmainCRTStartup+0x117 [f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c @ 266]
0016fc88 76291174 7ffd5000 0016fcd4 77a1b3f5 Win7_MS11_046!mainCRTStartup+0xf [f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c @ 182]
0016fc94 77a1b3f5 7ffd5000 77bdd11c 00000000 kernel32!BaseThreadInitThunk+0xe
0016fcd4 77a1b3c8 00f1dbf4 7ffd5000 00000000 ntdll!__RtlUserThreadStart+0x70
0016fcec 00000000 00f1dbf4 7ffd5000 00000000 ntdll!_RtlUserThreadStart+0x1b
提示nt!PspDeleteCreateProcessContext+0x65出错
在Windows XP下是没有问题的,请问是不是Win7下存在进程的保护机制,不能修改Token啊?
请大牛们帮忙看看吧
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
看原图
赞赏
雪币:
留言: