adding db_import_amap_mlog for reading in from a thc-amap machine-readable log

git-svn-id: file:///home/svn/framework3/trunk@6169 4d416f70-5f16-0410-b530-b9f4589650da
unstable
kris 2009-01-21 02:12:10 +00:00
parent 4a15116fe6
commit 32868c4b0f
1 changed files with 48 additions and 0 deletions

View File

@ -39,6 +39,7 @@ module Db
"db_add_note" => "Add a note to host",
"db_del_host" => "Delete one or more hosts from the database",
"db_autopwn" => "Automatically exploit everything",
"db_import_amap_mlog" => "Import a THC-Amap scan results file (-o -m)",
"db_import_nessus_nbe" => "Import a Nessus scan result file (NBE)",
"db_import_nmap_xml" => "Import a Nmap scan results file (-oX)",
"db_nmap" => "Executes nmap and records the output automatically",
@ -531,6 +532,53 @@ module Db
end
end
#
# Import from a THC-Amap machine-readable log file
#
def cmd_db_import_amap_mlog(*args)
if args.length == 0
print_status("Usage: db_import_amap_mlog [logfile]")
return
end
if not File.readable?(args[0])
print_error("Could not read the log file")
return
end
fd = File.open(args[0], 'r')
fd.each_line do |line|
line.sub!(/#.*/, "")
r = line.split(':')
next if r.length < 6
addr = r[0]
port = r[1].to_i
proto = r[2].downcase
status = r[3]
name = r[5]
next if status != "open"
host = framework.db.get_host(nil, addr)
next if not host
if host.state != Msf::HostState::Alive
framework.db.report_host_state(self, addr, Msf::HostState::Alive)
end
service = framework.db.get_service(nil, host, proto, port)
if not service.name and name != "unidentified"
service.name = name
service.save
end
end
fd.close
end
#
# Determine if an IP address is inside a given range
#