Example #1
0
    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))
Example #3
0
    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))
Example #5
0
    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
Example #6
0
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))