mirror of
https://github.com/aljazceru/cowrie.git
synced 2025-12-17 05:54:21 +01:00
move loggers to tac file
move
This commit is contained in:
@@ -70,6 +70,8 @@ class CowrieServiceMaker(object):
|
||||
tapname = "cowrie"
|
||||
description = "She sells sea shells by the sea shore."
|
||||
options = Options
|
||||
dbloggers = None
|
||||
output_plugins = None
|
||||
|
||||
def makeService(self, options):
|
||||
"""
|
||||
@@ -82,23 +84,6 @@ class CowrieServiceMaker(object):
|
||||
|
||||
cfg = readConfigFile(options["config"])
|
||||
|
||||
topService = service.MultiService()
|
||||
application = service.Application('cowrie')
|
||||
topService.setServiceParent(application)
|
||||
|
||||
factory = cowrie.ssh.factory.CowrieSSHFactory(cfg)
|
||||
|
||||
factory.portal = portal.Portal(core.realm.HoneyPotRealm(cfg))
|
||||
factory.portal.registerChecker(
|
||||
core.checkers.HoneypotPublicKeyChecker())
|
||||
factory.portal.registerChecker(
|
||||
core.checkers.HoneypotPasswordChecker(cfg))
|
||||
|
||||
if cfg.has_option('honeypot', 'auth_none_enabled') and \
|
||||
cfg.getboolean('honeypot', 'auth_none_enabled') == True:
|
||||
factory.portal.registerChecker(
|
||||
core.checkers.HoneypotNoneChecker())
|
||||
|
||||
# ssh is enabled by default
|
||||
if cfg.has_option('ssh', 'enabled') == False or \
|
||||
(cfg.has_option('ssh', 'enabled') and \
|
||||
@@ -118,7 +103,56 @@ class CowrieServiceMaker(object):
|
||||
print('ERROR: You must at least enable SSH or Telnet')
|
||||
sys.exit(1)
|
||||
|
||||
# Load db loggers
|
||||
self.dbloggers = []
|
||||
for x in self.cfg.sections():
|
||||
if not x.startswith('database_'):
|
||||
continue
|
||||
engine = x.split('_')[1]
|
||||
try:
|
||||
dblogger = __import__( 'cowrie.dblog.{}'.format(engine),
|
||||
globals(), locals(), ['dblog']).DBLogger(self.cfg)
|
||||
log.addObserver(dblogger.emit)
|
||||
self.dbloggers.append(dblogger)
|
||||
log.msg("Loaded dblog engine: {}".format(engine))
|
||||
except:
|
||||
log.err()
|
||||
log.msg("Failed to load dblog engine: {}".format(engine))
|
||||
|
||||
# Load output modules
|
||||
self.output_plugins = []
|
||||
for x in self.cfg.sections():
|
||||
if not x.startswith('output_'):
|
||||
continue
|
||||
engine = x.split('_')[1]
|
||||
try:
|
||||
output = __import__( 'cowrie.output.{}'.format(engine),
|
||||
globals(), locals(), ['output']).Output(self.cfg)
|
||||
log.addObserver(output.emit)
|
||||
self.output_plugins.append(output)
|
||||
log.msg("Loaded output engine: {}".format(engine))
|
||||
except:
|
||||
log.err()
|
||||
log.msg("Failed to load output engine: {}".format(engine))
|
||||
|
||||
topService = service.MultiService()
|
||||
application = service.Application('cowrie')
|
||||
topService.setServiceParent(application)
|
||||
|
||||
if enableSSH:
|
||||
factory = cowrie.ssh.factory.CowrieSSHFactory(cfg)
|
||||
factory.tac = self
|
||||
factory.portal = portal.Portal(core.realm.HoneyPotRealm(cfg))
|
||||
factory.portal.registerChecker(
|
||||
core.checkers.HoneypotPublicKeyChecker())
|
||||
factory.portal.registerChecker(
|
||||
core.checkers.HoneypotPasswordChecker(cfg))
|
||||
|
||||
if cfg.has_option('honeypot', 'auth_none_enabled') and \
|
||||
cfg.getboolean('honeypot', 'auth_none_enabled') == True:
|
||||
factory.portal.registerChecker(
|
||||
core.checkers.HoneypotNoneChecker())
|
||||
|
||||
if cfg.has_option('ssh', 'listen_addr'):
|
||||
listen_ssh_addr = cfg.get('ssh', 'listen_addr')
|
||||
elif cfg.has_option('honeypot', 'listen_addr'):
|
||||
@@ -154,6 +188,7 @@ class CowrieServiceMaker(object):
|
||||
listen_telnet_port = 2223
|
||||
|
||||
f = cowrie.telnet.transport.HoneyPotTelnetFactory(cfg)
|
||||
f.tac = self
|
||||
f.portal = portal.Portal(core.realm.HoneyPotRealm(cfg))
|
||||
f.portal.registerChecker(core.checkers.HoneypotPasswordChecker(cfg))
|
||||
for i in listen_telnet_addr.split():
|
||||
|
||||
Reference in New Issue
Block a user