1.信息收集:主要收集目标主机的相关信息,主要包括端口,服务,漏洞等信息
2.端口扫描
3.漏洞扫描
在进行nmap扫描工具的使用之前,我们首先要了解一下TCP、ICMP协议以及一些常见的端口号
TCP协议:
其中:源端口占16位 ,端口号范围就是0-65535(2的16次幂)
目的端口占16位
接下来就是nmap的学习了
1.Nmap进行探测之前要把域名通过DNS服务器解析为ip地址,也可以使用指定的DNS服务器进行解析。使用- - dns – servers参数来指定
比如:nmap – dns – servers 8.8.8.8 nmap.org
2.对于已经知道主机存活或者防火墙开启的机器,可以使用-Pn参数来停止探测之前的ICMP请求,已达到不触发防火墙安全机制。
3.对于默认的端口范围,可以使用-p m-n来指定探测端口范围为m-n之间的所有端口
比如:nmap –p 1-1000 nmap.org
4.使用nmap –sV ip地址 来识别目标主机的服务信息
使用 nmap –A –v –T4 ip地址 (侵略性的扫描)进行更加详细的服务信息
使用 nmap -sC -sV –o ip地址 (侵略性的扫描)来探测目标主机的操作系统、服务等信息
其中 sC表示使用nmap脚本进行探测,sV表示探测目标主机的服务信息,o表示探测目标机的操作系统信息。
小提示:我们可在命令行输入nmap –h来查看nmap自带的帮助信息
Nmap扫描过程: Nmap扫描目标的方式
注意:下面的截图中介绍了CIDR
参数:
-iL <inputfilename> 从列表输入
-iR <hostnum> 随机选择目标
一、主机发现
一个局域网中肯定连接着多台设备,那么我们如何获取哪些设备正在开机状态呢?
你肯定想到了使用ping ip地址进行探测的,但是如果一个网络很大的情况下,这样的手工探测会显得很费时费力。 那么我们就可以利用nmap所给的参数对特定的服务进行探测啦!
比如:nmap –sP 192.168.27.1.1/24
上面是nmap两个简单扫描例子,仅反馈了一些简单的信息,但是对于其他的数据收集,nmap里面有详细的参数可以实现,下面将开始讲解一些常用参数的使用:
扫描参数:
1.-sL 不做扫描,仅完成DNS解析和网址的转换
2.-sP (Ping扫描)
发送一个ICMP回声请求和一个tcp报文到80端口。如果非特权用户执行,就发送一个SYN报文(用connect()系统调用)到目标主机的80端口;当特权用户扫描局域网上的目标主机时,会发送ARP请求(-PR)
3.-PN 不用ping
4 .-Ps (TCP SYN Ping) 发TCP协议SYN标记的空包(80端口)
5 .-PA (TCP ACK Ping) 发TCP协议ACK标记的空包(80端口)
-发送一个设置了SYN标志位空TCP报文,默认端口80
-发送一个设置了TCP的ACK标志位的空报文,默认端口80
-以上两个参数一般用于绕过状态检测防火墙,可以两者结合使用
6.-PU (UDP Ping)
-目标机器的端口是关闭的,UDP探测应该马上得到一个icmp端口无法到达的回应报文,穿过设置了TCP过滤的防火墙
7.-PE -PP -PM
8.-PO (无ping)
-禁止主机发现,并对每一个指定目标的ip地址进行深度扫描
9.-PR (ARP ping)
设置参数:
--traceroute
-n(不要做DNS解析)
-R(DNS解析所有的地址,默认不解析不在线的IP)
-system-dns(使用系统DNS)
--dns-servers <server1>[,<server2>[,…]](使用其他DNS)
二、端口扫描
端口状态的详细解释:
1.Open,端口开启,有程序监听此端口
2.Closed,端口关闭,数据能到达主机,但是没有程序监听此端口。
3.Filtered,数据未能到达主机。
4.Unfiltered,数据能到达主机,但是Nmap无法判断端口开启还是关闭。
5.Open|filtered,端口没有返回值,主要出现在UDP,IP,FIN,NULL和Xmas扫描
6.Closed|filtered,只出现在IP ID idle 扫描。
使用命令:nmap –p80 nmap.org 对其80端口进行探测
nmap –p1-100 nmap.org 对端口1-100进行探测
nmap –p- nmap.org 对所有端口进行探测
通过名称范围扫描(扫描以s开头的服务) namp –p s* nmap.org
指定协议探测端口 nmap –p T:25,U:53 nmap.org
通过协议名来扫描端口 nmap –p ssh nmap.org
注意上面的适用范围.
小插入:
使用nmap 探测web服务的title信息
命令:nmap - -script 脚本名称目标
nmap - -script http-headers 192.168.27.100
NSE的脚本分类 可以打开nmap.org/nsedoc这个网站进行详细的查看
三、服务和版本探测
有时候nmap探测出来的服务和版本信息并不是非常准确,不过我们可以通过加参数的方式使其精确
1.-sV:探测开放端口的服务和版本信息
2.--version-intensity<0-9>:设置探测深度,默认是7。数值越大,强度越大。
3.--version-light:相当于0-2
4.--version-all:相当于0-9
5.--version-trace:显示版本扫描详情(用于调试)跟踪版本扫描活动
四、操作系统探测
1.-O:启动操作系统识别。
2.--osscan-limit:限定只识别有端口开放的主机,提高-O和-A参数时的扫描速度。
3.--osscan-guest<OS>:给NMAP建议的操作系统。类似于sqlmap的参数。
五、防火墙/IDS躲避和哄骗
六、输出结果
使用命令:nmap –sn CIDR –oX test.xml 对该网络中所有的主机进行ping扫描,以探测主机存活性,同时将结果输出到test.xml文件中,以便后续使用
原文:https://www.cnblogs.com/7-58/p/12642691.html