Rescue when the service is crashed

Failed exploit attempts leave the service in a state where the port is
still open but login attmempts reset the connection. Rescue that and
give the user an indication of what's going on.
unstable
James Lee 2012-10-22 14:15:58 -05:00 committed by corelanc0d3r
parent 47352746e2
commit 6147b332f1
1 changed files with 20 additions and 2 deletions

View File

@ -807,8 +807,18 @@ class Metasploit3 < Msf::Exploit::Remote
def exploit
connect()
smb_login()
begin
connect()
smb_login()
rescue Rex::Proto::SMB::Exceptions::LoginError => e
if (e.message =~ /Connection reset/)
print_error("Connection reset during login")
print_error("This most likely means a previous exploit attempt caused the service to crash")
return
else
raise e
end
end
# Use a copy of the target
mytarget = target
@ -1052,6 +1062,14 @@ class Metasploit3 < Msf::Exploit::Remote
rescue Rex::ConnectionError => e
print_error("Connection failed: #{e.class}: #{e}")
return
rescue Rex::Proto::SMB::Exceptions::LoginError => e
if (e.message =~ /Connection reset/)
print_error("Connection reset during login")
print_error("This most likely means a previous exploit attempt caused the service to crash")
return Msf::Exploit::CheckCode::Unknown
else
raise e
end
end
#