前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >扫描工具Nmap使用教程图文教程(超详细)

扫描工具Nmap使用教程图文教程(超详细)

作者头像
IT运维技术圈
发布2023-02-02 09:58:37
4.6K0
发布2023-02-02 09:58:37
举报
文章被收录于专栏:IT运维技术圈

kali的命令行中可以直接使用 nmap 命令,打开一个「终端」,输入 nmap 后回车,可以看到 nmap 的版本,证明 nmap 可用。

Nmap有四种基本功能:「端口扫描」、「主机探测」、「服务识别」和「系统识别」。

扫描主机的「开放端口」,在nmap后面直接跟主机IP(默认扫描1000个端口)

代码语言:javascript
复制
nmap 192.168.31.180
代码语言:javascript
复制
代码语言:javascript
复制
从上图可以看到:它用1.58秒扫描了1000个端口,
代码语言:javascript
复制
其中991个端口关闭,
代码语言:javascript
复制
结果中列出的9个端口就是开放的端口。
代码语言:javascript
复制

1. 指定端口

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

代码语言:javascript
复制
nmap 192.168.31.180 -p 80
nmap 192.168.31.180 -p 1-80
nmap 192.168.31.180 -p 80,3389,22,21
nmap 192.168.31.180 -p 1-65535
nmap 192.168.31.180 -p-

2. 指定扫描方式

我们通过kali中的「wireshark」抓包分析不同扫描方式的请求信息,从而判断这些方式的区别。

点开kali的左上角,输入 wireshark 单击打开,选择抓包的网卡(我这里是 eth0 )。

输入过滤条件ip.addr == 192.168.31.180 and tcp.port == 80后,点击箭头应用。

这个过滤条件的意思是:过滤IP地址是 192.168.31.180 并且 端口是 TCP的80端口。

设置完过滤条件后,我们在命令行执行扫描命令,然后查看「wireshark」中的请求包。

2.1 TCP全连接扫描

使用 -sT 参数进行TCP全连接扫描。

「全连接扫描」使用完整的三次握手建立链接,能够建立链接就判定端口开放,否则判定端口关闭。

代码语言:javascript
复制
nmap 192.168.31.180 -p 80 -sT
代码语言:javascript
复制
1)如果端口开放,就会进行完整的三次握手,
代码语言:javascript
复制
成功建立链接,扫描结果中,STATE字段显示为open。

2)如果端口关闭,就只能进行一次握手,无法建立链接,扫描结果中,

STATE字段显示为 closed。

2.2 SYN半链接扫描

使用 -sS 参数进行SYN半链接扫描。

「半链接扫描」只进行两次握手,对方返回确认帧(ACK=1)就判定端口开放,否则判定端口关闭。

代码语言:javascript
复制
nmap 192.168.31.180 -p 80 -sS
代码语言:javascript
复制
代码语言:javascript
复制
1)如果端口开放,就会进行两次握手,
代码语言:javascript
复制
扫描结果中,STATE字段为 open 。
代码语言:javascript
复制

2)如果端口关闭,就只有一次握手,扫描结果中,STATE字段为 closed。

2.3 隐秘扫描

隐秘扫描,只适用于Linux系统。

「隐秘扫描」向目标主机的端口发送TCP FIN包 或 Xmas tree包 或 Null包,如果收到RST响应包,就判定端口关闭,否则就判定端口开放或被屏蔽(open/filtered)

代码语言:javascript
复制
nmap 127.0.0.1 -p 80 -sF  
nmap 127.0.0.1 -p 80 -sN  
nmap 127.0.0.1 -p 80 -sX

扫描网段中有哪些主机在线,使用 -sP 参数,不扫描端口,只扫描「存活主机」。

本质上是Ping扫描,能Ping通有回包,就判定主机在线。

代码语言:javascript
复制
nmap -sP 192.168.31.0/24
代码语言:javascript
复制
从上图可以看到:
代码语言:javascript
复制
它用2秒扫描了这个网段的256个IP,
代码语言:javascript
复制
其中有3个存活主机,效率还是蛮不错的。

扫描端口时,默认显示端口对应的服务,但不显示服务版本。

想要识别具体的「服务版本」,可以使用 -sV 参数。

代码语言:javascript
复制
nmap 192.168.31.180 -p 80 -sV
代码语言:javascript
复制
扫描结果中,VERSION字段显示服务的详细版本。

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

代码语言:javascript
复制
nmap 192.168.31.180 -p 80 -O
代码语言:javascript
复制
提示:
  1. Nmap扫描出的系统版本并完全准确,仅供参考。
  2. 当识别不出具体版本时,Nmap会以概率的形式列举出可能的操作系统,如上图所示。

Nmap的扫描结果可以保存到文件中,比如文本格式、XML格式。

1)将扫描结果导出为「文本格式」,结果原样保存。

代码语言:javascript
复制
nmap 192.168.31.180 -p 80 -oN result.txt
代码语言:javascript
复制

2)将扫描结果导出为「xml格式」,结果的保存格式会发生变化。

代码语言:javascript
复制
nmap 192.168.31.180 -p 80 -oX result.xml

原作者:士别三日wyx

源链接:

https://blog.csdn.net/wangyuxiang946/article/details/127710186

编辑:IT运维技术圈

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT运维技术圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 指定端口
  • 2. 指定扫描方式
    • 2.1 TCP全连接扫描
      • 2.2 SYN半链接扫描
        • 2.3 隐秘扫描
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档