mirror of
https://github.com/byt3bl33d3r/MITMf.git
synced 2025-03-12 04:35:49 -07:00
Added a plugin system to Net-Creds so you can now add your own parsers, api hook names might change between now and the offcial release (will submit a PR to the original repo once completed) The main MITM HTTP Proxy now uses mitmproxy which is a big deal, cuts the code down by an insane amount, no more twisted! yay! Basic plugin have been re-wrote for the new proxy engine Since we are using mitmproxy we have out of the box support for SSL/TLS!
51 lines
2.1 KiB
Python
51 lines
2.1 KiB
Python
import logging
|
|
import sys
|
|
from datetime import datetime
|
|
|
|
class ProxyLoggerAdapter(logging.LoggerAdapter):
|
|
|
|
def process(self, msg, kwargs):
|
|
return '[{}] {} [type:{}-{} os:{}] {}'.format(self.extra['proxy'],
|
|
self.extra['client'],
|
|
self.extra['browser'],
|
|
self.extra['browser_v'],
|
|
self.extra['os'],
|
|
msg), kwargs
|
|
|
|
class DebugLoggerAdapter(logging.LoggerAdapter):
|
|
|
|
def process(self, msg, kwargs):
|
|
return '[DEBUG][{}] {}'.format(self.extra['source'], msg), kwargs
|
|
|
|
class NetCredsAdapter(logging.LoggerAdapter):
|
|
|
|
def __init__(self, logger, extra):
|
|
self.logger = logger
|
|
self.extra = extra
|
|
self.extra['dst_ip_port'] = None
|
|
|
|
def process(self, msg, kwargs):
|
|
if self.extra['dst_ip_port'] is not None:
|
|
return '[Net-Creds][{}][{} > {}] {}'.format(self.extra['parser'],
|
|
self.extra['src_ip_port'],
|
|
self.extra['dst_ip_port'],
|
|
msg), kwargs
|
|
else:
|
|
return '[Net-Creds][{}][{}] {}'.format(self.extra['parser'],
|
|
self.extra['src_ip_port'].split(':')[0],
|
|
msg), kwargs
|
|
|
|
def setup_logger(level=logging.INFO):
|
|
|
|
formatter = logging.Formatter("%(asctime)s %(message)s", datefmt="%m-%d-%Y %H:%M:%S")
|
|
fileHandler = logging.FileHandler('./logs/MITMf_{}.log'.format(datetime.now().strftime('%Y-%m-%d')))
|
|
fileHandler.setFormatter(formatter)
|
|
|
|
streamHandler = logging.StreamHandler(sys.stdout)
|
|
streamHandler.setFormatter(formatter)
|
|
|
|
mitmf_logger = logging.getLogger('MITMf')
|
|
mitmf_logger.propagate = False
|
|
mitmf_logger.addHandler(streamHandler)
|
|
mitmf_logger.addHandler(fileHandler)
|
|
mitmf_logger.setLevel(level) |