<%= Msf::Ui::Web::Common.header(framework.version, 'exploits') %> <% name = query_string['name'] step = query_string['step'] || 0 target = query_string['target'] step = step.to_i if (name == nil) %> <%# Display the exploit list if one hasn't been selected %>
<%# Wizard step 0 - target selection %> <% elsif (step == 0) modinst = framework.exploits.create(name) %>
<%= html_escape(modinst.name) %>

Name: <%= html_escape(modinst.name) %>
Authors: <%= html_escape(modinst.author.join("
")) %>
Description: <%= html_escape(modinst.description) %>
References: <% modinst.references.each { |ref| %> <% if (ref.kind_of?(Msf::Module::SiteReference)) %> - <%= ref.to_s %>
<% else %> - <%= ref.to_s %>
<% end %> <% } %>
Targets:  
  <% modinst.targets.each_with_index { |tgt, idx| %> <% } %>
Target Name Platform
<%= idx %> - <%= tgt.name %> <%= Msf::Ui::Web::Common.target_icons(tgt) %>
<%# Wizard step 1 - payload selection %> <% elsif (step == 1) modinst = framework.exploits.create(name) modinst.datastore['TARGET'] = query_string['target'].to_i %>
<%= html_escape(modinst.name) %>

<% idx = 0 modinst.compatible_payloads.each { |pname, pmod| pmodinst = pmod.new %> <% idx += 1 } %>
Select Payload:    
  Name Description
  <%= html_escape(pname) %> <%= html_escape(pmodinst.description) %>
<%# Wizard step 2 - option selection %> <% elsif (step == 2) payload = query_string['payload'] modinst = framework.exploits.create(name) pinst = framework.payloads.create(payload) modinst.datastore['TARGET'] = query_string['target'].to_i %>
<%= html_escape(modinst.name) %>

<% options = pinst.options.merge_sort(modinst.options) options.each { |name, option| next if (option.advanced?) next if (option.evasion?) %> <% } %>
<%= name %> <%= (option.required?) ? "Required" : "Optional" %> <%= option.type %> <%= html_escape(option.desc) %>
 
Preferred Encoder:
NOP Generator:
 
<%# Wizard step 3 - exploitation %> <% elsif (step == 3) %> Exploit time <% else %> Unknown step: <%= html_escape(step) %> <% end %> <%= Msf::Ui::Web::Common.footer %>