required=False, default='local', help='Select an env. file to use') args = parser.parse_args() with open('conf/%s.yml' % args.environment) as c: cfg = yaml.load(c) logging.getLogger('aiohttp.access').setLevel(logging.WARNING) logging.getLogger('asyncio').setLevel(logging.FATAL) logging.getLogger().setLevel('DEBUG') sys.path.append('') plugin_modules = build_plugins(cfg['plugins']) utility_svc = UtilityService() data_svc = DataService(CoreDao('core.db')) operation_svc = OperationService(data_svc=data_svc, utility_svc=utility_svc, planner=cfg['planner']) auth_svc = AuthService(data_svc=data_svc, ssl_cert=SSL_CERT) file_svc = FileSvc(cfg['stores']) services = dict(data_svc=data_svc, auth_svc=auth_svc, utility_svc=utility_svc, operation_svc=operation_svc, file_svc=file_svc, plugins=plugin_modules) logging.debug('Serving at %s:%s' % (cfg['host'], cfg['port'])) main(services=services, host=cfg['host'], port=cfg['port'], users=cfg['users'])
setup_logger(getattr(logging, args.logLevel)) if args.insecure: logging.warning( '--insecure flag set. Caldera will use the default.yml config file.' ) args.environment = 'default' elif args.environment == 'local': ensure_local_config() main_config_path = 'conf/%s.yml' % args.environment BaseWorld.apply_config('main', BaseWorld.strip_yml(main_config_path)[0]) logging.info('Using main config from %s' % main_config_path) BaseWorld.apply_config('agents', BaseWorld.strip_yml('conf/agents.yml')[0]) BaseWorld.apply_config('payloads', BaseWorld.strip_yml('conf/payloads.yml')[0]) data_svc = DataService() contact_svc = ContactService() planning_svc = PlanningService() rest_svc = RestService() auth_svc = AuthService() file_svc = FileSvc() learning_svc = LearningService() event_svc = EventService() app_svc = AppService(application=web.Application()) if args.fresh: asyncio.get_event_loop().run_until_complete(data_svc.destroy()) run_tasks(services=app_svc.get_services())
logging.getLogger('asyncio').setLevel(logging.FATAL) logging.getLogger().setLevel(logging.DEBUG) sys.path.append('') plugin_modules = build_plugins(cfg['plugins']) utility_svc = UtilityService() data_svc = DataService(CoreDao('core.db', memory=cfg['memory']), utility_svc) logging.debug('Using an in-memory database: %s' % cfg['memory']) planning_svc = PlanningService(data_svc, utility_svc) parsing_svc = ParsingService(data_svc) operation_svc = OperationService(data_svc=data_svc, utility_svc=utility_svc, planning_svc=planning_svc, parsing_svc=parsing_svc) auth_svc = AuthService(utility_svc=utility_svc) logging.debug('Uploaded files will be put in %s' % cfg['exfil_dir']) file_svc = FileSvc( ['plugins/%s/payloads' % p.name.lower() for p in plugin_modules], cfg['exfil_dir']) services = dict(data_svc=data_svc, auth_svc=auth_svc, utility_svc=utility_svc, operation_svc=operation_svc, file_svc=file_svc, planning_svc=planning_svc, plugins=plugin_modules) logging.debug('Serving at http://%s:%s' % (cfg['host'], cfg['port'])) main(services=services, host=cfg['host'], port=cfg['port'],
state = logging.FATAL if cfg['debug']: state = logging.ERROR logging.getLogger('aiohttp.access').setLevel(state) logging.getLogger('aiohttp_session').setLevel(state) logging.getLogger('aiohttp.server').setLevel(state) logging.getLogger('asyncio').setLevel(state) logging.getLogger().setLevel(logging.DEBUG) sys.path.append('') plugin_modules = build_plugins(cfg['plugins']) plugin_svc = PluginService(plugin_modules) data_svc = DataService(CoreDao('core.db', memory=cfg['memory'])) logging.debug('Using an in-memory database: %s' % cfg['memory']) planning_svc = PlanningService() parsing_svc = ParsingService() operation_svc = OperationService() auth_svc = AuthService(cfg['api_key']) logging.debug('Uploaded files will be put in %s' % cfg['exfil_dir']) file_svc = FileSvc([p.name.lower() for p in plugin_modules], cfg['exfil_dir']) agent_svc = AgentService(untrusted_timer=cfg['untrusted_timer']) logging.debug( 'Agents will be considered untrusted after %s seconds of silence' % cfg['untrusted_timer']) logging.debug('Serving at http://%s:%s' % (cfg['host'], cfg['port'])) main(services=data_svc.get_services(), host=cfg['host'], port=cfg['port'], users=cfg['users'])