def test_parsednet28(self):
     net = "10.12.13."
     firstip = 224
     pline = list(parseline(net + str(firstip) + "/28"))
     pline.sort()
     for i, p in enumerate(pline):
         with self.subTest(line=str(p)):
             self.assertEqual(dectoIP(p), net + str(firstip + i))
    def test_parsenetupto24(self):

        net = "10.12.12."
        firstip = 0
        mask = 24

        pline = list(parseline(net + str(firstip) + "/" + str(mask)))
        pline.sort()
        for i, p in enumerate(pline):
            with self.subTest(line=str(p)):
                self.assertEqual(dectoIP(p), net + str(firstip + i))
    def test_parsedrange(self):
        net = "10.15.20."
        hostmin = 12
        hostmax = 241

        rangestr = "{0}{1}-{0}{2}".format(net, hostmin, hostmax)

        pline = list(parseline(rangestr))
        pline.sort()

        for i, ip in enumerate(range(hostmin, hostmax + 1)):
            with self.subTest(line=str(ip)):
                self.assertEqual(dectoIP(pline[i]), net + str(ip))
 def test_parsedhost(self):
     host = "192.168.1.1"
     pline = parseline(host)
     self.assertEqual(dectoIP(list(pline)[0]), host)
예제 #5
0
def rangeproc(scandata: ScanData):

    logger.info(scandata)

    scanset = confnetparse.composeset(scandata.scan_list)
    dontscanset = confnetparse.composeset(scandata.do_not_scan_list)

    scanset ^= dontscanset

    scanlist = []

    timeout = 1

    for ip in scanset:
        for port in [22, 23]:
            scanlist.append((confnetparse.dectoIP(ip), port, timeout))

    portslist = task_threader(scanlist, istcpportopen)

    openportslist = []

    for i in range(0, len(portslist), 2):
        if portslist[i][1] or portslist[i + 1][1]:

            connection_args1, connection_result1, connection_thread1 = portslist[
                i]
            host1, port1, timeout1 = connection_args1

            connection_args2, connection_result2, connection_thread2 = portslist[
                i + 1]
            host2, port2, timeout2 = connection_args2
            if connection_result1.func_result or connection_result2.func_result:
                openportslist.append(
                    (host1, port1, connection_result1.func_result, port2,
                     connection_result2.func_result))

    logger.info(f'Found {(len(openportslist))} open ports')

    if len(openportslist):
        logger.info(f'Open ports:')
    for port in openportslist:
        logger.info(port)

    td = yaml_load(PROJECTPATH + "/decisionTreeCLI.yaml")

    dcwlist = dev_task_threader(openportslist, scandata.credential_list,
                                scandata.scan_name, td, 50)

    conffile = {
        'Scan Name': scandata.scan_name,
        'Scan List': scandata.scan_list,
        'Do Not Scan List': scandata.do_not_scan_list,
        'Credentials List': [list(cred) for cred in scandata.credential_list],
        'Discovered Data': dcwlist
    }

    # TODO crypt passwords and logins

    yaml_dump(
        f'{PROJECTPATH}_DATA/{scandata.scan_name}/{scandata.scan_name}.yaml',
        conffile)