mirror of
https://github.com/lgandx/Responder.git
synced 2025-08-19 13:00:00 -07:00
Merge pull request #232 from also-here/master
Allowing IPv6 addresses in RespondTo and DontRespondTo
This commit is contained in:
commit
ff21c5452c
3 changed files with 52 additions and 20 deletions
|
@ -38,7 +38,7 @@ AnalyzeLog = Analyzer-Session.log
|
||||||
ResponderConfigDump = Config-Responder.log
|
ResponderConfigDump = Config-Responder.log
|
||||||
|
|
||||||
; Specific IP Addresses to respond to (default = All)
|
; Specific IP Addresses to respond to (default = All)
|
||||||
; Example: RespondTo = 10.20.1.100-150, 10.20.3.10
|
; Example: RespondTo = 10.20.1.100-150, 10.20.3.10, fe80::e059:5c8f:a486:a4ea-a4ef, 2001:db8::8a2e:370:7334
|
||||||
RespondTo =
|
RespondTo =
|
||||||
|
|
||||||
; Specific NBT-NS/LLMNR names to respond to (default = All)
|
; Specific NBT-NS/LLMNR names to respond to (default = All)
|
||||||
|
@ -47,7 +47,8 @@ RespondTo =
|
||||||
RespondToName =
|
RespondToName =
|
||||||
|
|
||||||
; Specific IP Addresses not to respond to (default = None)
|
; Specific IP Addresses not to respond to (default = None)
|
||||||
; Example: DontRespondTo = 10.20.1.100-150, 10.20.3.10
|
; Hosts with IPv4 and IPv6 addresses must have both addresses included to prevent responding.
|
||||||
|
; Example: DontRespondTo = 10.20.1.100-150, 10.20.3.10, fe80::e059:5c8f:a486:a4ea-a4ef, 2001:db8::8a2e:370:7334
|
||||||
DontRespondTo =
|
DontRespondTo =
|
||||||
|
|
||||||
; Specific NBT-NS/LLMNR names not to respond to (default = None)
|
; Specific NBT-NS/LLMNR names not to respond to (default = None)
|
||||||
|
|
|
@ -41,7 +41,7 @@ def IsICMPRedirectPlausible(IP):
|
||||||
elif ip[0] == 'nameserver':
|
elif ip[0] == 'nameserver':
|
||||||
dnsip.extend(ip[1:])
|
dnsip.extend(ip[1:])
|
||||||
for x in dnsip:
|
for x in dnsip:
|
||||||
if x != "127.0.0.1" and IsOnTheSameSubnet(x,IP) is False:
|
if x != "127.0.0.1" and IsIPv6IP(x) is False and IsOnTheSameSubnet(x,IP) is False: #Temp fix to ignore IPv6 DNS addresses
|
||||||
print(color("[Analyze mode: ICMP] You can ICMP Redirect on this network.", 5))
|
print(color("[Analyze mode: ICMP] You can ICMP Redirect on this network.", 5))
|
||||||
print(color("[Analyze mode: ICMP] This workstation (%s) is not on the same subnet than the DNS server (%s)." % (IP, x), 5))
|
print(color("[Analyze mode: ICMP] This workstation (%s) is not on the same subnet than the DNS server (%s)." % (IP, x), 5))
|
||||||
print(color("[Analyze mode: ICMP] Use `python tools/Icmp-Redirect.py` for more details.", 5))
|
print(color("[Analyze mode: ICMP] Use `python tools/Icmp-Redirect.py` for more details.", 5))
|
||||||
|
|
31
settings.py
31
settings.py
|
@ -45,6 +45,37 @@ class Settings:
|
||||||
def expand_ranges(lst):
|
def expand_ranges(lst):
|
||||||
ret = []
|
ret = []
|
||||||
for l in lst:
|
for l in lst:
|
||||||
|
if ':' in l: #For IPv6 addresses, similar to the IPv4 version below but hex and pads :'s to expand shortend addresses
|
||||||
|
while l.count(':') < 7:
|
||||||
|
pos = l.find('::')
|
||||||
|
l = l[:pos] + ':' + l[pos:]
|
||||||
|
tab = l.split(':')
|
||||||
|
x = {}
|
||||||
|
i = 0
|
||||||
|
xaddr = ''
|
||||||
|
for byte in tab:
|
||||||
|
if byte == '':
|
||||||
|
byte = '0'
|
||||||
|
if '-' not in byte:
|
||||||
|
x[i] = x[i+1] = int(byte, base=16)
|
||||||
|
else:
|
||||||
|
b = byte.split('-')
|
||||||
|
x[i] = int(b[0], base=16)
|
||||||
|
x[i+1] = int(b[1], base=16)
|
||||||
|
i += 2
|
||||||
|
for a in range(x[0], x[1]+1):
|
||||||
|
for b in range(x[2], x[3]+1):
|
||||||
|
for c in range(x[4], x[5]+1):
|
||||||
|
for d in range(x[6], x[7]+1):
|
||||||
|
for e in range(x[8], x[9]+1):
|
||||||
|
for f in range(x[10], x[11]+1):
|
||||||
|
for g in range(x[12], x[13]+1):
|
||||||
|
for h in range(x[14], x[15]+1):
|
||||||
|
xaddr = ('%x:%x:%x:%x:%x:%x:%x:%x' % (a, b, c, d, e, f, g, h))
|
||||||
|
xaddr = re.sub('(^|:)0{1,4}', ':', xaddr, count = 7)#Compresses expanded IPv6 address
|
||||||
|
xaddr = re.sub(':{3,7}', '::', xaddr, count = 7)
|
||||||
|
ret.append(xaddr)
|
||||||
|
else:
|
||||||
tab = l.split('.')
|
tab = l.split('.')
|
||||||
x = {}
|
x = {}
|
||||||
i = 0
|
i = 0
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue