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

news2025/5/26 1:04:16

今天我们要介绍网络安全中常用的一种扫描工具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的版本。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2336458.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

黑龙江 GPU 服务器租用:开启高效计算新征程

随着人工智能、深度学习、大数据分析等技术的广泛应用,对强大计算能力的需求日益迫切。GPU 服务器作为能够提供卓越并行计算能力的关键设备,在这一进程中发挥着至关重要的作用。对于黑龙江地区的企业、科研机构和开发者而言,选择合适的 GPU 服…

SparseDrive---论文阅读

纯视觉下的稀疏场景表示 算法动机&开创性思路 算法动机: 依赖于计算成本高昂的鸟瞰图(BEV)特征表示。预测和规划的设计过于直接,没有充分利用周围代理和自我车辆之间的高阶和双向交互。场景信息是在agent周围提取&#xff…

Unchained 内容全面上链,携手 Walrus 迈入去中心化媒体新时代

加密新闻媒体 Unchained — — 业内最受信赖的声音之一 — — 现已选择 Walrus 作为其去中心化存储解决方案,正式将其所有媒体内容(文章、播客和视频)上链存储。Walrus 将替代 Unchained 现有的中心化存储架构,接管其全部历史内容…

确保连接器后壳高性能互连的完整性

本文探讨了现代后壳技术如何促进高性能互连的电气和机械完整性,以及在规范阶段需要考虑的一些关键因素。 当今的航空航天、国防和医疗应用要求连接器能够提供高速和紧凑的互连,能够承受振动和冲击,并保持对电磁和射频干扰 (EMI/R…

C++学习Day0:c++简介

目录 一、.C语言的发展史二、C特点三、面向对象的重要术语四、面向过程和面向对象的区别?五、开发环境:六、创建文件步骤:1.点击新建项目2.在弹出的开始栏中按如下操作3.在.pro文件中添加(重要!!&#xff0…

从零开始构建 Ollama + MCP 服务器

Model Context Protocol(模型上下文协议)在过去几个月里已经霸占了大家的视野,出现了许多酷炫的集成示例。我坚信它会成为一种标准,因为它正在定义工具与代理或软件与 AI 模型之间如何集成的新方式。 我决定尝试将 Ollama 中的一…

MATLAB学习笔记(二) 控制工程会用到的

MATLAB中 控制工程会用到的 基础传递函数表达传递函数 零极点式 状态空间表达式 相互转化画响应图线根轨迹Nyquist图和bode图现控部分求约旦判能控能观极点配置和状态观测 基础 传递函数表达 % 拉普拉斯变换 syms t s a f exp(a*t) %e的a次方 l laplace(f) …

C++ 线程间通信开发从入门到精通实战

C 线程间通信开发从入门到精通实战 在现代软件开发中,多线程程序已成为提升应用性能、实现并行处理的重要手段。随着多核处理器的普及和复杂应用需求的增加,C作为一门高性能的编程语言,在多线程开发中扮演着不可或缺的角色。然而&#xff0c…

Redis原理与Windows环境部署实战指南:助力测试工程师优化Celery调试

引言 在分布式系统测试中,Celery作为异步任务队列常被用于模拟高并发场景。而Redis作为其核心消息代理,其性能和稳定性直接影响测试结果。本文将深入解析Redis的核心原理,主要讲解Windows环境部署redis,为测试工程师提供一套完整…

Go语言入门到入土——一、安装和Hello World

Go语言入门到精通——安装和Hello World 文章目录 Go语言入门到精通——安装和Hello World下载并安装让Go跑起来为你的代码启动依赖跟踪调用外部包总结 下载并安装 下载地址:https://go.dev/dl/ 下载后傻瓜式安装 查看是否安装完成 go version让Go跑起来 创建一个…

opencv函数展示

一、图像基础 I/O 与显示 1.cv2.imread() 2.cv2.imshow() 3. cv2.waitKey() 4. cv2.imwrite() 5. cv2.selectROI() 6. cv2.VideoCapture() 二、颜色空间与转换 1. cv2.cvtColor() 2. cv2.split() 三、阈值处理 1. cv2.threshold() 2. 特殊阈值方法

【vue3】vue3+express实现图片/pdf等资源文件的下载

文件资源的下载,是我们业务开发中常见的需求。作为前端开发,学习下如何自己使用node的express框架来实现资源的下载操作。 实现效果 代码实现 前端 1.封装的请求后端下载接口的方法,需求配置aixos的请求参数里面的返回数据类型为blob // 下载 export…

如何在 Kali 上解决使用 evil-winrm 时 Ruby Reline 的 quoting_detection_proc 警告

在使用 Kali Linux 运行 Ruby 工具(例如 evil-winrm)时,你可能会遇到以下警告: Warning: Remote path completions is disabled due to ruby limitation: undefined method quoting_detection_proc for module Reline这个警告会导…

从零到一:网站设计新手如何快速上手?

从零到一:网站设计新手如何快速上手? 在当今数字化时代,网站已成为企业、个人展示信息、提供服务的重要窗口。对于想要涉足网站设计领域的新手而言,如何快速上手并掌握必要的技能成为首要任务。本文将从基础知识、软件工具、设计…

面向初学者的JMeter实战手册:从环境搭建到组件解析

🌟 ​大家好,我是摘星!​ 🌟 今天为大家带来的是面向初学者的JMeter实战手册:从环境搭建到组件解析,废话不多说,让我们直接开始~ 目录 1. JMeter简介 2. JMeter安装与配置 2.1. 安装 2.2.…

工资管理系统的主要功能有哪些

工资管理系统通过自动化薪资计算、税务处理、员工数据管理、报表生成等功能,极大地提升了薪资发放的效率和准确性。在传统的人工薪资管理中,HR人员需要手动计算每位员工的薪资,并确保符合税务要求,极易出错且耗时。而现代工资管理…

子函数嵌套的意义——以“颜色排序”为例(Python)

多一层缩进精减参数传递,参数少平铺书代码写更佳。 笔记模板由python脚本于2025-04-16 11:52:53创建,本篇笔记适合喜欢子函数嵌套结构代码形式的coder翻阅。 【学习的细节是欢悦的历程】 博客的核心价值:在于输出思考与经验,而不仅…

信息系统项目管理工程师备考计算类真题讲解四

一、三点估算(PERT) PERT(Program Evaluation and Review Technique):计划评估技术,又称三点估算技术。PERT估算是一种项目管理中用于估算项目工期或成本的方法,以下是其详细介绍: …

Golang|KVBitcask

文章目录 初识KVbitcask论文详解 初识KV bitcask论文详解 论文地址:https://riak.com/assets/bitcask-intro.pdf理想的存储引擎,应该满足下面一些特点:

基于骨骼识别的危险动作报警系统设计与实现

基于骨骼识别的危险动作报警系统设计与实现 基于骨骼识别的危险动作报警分析系统 【包含内容】 【一】项目提供完整源代码及详细注释 【二】系统设计思路与实现说明 【三】基于骨骼识别算法的实时危险行为预警方案 【技术栈】 ①:系统环境:Windows 10…