网络映照
python中的nmap模块提供了网络映照的功能,可以扫描网络中的所有主机和端口,并提供详细的报告。
安装nmap模块:
pip install python-nmap
示例代码:
import nmap nm = nmap.PortScanner() # 扫描全部网络,或指定IP地址 nm.scan(hosts='192.168.0.0/24') # 遍历扫描结果 for host in nm.all_hosts(): print('Host : %s (%s)' % (host, nm[host].hostname())) print('State : %s' % nm[host].state()) # 获得开放的端口和协议 for proto in nm[host].all_protocols(): print('Protocol : %s' % proto) lport = nm[host][proto].keys() for port in lport: print('port : %s' % port)
输出结果:
Host : 192.168.0.1 () State : up Protocol : tcp port : 22 port : 80 port : 443 Host : 192.168.0.100 () State : up Protocol : tcp port : 80 port : 443
漏洞扫描
Python中的OpenVAS模块提供了漏洞扫描的功能,可以扫描指定主机上的所有漏洞,并提供详细的报告。
安装openvas模块:
pip install python-gvm
示例代码:
import gvm from gvm.connections import UnixSocketConnection from gvm.protocols.gmp import Gmp from gvm.transforms import EtreeTransform # 连接到Unix Socket上的OpenVAS服务 socket = '/var/run/openvasmd.sock' connection = UnixSocketConnection(socket) transform = EtreeTransform() gmp = Gmp(connection, transform=transform) # 获得访问凭证和目标地址,启动漏洞扫描 cred_id = gmp.create_credential('admin', 'admin', 'OpenVAS Credential') target = '192.168.0.1' scan_id = gmp.create_scan(name='OpenVAS Scan', target=target, config='Full and fast', resume=False) # 等待漏洞扫描完成 while True: status = gmp.get_tasks(task_ids=[scan_id])[0].get('status') if status not in ('New', 'Running'): break # 获得漏洞扫描报告 reports = gmp.get_reports(scan_id=scan_id) for r in reports: print(r.get('results'))
输出结果:
[{'count': '1', 'creation_time': '2021⑴2⑴0T06:52:07.735725Z', 'description': 'SSH Server CBC Mode Ciphers Enabled', 'host': '192.168.0.1', 'hosts': '192.168.0.1', 'module': 'ssh_weak_ciphers.nasl', 'name': 'SSH Server CBC Mode Ciphers Enabled', 'nvt': {...}]
本文来源:https://www.yuntue.com/post/83286.html | 云服务器网,转载请注明出处!