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)