do moduli check/version string only once

This commit is contained in:
Michel Oosterhof 2018-07-22 14:02:12 +04:00
parent 990640e280
commit 7c204a8164
1 changed files with 14 additions and 13 deletions

View File

@ -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: