Changeset 4007

Show
Ignore:
Timestamp:
10/02/06 15:39:52 (2 years ago)
Author:
lmh
Message:

You all will see the power of this fully functional payload generation. (Hrm, that sounded familiar).

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • framework3/trunk/data/msfweb/app/controllers/payloads_controller.rb

    r3996 r4007  
    1616         render_text "Unknown module specified." 
    1717        end 
     18 
     19    @module_step = (params[:step] || 0).to_i 
    1820         
    19         if params[:step] 
    20          @module_step = params[:step] 
     21        if @module_step == 1 
     22          modinst = Payload.create(@tmod.refname) 
     23      badchars = params[:badchars] 
     24      pencoder = params[:encoder] 
     25      pformat  = params[:format] 
     26      max_size = (params[:max_size] || 0).to_i 
     27      payload_opts = '' 
     28       
     29      params.each_pair { |k, v| 
     30        next if (v == nil or v.length == 0) 
     31        if (k =~ /^opt_(.*)$/) 
     32          payload_opts += "#{$1}=#{v} " 
     33        end 
     34      } 
     35       
     36      begin 
     37        @generation = modinst.generate_simple( 
     38          'Encoder'   => (pencoder == '__default') ? nil : pencoder, 
     39          'BadChars'  => badchars, 
     40          'Format'    => pformat || 'c', 
     41          'OptionStr' => payload_opts, 
     42          'MaxSize'   => (max_size == 0) ? nil : max_size) 
     43      rescue 
     44        @generation = $! 
     45      end 
    2146        end 
    22          
     47  # end of view method 
    2348  end 
    2449 
  • framework3/trunk/data/msfweb/app/models/payload.rb

    r3980 r4007  
    55                mods 
    66        end 
     7         
     8        def self.create(refname) 
     9            modinst = $msframework.payloads.create(refname) 
     10        modinst 
     11        end 
    712end 
  • framework3/trunk/data/msfweb/app/views/payloads/view.rhtml

    r4001 r4007  
    11<table align="center" width="100%" cellspacing="0" cellpadding="2" border="0" class="moduleInfo"> 
    2      
     2 
    33        <tr> 
    44        <p class="moduleName"> 
     
    4545                <td><%= @tmod.platform_to_s %></td> 
    4646    </tr> 
    47     </div> 
     47 
     48    <tr> 
     49        <th colspan="2"></th> 
     50    </tr> 
     51 
     52<% if @module_step == 0 %> 
     53 
     54    <tr> 
     55        <th colspan="2" class="moduleOptionsHeader">Options</th> 
     56    </tr> 
     57 
     58<form action="/payloads/view" method="post"> 
    4859     
    49     <%= start_form_tag %> 
    50      
     60    <%= hidden_field_tag "id", h(params[:id]) %> 
     61    <%= hidden_field_tag "step", "1" %> 
    5162    <% @tmod.options.each { |name, option| 
    5263        next if (option.advanced?) 
    5364        next if (option.evasion?) %> 
    54             <%= name %> 
    55             <%= (option.required?) ? "Required" : "Optional" %> 
    56             <%= option.type %> 
    57             <input type='text' name="opt_<%= html_escape(name) %>" value="<%= html_escape(option.default || '') %>"/> 
    58             <%= html_escape(option.desc) %> 
     65        <tr> 
     66            <td><strong><%= name %></strong></td> 
     67            <td><strong><%= (option.required?) ? "Required" : "Optional" %></strong></td> 
     68        </tr> 
     69        <tr> 
     70            <td><%= html_escape(option.desc) %> (type: <%= option.type %>)</td> 
     71            <td> 
     72                <input type="text" name="opt_<%= h(name) %>" value="<%= h(option.default || '') %>"/> 
     73            </td> 
     74        </tr> 
    5975        <% } %> 
     76     
     77    <tr> 
     78        <td>Max Size:</td> 
     79        <td><input type="text" name="max_size" size="10"/></td> 
     80    </tr> 
     81     
     82    <tr> 
     83        <td>Restricted Characters (format: 0x00 0x01):</td> 
     84        <td><input type="text" name="badchars" size="25" value="0x00 "/></td> 
     85    </tr> 
     86     
     87    <tr> 
     88        <td>Selected Encoder:</td> 
     89        <td> 
     90            <select name="encoder" size="1"> 
     91                <option value="__default">Default 
     92                <% @tmod.compatible_encoders.each { |encname, mod| %> 
     93                    <option><%= encname %></option> 
     94                <% } %> 
     95            </select> 
     96        </td> 
     97    </tr> 
    6098 
    61     Max Size: 
    62     <input type="text" name="max_size" size="10"/> 
    63     Restricted Characters (format: 0x00 0x01): 
    64     <input type="text" name='badchars' size='45' value='0x00 '/> 
    65     Selected Encoder:<br/> 
    66     <select name="encoder" size='1'> 
    67         <option value='__default'>Default 
    68         <% @tmod.compatible_encoders.each { |encname, mod| %> 
    69             <option><%= encname %> 
    70         <% } %> 
    71     </select> 
    72              
    73     Format:<br/> 
    74     <select name='format' size='1'> 
    75         <option value='c'>C 
    76         <option value='ruby'>Ruby 
    77         <option value='perl'>Perl 
    78         <option value='raw'>Raw 
    79     </select> 
    80               
    81     <%= submit_tag %> 
    82     <%= end_form_tag %> 
     99    <tr>        
     100        <td>Format:</td> 
     101        <td> 
     102            <select name="format" size="1"> 
     103                <option value="c">C</option> 
     104                <option value="ruby">Ruby</option> 
     105                <option value="perl">Perl</option> 
     106                <option value="raw">Raw</option> 
     107            </select> 
     108        </td> 
     109    </tr> 
     110 
     111    <tr> 
     112        <td><%= submit_tag "Generate" %></td> 
     113    </tr> 
     114 
     115</form> 
     116<% else %> 
     117 
     118    <tr> 
     119        <th colspan="2" class="moduleOptionsHeader"> 
     120            Payload code 
     121            (<%= link_to "back", :action => "view", :id => h(params[:id]) %>) 
     122        </th> 
     123    </tr> 
     124 
     125    <tr> 
     126        <td><pre><%=@generation%></pre></td> 
     127    </tr> 
     128<% end %> 
    83129</table> 
  • framework3/trunk/data/msfweb/public/stylesheets/windows.css

    r3996 r4007  
    7676    text-align: justify; 
    7777} 
     78 
     79th.moduleOptionsHeader { 
     80    background: #ddd; 
     81    text-transform: uppercase; 
     82}