def resolve(self): """ start resolve """ start_time = datetime.now() print 'Subdomain scan started' fmt = "{:60}{:20}" print print fmt.format('fqdn', 'ip') print '-' * 80 for success, hostname, ip in self.tuples.tuple_q: if success: print fmt.format(hostname, ip) if self.dbh: self.dbh.add(ccd.DnsscanResult(ip=ip, fqdn=hostname)) self.tuples.join() while True: try: dom = check_wildcard.wc_hosts.get(False, 0.1) print 'Wildcard enabled: %s' % dom except Queue.Empty: break print("\nfinished in %fs" % cUtil.secs(start_time))
def resolve(self): """ Create threads, set up task queue and start resolving. """ logger.debug("Starting resolve") start_time = datetime.now() fmt = '{:20}{:60}' for ip, hostname in self.tuples.tuple_q: print fmt.format(ip, hostname) if self.dbh: self.dbh.add(ccd.DnsscanResult(ip=ip, fqdn=hostname)) self.tuples.join() print("\nfinished in %fs" % cUtil.secs(start_time))
def resolve(self): """ start resolve """ logger.info("Starting %s", __plgname__) start_time = datetime.now() print "Starting reverse lookup" print '-' * 80 fmt = '{:20}{:>60}' nresolved = 0 nfailed = 0 ips_failed = [] for success, ip, hostname in self.tuples.tuple_q: if success: nresolved += 1 print fmt.format(ip, hostname) if self.dbh: self.dbh.add(ccd.DnsscanResult(ip=ip, fqdn=hostname)) else: nfailed += 1 ips_failed.append(ip) self.tuples.join() print '-' * 80 print "finished in %fs" % cUtil.secs(start_time) print print "resolved %d ips" % nresolved print "failed to resolve %d ips" % nfailed if ips_failed: out_failed_fn = 'failed_resolve_' + time.strftime( "%Y_%m_%d_%H_%M_%S") if not hasattr(__builtin__, 'openhome'): __builtin__.openhome = open with __builtin__.openhome(out_failed_fn, 'w') as out_failed_fd: out_failed_fd.write('\n'.join(ips_failed)) out_failed_fd.flush() print "\tsee %s" % out_failed_fd.name print
def resolve(self): """ start resolve """ logger.info("Starting %s", __plgname__) print 'Starting mass dns resolve' start_time = datetime.now() fmt = "{:60}{:20}" for success, hostname, ip in self.tuples.tuple_q: if success: print fmt.format(hostname, ip) if self.dbh: self.dbh.add(ccd.DnsscanResult( ip=ip, fqdn=hostname) ) self.tuples.join() print("\nfinished in %fs" % cUtil.secs(start_time))
def resolve(self): """ start resolve """ logger.info("Starting %s", __plgname__) start_time = datetime.now() print "Starting resolve" print '-' * 80 fmt = "{:65}{:>15}" nresolved = 0 nfailed = 0 hn_failed = [] for success, hostname, ip in self.tuples.tuple_q: if success: nresolved += 1 print fmt.format(hostname, ip) if self.dbh: self.dbh.add(ccd.DnsscanResult(ip=ip, fqdn=hostname)) else: nfailed += 1 hn_failed.append(hostname) self.tuples.join() print '-' * 80 print "finished in %fs" % cUtil.secs(start_time) print print "resolved %d hostnames" % nresolved print "failed to resolve %d hostnames" % nfailed if hn_failed: out_failed_fn = 'failed_resolve_' + time.strftime( "%Y_%m_%d_%H_%M_%S") with __builtin__.openhome(out_failed_fn, 'w') as out_failed_fd: out_failed_fd.write('\n'.join(hn_failed)) out_failed_fd.flush() print "\tsee %s" % out_failed_fd.name print
def do_scan(target): info = None addr, hostname = target if isinstance(addr, tuple): ip = addr[0] port = addr[1] addr_string = "%s:%d (%s) " % (ip, port, hostname) else: ip = addr port = hostname hostname = "" addr_string = "%s:%d " % (ip, port) if not probing: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(timeout) try: s.connect((ip, port)) print(addr_string) info = ["", "", ""] except (socket.timeout, socket.error): pass finally: s.close() else: ps = cProbeparse.Probeparser(port) requests = ps.get_requests() for r in requests: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: s.settimeout(timeout) s.connect((ip, port)) except (socket.timeout, socket.error): break try: s.sendall(r.decode("string-escape")) banner = s.recv(4096) except (socket.timeout, socket.error): continue finally: s.close() if banner: info = ps.parse(banner) if info: print(addr_string + " ".join(info)) break if info and dbhandler: pr = ccd.PortscanResult( ip=ip, port=port, state="open", protocol=info[0], service=info[1], version=info[2], fqdn=hostname, ) try: dbhandler.add(pr) except ccd.InvalidDBEntryError as e: print("Failed to store result:'%s'." % str(e)) if hostname: dnsr = ccd.DnsscanResult( ip=ip, fqdn=hostname, ) try: dbhandler.add(dnsr) except ccd.InvalidDBEntryError as e: print("Failed to store result:'%s'." % str(e))