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

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

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

1.非顺序扫描

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

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

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

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

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

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

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

java 复制代码
Sleep(rand() % 5000); // 每个线程延迟 0~4999 毫秒

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


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

1、高速扫描

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

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

2、分布式扫描

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


3.服务扫描 & 指纹扫描

1、服务扫描

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

2、指纹扫描

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

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

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

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

相关推荐
匀泪2 小时前
HCIP(综合实验)
网络
是阿建吖!2 小时前
【Linux | 网络】socket编程 - 使用UDP实现服务端向客户端提供简单的服务
linux·网络·udp
WZF-Sang2 小时前
计算机网络基础——1
网络·c++·git·学习·计算机网络·智能路由器
wt_cs3 小时前
身份证识别api-便捷生活与安全社会的双重保障
安全·生活
斯普信专业组5 小时前
Zookeeper添加SASL安全认证 修复方案
安全·zookeeper·debian
是阿建吖!5 小时前
【Linux | 网络】socket编程 - 使用TCP实现服务端向客户端提供简单的服务
linux·网络·tcp/ip
Qdgr_5 小时前
传统报警难题频现,安全运行隐患重重
大数据·人工智能·安全
无锡布里渊6 小时前
分布式光纤传感:为储能安全保驾护航
安全·温度监测·安全预警·分布式光纤测温·线性感温火灾监测·线型感温火灾探测器
cui_win6 小时前
【网络】Linux 内核优化实战 - net.ipv4.tcp_dsack
linux·网络·tcp/ip
黄焖鸡能干四碗6 小时前
系统安全设计方案,软件系统安全设计方案
开发语言·数据库·安全·vue·系统安全