赞
踩
安装好Python-Namp模块,(pip install python-nmap)。创建一个PortScanner()类对象,这使我们能用这个对象完成扫描操作。PortScanner类有一个scan()函数,它可将目标和端口的列表作为参数输入,并对它们进行基本的Nmap扫描。另外,还可以把目标主机的地址/端口放入数组中备查,并打印出端口的状态。示例代码如下:
# 导入模块 import nmap import optparse # 定义nmapScan函数,参数为目标主机和目标端口 def nmapScan(tgtHost, tgtPort): # 实例化nmap端口扫描对象 nmScan = nmap.PortScanner() # 执行scan()函数 nmScan.scan(tgtHost, tgtPort) # 获取tcp协议对应的端口状态 state = nmScan[tgtHost]['tcp'][int(tgtPort)]['state'] print(f"[+] {tgtHost} tcp/{tgtPort} {state}") # 定义主函数 def main(): # 实例化语法对象 parser = optparse.OptionParser('Usage %prog -H <target host> -p <target port>') # 添加—H, -p参数选项,定义变量名和类型,还有帮助说明 parser.add_option('-H', dest = 'tgtHost', type = 'string', help = 'specify target host') parser.add_option('-p', dest = 'tgtPort', type = 'string', help = 'specify target port') # 生成语法参数元组 (options, args) = parser.parse_args() tgtHost = options.tgtHost tgtPorts = str(options.tgtPort).split(', ') if tgtHost == None or tgtPorts[0] == None: print(parser.usage) exit(0) for tgtPort in tgtPorts: nmapScan(tgtHost, tgtPort) if __name__ == '__main__': main()
执行这个脚本,运行结果如下图:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。