第六讲 网络扫描技术

概念:网络扫描,作用,类型

理解

       主机扫描:传统主机扫描(ICMP-echo  No-echo)、高级主机扫描‘

       端口扫描(半开放和秘密扫描需要系统权限):开发扫描Connect 半开放扫描SYN 秘密扫描FIN

       操作系统栈指纹扫描(被动 主动)

运用举例:

        能够区分不同扫描技术的作用,选择恰当的扫描工具,完成对系统状态的检测。



引言

网络攻击过程:信息收集、探测、突破、隐身、巩固成果

概念

网络扫描是信息探测的一种技术手段,其主要基于TCP/IP协议,对各种网络服务,无论是主机或者防火墙、路由器都适用,既可以来检测配置的安全性,也可以被攻击者用于寻找入侵点。

作用:有助于系统的安全性、了解系统的工作状态

主要扫描技术:主机扫描、端口扫描、操作系统指纹扫描

一、主机扫描

传统主机扫描技术:

ICMP Echo Request和Echo Reply:通过简单地向目标主机发送ICMP Echo Request数据包,并等待回复的ICMP Echo Reply包,如Ping

ICMP Sweep:使用ICMP Echo Request一次探测多个目标主机。探测包并行发送,以提高效率

Broadcast ICMP:设置ICMP请求包的目标地址为广播地址或者网络地址,则可以探测广播域或者整个网络范围内的主机,只适合于UNIX/Linux系统

Non-Echo ICMP:其他ICMP服务类型也可以用于对主机或者网络设备的探测

ICMP报文类型:

0 Echo Reply        3 Destination Unreachable           4 Source Quench         5 Redirect       8 Echo
11 Time Exceeded       12 Parameter Problem          13 Timestamp            14 Timestamp Reply
15 Information Request           16 Information Reply             17 Address Mask Request          18 Address Mask Reply

高级主机扫描技术:利用探测主机产生的ICMP错误报文来进行复杂的主机探测

异常的IP包头:向目标主机发送包头错误的IP包,目标主机或者过滤设备会反馈ICMP  Parameter Problem Error信息。常见伪造错误字段为Header Length和IP Options

在 IP头中设置无效的字段值:向目标主机发送的IP包中填充错误的字段值,例如错误的协议类型,目标主机会反馈3信息。

通过超长包探测内部路由器

反向映射探测:用于探测被过滤设备或者防火墙保护的网络和主机。构造可能的内部IP地址列表,并向这些地址发送数据包,用来探测释放在该网络中

二、端口扫描

开放扫描:需要扫描方通过三次握手过程与目标主机建立完整的TCP连接;可靠性高,产生大量审计数据,容易被发现

半开放扫描:扫描方不需要打开一个完全的TCP连接

秘密扫描:不包含标准的TCP三次握手协议的任何部分;隐蔽性好,但这种扫描使用的数据包在通过网络时容易被丢弃从而产生错误的探测信息。

1.TCP connect()扫描(开发):

原理:扫描器调用socket的connect()函数发起一个正常的连接,如果端口是打开的,则连接成功,否则,连接失败

优点:简单,不需要特殊的权限,结果可靠

缺点:服务器可以记录下客户的连接行为,如果同一个客户轮流对每一个端口发起连接,则一定是在扫描。

2.TCP SYN扫描(半开放):

原理:向目标主机的特定端口发送一个SYN包,如果应答包为RST包,则说明该端口是关闭的,否则,会收到一个SYN|ACK包。于,发送一个RST,停止建立连接。由于连接没有完全建立所以称为“半开连接扫描”

优点:很少有系统会记录这样的行为,结果可靠

缺点:需要对网络套接字的原始访问,在UNIX平台上,需要root权限才可以建立这样的SYN数据包

3.TCP FIN扫描(秘密):

原理:扫描器发送一个FIN数据包,如果端口是关闭的,则远程主机丢弃该包,并送回一个RST包,否则的话,远程主机丢弃该包,不回送

优点:不是TCP建立连接的过程,所以比较隐蔽

缺点:与SYN扫描类似,也需要构造专门的数据包,在Windows平台无效,总是发送RST包

三、操作系统辨识

辨识方法:一些端口的提示信息(Telnet、HTTP、FTP服务)、TCP/IP栈指纹、DNS泄露出OS

栈指纹技术:利用TCP/IP协议栈实现上的特点来辨识一个操作系统

一些工具:Checks,Queso,Nmap

主动栈指纹识别技术:

原理:寻找不同操作系统之间在处理网络数据包上的差异,并且把足够多的差异组合起来,以便精确地识别出一个系统的OS版本

配置能力:扩展性,新的OS,版本不断推出;定义一种配置语言或者格式

被动栈指纹识别技术

工作过程:不是向目标系统发送分组,而是被动监测网络通信,以确定所用的操作系统

                   根据TCP/IP会话的几个属性:TTL、窗口大小、DF分片标志、TOS服务类型

                    Siphon工具

                    osprints.conf



你可能感兴趣的:(第六讲 网络扫描技术)