【安全扫描器原理】网络扫描算法

【安全扫描器原理】网络扫描算法

  • 1.非顺序扫描
  • 2.高速扫描 & 分布式扫描
  • 3.服务扫描 & 指纹扫描

1.非顺序扫描

参考已有的扫描器,会发现几乎所有的扫描器都无一例外地使用增序扫描,即对所扫描的端口自小到大依次扫描,殊不知,这一效果可以被对方的防火墙或IDS作为判断正被扫描的特征。虽然通过多线程会使这一特征发生少量的变化,但从整体效果上看,仍然显示增序现象

改变增序特征并不难,一般有如下几种非顺序扫描算法:

1️⃣ 逆序扫描算法,在扫描的时候,采用从大到小的逆序扫描方式

2️⃣ 随机重排扫描算法,在新排的顺序中,为了避免漏掉或重复使用某一端口,可以采用互换位置的方式进行

3️⃣ 线程前加延时扫描算法

在 Windows 系统中,多个线程是并发执行的,调度是基于抢占式的。也就是说,线程之间会竞争 CPU 时间片。但线程的启动顺序往往是按照创建线程的顺序来的,尤其在短时间内创建多个线程时,它们的启动时间差可能非常小。如果不作处理,线程 1 总是比线程 2 先执行,那么它扫描的端口或地址也往往先于线程 2,可能导致扫描行为过于集中和有规律,易被防护系统识别

为了让多个线程的扫描顺序更加随机化、分散,防止被探测机制或防火墙认为是异常行为,可以采用如下策略:

Sleep(rand() % 5000); // 每个线程延迟 0~4999 毫秒

这样,每个线程在启动执行扫描逻辑之前,会暂停一段随机时间,避免线程之间形成固定顺序和节奏


2.高速扫描 & 分布式扫描

1、高速扫描

常见的高速扫描算法有多线程并行扫描技术、基于KB(Knowledge Base,知识库)技术、将扫描和判断分离的技术

KB技术是指把扫描过的主机信息存储起来,当下次扫描的时候,首先以上次的扫描结果作为参考,先对用户最关心的方面进行重新扫描,然后对其余部分进行扫描,这样既能提高扫描速度,又能有效降低占用的带宽。例如,某次扫描中,用户只关心原有“开”的端口是否仍处于开的状态,则只需要扫描上次记录中“开”状态的端口即可

2、分布式扫描

高速扫描主要依靠多线程实现,而分布式扫描则主要使用多台主机同时对目标主机进行扫描,参与的主机可以事先约定后主动加入,也可以被入侵后植入扫描程序。在实施扫描的时候,由主控主机向各参与的主机发送要扫描的主机IP地址和端口范围,然后所有主机同时向被测主机进行扫描


3.服务扫描 & 指纹扫描

1、服务扫描

端口扫描器只能扫描出端口的状态是否开放,而不会判断端口所对应的服务是否为该端口所具有的默认服务。服务扫描则是直接对服务进行扫描,并通过服务的存在与否,间接地判断端口是否处于“开”状态

2、指纹扫描

所谓指纹识别技术就是与目标主机建立连接,并发送某种请求,由于不同操作系统以及相同操作系统不同版本所返回的数据或格式不同,这样,根据返回的数据就可以判定目标主机的操作系统类型及版本

通常的指纹识别算法有几大类:

一类是通过操作系统提供的服务进行判断,各主流操作系统都内嵌一些服务器软件,常见的如FTP、Telnet、HTTP和DNS服务器,这些软件都会在欢迎信息、版权声明、命令回复中或多或少地透露自身的版本号,这也可以间接地反映出操作系统的类型和版本号。但这种方式也有不足之处,就是这些信息有些不准,甚至是错误的

另一类就是根据一些协议实现上各操作系统的细微差别进行判断,如通过TTL值进行操作系统识别​、TCP FIN扫描等方法

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

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

相关文章

理解欧拉公式

1. 欧拉公式中的符号 欧拉公式 e i x cos ⁡ x i sin ⁡ x e^{ix}\cos xi\sin x eixcosxisinx当 x π x \pi xπ时 e i π 1 0 / / 欧拉恒等式 e^{i\:\pi}10 //欧拉恒等式 eiπ10//欧拉恒等式 e e e:自然对数的底 i i i:虚数, i 2 − 1 i^2 -1 i2−1 cos…

HTML邮件背景图兼容 Outlook

在 HTML 邮件中设置背景图片时,Outlook(尤其是桌面版的 Outlook for Windows)经常不会正确显示背景图,这是因为outlook 是使用 Word 作为邮件渲染引擎,而不是标准的 HTML/CSS 渲染方式。 推荐的解决方案:使…

杰理ac792开发板按键不起效果

按键想要起效果需要把UI给注释掉,排查了半天

Kubernetes 常用运维命令整理

目录 Kubernetes 常用运维命令整理一、集群管理二、Pod 和容器管理三、Deployment 和应用管理四、Service 和网络管理五、存储管理六、ConfigMap 和 Secret 管理七、资源使用与监控八、调度和容错九、Role 和权限管理十、清理资源 总结 Kubernetes 常用运维命令整理 Kubernete…

在 Debian 12 中恢复被删除的 smb.conf 配置文件

https://forum.ubuntu.com.cn/viewtopic.php?t494763 本文结合ai输出,内容中有些错误,但确实解决了我的问题,我采取保留完整输出的方式摘录。 在 Debian 12 中恢复被删除的 smb.conf 配置文件,需结合 dpkg 和 ucf(Upd…

GB2312/GBK是字符集吗

GB2312/GBK 是字符集吗? 是的,GB2312 和 GBBK 既是字符集(Character Set),也是编码方式(Encoding)。它们不仅定义了可表示的字符范围,还规定了这些字符在计算机中的二进制存储格式。…

BOM与DOM(解疑document window关系)

BOM(浏览器对象模型) 定义与作用 BOM(Browser Object Model)提供与浏览器窗口交互的接口,用于控制导航、窗口尺寸、历史记录等浏览器行为 window:浏览器窗口的顶层对象,包含全局属性和方法&am…

水域陆地两相宜,便携漏电探测仪

在自然灾害如洪水、地震、台风及火灾中,建筑物和电力设施易因结构破坏、线路老化或设备浸水导致绝缘失效,引发漏电事故。漏电不仅直接威胁人员生命安全,还可能引发二次火灾或爆炸,尤其在潮湿环境下导电性增强,触电风险…

c加加学习之day06->STL标准库->day01

1.介绍:C 标准模板库(Standard Template Library,简称 STL)是一组泛型编程的模板类和函数,旨在提供常用的数据结构、算法和函数对象。STL 是 C 标准库的一部分,极大地提高了编程效率和代码的可重用性。STL …

onnx注册cpu版flashattention

摘要 本教程展示了如何在 ONNX Runtime 中注册一个 CPU 可执行的 FlashAttention 算子。首先,可以直接升级到 ONNX Runtime v1.16 及以上,以获得内置的 FlashAttention CPU 实现citeturn0search2;其次,演示了如何通过 ONNX Runtime 的 Custom Op 接口自定义实现并注…

3D高斯个人笔记

入门blog,参考视频1和参考视频2 球谐函数 通俗介绍或通俗介绍,3D高斯就是利用球谐函数(SH函数)作为基函数,去求取三维空间中不同点的颜色。 SH函数作为基函数通常是表示不同角度下的距离,即三维球面点半径&#xff…

电子处方模块开发避坑指南:从互联网医院系统源码实践出发

今天,笔者将结合互联网医院系统源码实践,从技术架构、合规策略、业务流程到性能优化,为大家梳理一份电子处方模块开发避坑指南,助力各类医疗平台高效落地电子处方功能。 一、为何电子处方模块是互联网医院的“重灾区”&#xff1…

【RabbitMQ | 第2篇】RabbitMQ 控制台实现消息路由 + 数据隔离

文章目录 同步调用和异步调用MQRabbitMQ1. RabbitMQ控制台实现交换机路由到队列1.1 创建队列1.2 将消息发送给交换机,是否会到达队列 2. RabbitMQ控制台实现数据隔离2.1 添加一个用户2.2 创建新的虚拟主机 同步调用和异步调用 同步调用是指完成一个功能&#xff0c…

kubernetes》》k8s》》Heml

Heml 下载地址 安装 curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash# helm 添加 仓库 # helm repo add 仓库名称 仓库地址 helm repo add stable http://mirror.azure.cn/kubernetes/charts/# 查看helm 仓库列表 helm repo list # 结…

【专题刷题】二分查找(一):深度解刨二分思想和二分模板

📝前言说明: 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录,按专题划分每题主要记录:(1)本人解法 本人屎山代码;(2)优质解法 优质代码;&#xff…

乡村治理数字化平台:信息技术赋能乡村振兴的深度探索

在信息化技术飞速发展的背景下,数字化转型已成为推动社会进步和治理现代化的关键力量。乡村治理数字化平台,作为信息技术在乡村治理领域的深度应用,正逐步成为提升乡村治理效能、推动乡村振兴的重要工具。本文将深入探讨乡村治理数字化平台的…

PyQt6基础_QTabWidget

目录 代码 运行 官方文档 PySide6.QtWidgets.QTabWidget - Qt for Python 代码 class TempWidget(QWidget):def __init__(self):super().__init__()self.tabs QTabWidget()self.tabs.tabBarClicked.connect(self.tabs_tabBarClicked)widget_tab1 QWidget()widget_tab2…

springboot在eclipse里面运行 run as 是Java Application还是 Maven

在 Eclipse 里运行 Spring Boot 项目时,既可以选择以“Java Application”方式运行,也可以通过 Maven 命令来运行,下面为你详细介绍这两种方式及适用场景。 以“Java Application”方式运行 操作步骤 在项目中找到带有 SpringBootApplicat…

怎样记忆Precision、Recall?

首先,明确符号: TP(True Posive):标签为正,预测为正 TN(True Negative):标签为负,预测为负 FP(False Positive):标签为负,预测为正 FN(False Negative):标签为正&#xf…

【C语言】C语言动态内存管理

前言 在C语言编程中,内存管理一直是程序员需要重点关注的领域。动态内存管理更是如此,它不仅涉及到内存的灵活分配和释放,还隐藏着许多潜在的陷阱。本文将从动态内存分配的基础讲起,逐步深入到常见的错误、经典笔试题分析&#x…