handle port cmdline option / migrate keys to core

This commit is contained in:
Michel Oosterhof
2015-06-03 18:23:55 +00:00
parent aeb8376779
commit e935d9a3b3
2 changed files with 14 additions and 17 deletions

View File

@@ -97,6 +97,14 @@ class HoneyPotSSHFactory(factory.SSHFactory):
# for use by the uptime command
self.starttime = time.time()
# load/create keys
rsa_pubKeyString, rsa_privKeyString = getRSAKeys()
dsa_pubKeyString, dsa_privKeyString = getDSAKeys()
self.publicKeys = {'ssh-rsa': keys.Key.fromString(data=rsa_pubKeyString),
'ssh-dss': keys.Key.fromString(data=dsa_pubKeyString)}
self.privateKeys = {'ssh-rsa': keys.Key.fromString(data=rsa_privKeyString),
'ssh-dss': keys.Key.fromString(data=dsa_privKeyString)}
# load db loggers
self.dbloggers = []
for x in cfg.sections():

View File

@@ -7,7 +7,6 @@ from twisted.plugin import IPlugin
from twisted.application.service import IServiceMaker
from twisted.application import internet, service
from twisted.cred import portal
from twisted.conch.ssh import keys
from cowrie.core.config import config
import cowrie.core.ssh
@@ -15,7 +14,7 @@ from cowrie import core
class Options(usage.Options):
optParameters = [
["port", "p", 2222, "The port number to listen on."],
["port", "p", 0, "The port number to listen on.", int],
["config", "c", 'cowrie.cfg', "The configuration file to use."]
]
@@ -39,32 +38,22 @@ class CowrieServiceMaker(object):
factory.portal.registerChecker(core.auth.HoneypotPublicKeyChecker())
factory.portal.registerChecker(core.auth.HoneypotPasswordChecker())
rsa_pubKeyString, rsa_privKeyString = core.ssh.getRSAKeys()
dsa_pubKeyString, dsa_privKeyString = core.ssh.getDSAKeys()
factory.publicKeys = {'ssh-rsa': keys.Key.fromString(data=rsa_pubKeyString),
'ssh-dss': keys.Key.fromString(data=dsa_pubKeyString)}
factory.privateKeys = {'ssh-rsa': keys.Key.fromString(data=rsa_privKeyString),
'ssh-dss': keys.Key.fromString(data=dsa_privKeyString)}
cfg = config()
if cfg.has_option('honeypot', 'listen_addr'):
listen_addr = cfg.get('honeypot', 'listen_addr')
elif cfg.has_option('honeypot', 'ssh_addr'):
# ssh_addr for backwards compatibility
listen_addr = cfg.get('honeypot', 'ssh_addr')
else:
listen_addr = '0.0.0.0'
if cfg.has_option('honeypot', 'listen_port'):
# preference: 1, option, 2, config, 3, default of 2222
if options['port'] != 0:
listen_port = int(options["port"])
elif cfg.has_option('honeypot', 'listen_port'):
listen_port = int(cfg.get('honeypot', 'listen_port'))
elif cfg.has_option('honeypot', 'ssh_port'):
# ssh_port for backwards compatibility
listen_port = int(cfg.get('honeypot', 'ssh_port'))
else:
listen_port = 2222
application = service.Application('honeypot')
application = service.Application('cowrie')
for i in listen_addr.split():
svc = internet.TCPServer( listen_port, factory, interface=i)