mirror of
https://github.com/laramies/theHarvester.git
synced 2024-09-21 07:46:32 +08:00
Fixed most byte and str improper concats and now need to work on sockets not connecting properly.
This commit is contained in:
parent
d21e2846d7
commit
e826dc663b
|
@ -55,7 +55,7 @@ def DiscoverNameServers():
|
|||
import win32dns
|
||||
defaults['server'] = win32dns.RegistryResolve()
|
||||
else:
|
||||
return ParseResolvConf(resolv_path="/etc/resolv.conf")
|
||||
return ParseResolvConf()
|
||||
|
||||
|
||||
class DnsRequest:
|
||||
|
@ -65,7 +65,7 @@ class DnsRequest:
|
|||
def __init__(self, *name, **args):
|
||||
self.donefunc = None
|
||||
#fix maybe?
|
||||
self.asyn= False
|
||||
self.asyn = False
|
||||
#self.async = None #TODO FIX async is a keyword
|
||||
self.defaults = {}
|
||||
self.argparse(name, args)
|
||||
|
@ -148,7 +148,18 @@ def processReply(self):
|
|||
# Lib.dumpM(u)
|
||||
|
||||
def conn(self):
|
||||
self.s.connect((self.ns, self.port))
|
||||
"""print('self.ns is: ',self.ns)
|
||||
print('self.port is: ',self.port)
|
||||
print('type of self.ns is: ',type(self.ns))
|
||||
print('type of self.port is: ',self.port)"""
|
||||
if not isinstance(self.ns,str):
|
||||
self.ns = str(self.ns)
|
||||
#print('self.ns is: ',self.ns)
|
||||
#print('self.ns type is: ',type(self.ns))
|
||||
try:
|
||||
self.s.connect((self.ns, self.port))
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
def req(self, *name, **args):
|
||||
" needs a refactoring "
|
||||
|
@ -210,7 +221,9 @@ def sendUDPRequest(self, server):
|
|||
self.s.send(self.request)
|
||||
self.response = self.processUDPReply()
|
||||
# except socket.error:
|
||||
except Exception:
|
||||
except Exception as e:
|
||||
print('getting exception: ', e)
|
||||
import traceback; print(traceback.print_exc())
|
||||
continue
|
||||
break
|
||||
if not self.response:
|
||||
|
|
|
@ -70,7 +70,7 @@ class Packer:
|
|||
" packer base class. supports basic byte/16bit/32bit/addr/string/name "
|
||||
|
||||
def __init__(self):
|
||||
self.buf = ''
|
||||
self.buf = b''
|
||||
self.index = {}
|
||||
|
||||
def getbuf(self):
|
||||
|
@ -141,7 +141,7 @@ def addname(self, name):
|
|||
buf = buf + pack16bit(pointer | 0xC000)
|
||||
else:
|
||||
buf = buf + '\0'
|
||||
self.buf = self.buf + buf
|
||||
self.buf = self.buf + bytes(buf, encoding='utf-8')
|
||||
for key, value in index:
|
||||
self.index[key] = value
|
||||
|
||||
|
@ -207,10 +207,10 @@ def getstring(self):
|
|||
def getname(self):
|
||||
# Domain name unpacking (section 4.1.4)
|
||||
c = self.getbyte()
|
||||
i = ord(c)
|
||||
i = ord(chr(c))
|
||||
if i & 0xC0 == 0xC0:
|
||||
d = self.getbyte()
|
||||
j = ord(d)
|
||||
j = ord(chr(d))
|
||||
pointer = ((i << 8) | j) & ~0xC000
|
||||
save_offset = self.offset
|
||||
try:
|
||||
|
@ -226,7 +226,7 @@ def getname(self):
|
|||
if not remains:
|
||||
return domain
|
||||
else:
|
||||
return domain + '.' + remains
|
||||
return domain + b'.' + remains
|
||||
|
||||
|
||||
# Test program for packin/unpacking (section 4.1.4)
|
||||
|
|
|
@ -12,6 +12,7 @@ def __init__(self, range, verbose=True):
|
|||
self.verbose = verbose
|
||||
try:
|
||||
DNS.ParseResolvConf("/etc/resolv.conf")
|
||||
#DNS.ParseResolvConf("/etc/resolv.conf")
|
||||
nameserver = DNS.defaults['server'][0]
|
||||
except:
|
||||
print("Error in DNS resolvers")
|
||||
|
@ -83,6 +84,7 @@ def __init__(self, domain, dnsserver, verbose=False):
|
|||
|
||||
def getdns(self, domain):
|
||||
DNS.ParseResolvConf("/etc/resolv.conf")
|
||||
#DNS.ParseResolvConf("/etc/resolv.conf")
|
||||
# nameserver=DNS.defaults['server'][0]
|
||||
dom = domain
|
||||
if self.subdo == True:
|
||||
|
@ -107,7 +109,7 @@ def getdns(self, domain):
|
|||
#check if variable is defined
|
||||
test
|
||||
except NameError:
|
||||
print("Error test is not defined")
|
||||
print("Error, test is not defined")
|
||||
sys.exit()
|
||||
if test.header['status'] != "NOERROR":
|
||||
print("Error")
|
||||
|
|
Loading…
Reference in a new issue