From 7c204a816400b70c67f1549c0f70e2f19081fe4b Mon Sep 17 00:00:00 2001 From: Michel Oosterhof Date: Sun, 22 Jul 2018 14:02:12 +0400 Subject: [PATCH] do moduli check/version string only once --- cowrie/ssh/factory.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/cowrie/ssh/factory.py b/cowrie/ssh/factory.py index 38d2fa5d..9b9f133a 100644 --- a/cowrie/ssh/factory.py +++ b/cowrie/ssh/factory.py @@ -68,6 +68,19 @@ class CowrieSSHFactory(factory.SSHFactory): b'ssh-dss': keys.Key.fromString(data=dsaPrivKeyString) } + _modulis = '/etc/ssh/moduli', '/private/etc/moduli' + for _moduli in _modulis: + try: + self.primes = primes.parseModuliFile(_moduli) + break + except IOError as err: + pass + + try: + self.ourVersionString = CONFIG.get('ssh', 'version') + except NoOptionError: + self.ourVersionString = 'SSH-2.0-OpenSSH_6.0p1 Debian-4+deb7u2' + factory.SSHFactory.startFactory(self) log.msg("Ready to accept SSH connections") @@ -89,24 +102,12 @@ class CowrieSSHFactory(factory.SSHFactory): @return: The built transport. """ - _modulis = '/etc/ssh/moduli', '/private/etc/moduli' t = transport.HoneyPotSSHTransport() - try: - t.ourVersionString = CONFIG.get('ssh', 'version') - except NoOptionError: - t.ourVersionString = "SSH-2.0-OpenSSH_6.0p1 Debian-4+deb7u2" - + t.ourVersionString = self.ourVersionString t.supportedPublicKeys = list(self.privateKeys.keys()) - for _moduli in _modulis: - try: - self.primes = primes.parseModuliFile(_moduli) - break - except IOError as err: - pass - if not self.primes: ske = t.supportedKeyExchanges[:] if b'diffie-hellman-group-exchange-sha1' in ske: