def hostScan(host, ports, arguments, queue):
"""
host - ????: 127.0.0.1
ports - ????: 21,22,135,137,445,3389
arguments - ????: -Pn -sV
"""
try:
nm = nmap.PortScanner()
nm.scan(hosts=host, ports=ports, arguments=arguments)
if "tcp" in nm[host].all_protocols():
for port in nm[host]["tcp"].keys():
if nm[host]["tcp"][port]["state"] == "open":
#nm[host]["tcp"][port]["extrainfo"] match codes
pattern = re.compile('(php)|(aspx?)|(jsp)|(python)', re.I)
match = pattern.search(nm[host]["tcp"][port]["extrainfo"])
if match:
codes = match.group().lower()
else:
codes = ""
result = {
"id": get_id_md5(host, port),
"tags": "hostScan",
"host": host,
"port": port,
"product": nm[host]["tcp"][port]["product"],
"state": nm[host]["tcp"][port]["state"],
"version": nm[host]["tcp"][port]["version"],
"server": nm[host]["tcp"][port]["name"],
"codes": codes,
"extrainfo": nm[host]["tcp"][port]["extrainfo"],
"reason": nm[host]["tcp"][port]["reason"],
"cpe": nm[host]["tcp"][port]["cpe"],
"queue": queue
}
getPoolBR().lpush(RedisConfig.HOSTSCANKEY, json.dumps(result))
except Exception as e:
pass
评论列表
文章目录