From b5fe64aca25dee24b3a110b653e501bfbd1da5f8 Mon Sep 17 00:00:00 2001 From: Tod Beardsley Date: Fri, 8 Oct 2010 00:48:24 +0000 Subject: [PATCH] This works around a blocking problem encountered with recv_telnet(). Don't hang around trying to recv when we've already got a password prompt or a success/fail response. git-svn-id: file:///home/svn/framework3/trunk@10590 4d416f70-5f16-0410-b530-b9f4589650da --- modules/auxiliary/scanner/telnet/telnet_login.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/auxiliary/scanner/telnet/telnet_login.rb b/modules/auxiliary/scanner/telnet/telnet_login.rb index c1bcf783b0..fd1c43b3ec 100644 --- a/modules/auxiliary/scanner/telnet/telnet_login.rb +++ b/modules/auxiliary/scanner/telnet/telnet_login.rb @@ -159,9 +159,10 @@ class Metasploit3 < Msf::Auxiliary send_user(user) end + recvd_sample = @recvd.dup # Allow for slow echos 1.upto(10) do - recv_telnet(self.sock, 0.10) + recv_telnet(self.sock, 0.10) unless @recvd.nil? or @recvd[/#{@password_prompt}/] end vprint_status("#{rhost}:#{rport} Prompt: #{@recvd.gsub(/[\r\n\e\b\a]/, ' ')}") @@ -171,7 +172,7 @@ class Metasploit3 < Msf::Auxiliary # Allow for slow echos 1.upto(10) do - recv_telnet(self.sock, 0.10) + recv_telnet(self.sock, 0.10) if @recvd == recvd_sample end