当前位置: 首页 > news >正文

网络安全·第四天·扫描工具Nmap的运用

今天我们要介绍网络安全中常用的一种扫描工具Nmap,它被设计用来快速扫描大型网络,主要功能包括主机探测、端口扫描以及版本检测,小编将在下文详细介绍Nmap相应的命令。

Nmap的下载安装地址为:Nmap: the Network Mapper - Free Security Scanner

一、在线主机探测

首先我们打开cmd,通过ipconfig命令,查找自己的主机在哪一个网段

ipconfig

发现子网掩码为255.255.255.0,说明本网段CIDR要以“/24”结尾,路由器网关为192.168.4.1,所以我们可以通过扫描192.168.4.1/24网段来了解自己所在的局域网有哪几台主机,分别是哪几台主机在线。

nmap 192.168.4.1/24 -sL
nmap 192.168.4.1/24 -sn

本质上都是在通过ping判断主机是否在线,不过这两条命令还是有所区别的,-sL的这条命令是把所有的可能都列举一遍,然后再说明是否在线,如下图所示,它列举了从192.168.4.0到192.168.4.255的所有IP地址,并在后面注释了该主机是否在线,也说明了192.168.4.1是网关。

个人更推荐第二种检测局域网内在线主机的方式,也就是-sn的这条命令,它不会把所有的可能都列举出来,它只显示在线的是哪15台主机,他们的MAC地址和IP地址分别是啥,如下图所示:

二、端口扫描

端口扫描的目的为确定在目标主机哪些TCP、UDP端口可访问,而确定端口后,我们也可以知道主机开启了哪些服务进程。

1、特定主机扫描

例如我们要扫描IP地址为192.168.4.119的主机的端口,我们只需要输入命令:

nmap 192.168.4.101

端口扫描结果如下,发现该主机享受了http、https等服务:

2、特定主机端口扫描

通过该命令可以知道某台主机的某端口或者某个范围内的端口是否开放:

nmap 192.168.4.101 -p 80  //扫描该主机的80号端口是否开放

发现80号端口是开放的,享受http服务:

nmap 192.168.4.101 -p 80-500  //扫描该主机的80-500号端口是否有开放的

发现该范围内80号端口以及443号端口是开放的:

3、TCP端口扫描原理与命令

①RST报文

其中RST报文用于复位因某种原因引起出现的错误连接,也用来拒绝非法数据和请求。如果接收到RST位时候,通常发生了某些错误;

②全连接扫描

        这种扫描的思想很简单,如果目标端口是开放的,那么在接到主机端口发出的SYN请求之后,就会返回一个SYN+ACK回应,表示愿意接受这次连接的请求,然后主机端口再回应一个ACK,这样就成功地和目标端口建立了一个TCP连接。

        如果目标端口是关闭的,那么在连接到主机端口发出的SYN请求之后,就会返回一个RST回应,表示不接受这次连接的请求,这样就中断了这次TCP连接。

其在Nmap中的命令为 :

nmap 192.168.4.101 -p 80 -sT

③半连接扫描

与全连接扫描相比,如果目标端口是开放的,那么在接到主机端口发出的SYN请求之后,就会返回一个SYN+ACK回应,表示愿意接受这次连接的请求,但是客户端不会回传ACK建立连接,而是会返回RST。

如果目标端口是关闭的,那么在连接到主机端口发出的SYN请求之后,就会返回一个RST回应,表示不接受这次连接的请求,这样就中断了这次TCP连接。

不论端口是否开放,在这次扫描中,都不能完整建立连接,主机也是通过三次握手中的前两次握手判断是否开放,所以从速度上来说,半连接扫描比全连接扫描更快速。

nmap 192.168.4.101 -p 80 -sS

④隐蔽扫描

向目标主机端口发送FIN包,如果端口关闭,则会返回RST包;如果端口打开,则没有任何返回。通过是否收到RST包来判断端口的开闭。

nmap 192.168.4.101 -p 80 -sF

隐蔽扫描在三类TCP端口扫描的方法中是耗时最长的,但同样的,他的隐蔽性却是最优秀的。

4、端口状态概览

状态:open  含义:应用程序正在该端口接收TCP连接或者UDP报文

状态:closed  含义:应用程序正在该端口没有接收TCP连接或者UDP报文

状态:filtered 含义:由于包过滤阻止探测报文到达端口, Nmap无法确定该端口是否开放

状态:unfiltered 含义:端口可访问,但是Nmap无法确定该端口是否开放

三、版本检测

例如,我们要查IP地址为192.168.4.101的http的版本,可输入以下命令:

nmap 192.168.4.101 -p -80 -sV

可以发现,与nmap 192.168.4.101 -p -80的结果相比,多了一列名为VERSION的列,揭示了该主机http的版本。

好的,本篇博客就到此为止了,如果你觉得小编的博客对你有所帮助,请给博主一个小小的点赞吧!

相关文章:

  • libaom 码率控制实验:从理论到实践的深度探索
  • 水污染治理(生物膜+机器学习)
  • Android离屏渲染
  • ubuntu 常用指令
  • leetcode298.生命游戏
  • E-trace for risc-v
  • 机器视觉检测Pin针歪斜应用
  • 编写了一个专门供强化学习玩的贪吃蛇小游戏,可以作为后续学习的playgraound
  • L1-028 判断素数
  • Python asyncio 入门实战-2
  • 游戏引擎学习第226天
  • 381_C++_decrypt解密数据、encrypt加密数据,帧头和数据buffer分开
  • Nacos-Controller 2.0:使用 Nacos 高效管理你的 K8s 配置
  • 0415美团面试题目详解
  • MapSet 2 (Set)
  • Vulhub-DarkHole靶机通关攻略
  • 代码随想录算法训练营第十八天
  • redisson分布式锁--实际应用!!!
  • 决策树简介
  • redis -- redis介绍,性能(与mysql性能对比),使用场景,CAP介绍
  • 关于沪泰创新合作,泰州市委书记姜冬冬谈到了三个“合”
  • 聚餐醉酒后骑车撞树身亡、家属起诉共饮者赔44万,法院已判
  • 《素食者》的植物隐喻仍暗含“肉食”逻辑
  • 教育部答澎湃:推动招生入学流程最优化、材料最简化
  • 上海与世界|陈毅与上海建设人民城市的先声