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

常见的端口扫描

以下是端口扫描方式的详细解释,包括其工作原理、特点和应用场景:


1. 完全连接扫描(Full Connect Scan)

  • 原理
    扫描器尝试与目标主机的指定端口完成完整的 TCP 三次握手

    1. 发送 SYN 报文;
    2. 接收到目标返回的 SYN-ACK
    3. 再发送 ACK 报文,建立连接。

    如果连接成功建立,说明该端口处于 开放(Open) 状态;若返回 RST(复位),则端口为 关闭(Closed)

  • 特点

    • 扫描结果准确、可靠;
    • 容易被目标主机的日志系统记录(因为连接已建立);
    • 扫描行为明显,隐蔽性差;
    • 常用于对安全性要求不高或允许深度探测的环境。
  • 应用场景
    适用于内部网络安全检测、服务可用性测试等需要高准确率的场景。


2. 半连接扫描(Half-Open Scan / SYN 扫描)

实际上 SYN扫描就是最常见的半连接扫描。解释如下:

SYN 扫描(Syn Scan)—— 半连接扫描的典型代表
  • 原理
    扫描器只完成三次握手的前两步:

    1. 发送 SYN 报文;
    2. 接收到目标返回的 SYN-ACK(表示端口开放);
    3. 不发送第三次 ACK,而是直接断开连接(可能发送 RST 复位)。

    这样,连接并未真正建立,称为“半连接”。

  • 特点

    • 不建立完整连接,隐蔽性强,不易被应用层日志记录;
    • 扫描速度快、效率高;
    • 能区分开放、关闭和过滤状态;
    • 被大多数防火墙和入侵检测系统(IDS)识别为可疑行为;
    • 是 Nmap 默认的扫描方式(nmap -sS)。
  • 应用场景
    广泛用于网络渗透测试、安全评估中的端口发现阶段。

📌 注:“半连接扫描”是一个泛称,SYN 扫描是其最常见实现方式。


3. FIN 扫描(FIN Scan)

  • 原理
    扫描器向目标端口发送一个 FIN 报文(结束连接标志),而不建立任何连接。根据返回的响应判断端口状态:

    • 如果端口 关闭,目标通常会返回 RST
    • 如果端口 开放,许多操作系统会直接丢弃 FIN 报文(无响应);
    • 因此,无响应通常被认为是端口开放的迹象。
  • 特点

    • 完全不建立连接,高度隐蔽
    • 不触发服务日志,难以被传统防火墙发现;
    • 依赖操作系统对 TCP 协议栈的实现差异,结果不总是可靠
    • 对 Windows 系统效果差(Windows 通常会对 FIN 回复 RST),但在某些类 Unix 系统上有效;
    • 使用命令:nmap -sF
  • 应用场景
    用于绕过防火墙或 IDS 的检测,适用于高级渗透测试中的隐蔽探测。


总结对比表

扫描方式是否完成三次握手隐蔽性准确性是否易被记录典型工具/命令
完全连接扫描是(三次握手)nmap -sT
SYN 扫描否(只两次)中高较难(未完成)nmap -sS(默认)
FIN 扫描否(无连接)nmap -sF

补充说明

  • 为什么 FIN 扫描能绕过防火墙?
    因为正常的 TCP 连接应以 SYN 开始,而直接发送 FIN 的数据包在正常通信中不会出现,部分防火墙或日志系统可能忽略此类异常包,从而实现“隐身”扫描。

  • 注意事项
    所有扫描行为在未经授权的情况下对他人网络进行探测均可能违法,请仅在合法授权范围内使用(如安全测试、CTF竞赛、自我系统检测)。


如果您还想了解其他扫描方式(如 ACK 扫描、NULL 扫描、UDP 扫描等),欢迎继续提问!

http://www.xdnf.cn/news/18320.html

相关文章:

  • 常德二院全栈国产化信创项目:开启医疗新质生产力的“头雁”之旅
  • Android 定位技术全解析:从基础实现到精准优化
  • 数据大屏全链路质量保障测试
  • 消息中间件(RocketMQ+RabbitMQ+Kafka)
  • C++手撕LRU
  • RocketMQ 消息消费 单个消费和批量消费配置实现对比(Springboot),完整实现示例对比
  • 链表-143.重排链表-力扣(LeetCode)
  • SQL视图、存储过程和触发器
  • npm全局安装后,cmd命令行可以访问,vscode访问报错
  • Django REST框架核心:GenericAPIView详解
  • GitHub Push 认证失败 fatal Authentication failed
  • OceanBase 分区裁剪(Partition Pruning)原理解读
  • Binlog Server守护MySQL数据0丢失
  • 基于Pytochvideo训练自己的的视频分类模型
  • python中view把矩阵维度降低的时候是什么一个排序顺序
  • 机器学习——数据清洗
  • 【论文阅读】Multi-metrics adaptively identifies backdoors in Federated Learning
  • Linux 文本处理与 Shell 编程笔记:正则表达式、sed、awk 与变量脚本
  • 本地文件上传到gitee仓库的详细步骤
  • Excel表格复制到word中格式错乱
  • Nginx 的完整配置文件结构、配置语法以及模块详解
  • 【学习笔记】大话设计模式——一些心得及各设计模式思想记录
  • Vue3全局配置Loading的完整指南:从基础到实战
  • PyTorch API 4
  • Mac 4步 安装 Jenv 管理多版本JDK
  • Linux Capability 解析
  • strncpy 函数使用及其模拟实现
  • 为什么我的UI界面会突然卡顿,失去响应
  • 安装使用Conda
  • pyqt 的自动滚动区QScrollArea