靶机、软件搭建:03---扫描工具Nmap(Windows系统)

  • 本片介绍的是Namp的Windows系统下软件的使用,Nmap在Linux Kali操作系统的使用,点击文章===>https://blog.csdn.net/qq_41453285/article/details/92831464

一、Nmap简介

  • Nmap (Network Mapper ,网络映射器)是一款开放源代码的网络探测和安全审核工具。它被设计用来快速扫描大型网络,包括主机探测与发现、开放的端口情况、 操作系统与应用服务指纹识别、 WAF识别及常见安全漏洞。它的图形化界面是Zenmap, 分布式框架为DNmap

特点如下:

  • 主机探测:探测网络上的主机,如列出响应TCP和ICMP请求、 ICMP请求、 开放特别端口的主机
  • 端口扫描:探测目标主机所开放的端口
  • 版本检测:探测目标主机的网络服务,判断其服务名称及版本号
  • 系统检测:探测目标主机的操作系统及网络设备的硬件特性
  • 支持探测脚本的编写:使用Nmap的脚本引擎(NSE)和Lua编程语言

二、Nmap的安装

  • 下载网址:https://nmap.org/download.html

靶机、软件搭建:03---扫描工具Nmap(Windows系统)_第1张图片

安装过程:

靶机、软件搭建:03---扫描工具Nmap(Windows系统)_第2张图片

靶机、软件搭建:03---扫描工具Nmap(Windows系统)_第3张图片靶机、软件搭建:03---扫描工具Nmap(Windows系统)_第4张图片

三、Nmap参数

  • 查看帮助文档命令:namep --help

设置扫描目标时用到的相关参数:

  • -iL:从文件中导入目标主机或目标网段
  • -iR:随机选择目标主机
  • --exclude:后面跟的主机或网段将不在扫描范围内
  • --excludefile:导入文件中的主机或网段将不在扫描范围中

与主机发现方法相关的参数:

  • -sL:List Scan(列表扫描),仅列举指定目标的IP,不进行主机发现
  • -sn:Ping Scan ,只进行主机发现,不进行端口扫描
  • -Pn:将所有指定的主机视作己开启,跳过主机发现的过程
  • -PS/PA/PU/PY[portlist]:使用 TCP SYN/ACK或者SCTP INIT/ECHO方式来发现
  • -PE/PP/PM:使用ICMP echo、timestamp、netmask请求包发现主机
  • -PO[protocollist]:使用IP协议包探测对方主机是否开启
  • -n/-R:-n表示不进行DNS解析;-R表示总是进行DNS解析
  • --dns-servers:指定DNS服务器
  • -- system-dns:指定使用系统的DNS服务器
  • --traceroute:追踪每个路由节点

与常见的端口扫描方法相关的参数如下:

  • -sS/sT/sA/sW/sM:指定使用TCP SYN/Connect()/ACK/Window/Maimon scans的方式对目标主机进行扫描
  • -sU:指定使用UDP扫描的方式确定目标主机的UDP端口状况
  • -sN/sF/sX:指定使用TCP Null/FIN/Xmas scans秘密扫描的方式协助探方的TCP端口状态
  • --scanflags:定制TCP包的flags
  • -sI:指定使用Idle scan的方式扫描目标主机(前提是需要找到合适的zombie host)
  • -sY/sZ:使用 SCTP INIT/COOKIE-ECHO扫描SCTP协议端口的开放情况
  • -sO:使用IP protocol扫描确定目标机支持的协议类型
  • -b:使用FTP bounce scan扫描方式

跟端口参数与扫描顺序的设置相关的参数如下:

  • -p :扫描指定的端口
  • -F:Fast mode (快速模式),仅扫描TOP 100 端口
  • -r:不进行端口随机打乱的操作(如无该参数, Nmap会将要扫描的端口以 随机顺序的方式进行扫描,让Nmap的扫描不易被对方防火墙检测到)
  • --top-ports:扫描开放概率最高的number个端口(Nmap 的作者曾做过大规模的互联网扫描,以此统计网络上各种端口可能开放的概率,并排列出最有可能开放端口的列表,具体可以参见nmap-services文件。默认情况下, Nmap会扫描最有可能的1000 TCP端口)
  • --port-ratio :扫描指定频率以上的端口。与上述--top-ports类似,这里概率作为参数,概率大于--port-ratio的端口才被扫描。显然参数必须在0~1之间,想了解具体的概率范围可以查看nmap-services文件

与版本侦测相关的参数如下所示:

  • -sV:指定让Nmap进行版本侦测
  • --version-intensity:指定版本侦测的强度( 0~9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长
  • -- version-light:指定使用轻 级侦测方式(intensity 2)
  • --version-all:尝试使用所有的probes进行侦测(intensity 9)
  • --version-trace:显示出详细的版本侦测过程信息

其他:

  • -A:表示使用进攻性(Aggressive)方式扫描
  • -T[number]:表示指定扫描过程使用的时序(Timing),number共有6个级别(0~5),级别越高速度越快,但也容易被防火墙或者IDS检测并屏蔽掉,在网络通信状况良好的情况下推荐使用T4
  • -v:表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节,有助于让用户了解当前的扫描状态

四、Nmap命令的格式

  • 格式为:Nmap + 扫描参数 + 目标地址或网段

比如一次完整的Nmap扫描命令如下:

nmap -T4 -A -v ip 

五、Nmap的输出内容

  • Nmap输出的是:扫描列表,包括端口号、端口状态、服务名称、 服务版本及协议

靶机、软件搭建:03---扫描工具Nmap(Windows系统)_第5张图片

六、常用的扫描方法演示

①扫描单个目标地址

  • 格式:namp ip

②扫描多个地址

  • 格式:namp  ip1 ip2 ip3 ......
  • 目标地址可以不在同一个网段

③扫描一个范围内的目标地址

  • 格式:namp  起始ip-终止ip
  • 目标地址必须在一个连续的网段内
  • namp  192.168.0.1-192.168.0.100  或者nmap 192.168.0.1-100

④扫描目标地址所在的某个网段

  • 格式:namp  ip/掩码数
  • 以C类IP段为例,如果目标是一个网段,则可以通过添加子网掩码的方式扫描,下列命令表示扫描范围为:192.168.0.1~192.168.0.255

⑤扫描主机列表targets.txt中的所有目标地址

  • 扫描targets.txt中的地址或者网段,此处导入的是绝对路径。如果targets.txt文件与nmap.exe在同一目录下,则使用相对路径即可

⑥扫描除某一个目标地址之外的所有目标地址

  • 下列命令表示扫描除192.168.0.105之外的其他192.168.0.x地址,

⑦扫描除某一文件申的目标地址之外的目标地址

  • 下列命令表示扫描除了target.txt文件夹中涉及的地址或网段之外的目标地址

⑧扫描某一目标地址的指定端口

  • 格式:nmap  ip  端口1,端口2......
  • -p参数只会去扫描指定端口,而不会进行全端口扫描,所以速度较快

⑨对目标地址进行路由跟踪

  • 下列命令表示对目标地址进行路由跟踪

⑩扫描目标地址所在IP段的在线状况

  • 下面是扫描目标地址所在的C段的在线情况

⑪目标地址的操作系统指纹识别

  • 下列命令表示通过指纹识别技术识别目标地址的操作系统的版本,

⑫目标地址提供的服务版本检测

下列命令表示检测目标地址开放的端口对应的服务版本信息

⑬探测防火墙状态

  • 在实战中,可以利用FIN扫描的方式探测防火墙的状态。 FIN扫描用于识别端口是否关闭,收到RST回复说明该端口关闭,否则就是open或filtered状态

八、Nmap的脚本

  • Nmap的脚本默认存在/xx/nmap/scripts文件夹下

Nmap脚本的分类:

  • Auth:负责处理鉴权证书(绕过鉴权)的脚本
  • Broadcast:在局域网内探查更多服务的开启情况,如DHCP DNS SQLServer 等
  • Brute:针对常见的应用提供暴力破解方式,如HTTP/SMTP等。
  • Default:使用-sC或者-A选项扫描时默认的脚本,提供基本的脚本扫描能力
  • Discovery:对网络进行更多信息的搜集,如SMB 举、 SNMP查询等
  • Dos:用于进行拒绝服务攻击
  • Exp:利用己知的漏洞入侵系统
  • External:利用第三方的数据库或资源。例如,进行Whois解析
  • Fuzzer:模糊测试脚本,发送异常的包到目标机,探测出潜在漏洞
  • Intrusive:入侵性的脚本,此类脚本可能引发对方的IDS IPS 的记录或屏蔽
  • Malware:探测目标机是否感染了病毒、开启后门等信息
  • Safe:此类与Intrusive相反,属于安全性脚本
  • Version:负责增强服务与版本扫描功能的脚本
  • Vuln:负责检查目标机是否有常见漏洞,如MS08-067

使用脚本时的参数:

  • -sC/--script=default:使用默认的脚本进行扫描
  • --script=:使用某个脚本进行扫描
  • --script=key1=value1,key2=value2 ......:该参数用于传递脚本里的参数,key1是参数名,该参数对应value1这个值。如有更多的参数,使用逗号连接
  • --script-args-file=filename:使用文件为脚本提供参数
  • -- script-trace:如果设置该参数,则显示脚本执行过程发送与接收的数据
  • -- script-updatedb:在Nmap的script目录里有script.db文件,该文件保存了当前Nmap可用的脚本,类似于一个小型数据库,如果我们开启Nmap并调用了此参数,则Nmap会自行扫描script目录中的扩展脚本 ,进行数据库更新
  • -- script-help:调用该参数后, Nmap会输出该脚本对应的脚本使用参数,以及详细的介绍信息

①鉴权扫描

  • 使用--script=auth可以对目标主机或目标主机所在的网段进行应用弱口令检测

②暴力破解攻击

  • Nmap具有暴力破解的功能,可对数据库、SMB、SNMP等进行简单密码的暴力猜解

③扫描常见的漏洞

  • Nmap具备漏洞扫描的功能,可以检查目标主机或网段是否存在常见的漏洞

④应用服务扫描

  • Nmap具备很多常见应用服务的的扫描脚本,例如VNC服务、MySQL服务、 Telnet服务、Rsync服务等,下面以VNC服务为例

⑤探测局域网内更多服务开启的情况

  • 输入以下命令即可探测局域网内更多服务开启的情况

⑥Whois解析

  • 利用第三方的数据库或资源查询目标地址的信息 ,例如进行Whois解析

你可能感兴趣的:(靶机,软件搭建)