NMap常用命令 及 各种扫描模式对应的原理

一、关于Nmap

Nmap(Network Mapper),用来扫描网络上计算机开放的网络连接端口;
它是网络安全工程师必用的软件之一,用以评估网络系统安全,网络安全工程师可以利用NMap来探测工作环境中的服务或端口;
黑客可以利用nmap来搜集目标主机的服务与系统信息等,从而制定进一步的攻击方案。

在这里插入图片描述

二、常用命令及对应扫描模式的原理:

Ⅰ. 指定要扫描的主机

nmap 192.168.1.2     # 扫描特定主机
nmap 192.168.1.2-254 # 扫描一系列连续ip地址的主机

Ⅱ. 指定要扫描的端口号

nmap -p21, 22, 80 192.168.1.2 # 扫描主机的指定端口号(21,22和80)
nmap -p21-80 192.168.1.2      # 扫描主机的一系列连续的端口号(从21到80之间的所有端口)
nmap -p- 192.168.1.2          # 扫描主机的所有端口(1-65535)

Ⅲ. 指定扫描的模式(包含原理与特点)

在nmap之后加上 “-模式名” 即可。

1. 全连接扫描(connect()扫描、TCP扫描)
nmap -sT 192.168.1.2

原理及特点:

  • 扫描时会完成完整的TCP三次握手,若端口处于侦听状态,则socket函数connect()会成功返回值;
  • 优点:可靠稳定,不需要特定权限
  • 缺点:建立了完整的TCP连接,没有隐蔽性,极易被服务器的日志记录或被防火墙屏蔽。
2. 半连接扫描(SYN扫描)
nmap -sS 192.168.1.2

原理及特点:

  • 扫描主机在完成TCP的前两次握手后便断开连接,若服务器发来ACK包,则说明该端口开启,若为RST包(Reset)则反之;
  • 优点:因为没有完全建立起TCP连接,所以有一定的隐蔽性,很少会被服务器的系统日志记录;
  • 缺点:构造SYN包需要较高的操作系统用户权限
3. UDP扫描
nmap -sU 192.168.1.2

原理及特点:

  • 扫描主机时使用不需建立连接的UDP数据包来对目标主机的信息进行探测;
  • 优点:因为UDP面向无连接,可以直接将数据包发送给服务器,不需经过等待建立连接或关闭的过程,所以在某些情况下速度会比TCP扫描更快,有时也能由此发现冷门的UDP服务或端口
  • 缺点:由于面向无连接,所以扫描结果的误报率会更大,也更难对目标主机的端口状态进行确定。
4. FIN扫描
nmap -sF 192.168.1.2

原理及特点:

  • 当我们发送一个FIN=1的报文到一个关闭的端口时,该报文会被目标主机丢弃,并随之返回一个RST报文;而对于一个开启的端口,该报文仍然会被丢弃,但不会有RST报文返回可以由以上两点来辨别端口的状态;
  • 优点:因为完全不建立TCP连接,所以相对而言非常隐蔽
  • 缺点:只对Unix有效,对Windows无效(可以据此作为参考依据,来判断目的主机的操作系统)。
5. Xmax扫描
nmap -sX 192.168.1.2

原理及特点:

  • Xmax扫描可以看作是FIN扫描的一个变种,打开FIN,URG和PUSH标记;
  • 优缺点同FIN扫描。
6. NULL扫描
nmap -sN 192.168.1.2

原理及特点:

  • NULL扫描是FIN的另一变种,关闭了所有标记;
  • 优缺点同FIN扫描。
7. 扫描时获取banner信息
nmap -sV 192.168.1.2

特点:

  • banner信息包含端口具体的服务及版本信息等,这些信息会帮助攻击者更轻易地制定出具有针对性的攻击方案。
8. 扫描时使用指定的扫描脚本
nmap --script=vuln 192.168.1.2   
# 指定使用vuln脚本进行扫描(使用vuln脚本能扫描常见的安全漏洞或风险)

常见的扫描脚本如下:
vuln:常见漏洞扫描脚本
http-enum:HTTP服务扫描脚本
ftp-anon:FTP匿名访问扫描脚本
smb-os-discovery:SMB服务扫描脚本
ssl-enum-ciphers:SSL/TLS加密套件扫描脚本
smtp-enum-users:SMTP用户枚举脚本

namp 2011-06-25 02:13:43| 分类: Linux | 标签:namp |字号大中小 订阅 . 进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):   nmap -sP 192.168.1.0/24   仅列出指定网络上的每台主机,不发送任何报文到目标主机:   nmap -sL 192.168.1.0/24   探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80):   nmap -PS 192.168.1.234 nmap -PS 127.0.0.1 -p 100-700   使用UDP ping探测主机:   nmap -PU 192.168.1.0/24   使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快:   nmap -sS 192.168.1.0/24   当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描:   nmap -sT 192.168.1.0/24   UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口:   nmap -sU 192.168.1.0/24   确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等):   nmap -sO 192.168.1.19   探测目标主机的操作系统:   nmap -O 192.168.1.19   nmap -A 192.168.1.19   另外,nmap官方文档中的例子:   nmap -v scanme.   这个选项扫描主机scanme中 所有的保留TCP端口。选项-v启用细节模式。   nmap -sS -O scanme./24   进行秘密SYN扫描,对象为主机Saznme所在的“C类”网段 的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描 和操作系统检测,这个扫描需要有根权限。   nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127   进行主机列举和TCP扫描,对象为B类188.116网段中255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。   nmap -v -iR 100000 -P0 -p 80   随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段 发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因 此使用-P0禁止对主机列表。   nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20   扫描4096个IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存。   host -l | cut -d -f 4 | nmap -v -iL -   进行DNS区域传输,以发现中的主机,然后将IP地址提供给 Nmap。上述命令用于GNU/Linux -- 其它系统进行区域传输时有不同的命令。   其他选项:   -p (只扫描指定的端口)   单个端口和用连字符表示的端口范 围(如 1-1023)都可以。当既扫描TCP端口扫描UDP端口时,可以通过在端口号前加上T: 或者U:指定协议。 协议限定符一直有效直到指定另一个。 例如,参数 -p U:53,111,137,T:21-25,80,139,8080 将扫描UDP 端口53,111,和137,同时扫描列出的TCP端口。   -F (快速 (有限的端口) 扫描)namp 2011-06-25 02:13:43| 分类: Linux | 标签:namp |字号大中小 订阅 . 进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):   nmap -sP 192.168.1.0/24   仅列出指定网络上的每台主机,不发送任何报文到目标主机:   nmap -sL 192.168.1.0/24   探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80):   nmap -PS 192.168.1.234 nmap -PS 127.0.0.1 -p 100-700   使用UDP ping探测主机:   nmap -PU 192.168.1.0/24   使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快:   nmap -sS 192.168.1.0/24   当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描:   nmap -sT 192.168.1.0/24   UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口:   nmap -sU 192.168.1.0/24   确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等):   nmap -sO 192.168.1.19   探测目标主机的操作系统:   nmap -O 192.168.1.19   nmap -A 192.168.1.19   另外,nmap官方文档中的例子:   nmap -v scanme.   这个选项扫描主机scanme中 所有的保留TCP端口。选项-v启用细节模式。   nmap -sS -O scanme./24   进行秘密SYN扫描,对象为主机Saznme所在的“C类”网段 的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描 和操作系统检测,这个扫描需要有根权限。   nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127   进行主机列举和TCP扫描,对象为B类188.116网段中255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。   nmap -v -iR 100000 -P0 -p 80   随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段 发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因 此使用-P0禁止对主机列表。   nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20   扫描4096个IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存。   host -l | cut -d -f 4 | nmap -v -iL -   进行DNS区域传输,以发现中的主机,然后将IP地址提供给 Nmap。上述命令用于GNU/Linux -- 其它系统进行区域传输时有不同的命令。   其他选项:   -p (只扫描指定的端口)   单个端口和用连字符表示的端口范 围(如 1-1023)都可以。当既扫描TCP端口扫描UDP端口时,可以通过在端口号前加上T: 或者U:指定协议。 协议限定符一直有效直到指定另一个。 例如,参数 -p U:53,111,137,T:21-25,80,139,8080 将扫描UDP 端口53,111,和137,同时扫描列出的TCP端口。   -F (快速 (有限的端口) 扫描)namp 2011-06-25 02:13:43| 分类: Linux | 标签:namp |字号大中小 订阅 . 进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):   nmap -sP 192.168.1.0/24   仅列出指定网络上的每台主机,不发送任何报文到目标主机:   nmap -sL 192.168.1.0/24   探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80):   nmap -PS 192.168.1.234 nmap -PS 127.0.0.1 -p 100-700   使用UDP ping探测主机:   nmap -PU 192.168.1.0/24   使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快:   nmap -sS 192.168.1.0/24   当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描:   nmap -sT 192.168.1.0/24   UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口:   nmap -sU 192.168.1.0/24   确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等):   nmap -sO 192.168.1.19   探测目标主机的操作系统:   nmap -O 192.168.1.19   nmap -A 192.168.1.19   另外,nmap官方文档中的例子:   nmap -v scanme.   这个选项扫描主机scanme中 所有的保留TCP端口。选项-v启用细节模式。   nmap -sS -O scanme./24   进行秘密SYN扫描,对象为主机Saznme所在的“C类”网段 的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描 和操作系统检测,这个扫描需要有根权限。   nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127   进行主机列举和TCP扫描,对象为B类188.116网段中255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。   nmap -v -iR 100000 -P0 -p 80   随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段 发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因 此使用-P0禁止对主机列表。   nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20   扫描4096个IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存。   host -l | cut -d -f 4 | nmap -v -iL -   进行DNS区域传输,以发现中的主机,然后将IP地址提供给 Nmap。上述命令用于GNU/Linux -- 其它系统进行区域传输时有不同的命令。   其他选项:   -p (只扫描指定的端口)   单个端口和用连字符表示的端口范 围(如 1-1023)都可以。当既扫描TCP端口扫描UDP端口时,可以通过在端口号前加上T: 或者U:指定协议。 协议限定符一直有效直到指定另一个。 例如,参数 -p U:53,111,137,T:21-25,80,139,8080 将扫描UDP 端口53,111,和137,同时扫描列出的TCP端口。   -F (快速 (有限的端口) 扫描)
<think>嗯,用户让我介绍一下nmap常用命令,我需要先回忆一下nmap的主要功能和常见用途。首先,nmap是一个网络扫描工具,常用于端口扫描、服务识别、操作系统检测等。我得确保覆盖到这些基本功能,然后列举具体的命令例子。 首先,我应该考虑用户可能的水平。他们可能对网络扫描有一定了解,但需要具体的命令示例。所以需要分门别类,比如基本扫描端口指定、服务识别、操作系统检测等,每个类别给出几个常用命令,并简要说明作用。 另外,用户可能想知道不同参数的使用场景,比如-T4用于调整扫描速度,-A综合扫描等。需要解释这些参数的意义,帮助用户理解何时使用它们。 还要注意避免过于复杂的选项,保持常用和实用。例如,ping扫描、排除某些地址、输出结果到文件等,这些都是用户可能会用到的功能。 需要检查每个命令的正确性,比如-sS是TCP SYN扫描,-sV是版本检测,这些参数组合是否正确。同时,提醒用户注意合法性,未经授权扫描可能违法,这也是重要的点。 最后,确保用中文回答,结构清晰,分点列出,每个命令有说明和示例。可能用户需要快速查阅,所以条目要简明易懂。需要确认没有遗漏常用的命令,比如UDP扫描-sU,或者脚本扫描--script等。</think>以下为 **Nmap** 常用命令的实用总结,适合快速查阅: --- ### **一、基础扫描** 1. **快速扫描** ```bash nmap 192.168.1.1 # 扫描目标IP的常用端口 nmap example.com # 扫描域名对应主机的开放端口 ``` **作用**:默认扫描1000个常用端口,返回开放端口及服务名称。 2. **指定端口范围** ```bash nmap -p 1-100 192.168.1.1 # 扫描1-100号端口 nmap -p 80,443,22 192.168.1.1 # 扫描指定端口 nmap -p- 192.168.1.1 # 扫描端口(0-65535) ``` --- ### **二、进阶探测** 1. **服务版本识别** ```bash nmap -sV 192.168.1.1 # 探测服务具体版本(如Apache 2.4.53) ``` 2. **操作系统识别** ```bash nmap -O 192.168.1.1 # 推测目标主机的操作系统类型 ``` 3. **综合扫描(强力模式)** ```bash nmap -A 192.168.1.1 # 包含OS识别、版本探测、脚本扫描等 ``` --- ### **三、扫描技巧** 1. **TCP SYN扫描(半开扫描)** ```bash nmap -sS 192.168.1.1 # 快速且不易被日志记录 ``` 2. **UDP扫描** ```bash nmap -sU 192.168.1.1 # 探测UDP端口(如DNS/DHCP) ``` 3. **绕过防火墙** ```bash nmap -f 192.168.1.1 # 分片数据包绕过简单过滤 nmap --data-length 100 # 定制数据包长度干扰检测 ``` --- ### **四、网络探测** 1. **发现存活主机** ```bash nmap -sn 192.168.1.0/24 # 快速探测局域网在线设备(类似Ping扫描) ``` 2. **路由跟踪** ```bash nmap --traceroute 192.168.1.1 # 显示到目标的路由路径 ``` --- ### **五、输出与脚本** 1. **结果保存** ```bash nmap -oN result.txt 192.168.1.1 # 普通文本 nmap -oX result.xml 192.168.1.1 # XML格式 ``` 2. **脚本引擎** ```bash nmap --script=http-title 192.168.1.1 # 获取网页标题 nmap --script=vuln 192.168.1.1 # 漏洞检测(谨慎使用) ``` --- ### **六、实用参数** - `-T4`:加速扫描(平衡速度与准确性) - `-v`:显示详细过程(`-vv` 更详细) - `--exclude 192.168.1.100`:排除指定IP不扫描 --- ⚠️ **注意**:使用Nmap前需获得授权,未经许可扫描他人网络可能违反法律。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Neonline

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值