Example #1
0
    def __init__(self, setup):
        super(SnifferEngine, self).__init__()
        self.setup = setup
        sys.stderr.write("[+] Starting sniffer...\n")

        # check if sniffer directory exists
        if not os.path.isdir(self.setup['SNIFFER_DIR']):
            sys.stderr.write("Could not load directory specified in sniffer_dir: {}\n".format(self.setup['SNIFFER_DIR']))
            exit()

        sys.stderr.write("[+] Successfully loaded sniffer directory: {}\n".format(self.setup['SNIFFER_DIR']))

        if setup['TLS_PROXY_PORT'] > 0:
            from Malcom.sniffer.tlsproxy.tlsproxy import MalcomTLSProxy
            sys.stderr.write("[+] Starting TLS proxy on port {}\n".format(setup['TLS_PROXY_PORT']))
            self.tls_proxy = MalcomTLSProxy(setup['TLS_PROXY_PORT'])
            self.tls_proxy.engine = self
            self.tls_proxy.start()
        else:
            self.tls_proxy = None

        self.sessions = {}

        self.model = Model(self.setup)
        self.db_lock = threading.Lock()

        self.messenger = SnifferMessenger()
        self.messenger.snifferengine = self
Example #2
0
 def __init__(self, configuration):
     Process.__init__(self)
     self.configuration = configuration
     self.model = Model(self.configuration)
     self.feeds = {}
     self.threads = {}
     self.global_thread = None
Example #3
0
    def __init__(self, setup, yara_rules=None):
        super(SnifferEngine, self).__init__()
        self.setup = setup
        sys.stderr.write("[+] Starting sniffer...\n")

        # check if sniffer directory exists
        if not os.path.isdir(self.setup['SNIFFER_DIR']):
            sys.stderr.write(
                "Could not load directory specified in sniffer_dir: %s\n" %
                self.setup['SNIFFER_DIR'])
            exit()

        sys.stderr.write("[+] Successfully loaded sniffer directory: %s\n" %
                         self.setup['SNIFFER_DIR'])

        if setup['TLS_PROXY_PORT'] > 0:
            from Malcom.networking.tlsproxy.tlsproxy import MalcomTLSProxy
            sys.stderr.write("[+] Starting TLS proxy on port %s\n" %
                             setup['TLS_PROXY_PORT'])
            self.tls_proxy = MalcomTLSProxy(setup['TLS_PROXY_PORT'])
            self.tls_proxy.engine = self
            self.tls_proxy.start()
        else:
            self.tls_proxy = None

        self.sessions = {}

        self.model = Model()
        self.db_lock = threading.Lock()

        self.messenger = SnifferMessenger()
        self.messenger.snifferengine = self

        # debug_output("Importing packet captures...")

        # for s in self.model.get_sniffer_sessions():
        # 	self.sessions[s['name']] = SnifferSession(	s['name'],
        # 												None,
        # 												None,
        # 												self,
        # 												filter_restore=s['filter'],
        # 												intercept_tls=s['intercept_tls'] if setup['TLS_PROXY_PORT'] else False)
        # 	self.sessions[s['name']].pcap = True

        if has_yara and yara_rules:
            try:
                self.yara_rules = self.load_yara_rules(yara_rules)
            except Exception, e:
                sys.stderr.write(
                    "Could not load yara rules specified in yara_path: %s\n" %
                    e)
                exit()
Example #4
0
    def __init__(self):
        self.data = Model()
        self.max_threads = Malcom.config.get('MAX_THREADS', 4)
        self.active = False
        self.status = "Inactive"
        self.websocket = None
        self.thread = None
        self.websocket_lock = threading.Lock()
        self.stack_lock = threading.Lock()
        self.progress = 0
        self.total = 0

        self.max_threads = threading.Semaphore(self.max_threads)
        self.worker_threads = {}