mirror of
https://github.com/lgandx/Responder.git
synced 2025-07-12 08:06:14 -07:00
minor fix
This commit is contained in:
parent
4fb4233424
commit
b2eb62040e
1 changed files with 24 additions and 12 deletions
36
Responder.py
36
Responder.py
|
@ -100,7 +100,6 @@ def IsOsX():
|
||||||
def OsInterfaceIsSupported(INTERFACE):
|
def OsInterfaceIsSupported(INTERFACE):
|
||||||
if INTERFACE != "Not set":
|
if INTERFACE != "Not set":
|
||||||
if IsOsX():
|
if IsOsX():
|
||||||
print "OsX Bind to interface is not supported.. listening on all interfaces."
|
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
return True
|
return True
|
||||||
|
@ -757,28 +756,41 @@ def Parse_IPV6_Addr(data):
|
||||||
else:
|
else:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def FindLocalIP(Iface):
|
||||||
|
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||||
|
s.setsockopt(socket.SOL_SOCKET, 25, Iface+'\0')
|
||||||
|
s.connect(("127.0.0.1",9))#RFC 863
|
||||||
|
return s.getsockname()[0]
|
||||||
|
|
||||||
def RunLLMNR():
|
def RunLLMNR():
|
||||||
try:
|
try:
|
||||||
ALL = '0.0.0.0'
|
ALL = "0.0.0.0"
|
||||||
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)
|
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
|
||||||
|
if OsInterfaceIsSupported(INTERFACE) == False:
|
||||||
|
print "OsX Bind to interface is not supported..Listening on all interfaces."
|
||||||
if OsInterfaceIsSupported(INTERFACE):
|
if OsInterfaceIsSupported(INTERFACE):
|
||||||
try:
|
try:
|
||||||
sock.setsockopt(socket.SOL_SOCKET, 25, BIND_TO_Interface+'\0')
|
IP = FindLocalIP(BIND_TO_Interface)
|
||||||
|
s.setsockopt(socket.SOL_SOCKET, 25, BIND_TO_Interface+'\0')
|
||||||
|
s.bind((IP,MPORT))
|
||||||
|
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
|
||||||
|
s.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 255)
|
||||||
|
Join = s.setsockopt(socket.IPPROTO_IP,socket.IP_ADD_MEMBERSHIP,inet_aton(MADDR) + inet_aton(ALL))
|
||||||
except:
|
except:
|
||||||
print "Non existant network interface provided in Responder.conf, please provide a valid interface."
|
print "Non existant network interface provided in Responder.conf, please provide a valid interface."
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
|
else:
|
||||||
sock.bind((ALL,MPORT))
|
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
|
||||||
sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 255)
|
s.bind((ALL,MPORT))
|
||||||
## Join IGMP Group.
|
s.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 255)
|
||||||
Join = sock.setsockopt(socket.IPPROTO_IP,socket.IP_ADD_MEMBERSHIP,inet_aton(MADDR) + inet_aton(ALL))
|
Join = s.setsockopt(socket.IPPROTO_IP,socket.IP_ADD_MEMBERSHIP,inet_aton(MADDR) + inet_aton(ALL))
|
||||||
except:
|
except:
|
||||||
raise
|
raise
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
data, addr = sock.recvfrom(1024)
|
data, addr = s.recvfrom(1024)
|
||||||
if RespondToSpecificHost(RespondTo):
|
if RespondToSpecificHost(RespondTo):
|
||||||
if RespondToIPScope(RespondTo, addr[0]):
|
if RespondToIPScope(RespondTo, addr[0]):
|
||||||
if data[2:4] == "\x00\x00":
|
if data[2:4] == "\x00\x00":
|
||||||
|
@ -787,7 +799,7 @@ def RunLLMNR():
|
||||||
buff = LLMNRAns(Tid=data[0:2],QuestionName=Name, AnswerName=Name)
|
buff = LLMNRAns(Tid=data[0:2],QuestionName=Name, AnswerName=Name)
|
||||||
buff.calculate()
|
buff.calculate()
|
||||||
for x in range(1):
|
for x in range(1):
|
||||||
sock.sendto(str(buff), addr)
|
s.sendto(str(buff), addr)
|
||||||
if Is_Finger_On(Finger_On_Off):
|
if Is_Finger_On(Finger_On_Off):
|
||||||
try:
|
try:
|
||||||
Finger = RunSmbFinger((addr[0],445))
|
Finger = RunSmbFinger((addr[0],445))
|
||||||
|
@ -803,7 +815,7 @@ def RunLLMNR():
|
||||||
buff = LLMNRAns(Tid=data[0:2],QuestionName=Name, AnswerName=Name)
|
buff = LLMNRAns(Tid=data[0:2],QuestionName=Name, AnswerName=Name)
|
||||||
buff.calculate()
|
buff.calculate()
|
||||||
for x in range(1):
|
for x in range(1):
|
||||||
sock.sendto(str(buff), addr)
|
s.sendto(str(buff), addr)
|
||||||
if Is_Finger_On(Finger_On_Off):
|
if Is_Finger_On(Finger_On_Off):
|
||||||
try:
|
try:
|
||||||
Finger = RunSmbFinger((addr[0],445))
|
Finger = RunSmbFinger((addr[0],445))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue