Nmap完整使用教程(超详细)

一、Nmap介绍

        Nmap(Network Mapper)是一款用于网络发现和安全审计的开源工具。它最初由 Gordon Lyon(也被称为 Fyodor Vaskovich)开发,是一款功能强大且广泛使用的网络扫描工具。Nmap 允许用户在网络上执行主机发现、端口扫描、服务识别和版本检测等操作,以帮助评估网络的安全性、发现主机和服务、以及识别潜在的安全威胁。

Nmap的核心功能

  • 主机发现:探测网络中的存活设备(如-sP扫描局域网存活主机) 
  • 端口扫描:识别开放端口及状态(开放/关闭/过滤)
  • 服务识别:检测端口对应的服务及版本(如-sV参数)
  • 操作系统检测:通过指纹识别目标系统(如-O参数)
  • 脚本扩展:使用NSE脚本实现漏洞扫描、密码爆破等高级功能 

二、Nmap安装 

三、Nmap使用  

3.1  主机扫描 

3.1.1  快速扫描

nmap ip

我这里扫描的是自己的ip,因为别的网站ip没授权不敢扫。

3.1.2  网段扫描

nmap ip/子网掩码

 我扫描的是自己的ip网段,可以发现有4台主机,其中一台正式我们的kali主机。

3.1.3  过滤ip的网段扫描 

nmap ip/子网掩码 -exclude 需要过滤的 IP 或 文件

 过滤完之后之后,发现只剩三台主机了。

3.1.4  扫描存活主机

nmap -sP ip/子网掩码 

 对网段内的存活主机进行扫描,仅仅确定存活主机,并不扫描端口。

3.1.5  ARP扫描

可以对局域网内的主机进行高效探测。

nmap -PR -sn ip/子网掩码

-PR:开启ARP扫描

-sn:跳过端口扫描 

 

3.2  端口扫描 

Nmap所能识别的六种端口状态

open   #端口开放
closed   #端口关闭
filtered   #端口被过滤
unfiltered   #端口未被过滤
open|filtered   #端口开放或者被过滤
closed|filtered   #端口关闭或者被过滤

 3.2.1  指定端口扫描

nmap ip -p 端口号

扫描「指定端口」,使用 -p 参数,可以一次扫描单个端口、多个端口、或扫描一个范围的端口。

3.2.2  使用TCP的SYN进行扫描

nmap -sS ip

半开放扫描,只发送SYN,如果服务器回复SYN,ACK。证明端口开放,不建立完整连接。

下面是 TCP SYN 扫描的工作原理:

1、发送TCP SYN包: 扫描发起者(通常是Nmap工具)向目标主机的指定端口发送TCP SYN包(同步包)。

2、等待响应: 如果目标端口是开放的,目标主机将返回一个TCP SYN/ACK包(同步/应答包)表示端口是开放的。如果目标端口是关闭的,目标主机将返回一个TCP RST包(复位包)表示端口是关闭的。

3、分析响应: 扫描发起者分析目标主机的响应来确定端口的状态。如果收到了 SYN/ACK 包,说明端口是开放的。如果收到了 RST 包,说明端口是关闭的。

TCP的SYN扫描在完成第2步的过程中,扫描发起者不会完成TCP连接的建立,而是在收到响应后发送一个 RST 包,关闭连接。这样,扫描对目标系统的影响较小,因为它不会建立完整的连接。

3.2.3  使用TCP进行扫描

nmap -sT ip

 这是Nmap的默认扫描方式。

3.2.4  使用UDP进行扫描

nmap -sU ip

扫描UDP所开放的端口。以下是 UDP 扫描的工作原理:

1、发送UDP数据包: 扫描发起者向目标主机的指定 UDP 端口发送UDP数据包。

2、等待响应: 如果目标端口是开放的,目标主机将不发送响应,或者发送一个UDP应答包。如果目标端口是关闭的,目标主机通常会发送一个ICMP不可达消息。

3、分析响应: 扫描发起者通过分析目标主机的响应来确定端口的状态。缺乏确认机制使得 UDP 扫描相对不稳定,因为目标主机可能选择不响应请求,或者响应包被防火墙过滤。

3.2.5  端口范围扫描

nmap ip -p 端口范围

 3.3  高级服务扫描

3.3.1  识别服务版本

nmap -sV ip -p 端口号/端口范围

 要想识别服务版本,可以利用-sV参数。

3.3.2  识别操作系统

nmap -O ip

想要识别「操作系统版本」,可以使用 -O 参数,但需要root权限。 

3.3.3  利用NSE脚本引擎进行漏洞扫描

nmap --script vuln ip

  • --script vuln:调用Nmap漏洞检测脚本库,针对目标进行高危漏洞扫描(覆盖SMB、HTTP、SQL等常见服务漏洞)。
  • 192.168.68.220:内网目标主机IP,属于C类私有地址段。

Host script results 就是扫描出的内容。

四、输出与日志管理

4.1  输出格式

4.1.1  文本格式

nmap -oN result.txt ip

在kali上就会出现result.txt文件,里面记录了扫描的结果。

 

4.1.2  XML格式

nmap -oX result.xml ip

kali里面就会出现相应的result.xml文件。 

 

4.1.3  多格式保存

nmap -oA scan_result ip

利用多格式保存时,会同时生成.txt/.xml/.gnmap文件。

4.2  日志分析工具推荐 

  • Zenmap:图形化分析扫描结果 
     
  • Ndiff:对比多次扫描差异 

五、总结

Nmap是网络安全的“瑞士军刀”,从基础的端口扫描到高级的漏洞利用,其功能覆盖渗透测试全流程。掌握本文内容后,可尝试结合MetasploitWireshark等工具构建完整攻防实验环境。如需完整脚本代码或更多案例,请访问Nmap官方文档或参考文末扩展阅读。要注意的是,在未经他人允许的情况下,扫描他人网络可能违法,本文章只用于教学目的,不可用于违法活动,否则后果自负。

在Kali Linux的命令行中,可以直接使用nmap命令进行扫描操作。首先,打开一个终端窗口,然后输入nmap命令并按下回车键。这将显示nmap的版本信息,以证明nmap已经可用。 除了在命令行中直接使用nmap命令外,还可以利用Kali Linux中Metasploit Framework(msf)内置的nmap模块进行扫描操作。使用msf内的nmap命令可以通过指定-sI参数对目标进行扫描。具体命令格式如下: nmap -PN -sI 傀儡机IP 目标IP 此外,nmap还有其他一些常用的扫描参数。例如,可以使用以下命令进行不同类型的扫描: - 使用Fin扫描:nmap 127.0.0.1 -p 80 -sF - 使用Null扫描(所有flags都为0的TCP包):nmap 127.0.0.1 -p 80 -sN - 使用Xmas扫描(flags的FIN、URG、PUSH都为1的包):nmap 127.0.0.1 -p 80 -sX 这些是一些常用的Kali Linux中nmap使用教程和命令示例。通过这些命令和参数,你可以对目标进行扫描并获取相关信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Nmap使用教程图文教程超详细)](https://blog.csdn.net/m0_60571990/article/details/128057684)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [nmap在kali的使用方法和常见命令(入门)](https://blog.csdn.net/Gjqhs/article/details/121957155)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值