second implementation of the HTTP server, you can now define shares for the SMB server in the config file, added an option to switch between the normal SMB server and the Karma version.

removed some useless code (left over from the responder plugin), serverResponseStatus hook now returns a dict (tuple was causing errors)
This commit is contained in:
byt3bl33d3r 2015-05-30 15:00:41 +02:00
commit 14580f1589
14 changed files with 806 additions and 920 deletions

View file

@ -17,7 +17,7 @@ class SMBTrap(Plugin):
self.ourip = SystemConfig.getIP(options.interface)
def serverResponseStatus(self, request, version, code, message):
return (version, 302, "Found")
return {"request": request, "version": version, "code": 302, "message": "Found"}
def serverHeaders(self, response, request):
mitmf_logger.info("{} [SMBTrap] Trapping request to {}".format(request.client.getClientIP(), request.headers['host']))

View file

@ -22,7 +22,6 @@ import sys
import logging
from plugins.plugin import Plugin
from core.utils import IpTables, SystemConfig
from core.sslstrip.URLMonitor import URLMonitor
from core.servers.dns.DNSchef import DNSChef
@ -37,11 +36,10 @@ class HSTSbypass(Plugin):
def initialize(self, options):
self.options = options
self.manualiptables = options.manualiptables
ip_address = SystemConfig.getIP(options.interface)
if not options.manualiptables:
if IpTables.getInstance().dns is False:
IpTables.getInstance().DNS(ip_address, self.config['MITMf']['DNS']['port'])
IpTables.getInstance().DNS(self.config['MITMf']['DNS']['port'])
URLMonitor.getInstance().setHstsBypass()
DNSChef.getInstance().setHstsBypass()

View file

@ -49,7 +49,7 @@ class Spoof(Plugin):
#Makes scapy more verbose
debug = False
if options.log_level == 'debug':
debug = True
debug = False
if options.arp:
@ -98,9 +98,7 @@ class Spoof(Plugin):
if not options.manualiptables:
if IpTables.getInstance().dns is False:
IpTables.getInstance().DNS(self.myip, self.dnscfg['port'])
DNSChef.getInstance().loadRecords(self.dnscfg)
IpTables.getInstance().DNS(self.dnscfg['port'])
if not options.arp and not options.icmp and not options.dhcp and not options.dns:
shutdown("[-] Spoof plugin requires --arp, --icmp, --dhcp or --dns")
@ -108,7 +106,6 @@ class Spoof(Plugin):
SystemConfig.setIpForwarding(1)
if not options.manualiptables:
IpTables.getInstance().Flush()
if IpTables.getInstance().http is False:
IpTables.getInstance().HTTP(options.listen)

View file

@ -1,6 +1,5 @@
from plugins.plugin import Plugin
from core.servers.http.HTTPServer import HTTPServer
import tornado.web
from core.servers.http.HTTPServer import HTTPServer, HTTPHandler
class TestPlugin(Plugin):
name = "testplugin"
@ -10,9 +9,8 @@ class TestPlugin(Plugin):
has_opts = False
def initialize(self, options):
HTTPServer.getInstance().addHandler(r"/test/(.*)", MainHandler)
HTTPServer.getInstance().addHandler(r"/test/.*", WebServer)
class MainHandler(tornado.web.RequestHandler):
class WebServer(HTTPHandler):
def get(self):
print self.request
self.write("Hello World!")
self.write("It works MOFO!")

View file

@ -46,7 +46,7 @@ class Plugin(ConfigWatcher, object):
'''
Handles server response HTTP version, code and message
'''
return (version, code, message)
return {"request": request, "version": version, "code": code, "message": message}
def serverResponse(self, response, request, data):
'''