nmap命令-----基础用法
NMap,也就是Network Mapper,是Linux下的网络扫描和嗅探工具包。
其基本功能有三个:
1、扫描主机端口,嗅探所提供的网络服务
2、探测一组主机是否在线
3、可以推断主机所用的操作系统,到达主机经过的路由,系统已开放端口的软件版本
nmap 端口状态解析
open:应用程序在该端口接受tcp连接或者udp报文
closed:关闭的端口对于nmap也是可访问的,它接收nmap探测报文并作出响应,但没有应用程序在其上监听。
filtered:由于包过滤组织探测报文到达端口,nmpa无法确定该端口是否开放,过滤可能来自专业的防火墙设备,路由规则或者主机上的软件防火墙
unfiltered:未被过滤状态意味着端口可访问,但是nmap无法确定它是开放还是关闭,只有用于映射防火墙规则集的ack扫描才会把端口分类到这个状态。
open | filtered:无法确定端口是否开放还是被过滤,开放的端口不响应就是一个例子,没有响应也可能意味着报文过滤器丢弃了探测报文或者它引发的任何反应,udp ip协议,FIN,Null等扫描会引起。
closed|filtered:(关闭或者被过滤的)无法确定端口是关闭的还是被过滤的。
NMap是一款网络扫描和主机检测的非常有用的工具,Nmap是不局限于仅仅手机信息和枚举,同事可以用来作为一个漏洞探测器和安全扫描器。它适用于windows、linux、mac等操作系统。
nmap常用参数
nmap扫描速度要比nc快
linux安装
yum
install
nmap -y
端口扫描部分
B机器使用nmap去扫描A机器,扫描之前,A机器先查看自己上面有哪些端口再被占用
A机器上查看本地ipv4的监听端口
netstat参数解释
-l listen 仅列出listen的服务
-t tcp仅显示tcp相关内容
-n numberic直接显示ip地址以及端口,不解析为服务名或者主机名
-p pid 显示出socket所属的今晨pid以及进程名字
--inet 显示ipv4相关协议的监听
查看IPV4端口上的tcp的监听
netstat -lntp --inet
过滤掉监控在127.0.0.1的端口
netstat -lntp --inet|grep -v 127.0.0.1
扫描tcp端口
B机器上使用nmap扫描A机器所有端口(-p 后面也可以跟空格)
下面表示扫描A机器上1到65535所有在监听的tcp端口
nmap 10.0.1.161 -p1-65535
指定端口范围使用-p参数,如果不指定要扫描的端口,Nmap默认扫描从1到1024再加上nmap-services列出的端口
nmap-services是一个包含大约2200个著名的服务的数据库,Nmap通过禅熏该数据库可以报告那些端口可能对应于什么服务器,但不一定正确。
所以正确扫描一个机器开放端口的方法是上面命令 -p1-65535
注意,nmap有自己的库,存放一些已知的服务和对应端口号,假如有的服务不在nmap-services,可能nmap就不会去扫描,这就明明一些端口已经是处于监听状态,nmap默认没扫描出来的原因,需要假如-p参数让其扫描所有端口。
虽然直接使用nmap 10.0.0.161也可以扫描出开放的端口,但是使用-p1-65535能显示出最多的端口
区别在于不加-p时,显示的都是已知协议的端口,对于未知协议的端口没显示
如果不加-p1-65535,对于未知服务的端口(A机器的13306端口)就没法扫描到
扫描UDP端口
先查看哪些ipv4的监听,使用grep -v排除回环接口上的监听
netstat -lnup --inet|grep -v 127.0.0.1