metasploit-framework/data/msfweb/app/views/exploits/config.rhtml

265 lines
7.1 KiB
Plaintext

<%
def draw_option(name, opt)
defval = h(opt.default || '')
if (params[name.to_sym])
defval = params[name.to_sym].to_s
end
case opt.class.to_s
when 'Msf::OptEnum'
ret = '<select name="' + h(name) + '">' + "\n"
opt.enums.sort.each do |val|
sel = (val == defval) ? 'SELECTED' : ''
ret << '<option value="' + h(val) + '"' + " #{sel}>" + h(val) + "</option>\n"
end
ret << "</select>\n"
ret
else
'<input type="text" name="' + h(name) + '" value="' + defval + '" />'
end
end
%>
<table align="center" cellspacing="0" cellpadding="3" width="100%" class="EAconf_moduleFull">
<tr>
<td width="100%" class="EAconf_moduleName" colspan="2">
<%= h(@tmod.name) %> <br />
</td>
</tr>
<tr>
<td height="10" colspan="2">
</td>
</tr>
<tr>
<td width="100%" colspan="2">
<p>Select payload for target <strong><%= h(@target.name) %></strong>:</p>
</td>
</tr>
<tr>
<td height="10" colspan="2">
</td>
</tr>
<% if @exploit_error %>
<tr>
<td width="100%" class="moduleError" colspan="2">
Validation Error: <%= h(@exploit_error) %><br />
</td>
</tr>
<% end %>
<% if @exploit_console %>
<tr>
<td width="100%" class="moduleError" colspan="2">
Exploit launched. If the exploit console window does not appear, please click
<a href="#" onclick="javascript:window.parent.openConsoleWindowExploit(<%= @exploit_console %>);">here</a>.
</td>
</tr>
<% end %>
<% if @cur_step == nil %>
<tr>
<th colspan="2" class="moduleOptionsHeader">
CURRENT CONFIGURATION - <%= link_to "change target", :action => "view", :refname => h(params[:refname]) %>
</th>
</tr>
<tr>
<td class="opt_name">EXPLOIT</td>
<td><%= @tmod.refname %></td>
</tr>
<tr>
<td class="opt_name">TARGET</td>
<td><%= @target.name %></td>
</tr>
<tr>
<th class="moduleOptionsHeader">Name</th>
<th class="moduleOptionsHeader">Description</th>
</tr>
<%
rcol_a = 'item_row_col_a'
rcol_b = 'item_row_col_b'
rcol = rcol_b
%>
<% @payloads.each_with_index do |p, idx| %>
<tr class='<%=h rcol = (rcol == rcol_a) ? rcol_b : rcol_a %>'>
<% o = p[1].new %>
<td><%= link_to h(p[0]), :refname => @tmod.refname.gsub('/', ':'), :step => "config",
:target => h(params[:target].to_i), :payload => idx %></td>
<td><%= h(o.description) %></td>
</tr>
<% end %>
<% elsif @cur_step == "config" %>
<p>Please enter all of the required options and press 'Launch Exploit' to continue.</p>
<tr>
<th colspan="2" class="moduleOptionsHeader">
CURRENT CONFIGURATION -
<%= link_to "change payload", :action => "config", :refname => h(params[:refname]) %>
</th>
</tr>
<tr>
<td class="opt_name">EXPLOIT</td>
<td><%= h @tmod.refname %></td>
</tr>
<tr>
<td class="opt_name">TARGET</td>
<td><%= h @target.name %></td>
</tr>
<tr>
<td class="opt_name">PAYLOAD</td>
<td><%= h @payload_name %></td>
</tr>
<tr>
<th colspan="2" class="moduleOptionsHeader">STANDARD OPTIONS</th>
</tr>
<form action="/exploits/config" method="post">
<%= hidden_field_tag "refname", h(params[:refname]) %>
<%= hidden_field_tag "step", "exploit" %>
<%= hidden_field_tag "target", h(params[:target]) %>
<%= hidden_field_tag "payload", h(params[:payload]) %>
<% @tmod.options.sort.each { |name, option|
next if (option.advanced?)
next if (option.evasion?) %>
<tr>
<td class="opt_name"><%= h name %></td>
<td class="opt_required"><%= (option.required?) ? "Required" : "" %></td>
</tr>
<tr>
<td><%= h option.desc %> (type: <%= h option.type %>)</td>
<td>
<%= draw_option('eopt_'+h(name), option) %>
</td>
</tr>
<% } %>
<% @payload_inst.options.sort.each { |name, option|
next if (option.advanced?)
next if (option.evasion?) %>
<tr>
<td class="opt_name"><%= h name %></td>
<td class="opt_required"><%= (option.required?) ? "Required" : "" %></td>
</tr>
<tr>
<td><%= h option.desc %> (type: <%= h option.type %>)</td>
<td>
<%= draw_option('popt_'+h(name), option) %>
</td>
</tr>
<% } %>
<tr>
<th colspan="2"><br/><%= submit_tag "Launch Exploit" %><br/></th>
</tr>
<tr>
<th colspan="2" class="moduleOptionsHeader">ADVANCED OPTIONS</th>
</tr>
<% @tmod.options.sort.each { |name, option|
next if not option.advanced? %>
<tr>
<td class="opt_name"><%= h name %></td>
<td class="opt_required"><%= (option.required?) ? "Required" : "" %></td>
</tr>
<tr>
<td><%= h option.desc %> (type: <%= h option.type %>)</td>
<td>
<%= draw_option('eopt_'+h(name), option) %>
</td>
</tr>
<% } %>
<% @payload_inst.options.sort.each { |name, option|
next if not option.advanced? %>
<tr>
<td class="opt_name"><%= h name %></td>
<td class="opt_required"><%= (option.required?) ? "Required" : "" %></td>
</tr>
<tr>
<td><%= h option.desc %> (type: <%= h option.type %>)</td>
<td>
<%= draw_option('popt_'+h(name), option) %>
</td>
</tr>
<% } %>
<tr>
<th colspan="2"><br/><%= submit_tag "Launch Exploit" %><br/></th>
</tr>
<tr>
<th colspan="2" class="moduleOptionsHeader">EVASION OPTIONS</th>
</tr>
<% @tmod.options.sort.each { |name, option|
next if not option.evasion? %>
<tr>
<td class="opt_name"><%= name %></td>
<td class="opt_required"><%= (option.required?) ? "Required" : "" %></td>
</tr>
<tr>
<td><%= h option.desc %> (type: <%= h option.type %>)</td>
<td>
<%= draw_option('eopt_'+h(name), option) %>
</td>
</tr>
<% } %>
<% @payload_inst.options.sort.each { |name, option|
next if not option.evasion? %>
<tr>
<td class="opt_name"><%= h name %></td>
<td class="opt_required"><%= (option.required?) ? "Required" : "" %></td>
</tr>
<tr>
<td><%= html_escape(option.desc) %> (type: <%= option.type %>)</td>
<td>
<%= draw_option('popt_'+h(name), option) %>
</td>
</tr>
<% } %>
<tr>
<th colspan="2"><br/><%= submit_tag "Launch Exploit" %><br/></th>
</tr>
</form>
<% if @exploit_console %>
<script>
<% if params[:consoleOpen] and params[:consoleOpen] == "direct" %>
window.location="/console/index/<%= @exploit_console %>"
<% else %>
window.parent.openConsoleWindowExploit(<%= @exploit_console %>);
<% end %>
</script>
<% end %>
<% end %>
</table>