Implementing database reporting for mssql_ping.

git-svn-id: file:///home/svn/framework3/trunk@8464 4d416f70-5f16-0410-b530-b9f4589650da
unstable
Tod Beardsley 2010-02-12 16:53:46 +00:00
parent 3fe41a0d94
commit 537007c9cb
1 changed files with 47 additions and 0 deletions

View File

@ -17,6 +17,7 @@ class Metasploit3 < Msf::Auxiliary
include Msf::Exploit::Remote::MSSQL
include Msf::Auxiliary::Scanner
include Msf::Auxiliary::Report
def initialize
super(
@ -30,6 +31,9 @@ class Metasploit3 < Msf::Auxiliary
deregister_options('RPORT', 'RHOST')
end
def rport
datastore['RPORT']
end
def run_host(ip)
@ -41,9 +45,52 @@ class Metasploit3 < Msf::Auxiliary
info.each_pair { |k,v|
print_status(" #{k + (" " * (15-k.length))} = #{v}")
}
if info['tcp']
report_mssql_service(ip,info)
end
end
rescue ::Rex::ConnectionError
end
end
def test_connection(ip,port)
begin
sock = Rex::Socket::Tcp.create(
'PeerHost' => ip,
'PeerPort' => port
)
rescue Rex::ConnectionError
return :down
end
sock.close
return :up
end
def report_mssql_service(ip,info)
mssql_info = "Version: %s, ServerName: %s, InstanceName: %s, Clustered: %s" % [
info['Version'],
info['ServerName'],
info['InstanceName'],
info['IsClustered']
]
report_service(
:host => ip,
:port => 1434,
:name => "ms-sql-m",
:proto => "udp",
:info => "TCP: #{info['tcp']}, Servername: #{info['ServerName']}"
)
mssql_tcp_state = (test_connection(ip,info['tcp']) == :up ? "open" : "closed")
report_service(
:host => ip,
:port => info['tcp'],
:name => "ms-sql-s",
:info => mssql_info,
:state => mssql_tcp_state
)
end
end