|
In [17]: import nmap
把nmap模块的端口扫描方法进行实例化
In [18]: s=nmap.PortScanner()
使用scan('192.168.0.0/16',port='0-65536','sV')方法,里面分别是网段,端口范围,nmap的参数
In [19]: result = s.scan('192.168.199.211', '20-443','')
这里result是执行的输出
In [20]: print result
{'nmap': {'scanstats': {'uphosts': '1', 'timestr': 'Sat Dec 17 16:24:11 2016', 'downhosts': '0', 'totalhosts': '1', 'elapsed': '0.11'}, 'scaninfo': {'tcp': {'services': '20-443', 'method': 'syn'}}, 'command_line': 'nmap -oX - -p 20-443 192.168.199.211'}, 'scan': {'192.168.199.211': {'status': {'state': 'up', 'reason': 'localhost-response'}, 'hostnames': [{'type': 'PTR', 'name': 'salt'}], 'vendor': {}, 'addresses': {'ipv4': '192.168.199.211'}, 'tcp': {80: {'product': '', 'state': 'open', 'version': '', 'name': 'http', 'conf': '3', 'extrainfo': '', 'reason': 'syn-ack', 'cpe': ''}, 443: {'product': '', 'state': 'open', 'version': '', 'name': 'https', 'conf': '3', 'extrainfo': '', 'reason': 'syn-ack', 'cpe': ''}, 22: {'product': '', 'state': 'open', 'version': '', 'name': 'ssh', 'conf': '3', 'extrainfo': '', 'reason': 'syn-ack', 'cpe': ''}}}}}
初始化的实例如下方法
In [21]: s.
s.all_hosts s.csv s.listscan s.scaninfo
s.analyse_nmap_xml_scan s.get_nmap_last_output s.nmap_version s.scanstats
s.command_line s.has_host s.scan
扫描的所有主机
In [21]: s.all_hosts()
Out[21]: ['192.168.199.211']
主机下的信息列表
In [23]: s['192.168.199.211'].keys()
Out[23]: ['status', 'hostnames', 'vendor', 'addresses', 'tcp']
主机下的tcp端口列表
In [26]: s['192.168.199.211']['tcp'].keys()
Out[26]: [80, 443, 22]
查看22端口的详细信息
In [30]: s['192.168.199.211']['tcp'][22]
Out[30]:
{'conf': '3',
'cpe': '',
'extrainfo': '',
'name': 'ssh',
'product': '',
'reason': 'syn-ack',
'state': 'open',
'version': ''} |
|