nmap的使用
Nmap是一款开源、免费的网络探测、安全审计工具。NSE为nmap脚本引擎,内置了很多可以用来扫描的,特定任务的脚本。通过NSE可以不断拓展nmap的扫描策略,加强nmap的功能Nmap中使用--script参数来指定调用的脚本,并且脚本存储在Nmap安装路径下的script文件夹中,对于kail linux存储在/usr/share/nmap/script/下获取服务的title获取服务的请求头
目录
nmap简介
Nmap是一款开源、免费的网络探测、安全审计工具。
主要作用
- 探测一组主机是否在线
- 扫描主机端口,嗅探所提供的网络服务
- 推断主机所用的操作系统
nmap原理
理解:nmap安装在电脑之后,电脑就可以使用nmap发送数据包,nmap在探测远程机器时会发送大量的数据包,并且通过输入的命令进行判断,判断nmap输入的命令中是否包含域名,若包含域名,则需要利用DNS服务器进行域名解析,然后发送ICMP Echo Request来探测主机存活性,若判断该主机存活,就会发送对应的其他数据包到远程机器,远程机器就会根据接收到的数据包做出对应的响应发送到nmap,nmap就会根据返回的响应进行解析得到对应的机器信息
nmap官网:https://nmap.org/
namp使用
语法:nmap [options] 域名信息/IP地址
options
- --dns-servers dns地址:指定特定dns服务器解析域名
- --script 脚本名称:使用nmap的脚本
- -e 网卡名:指定网卡进行探测
- -Pn:不触发防火墙安全机制的扫描,停止之前的ICMP请求
- -p m-n:扫描m-n范围之间的所有端口(当然也可以仅指定一个端口扫描)
- -p m,n:扫描m端口和n端口
- -p T:m,Un:指定tcp协议探测m号端口,udp协议探测n号端口
- -p 协议名:扫描对应协议的所有端口
- -p-:对该服务的所有端口进行探测
- -sV:识别目标机器的服务信息
- -A:使用侵略性的策略进行探测(操作系统识别、端口服务指纹识别)
- -v:持续输出返回的解析(按回车来查看)
- -Tn:n的范围为1-5,探测速度由慢到快
- -sC:使用nmap脚本进行探测
- -O:探测目标机器上的操作系统信息
- -sP CIDR:进行批量扫描(使用此参数后面需要接的时CIDR,不需要接IP地址)
- -sn CIDR:对该网络中所有主机进行ping扫描,验证存活性
- -oX xxx.xml:nmap探测结果输出到xxx.xml文件中
- -oN xxx.txt:nmap探测结果输出到xxx.txt文件中
- -d debug:启动调试模式(debug范围0-9)
nmap技术查看:nmap -h
nmap列举远程机器开放端口
普通扫描
扫描scanme.nmap.org信息:nmap scanme.nmap.org
注意:nmap进行探测之前要把域名通过DNS服务器解析为IP地址,我们也可以使用指定的DNS服务器进行解析(使用--dns-servers参数指定)
指定dns扫描域名:nmap --dns-server 8.8.8.8 scanme.nmap.org
扫描范围端口
前言:对于默认的端口范围,并不能够满足日常工作的需要。可以使用-p m-n来指定m-n之间的所有端口。
扫描0-100之间的端口:nmap -p 0-100 scanme.nmap.org
对几个端口探测
扫描服务的80,135端口:nmap -p 80,135 scanme.nmap.org
对所有端口进行探测
扫描服务的所有端口:nmap -p- 192.168.1.4
指定协议探测端口
语法:nmap -p T:25,U:53 scanme.nmap.org
解释:对于scanme.nmap.org服务,以tcp协议探测25号端口,udp协议探测53号端口(有对应协议的端口则显示,没有则不显示)
扫描对应协议的所有端口
扫描ssh协议端口:nmap -p ssh scanme.nmap.org
注意:协议名写可以用通配符(s*代表所有以s开头的协议端口都被扫描)
端口状态
nmap识别目标机器上服务的指纹
服务指纹
- 为了确保有一个成功的渗透测试或网络设备监控,必须要知道目标系统中服务的指纹信息。服务指纹信息包括服务端口号,服务名和版本等
- 通过分析目标往nmap发送的数据包中某些协议标记、选项和数据,我们可以推断发送这些数据包的操作系统等
- nmap通过向目标主机发送多个UDP和TCP数据包并分析其响应来进行操作系统指纹识别工作
识别目标机器服务信息
识别scanme.nmap.org服务信息:nmap -sV scanme.nmap.org
注意:-sV表示识别目标机器上的服务信息
nmap侵略性探测
探测目标机器操作系统、服务等
语法1:nmap -A -v -T4 scanme.nmap.org
- -A:使用侵略性的策略进行探测(操作系统识别、端口服务指纹识别)
- -v:持续输出返回的解析(按回车来查看)
- -Tn:n的范围为1-5,探测速度由慢到快
语法2:nmap -sC -sV -O scanme.nmap.org
- -sC:使用nmap脚本进行探测
- -sV:识别目标机器的服务信息
- -O:探测目标机器上的操作系统信息
发现局域网中存活的主机
前言
- 一个局域网中肯定连接着多台设备,可以使用ping命令来进行地址探测,但是若一个网络很大,这样的探测就很费劲
- CIDR无类别域间路由,其可以快速表示一个网络(172.16.1.1/24表示在172.16.1.1-172.16.1.255之间所有的主机IP地址)
nmap主机发现
对该网络中所有主机ping扫描
语法1:nmap -sP CIDR
语法2:nmap -sn CIDR
注意:扫描过程中nmap使用了TCP SYN扫描、ICMP echo Request来探测主机存活
案例:nmap -sP 192.168.1.1/24
nmap结果输出
语法:nmap -sn CIDR -oX test.xml
语法:nmap -sn CIDR -oN test.txt
理解:对该网络中所有主机进行扫描,同时将结果输出到test.xml/test.txt中
执行:nmap -sn 192.168.1.1/24 -oX test.xml
执行:nmap -sn 192.168.1.1/24 -oN /root/test.txt
由此观之多出来个test.xml文件。
NSE脚本的使用
NSE介绍
- NSE为nmap脚本引擎,内置了很多可以用来扫描的,特定任务的脚本。通过NSE可以不断拓展nmap的扫描策略,加强nmap的功能
- Nmap中使用--script参数来指定调用的脚本,并且脚本存储在Nmap安装路径下的script文件夹中,对于kail linux存储在/usr/share/nmap/script/下
使用脚本获取服务title
语法:nmap --script http-title scanme.nmap.org
注意:以上通过nmap使用http-title脚本进行探测,还可以使用其他脚本进行探测。到目前为止可以用的有589个脚本,每个脚本都有其独特的功能。
脚本总结
- http-title:获取服务的title
- http-headers:获取服务的请求头
nmap使用多个分类脚本
前言:对于目标使用多个分类脚本进行探测,可以更快的找到目标的信息及弱点
语法:nmap -sV --script vuln scanme.nmap.org
分类脚本
- vuln:漏洞分类脚本
- --script="version,discovery":版本信息分类脚本
NSE调试功能使用
语法:nmap -sV --script vuln -d 3 192.168.1.4
注意:
- -d debug表示调试模式启动,debug范围0-9
- 这样可以更加细致的查看脚本的过程
NSE更新
语法:nmap --script-updatedb
作用:更新脚本引擎
使用特定网卡进行探测
前言
- nmap是一款可扩展性强的工具,并且有些NSE脚本支持嗅探。但是这种功能需要网卡支持混杂模式才可以。或者当计算机上有两张网卡,并且两张网卡对应着不同网络
- nmap中提供了切换特定网卡功能的参数-e
查看所有网卡
语法:nmap --iflist
指定网卡进行探测
语法:nmap -e 网卡名 CIDR
解释:指定网卡可以对不同的网段进行探测,前提是电脑必须有多个网卡,设置多个网段
注意:若不指定网卡那么就会依次尝试向这些网卡发送数据包,若联通就会继续探测,若不连通就会换下一张网卡进行探测
对比扫描结果ndiff
前言:对比某个网络进行探测的时候,有可能之前探测过的结果,经过探测之后,需要对之前的结果与现在的结果进行对比,找到两次的不同点(目的:监视网络变化,以达到网络监控的目的)
ndiff工具
前言
- 在nmap整个工程中,除了主要的nmap工具外,还包括很多其他的工具,接下来要使用nidiff工具
- ndiff主要作用就是比较两个nmap的xml文件,比较他们的不同点
查看ndiff帮助:ndiff -h
使用方法
这里用windows扫描kail(192.168.1.5)
探测kail操作系统和服务:nmap -A -v -T4 192.168.1.5 -oX kail1.xml
kail启动一个服务,监听8000端口:nc -l -p 8000
探测kail操作系统和服务:nmap -A -v -T4 192.168.1.5 -oX kail2.xml
比较nmap两次扫描的结果:ndiff kail1.xml kail2.xml
注意:-代表kail1文件内容,+代表kail2文件中的内容
更多推荐
所有评论(0)