Nmap使用
1.Windows下两种扫描方式
(1)使用ZenmGUI
刚开始点不动界面,你可以新建一个配置或命令再删除即可。
(2)使用命令行
找到Nmap的安装路径使用nmap.exe加上命令即可(这里nmap.exe代替的时GUI中的nmap )
命令行扫描比界面扫描快,因为不用渲染。我试了几次两者的扫描结果有时可能不同,命令行比较全。
2.nmap扫描原理
https://blog.csdn.net/AspirationFlow/article/details/7694274
3.扫描语句
1.nmap --dns-servers 8.8.8.8 scanme.nmap.org
指定DNS服务器进行解析(有的网站需要外网进行解析)
2.nmap -Pn scanme.nmap.org
对于已经知道主机存活或者防火墙开启的机器,可以使用-Pn 参数来停止探测之前的ICMP请求。已达到不触发防火墙安全机制。
ICMP协议的简介
IP协议是一种面向无连接的数据报协议,它是一种不可靠的协议,它不提供任何差错检验。因此网际报文控制协议(Internet Control Message Protocol)ICMP出现了,ICMP协议用于IP主机、路由器之间传递控制消息,这里的控制消息可以包括很多种:数据报错误信息、网络状况信息、主机状况信息等,虽然这些控制消息虽然并不传输用户数据,但对于用户数据报的有效递交起着重要作用,从TCP/IP的分层结构看ICMP属于网络层,它配合着IP数据报的提交,提高IP数据报递交的可靠性。ICMP是封装在IP数据报中进行发送的,从这点看来,ICMP协议又有点像一个传输层协议,其实不然,因为ICMP报文的目的不是目的主机上的某个应用程序,它不为应用程序提供传输服务,ICMP报文的目的是目的主机上的网络层处理软件。简单的来说,ICMP协议就像奔波于网络中的一名医生,它能及时检测并汇报网络中可能存在的问题,为解决网络错误或拥塞提供了最有效的手段
color 0a #切换命令行颜色
3.nmap -p 1-1000 scanme.nmap.org
对于默认的端口范围,并不能满足日常工作需要。可以使用-p m-n来指定探测范围为m-n之间的端口
-Open 表示端口处于开放状态
-Close 表示端口处于关闭状态
-Filterd 表示端口处于过滤无法受到返回的probe状态
-UnFilterd 表示端口收到返回的Probe,但是无法确认
-Opend/UnFilterd 表示端口处于开放或者未过滤状态
-Closed/UnFilterd 表示端口处于关闭或者未过滤状态
在命令行中,输入namp -h 来查看nmap自带的帮助信息。
4.识别服务器指纹
namp.exe -sV IP地址(识别大小写)
识别目标机器的服务信息。
Nmap侵略性的探测
nmap -A -v -T4 IP地址
来探测目标机器的操作系统,服务等信息。
-v 输出每一步的过程
使用nmap -sC -sV -O IP地址
来探测目标机器的操作系统,服务等信息。
Sc 参数表示使用Nmap脚本进行探测,
sV 表示探测目标机器上的服务信息,
O 表示探测目标机器的操作系统信息。
-sC: equivalent to --script=default
5.Nmap主机发现
nmap -sP 172.163.1/10
使用Nmap命令:nmap -sP CIDR 对该网络中所有主机进行ping扫描,以探测主机存活性。扫描过程中使用了TCP SYN扫描,ICMP echo Request 来进行探测主机存活。
nmap -sn CISR
不进行端口扫描,只扫描存活性。
Nmap主机发现,结果输出
使用命令: nmap -sn CIDR -oX test.xml
对该网络中所有主机进行ping扫描,以探测主机存活性。
同时将结果输出到test.xml文件中,以便后续使用。
6.实际场景
对某个某些范围内的服务进行探测。
对某个端口进行探测
nmap -p80 scanme.nmap.org
nmap -p80, 135 scanme.nmap.org(80和135)
nmap -p80-135 scanme.nmap.org(80到135)
nmap -p- scanme.nmap.org(所有端口)
指定协议探测端口
nmap -p T:25,U:53 scanme.nmap.org
nmap -p SMTP scanme.nmap.org
nmap -p s* scanme.nmap.org(s开头的所有协议)
7.NSE介绍
NSE(Nmap Script Engine)Nmap脚本引擎,内置很多可以用来扫描的,针对特定任务的脚本。通过NSE可以不断扩展Nmap的扫描策略,加强Nmap的功能。
Nmap中使用 --script 参数来指定调用的脚本,并且脚本存储在Nmap安装路径下的script文件夹下,对于kali Linux存储在 /usr/share/nmap/script/下(589个脚本)
1.NSE使用
使用Nmap 探测Web服务的title信息。-nmap --script 脚本名称 目标
nmap --script http-title scanme.nmap.org
使用Nmap探测http服务的http头。
nmap --script http-headers 目标
2.NSE分类使用
对于目标使用多个分类脚本进行探测,可以更快的找到目标的信息与弱点。
使用Nmap中漏洞分类脚本对目标进行探测
nmap -sV --script vuln 目标
使用Nmap中发现和版本信息分类进行探测
nmap -sV --script=“version,discovery” 目标
使用Nmap除了exploit分类之外的其他分类进行探测
nmap -sV --script=“not exploit” 目标
使用Nmap中http的脚本,但是除了(http-brute和http-slowlors)【暴力破解和DOS攻击】
nmap -sV --script "(http) and not (http-slowlors and http-brute)" 目标
3.NSE调试功能使用
使用Nmap 中exploit,但是在使用的同时开启调试模式。
nmap -sV --script exploit -d 3 --script-trae 目标
注意: -d(debug 范围0~9)
使用nmap的http-title脚本,并且指定使用对应的User-Agent
nmap -sV --script http-title --script-args http.useragent=“Mozilla 999”
目标
4.NSE更新
nmap --script-updatedb
5.NSE分类
可通过查看目录前缀查看。
8.补充
指定网卡进行探测
nmap -e interface 目标
nmap -e eth0 192.168.0.1
ndiff工具(比较两个状态的不同)
nmap -A -v -T4 192.168.1.142 -oX kali1.xml
nmap -A -v -T4 192.168.1.142 -oX kali2.xml
ndiff kali1.xml kali2.xml
nmap --iflist
输出所有网卡信息