网络扫描:获取目标系统更加具体的信息,比如服务、版本、是否存在漏洞等,就需要对目标实施扫描
根据对方服务所采用的协议,在一定时间内,通过自身系统对对方协议进行特定读取、猜想验证、恶意破坏,并将对方直接或间接的返回数据作为某项指标的判断依据
网络扫描具有主动性和时限性
时限性:网络扫描通常都是在一定时间内,对一定范围内的主机进行试探性地连接和读取操作,并根据获取目标的反馈信息进行验证、判断
网络扫描通常分为
- 服务扫描
- 端口扫描
- 批量扫描
以www为例,我们不知道目标服务器是否使用www服务,此时对目标进行www服务的扫描就称之为服务扫描
我们并不想知道目标服务器是否具有某一个具体的服务,只想知道对方服务器都有哪些服务,可以通过扫描目标所有打开的端口来实现,这种操作称之为端口扫描
如果目标是一批计算机,我们想知道这些计算机是否提供某个服务或者这些计算机都打开了哪些端口,这种操作就叫做批量扫描
扫描目的 扫描工具
专门检测系统漏洞的漏洞扫描
专门针对web应用 检测并评估网站安全性的web应用扫描
网络扫描的主要功能
扫描目标主机识别其工作状态(开/关机)
识别目标主机端口的状态(监听/关闭)
识别目标主机操作系统的类型和版本
识别目标主机服务程序的类型和版本
分析目标主机、目标网络的漏洞(脆弱点)
生成扫描结果报告
以端口扫描为例,来了解网络扫描的基本原理
当一个主机向远程目标服务器的某个端口提出建立连接的请求时,如果对方有打开此服务就会应答,如果未安装,则无应答
常见的扫描技术
- TCP连接扫描:也称为全连接扫描,它是一种利用TCP协议的完整的3次握手过程进行端口扫描技术。操作系统提供的“connect()"连接函数完成系统调用,用来与目标计算机的端口进行连接。如果端口处于侦听状态,那么就能连接成功;否则,连接失败
TCP连接扫描技术优点:
1.不需要任何权限,系统中的任何用户都有权利使用这个调用
2.实现简单,稳定可靠
缺点:
扫描方式不隐蔽,很容易被发觉(服务器日志会记录下大量密集的连接和错误记录,这样就容易被防火墙发现和屏蔽)
- TCP SYN Scan(TCP同步序列号扫描):又称为”半连接扫描“,它是一种利用TCP协议但不是完整的3次握手过程来进行端口扫描的技术。扫描主机向目标主机的选择端口发送SYN包,如果应答是RST,那么,说明端口是关闭的,按照设定继续侦听其他端口;如果应答中包含SYN和ACK,说明目标端口处于监听状态。此时已完成两次握手,但在第三次握手前,扫描主机中断本次连接,使连接没有完全建立起来。
优点:不容易被发现
缺点:
在大部分操作系统中,发送主机需要构造适用于这种扫描的IP包,通常情况下,构造SYN数据包需要超级用户或者得到授权的用户,才能访问专门的系统调用
- TCP FIN Scan(TCP结束标志扫描):也成为隐蔽扫描,这种扫描方式不依赖于TCP的3次握手过程,而是依靠TCP连接的”FIN“位标志。其原理是扫描主机向目标主机某端口发送一个带有FIN标志的数据包,如果目标主机端口未开,则会回应一个RST的连接复位数据报;而开放的端口则会对这种可疑的数据报不加理睬,将它丢弃。因此可以根据是否收到RST数据报来判断对方的端口是否开放
优点:隐蔽,不易被目标系统的日志机制,扫描监测和入侵检测系统捕获。
缺点:
1.要判断对方端口是否开放必须等待超时,增加了探测时间,而且容易得出错误的结论;
2.一些系统并没有严格遵循TCP协议标准,这样,扫描方案对于这类操作系统是无效的。例,windows系列操作系统
- UDP Scan
- ICMP扫描
利用ICMP回显来检查目标主机是否存活,最常用的就是使用Ping命令