Nmap-主机、端口扫描工具

1. 介绍

Nmap即网络映射器,对Linux系统/网络管理员来说是一个开源且非常通用的工具。Nmap用于在远程机器上探测网络,执行安全扫描,网络审计和搜寻开放端口。它的图形化界面是Zenmap,分布式框架为Dnamp。

1.1 基本功能

  • 主机探测,即探测一组主机是否在线
  • 端口扫描,即扫描主机端口,嗅探所提供的网络服务
  • 推断主机所用的操作系统
  • 版本检测
  • 支持探测脚本的编写

1.2 Nmap在实际中应用场合如下

  • 通过对设备或者防火墙的探测来审计它的安全性
  • 探测目标主机所开放的端口
  • 通过识别新的服务器审计网络的安全性
  • 探测网络上的主机

2. Nmap相关命令详解

2.1 Nmap用于主机发现

在这里插入图片描述

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

2.2 Nmap用于端口扫描

图片

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

2.3 Nmap用于端口参数与扫描顺序

图片

PORT SPECIFICATION AND SCAN ORDER:
-p : 扫描指定的端口
实例: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9(其中T代表TCP协议、U代表UDP协议、S代表SCTP协议)
-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文件。

2.4 Nmap用于版本侦测

图片

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

2.5 Nmap用于操作系统探测

图片

OS DETECTION:
-O: 启用操作系统检测,也可以使用-A来同时启用操作系统检测和版本检测
–osscan-limit:针对指定的目标进行操作系统检测
–osscan-guess:推测操作系统检测结果

3. Nmap具体操作演示

本机ip为192.168.10.55
图片

扫描二维码关注公众号,回复: 13303447 查看本文章

3.1 用Nmap扫描特定IP地址

nmap 192.168.10.55   #扫描本机ip

图片

nmap -vv 192.168.10.55 #用-vv对结果进行详细输出

图片

nmap 192.168.10.168  #扫描别的机器ip

图片

3.2 自行设置端口范围进行扫描

nmap -p 1-1000 192.168.10.55  #扫描本机1-1000之间的端口

图片

3.3 指定端口号进行扫描

nmap -p 22,80,3306 192.168.10.55  #扫描本机22,88,3306的端口

图片

3.4 对目标进行Ping扫描

nmap  -sP 192.168.10.168   #探测目标主机是否在线

图片

nmap -sP 192.168.10.0/24     #探测192.168.10.0网段的主机是否在线,只显示在线的主机

图片

3.5 路由跟踪

nmap --traceroute 192.168.10.168  #对目标主机进行路由追踪

图片

3.6 操作系统探测

nmap -O 192.168.10.55

图片

3.7 万能开关扫描

nmap -A  192.168.10.55  #可以查看到目标服务器上ssh的版本号、内核版本、端口等

图片

3.8 查找主机服务版本号

nmap -sV  192.168.10.168

图片

3.9 使用TCP ACK (PA)和TCP Syn (PS)扫描远程主机

有时候包过滤防火墙会阻断标准的ICMP ping请求,在这种情况下,我们可以使用TCP ACK和TCP Syn方法来扫描远程主机

nmap -PS 192.168.10.168

图片

3.10 SYN扫描

利用基本的SYN扫描方式测试其端口开放状态。

nmap -sS -T4 192.168.10.168

在这里插入图片描述

nmap -PS -p 22,80 192.168.10.168

图片

3.11 FIN扫描

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

nmap -sF -T4 192.168.10.168

图片

3.12 ACK扫描

利用ACK扫描判断端口是否被过滤。针对ACK探测包,为被过滤的端口(无论打开或关闭)会回复RST包。

nmap -sA -T4 192.168.10.168

图片

nmap -PA -p 22,80 192.168.10.168

图片

3.13 执行一次隐蔽的扫描

nmap -sS 192.168.10.168

在这里插入图片描述
都到这儿了,更多文章,详见个人微信公众号ALL In Linux,来扫一扫吧!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44729138/article/details/115919536