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

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

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

  • 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扫描等方法

相关文章:

  • 【题解-Acwing】851. spfa求最短路
  • 动态自适应分区算法(DAPS)设计流程详解
  • 【Qt6 QML Book 基础】07:布局项 —— 锚定布局与动态交互(附完整可运行代码)
  • MySQL 报错解析:SQLSyntaxErrorException caused by extra comma before FROM
  • 网络原理 - 7(TCP - 4)
  • 技术视界 | 数据的金字塔:从仿真到现实,机器人学习的破局之道
  • EFISH-SBC-RK3588无人机地面基准站项目
  • 【Hive入门】Hive查询语言(DQL)完全指南:从基础查询到高级分析
  • 基于 EFISH-SBC-RK3588 的无人机通信云端数据处理模块方案‌
  • Redis-缓存应用 本地缓存与分布式缓存的深度解析
  • 解决 Dart Sass 的旧 JS API 弃用警告 的详细步骤和解决方案
  • 【激光雷达3D(6)】​3D点云目标检测方法;CenterPoint、PV-RCNN和M3DETR的骨干网络选择存在差异
  • 涂料油墨制造数字化转型的关键技术与挑战
  • 中间系统-SPF计算
  • 如何初入学习编程包含学习流程图
  • 《Python3网络爬虫开发实战(第二版)》配套案例 spa6
  • 出现delete CR eslint错误
  • 对patch深入理解下篇:Patch+LSTM实现以及改进策略整理
  • GrassRouter 小草MULE多5G多链路聚合通信路由设备在应急场景的聚合效率测试报告及解决方案
  • 一文走进GpuGeek | 模型调用
  • 人大法工委:涉核领域还需要有一部统领性的基础法律
  • 湖南省郴州市统战部部长黄峥嵘主动交代问题,接受审查调查
  • 机票搜索热度飙升,透过数据看五一假期旅游热度
  • 上海天文馆加持,书友可在徐家汇书院“飞越银河系”!
  • 十三届全国政协经济委员会副主任张效廉严重违纪违法被开除党籍
  • 这家企业首次签约参展进博会,为何他说“中资企业没有停止出海的步伐”