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)
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)