From b53e8a65d1f0d21bba8993ff6ff992b689d749c2 Mon Sep 17 00:00:00 2001 From: desaster Date: Sun, 8 Jul 2012 16:30:32 +0000 Subject: [PATCH] Don't send key exchange prematurely git-svn-id: https://kippo.googlecode.com/svn/trunk@220 951d7100-d841-11de-b865-b3884708a8e2 --- kippo/core/honeypot.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/kippo/core/honeypot.py b/kippo/core/honeypot.py index b4bedb8..ab012f2 100644 --- a/kippo/core/honeypot.py +++ b/kippo/core/honeypot.py @@ -496,6 +496,8 @@ class HoneyPotRealm: raise Exception, "No supported interfaces found." class HoneyPotTransport(transport.SSHServerTransport): + + hadVersion = False def connectionMade(self): print 'New connection: %s:%s (%s:%s) [session: %d]' % \ @@ -507,6 +509,18 @@ class HoneyPotTransport(transport.SSHServerTransport): self.ttylog_open = False transport.SSHServerTransport.connectionMade(self) + def sendKexInit(self): + # Don't send key exchange prematurely + if not self.gotVersion: + return + transport.SSHServerTransport.sendKexInit(self) + + def dataReceived(self, data): + transport.SSHServerTransport.dataReceived(self, data) + if not self.hadVersion and self.gotVersion: + self.sendKexInit() + self.hadVersion = True + def ssh_KEXINIT(self, packet): print 'Remote SSH version: %s' % (self.otherVersionString,) return transport.SSHServerTransport.ssh_KEXINIT(self, packet)