萬盛學電腦網

 萬盛學電腦網 >> 健康知識 >> Windows XP SP2溢出保護

Windows XP SP2溢出保護

  我們知道在我們對溢出漏洞進行eXP的時候,經常要利用全局性的指針,,利用異常處理。那麼XP的SP2對此作了處理。使得我們無法運用以前的技巧來完成我們的工作。例如,對全局性的指針都作了編碼處理。

  那麼具體來講,本文主要談到以下:

  1、映射給PEB管理結構的起始地址做了隨機處理。後面我們會看到這種隨機是很弱的,但已經足夠讓eXP無法完成或者說是穩定的工作。

  2、對TOP SEH的保護

  3、VEH鏈表指針_RtlpCalloutEntryList的保護

  4、堆塊結構的cookie保護

  不涉及內容:

  1、如何繞過保護機制    2、堆管理的細節,其實沒有太大的變化

  主題開始:

  1、PEB的地址的隨機

  XP系統下,創建進程使用的是_NtCreateProcessEx函數,而不是_NtCreateProcess函數。_NtCreateProcess主要調用_PspCreateProcess@36函數來完成進程的創建工作

  PAGE:004B4649 call _PspCreateProcess@36 ; PspCreateProcess(x,x,x,x,x,x,x,x,x)

  進程的創建主要包括設置EPROCESS,創建初始進程地址空間等。這裡就不羅嗦了。PEB的設置通過調用_MmCreatePeb.

PAGE:004B428E push eaxPAGE:004B428F push ebxPAGE:004B4290 push dword ptr [ebp-60h]PAGE:004B4293 call MmCreateProcessAddressSpace@12 ; MmCreateProcessAddressSpace(x,x,x)

PAGE:004B43E5 lea eax, [ebx 1B0h]PAGE:004B43EB push eaxPAGE:004B43EC lea eax, [ebp-40h]PAGE:004B43EF push eaxPAGE:004B43F0 push ebxPAGE:004B43F1 call MmCreatePeb@12 ; MmCreatePeb(x,x,x)

而MmCreatePeb又主要通過調用_MiCreatePebOrTeb

PAGE:004B4A61 ; __stdcall MmCreatePeb(x,x,x)PAGE:004B4A61 ">_MmCreatePeb@12 proc near ; CODE XREF: PspCreateProcess(x,x,x,x,x,x,x,x,x) 303pPAGE:004B4A61PAGE:004B4A61 ; FUNCTION CHUNK AT PAGE:005267FF SIZE 000000DC BYTESPAGE:004B4A61PAGE:004B4A61 push 3ChPAGE:004B4A63 push offset dword_42DAA8PAGE:004B4A68 call __SEH_prologPAGE:004B4A6D xor ebx, ebxPAGE:004B4A6F mov [ebp-20h], ebxPAGE:004B4A72 mov [ebp-4Ch], ebxPAGE:004B4A75 mov [ebp-48h], ebxPAGE:004B4A78 mov [ebp-2Ch], ebxPAGE:004B4A7B mov esi, [ebp 8]PAGE:004B4A7E push esiPAGE:004B4A7F call _KeAttachProcess@4 ; KeAttachProcess(x)PAGE:004B4A84 push 2PAGE:004B4A86 pop ediPAGE:004B4A87 push ediPAGE:004B4A88 push (offset loc_4FFFFE 2)PAGE:004B4A8D push 1PAGE:004B4A8F lea eax, [ebp-2Ch]PAGE:004B4A92 push eaxPAGE:004B4A93 lea eax, [ebp-4Ch]PAGE:004B4A96 push eaxPAGE:004B4A97 push ebxPAGE:004B4A98 push ebxPAGE:004B4A99 lea eax, [ebp-20h]PAGE:004B4A9C push eaxPAGE:004B4A9D push esiPAGE:004B4A9E push ds:_InitNlsSectionPointerPAGE:004B4AA4 call _MmMapViewOfSection@40 ; MmMapViewOfSection(x,x,x,x,x,x,x,x,x,x)PAGE:004B4AA9 mov [ebp-24h], eaxPAGE:004B4AAC cmp eax, ebxPAGE:004B4AAE jl loc_5267FFPAGE:004B4AB4 lea eax, [ebp-1Ch]共6頁。 1 2 3 4 5 6 8 :
copyright © 萬盛學電腦網 all rights reserved