一、介绍
namp是一款很好的渗透测试工具,特别是做网关设备的渗透测试比较好用
二、安装
安装python-namp
安装nmap
https://nmap.org/dist/nmap-7.80-setup.exe
默认安装即可
三、函数介绍
PortScanner()类
1、scan(self, hosts=‘127.0.0.1’, ports=None, arguments=‘-sV’)
参数hosts为字符串类型,主机地址,格式可以用"scanme.nmap.org"、“192.116.0-255.1-127”、“216.163.128.20/20"表示;
参数ports为字符串类型,扫描的端口, 格式可以用"22,53,110,143-4564"表示;
参数namp命令行参数,格式为”-sU -sX -sC"
例如:
import nmap
nm=nmap.PortScanner(nmap_search_path=(‘nmap’, r"C:\Program Files (x86)\Nmap\nmap.exe"))#手动设定nmap的路径
nm.scan(‘192.168.209.121-122’, ‘22,80’)#扫描IP:192.168.209.121-122的22和80端口
2、command_line()
返回的扫描方法映射到具体的nmap
3、scaninfo(self)
返回nmap扫描信息,格式为字典类型
4、all_hosts()
PortScannerHostDict()类
1、hostname()
2、state()
3、all_protocols()
4、all_tcp()
5、tcp()
四、代码示例
扫描端口
#导入库
import nmap
#前置信息
nm=nmap.PortScanner(nmap_search_path=('nmap', r"C:\Program Files (x86)\Nmap\nmap.exe"))
nm.scan('192.168.3.1/24','1-10')#扫描整个网段得主机的20-100端口
nm.command_line()#本次扫描的命令
nm.all_hosts()#扫描的所有主机
nm.scaninfo()#扫描的信息列出一个结构
nm.csv()#返回值用csv输出
print(nm.scaninfo())
for host in nm.all_hosts():
print('=================')
print(host)#ip地址
print('State : %s' % nm[host].state())#主机存活状态
结果