Exemple #1
0
    def __init__(self, command, uri, postData, headers, client):

        self.command = command
        self.uri = uri
        self.postData = postData
        self.headers = headers
        self.client = client
        self.clientInfo = None
        self.urlMonitor = URLMonitor.getInstance()
        self.hsts = URLMonitor.getInstance().isHstsBypass()
        self.plugins = ProxyPlugins.getInstance()
        self.isImageRequest = False
        self.isCompressed = False
        self.contentLength = None
        self.shutdownComplete = False

        #these field names were stolen from the etter.fields file (Ettercap Project)
        self.http_userfields = [
            'log', 'login', 'wpname', 'ahd_username', 'unickname', 'nickname',
            'user', 'user_name', 'alias', 'pseudo', 'email', 'username',
            '_username', 'userid', 'form_loginname', 'loginname', 'login_id',
            'loginid', 'session_key', 'sessionkey', 'pop_login', 'uid', 'id',
            'user_id', 'screename', 'uname', 'ulogin', 'acctname', 'account',
            'member', 'mailaddress', 'membername', 'login_username',
            'login_email', 'loginusername', 'loginemail', 'uin', 'sign-in'
        ]

        self.http_passfields = [
            'ahd_password', 'pass', 'password', '_password', 'passwd',
            'session_password', 'sessionpassword', 'login_password',
            'loginpassword', 'form_pw', 'pw', 'userpassword', 'pwd',
            'upassword', 'login_password'
            'passwort', 'passwrd', 'wppassword', 'upasswd'
        ]
Exemple #2
0
    def __init__(self, command, uri, postData, headers, client):

        self.command          = command
        self.uri              = uri
        self.postData         = postData
        self.headers          = headers
        self.client           = client
        self.clientInfo       = None
        self.urlMonitor       = URLMonitor.getInstance()
        self.hsts             = URLMonitor.getInstance().isHstsBypass()
        self.plugins          = ProxyPlugins.getInstance()
        self.isImageRequest   = False
        self.isCompressed     = False
        self.contentLength    = None
        self.shutdownComplete = False

        #these field names were stolen from the etter.fields file (Ettercap Project)
        self.http_userfields = ['log','login', 'wpname', 'ahd_username', 'unickname', 'nickname', 'user', 'user_name',
                                'alias', 'pseudo', 'email', 'username', '_username', 'userid', 'form_loginname', 'loginname',
                                'login_id', 'loginid', 'session_key', 'sessionkey', 'pop_login', 'uid', 'id', 'user_id', 'screename',
                                'uname', 'ulogin', 'acctname', 'account', 'member', 'mailaddress', 'membername', 'login_username',
                                'login_email', 'loginusername', 'loginemail', 'uin', 'sign-in']

        self.http_passfields = ['ahd_password', 'pass', 'password', '_password', 'passwd', 'session_password', 'sessionpassword', 
                                'login_password', 'loginpassword', 'form_pw', 'pw', 'userpassword', 'pwd', 'upassword', 'login_password'
                                'passwort', 'passwrd', 'wppassword', 'upasswd']
Exemple #3
0
 def __init__(self, channel, queued, reactor=reactor):
     Request.__init__(self, channel, queued)
     self.reactor = reactor
     self.urlMonitor = URLMonitor.getInstance()
     self.hsts = URLMonitor.getInstance().isHstsBypass()
     self.cookieCleaner = CookieCleaner.getInstance()
     self.dnsCache = DnsCache.getInstance()
     self.plugins = ProxyPlugins.getInstance()
Exemple #4
0
 def __init__(self, channel, queued, reactor=reactor):
     Request.__init__(self, channel, queued)
     self.reactor       = reactor
     self.urlMonitor    = URLMonitor.getInstance()
     self.hsts          = URLMonitor.getInstance().isHstsBypass()
     self.cookieCleaner = CookieCleaner.getInstance()
     self.dnsCache      = DnsCache.getInstance()
     self.plugins       = ProxyPlugins.getInstance()
Exemple #5
0
    def __init__(self, command, uri, postData, headers, client):

        self.command = command
        self.uri = uri
        self.postData = postData
        self.headers = headers
        self.client = client
        self.clientInfo = None
        self.urlMonitor = URLMonitor.getInstance()
        self.hsts = URLMonitor.getInstance().isHstsBypass()
        self.plugins = ProxyPlugins.getInstance()
        self.isImageRequest = False
        self.isCompressed = False
        self.contentLength = None
        self.shutdownComplete = False
Exemple #6
0
    def __init__(self, command, uri, postData, headers, client):

        self.command          = command
        self.uri              = uri
        self.postData         = postData
        self.headers          = headers
        self.client           = client
        self.clientInfo       = None
        self.urlMonitor       = URLMonitor.getInstance()
        self.hsts             = URLMonitor.getInstance().isHstsBypass()
        self.plugins          = ProxyPlugins.getInstance()
        self.isImageRequest   = False
        self.isCompressed     = False
        self.contentLength    = None
        self.shutdownComplete = False
Exemple #7
0
load = []

for p in plugins:
    try:
        if vars(args)[p.optname] is True:
            print "|_ %s v%s" % (p.name, p.version)

        if getattr(args, p.optname):
            p.initialize(args)
            load.append(p)
    except Exception, e:
        print "[-] Error loading plugin %s: %s" % (p.name, str(e))

#Plugins are ready to go, start MITMf
if args.disproxy:
    ProxyPlugins.getInstance().setPlugins(load)
else:

    from libs.sslstrip.StrippingProxy import StrippingProxy
    from libs.sslstrip.URLMonitor import URLMonitor

    URLMonitor.getInstance().setFaviconSpoofing(args.favicon)
    CookieCleaner.getInstance().setEnabled(args.killsessions)
    ProxyPlugins.getInstance().setPlugins(load)

    strippingFactory = http.HTTPFactory(timeout=10)
    strippingFactory.protocol = StrippingProxy

    reactor.listenTCP(args.listen, strippingFactory)

    #load custom reactor options for plugins that have the 'plugin_reactor' attribute
Exemple #8
0
    if ('--responder' and '--wpad') in sys.argv:
        args.listen = 3141
        print "[*] Listening on port 3141 since --wpad was passed"

    load = []
    try:
        for p in plugins:
            if  getattr(args, p.optname):
                p.initialize(args)
                load.append(p)
    except NotImplementedError:
        print "Plugin %s lacked initialize function." % p.name

    #Plugins are ready to go, start MITMf
    if args.disproxy:
        ProxyPlugins.getInstance().setPlugins(load)

    else:
        from libs.sslstrip.StrippingProxy import StrippingProxy
        from libs.sslstrip.URLMonitor import URLMonitor

        URLMonitor.getInstance().setValues(args.favicon, args.hsts)
        CookieCleaner.getInstance().setEnabled(args.killsessions)
        ProxyPlugins.getInstance().setPlugins(load)

        strippingFactory              = http.HTTPFactory(timeout=10)
        strippingFactory.protocol     = StrippingProxy

        reactor.listenTCP(args.listen, strippingFactory)

        print "\n[*] sslstrip v%s by Moxie Marlinspike running..." % sslstrip_version