mirror of
https://github.com/byt3bl33d3r/MITMf.git
synced 2025-07-06 04:52:22 -07:00
JavaPwn plugin has been renamed to BrowserSniper (cause it now supports java, flash and browser exploits), it's been completly re-written along with it's config file section Addition of the screenshotter plugin, currently there is a bug when decoding the base64 encoded png files (a very wierd one) , but other than that it works (did i mention i hate js?) Jskeylogger's javscript now works on every browser except FF mobile (have no clue what's with that) p.s. did i mention i hate JS? Plugins that deal with javascript now read it from a file as supposed to having it built in (encoding issues) fu javascript User agent parsing is now built in and handled by core/httpagentparser.py, this because the user-agent library is a pain to install on some distros , also removes 3-4 deps which is a plus also fuck javascript
60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
'''
|
|
The base plugin class. This shows the various methods that
|
|
can get called during the MITM attack.
|
|
'''
|
|
from core.configwatcher import ConfigWatcher
|
|
import logging
|
|
|
|
mitmf_logger = logging.getLogger('mitmf')
|
|
|
|
class Plugin(ConfigWatcher, object):
|
|
name = "Generic plugin"
|
|
optname = "generic"
|
|
tree_info = list()
|
|
desc = ""
|
|
has_opts = False
|
|
|
|
def initialize(self, options):
|
|
'''Called if plugin is enabled, passed the options namespace'''
|
|
self.options = options
|
|
|
|
def startThread(self, options):
|
|
'''Anything that will subclass this function will be a thread, passed the options namespace'''
|
|
return
|
|
|
|
def clientRequest(self, request):
|
|
'''
|
|
Handles all outgoing requests, hooks connectionMade()
|
|
request object has the following attributes:
|
|
|
|
request.headers => headers in dict format
|
|
request.commad => HTTP method
|
|
request.post => POST data
|
|
request.uri => full URL
|
|
request.path => path
|
|
'''
|
|
pass
|
|
|
|
def serverHeaders(self, response, request):
|
|
'''
|
|
Handles all response headers, hooks handleEndHeaders()
|
|
'''
|
|
pass
|
|
|
|
def serverResponse(self, response, request, data):
|
|
'''
|
|
Handles all non-image responses by default, hooks handleResponse() (See Upsidedownternet for how to get images)
|
|
'''
|
|
return {'response': response, 'request':request, 'data': data}
|
|
|
|
def pluginOptions(self, options):
|
|
'''Add your options to the options parser'''
|
|
pass
|
|
|
|
def pluginReactor(self, strippingFactory):
|
|
'''This sets up another instance of the reactor on a diffrent port, passed the default factory'''
|
|
pass
|
|
|
|
def finish(self):
|
|
'''This will be called when shutting down'''
|
|
pass
|