网络扫描与防御技术

扫描技术基础

什么是网络扫描器

网络扫描器可以通过执行一些脚本文件来模拟对网络系统进行攻击的行为并记录系统的反应,从而搜索目标网络内的服务器、路由器、交换机和防火墙等设备的类型与版本,以及在这些远程设备上运行的脆弱服务,并报告可能存在的脆弱性。

网络扫描器是一把双刃剑

扫描器是一把“双刃剑”。当它被用作安全评估工具时,是系统管理员保障系统安全的有效工具;当它被用作网络漏洞扫描器时,是网络入侵者收集信息的重要手段。

为什么需要网络扫描器

由于网络技术的飞速发展,网络规模迅猛增长和计算机系统日益复杂,导致新的系统漏洞层出不穷。
由于系统管理员的疏忽或缺乏经验,导致旧有的漏洞依然存在。
许多人出于好奇或别有用心,不停的窥视网上资源。

扫描的重要性

扫描的重要性在于把繁琐的安全检测,通过程序来自动完成,这不仅减轻了网络管理员的工作,而且也缩短了检测时间;同时,也可以认为扫描器是一种网络安全性评估软件,利用扫描器可以快速、深入地对 目标网络进行安全评估;网络安全扫描技术与防火墙、安全监控系统互相配合能够为网络提供很高的安全性。

网络扫描器的主要功能

扫描目标主机识别其工作状态(开/关机)
识别目标主机端口的状态(监听/关闭)
识别目标主机操作系统的类型和版本
识别目标主机服务程序的类型和版本
分析目标主机、目标网络的漏洞(脆弱点)
生成扫描结果报告

网络扫描器与漏洞的关系

网络漏洞是系统软、硬件存在安全方面的脆弱性,安全漏洞的存在导致非法用户入侵系统或未经授权获得访问权限,造成信息篡改、 拒绝服务或系统崩溃等问题。
网络扫描可以对计算机网络系统或网络设备进行安全相关的检测,以找出安全隐患和可能被黑客利用的漏洞。

扫描三步曲

一个完整的网络安全扫描分为三个阶段:
第一阶段:发现目标主机或网络
第二阶段:发现目标后进一步搜集目标信息, 包括操作系统类型、运行的服务以及服务软件的版本等。如果目标是一个网络,还可以进一步发现该网络的拓扑结构、路由设备以及各主 机的信息。
第三阶段:根据收集到的信息判断或者进一步测试系统是否存在安全漏洞。

网络安全扫描技术包括 PING 扫描、操作系统探测、穿透防火墙探测、端口扫描、漏洞扫描等。
1、PING扫描用于扫描第一阶段,识别系统是否活动。
2、OS探测、穿透防火墙探测、端口扫描用于扫描第二阶段,OS探测是对目标主机运行的OS进行识别,穿透防火墙探测用于获取被防火墙保护的网络资料,端口扫描是通过与目标系统的TCP/IP端口连接,并查看该系统处于监听或运行状态的服务。
3、漏洞扫描用于安全扫描第三阶段,通常是在端口扫描的基础上,进而检测出目标系统存在的安全漏洞。

一个典型的扫描案例

1、Find targets
选定目标为:192.168.1.18
测试此主机是否处于活动状态,工具是用操作系统自带的ping,使用命令:ping 192.168.1.18

2、Port Scan
运用扫描工具,检查目标主机开放的端口, 判断它运行了哪些服务。
使用的工具是 Nmap 4.20
扫描命令:nmap 192.168.1.18
我们将重点关注SMTP端口
25/tcp open smtp

3、Vulnerability Check
检测 SMTP 服务是否存在漏洞
使用漏洞扫描工具 Nessus 3

4、Report
Nessus发现了目标主机的SMTP服务存在漏洞。

常见的扫描技术

TCP/IP相关知识

TCP 报文格式

TCP控制位
URG: 为紧急数据标志。如果它为1,表示本数据包中包含紧急数据。此时紧急数据指针有效。
ACK: 为确认标志位。如果为1,表示包中的确认号是有效的。否则,包中的确认号无效。
PSH: 如果置位,接收端应尽快把数据传送给应用层。
RST: 用来复位一个连接。RST标志置位的数据包称为复位包。一般情况下,如果TCP收到 的一个分段明显不是属于该主机上的任何一个 连接,则向远端发送一个复位包。
SYN: 标志位用来建立连接,让连接双方同步序列号。如果SYN=1而ACK=0,则表示该 数据包为连接请求,如果SYN=1而ACK=1 则表示接受连接。
FIN: 表示发送端已经没有数据要求传输了,希望释放连接。

正常TCP通信过程:
建立连接
数据传输
断开连接

ICMP协议:
Internet Control Message Protocol,是IP的一部分,在IP协议栈中必须实现。
用途:
网关或者目标机器利用ICMP与源通讯;当出现问题时,提供反馈信息用于报告错误。
特点:
其控制能力并不用于保证传输的可靠性;
它本身也不是可靠传输的;
并不用来反映ICMP报文的传输情况。

常用网络命令

PING

Ping是最基本的扫描技术。ping命令主要目的是检测目标主机是不是可连通,继而探测一个IP范围内的主机是否处于激活状态。
ping是一个基本的网络命令,用来确定网络上具有某个特定IP地址的主机是否存在以及是否能接收请求。
Ping命令通过向计算机发送ICMP回应报文并且监听回应报文的返回,以校验与远程计算机或本地计算机的连接。
ping在安装了TCP/IP协议后可以使用

-n: 发送ICMP回应报文的个数

Traceroute

Traceroute,跟踪两台机器之间的路径,显示中间的每一个节点的信息。这个工具可以用来确定某个主机的位置。
traceroute 命令旨在用于网络测试、评估和管理。它应主要用于手动故障隔离。

-f:-f后指定一个初始TTL,它的范围是大于0小于最大TTL,缺省为1。
-m:-m后指定一个最大TTL,它的范围是大于初始TTL,缺省为30。
-p:-p后可以指定一个整数,该整数是目的主机的端口号,它的缺省为33434,用户一般无须更改此选项。
-q:-q后可以指定一个整数,该整数是每次发送的探测数据包的个数,它的范围是大于0,缺省为3。
-w:-w后可以指定一个整数,该整数指明IP包的超时时间,它的范围是大于0,缺省为5秒。
host:目的主机的IP地址。

Tracert、x-firewalk

Windows下用 tracert 命令可以查看路由信息,但是如今的路由器大部分都对 tracert 命令做了限制,此命令已经没有效果。
有黑客开发出 x-firewalk.exe 可用于在 Windows 环境下查看路由信息,非常实用。
命令:x-firewalk www.163.com
可以看到本地到达 www.163.com 都经过了哪些路由器

net

Net命令系列,很多的 Windows 的网络命令都是net开头的。利用net开头的命令,可以实现很多的网络管理功能,比如用 net start server,可以启动服务器;NET USE 用于将计算机与共享的资源相连接,或者切断计算机与共享资源的连接,当不带选项使用本命令时,它会列出计算机的连接。
net use命令及参数使用

旁路控制、破坏信息完整性

(1) 用户名为Administrator,密码为longmang与远程计算机192.168.1.34进行IPC $ 连接,如图所示。

(2)查看与远程计算机建立的连接,如图所示。

(3)将远程计算机的c盘映射到本地o盘,如图所示。

(4)删除一个IPC$连接

(5)删除共享映射

主机扫描

主机扫描的目的是确定在目标网络上的主机是否可达。这是信息收集的初级阶段,其效果直接影响到后续的扫描。
常用的传统扫描手段有:

ICMP Echo扫描

实现原理:Ping的实现机制,在判断在一个网络上主机是否开机时非常有用。向目标主机发送 ICMP Echo Request (type 8)数据包,等待回复的ICMP Echo Reply 包(type 0) 。如果能收到,则表明目标系统可达,否则表明目标系统已经不可达或发送的包被对方的设备过滤掉。
优点:简单,系统支持
缺点:很容易被防火墙限制
可以通过并行发送,同时探测多个目标主机,以提高探测效率(ICMP Sweep扫描)。

ICMP Sweep扫描

使用ICMP ECHO轮询多个主机称为 ICMP SWEEP(或者Ping Sweep)。
对于小的或者中等网络使用这种方法来探测主机是一种比较可接受的行为,但对于一些大的网络这种方法就显的比较慢,原因是Ping在处理下一个之前将会等待正在探测主机的回应。
扫描工具Nmap实现了ICMP sweep的功能。

Broadcast ICMP扫描

实现原理:将ICMP请求包的目标地址设为广播地址或网络地址,则可以探测广播域或整个网络范围内的主机。
缺点:
只适合于UNIX/Linux系统,Windows 会忽略这种请求包;
这种扫描方式容易引起广播风暴

Non-Echo ICMP扫描

一些其它ICMP类型包也可以用于对主机或网络设备的探测,如:
Stamp Request (Type 13)
Reply (Type 14)
Information Request (Type 15)
Reply (Type 16)
Address Mask Request (Type 17)
Reply (Type 18)

主机扫描技术-高级技术
防火墙和网络过滤设备常常导致传统的探测手段变得无效。为了突破这种限制,必须采用一些非常规的手段,利用ICMP协议提供网络间传送错误信息的手段,往往可以更有效的达到目的:
异常的IP包头
在IP头中设置无效的字段值
错误的数据分片
通过超长包探测内部路由器
反向映射探测

端口扫描

当确定了目标主机可达后,就可以使用端口扫描技术,发现目标主机的开放端口,包括网络协议和各种应用监听的端口。

全扫描

全扫描原理
全TCP连接是TCP端口扫描的基础。
扫描主机尝试(使用三次握手)与目标主机的某个端口建立正规的连接。
连接由系统调用 connect() 开始。如果端口开放,则连接将建立成功;否则,返回-1,则表示端口关闭。

TCP Connect端口扫描服务端与客户端建立连接成功(目标端口开放)的过程:
Client端发送SYN;
Server端返回SYN/ACK,表明端口开放;
Client端返回ACK,表明连接已建立;
Client端主动断开连接。

TCP Connect端口扫描服务端与客户端未建立连接成功(目标端口关闭)过程:
Client端发送SYN;
Server端返回RST/ACK,表明端口未开放。

优点是实现简单,对操作者的权限没有严格要求(有些类型的端口扫描需要操作者具有 root 权限),系统中的任何用户都有权力使用这个调用。另一优点是扫描速度快。如果对每个目标端口以线性的方式,使用单独的 connect() 调用,可以通过同时打开多个套接字,从而加速扫描。
缺点是扫描方式不隐蔽;这种扫描方法很容易被检测出来,在日志文件中会有大量密集的连接和错误记录;并容易被防火墙发现和屏蔽。

半扫描

TCP SYN扫描
在这种技术中,扫描主机向目标主机的选择端口发送SYN数据段。
如果应答是RST,那么,说明端口是关闭的, 按照设定继续探听其他端口;
如果应答中包含SYN和ACK,说明目标端口处于监听状态。
由于SYN扫描时,全连接尚未建立,所以,这种技术通常被称为“半连接”扫描。

SYN扫描的优点在于即使日志中对于扫描有所记录,但是尝试进行连接的记录也要比全扫描的记录少的多。
SYN扫描缺点是在大部分操作系统中,发送主机需要构造适用于这种扫描的IP包,通常情况下,构造SYN数据包需要超级用户或者得到授权的用户,才能访问专门的系统调用。

秘密扫描

TCP FIN扫描技术使用FIN数据包探测端口:
当一个FIN数据包到达一个关闭的端口,数据包会被丢掉,且返回一个RST数据包。
当一个FIN数据包到达一个打开的端口,数据包只是简单丢掉(不返回RST数据包)。
由于这种技术不包含标准的TCP三次握手协议的任何部分,所以无法被记录下来,从而比SYN扫描隐蔽的多。
FIN数据包能通过监测SYN包的包过滤器—— TCP FIN扫描又称作秘密扫描。

扫描主机向目标主机发送FIN数据包来探听端口,若FIN数据包到达的是一个打开的端口,数据包则被简单的丢掉,并不返回任何信息,如图所示:

当FIN数据包到达一个关闭的端口,TCP会把它判断成是错误,数据包会被丢掉,并且回返回一个RST数据包,如图所示:

秘密扫描能躲避IDS、防火墙、包过滤器和日志审计,从而获取目标端口的开放或关闭的信息。
和SYN扫描类似,秘密扫描也需要构造自己的IP包。
TCP FIN扫描通常适用于UNIX/Linux目标主机。
在Windows环境下,该方法无效, 因为不论目标端口是否打开,操作系统都发送RST。这在区分UNIX和Windows时是十分有用的。

Xmas 和 Null 扫描是秘密扫描的两个变种
Xmas扫描打开FIN、URG和PSH标记
而Null扫描关闭所有标记
使用这些组合的目的是为了通过所谓的FIN标记监测器的过滤。

扫描主机将TCP数据包中的ACK(确认)、 FIN(结束连接)、RST(重新设定连接)、 SYN(连接同步化要求)、URG(紧急)、 PSH(接收端将数据转由应用处理)标志位置空后发送给目标主机。
若目标端口开放,目标主机将不返回任何信息;若目标主机返回 RST息,则表示端口关闭。

XMAS扫描原理和NULL扫描的类似,将 TCP数据包中的ACK、FIN、RST、SYN、 URG、PSH标志位置1后发送给目标主机。
若目标端口开放,目标主机将不返回任何信息;若目标主机返回RST信息,则表示端口关闭。

远程主机OS指纹识别

操作系统(Operating System,简称OS)识别是入侵或安全检测需要收集的重要信息,是分析漏洞和各种安全隐患的基础。
只有确定了远程主机的操作系统类型、版本,才能对其安全状况作进一步的评估。
利用TCP/IP堆栈作为特殊的“指纹”,以确定系统的技术——远程主机OS指纹识别。

主动协议栈指纹识别

由于TCP/IP协议栈技术只是在RFC文档中描述,各个公司在编写应用于自己的OS 的TCP/IP协议栈的时候,对RFC文档做出了不尽相同的诠释;造成了各个OS在TCP/IP协议的实现上的不同;通过对不同的OS的TCP/IP协议栈存在的些微差异的鉴别来判定OS类型。

主要技术有:
FIN探测、ISN采样探测、Don’t Fragment位探测、TCP初始窗口的大小检测、ACK值探测、ICMP出错消息抑制、ICMP出错消息回射完整性、TOS服务类型、片断处理
1、FIN探测:通过向目标主机上的一个打开的端口发送一个FIN分组,然后等待回应;许多系统如: WINNT、CISCO IOS、HP/UX、IRIX的TCP/IP协议栈实现将返回一个 Reset。
2、ISN采样探测:这是寻找初始化序列长度模板与特定的OS匹配的方法,这样可以区分一些OS,如早些的UNIX系统是64K长度。而一些新的UNIX系统则是随机增加长度,如Solaris、 IRIX、FreeBSD、Digital Unix、 Cray等。
3、Don’t Fragment位探测:一些操作系统会设置IP头部“Don’t Fragment位”(不分片位)以改善性能, 监视这个位就可以判定区分远程OS。
4、TCP初始窗口大小探测:简单检查返回的包里包含的窗口大小。某些 OS在TCP/IP协议栈的实现中,这个值是独特的。如AIX是0x3F25,NT和BSD是 0x402E,可以增加指纹鉴别的准确度。
5、ACK值探测:不同的OS对TCP/IP协议栈实现在ACK包的序列号值的选择上存在差异,有些OS发回所确认的TCP包的序列号,另外一些则发回所确认的TCP包的序列号加1。
6、ICMP出错信息抑制:有些OS限制ICMP出错消息的速率。通过某个随机选定的高端口发送UDP包,可统计出在某个给定时间段内接受的不可达出错消息的数目。
7、ICMP出错消息回射完整性:某些OS对TCP/IP协议栈的实现在返回 ICMP出错消息的时候会修改所引用的IP头,检测对IP头的改动的类型可以粗略判断OS。
8、TOS服务类型:检测ICMP端口不可到达消息的TOS字段, 多数OS会是0,而另一些则不是。
9、片断处理:不同的TCP/IP协议栈实现对重叠的片断处理上有差异。有些在重组时会用到后到达的新数据覆盖就数据,有些则相反。

被动协议栈指纹识别

主动协议栈指纹识别由于需要主动往目标发送数据包,但这些数据包在网络流量中比较惹人注意,因为正常使用网络不会按这样的顺序出现包,因此比较容易被IDS扑获。
为了隐秘的识别远程OS,需要使用被动协议栈指纹识别。

被动协议栈指纹识别在原理上和主动协议栈指纹识别相似,但是它从不主动发送数据包,只是被动的捕获远程主机返回的包来分析其OS类型版本,一般可以从4个反面着手:
TTL值:这个数据是操作系统对出站的信息包设置的存活时间。
Windows Size:操作系统设置的TCP窗口大小, 这个窗口大小是在发送FIN信息包时包含的选项。
DF:可以查看操作系统是否设置了不准分片位。
TOS:操作系统是否设置了服务类型。

漏洞扫描

漏洞扫描主要通过以下两种方法来检查目标主机是否存在漏洞:
1、在端口扫描后得知目标主机开启的端口以及端口上的网络服务,将这些相关信息与网络漏洞扫描系统提供的漏洞库进行匹配,查看是否有满足匹配条件的漏洞存在;
2、通过模拟黑客的攻击手法,对目标主机系统进行攻击性的安全漏洞扫描,如测试弱势口令等,若模拟攻击成功,则表明目标主机系统存在安全漏洞。

基于网络系统漏洞库,漏洞扫描大体包括CGI漏洞扫描、POP3漏洞扫描、FTP漏洞扫描、SSH漏洞扫描、HTTP漏洞扫描等。这些漏洞扫描是基于漏洞库,将扫描结果与漏洞库相关数据匹配比较得到漏洞信息;

漏洞扫描还包括没有相应漏洞库的各种扫描,比如 Unicode遍历目录漏洞探测、FTP弱势密码探测、 OPENRelay邮件转发漏洞探测等,这些扫描通过使用插件(功能模块技术)进行模拟攻击,测试出目标主机的漏洞信息。

漏洞库的匹配方法
1、基于网络系统漏洞库的漏洞扫描的关键部分就是它所使用的漏洞库。通过采用基于规则的匹配技术,即根据安全专家对网络系统安全漏洞、黑客攻击案例的分析和系统管理员对网络系统安全配置的实际经验,可以形成一套标准的网络系统漏洞库,然后再在此基础之上构成相应的匹配规则,由扫描程序自动的进行漏洞扫描的工作。
2、这样,漏洞库信息的完整性和有效性决定了漏洞扫描系统的性能,漏洞库的修订和更新的性能也会影响漏洞扫描系统运行的时间。因此,漏洞库的编制不仅要对每个存在安全隐患的网络服务建立对应的漏洞库文件,而且应当能满足前面所提出的性能要求。

插件/功能模块技术
1、插件是由脚本语言编写的子程序,扫描程序可以通过调用它来执行漏洞扫描,检测出系统中存在的一个或多个漏洞。添加新的插件就可以使漏洞扫描软件增加新的功能,扫描出更多的漏洞。插件编写规范化后,甚至用户自己都可以用perl、c或自行设计的脚本语言编写的插件来扩充漏洞扫描软件的功能。
2、这种技术使漏洞扫描软件的升级维护变得相对简单,而专用脚本语言的使用也简化了编写新插件的编程工作,使漏洞扫描软件具有强的扩展性。

系统配置规则库问题
如果规则库设计的不准确,预报的准确度就无从谈起;
它是根据已知的安全漏洞进行安排和策划的, 而对网络系统的很多危险的威胁却是来自未知的漏洞,这样,如果规则库更新不及时,预报准确度也会逐渐降低。

漏洞库信息要求
漏洞库信息是基于网络系统漏洞库的漏洞扫描的主要判断依据。如果漏洞库信息不全面或得不到即时的更新,不但不能发挥漏洞扫描的作用,还会给系统管理员以错误的引导,从而对 系统的安全隐患不能采取有效措施并及时的消除。

扫描工具

扫描器是检测远程或本地系统安全脆弱性的软件;通过与目标主机TCP/IP端口建立连接和并请求某些服务(如TELNET、 FTP等),记录目标主机的应答,搜集目标主机相关信息(如匿名用户是否可以登录等),从而发现目标主机某些内在的安全弱点。
如果扫描范围具有一定的规模,比如要在一个较大的范围内对网络系统进行安全评估,那就需要使用一些多功能的综合性工具。
一般来说,这些多功能的综合性扫描工具,都可以对大段的网络IP进行扫描,其扫描内容非常广泛,基本上包含了各种专项扫描工具的各个方面。
我们将要介绍的扫描工具都是综合性扫描工具。

SATAN

实际上随着软件规模的日益增大,软件出现安全漏洞是不可避免的,尽管程序员一般不会故意在程序中留下漏洞。及时地公布安全漏洞和补丁,让网络管理员及时进行补救,才是正确的方法。而SATAN的公布,的确促使所有的操作系统厂商及时的修正了他们的系统中的漏洞。SATAN的出现,带来了网络安全方面的全新的观念:以黑客的方式来思考网络安全的问题。这个观念体现在Farmer和Venema于1993年发表的文章《通过攻入你的网站来提高安全》(Improving the Security of Your Site by Breaking Into It)中。

轻度扫描
包含最少的入侵扫描。SATAN从域名系统(Domain Name System, 简称DNS)收集信息,看看主机提供哪些远程过程调用,通过网络提供哪些文件共享。 根据这些信息,SATAN就得到主机的一般信息。

标准扫描
在这个层次上,SATAN探测常见的网络服 务,包括finger、remote login、ftp、 www、gopher、email等。根据这些信息,SATAN能判断主机的类型,是 Windows服务器,还是HP-UNIX, Soloaris还是Linux,甚至还能探测服务器软件的版本。

重度扫描
当知道目标主机提供什么服务之后, SATAN进行更深入的扫描。在这个扫描级别上,SATAN探测匿名服务器的目录是不是可写,X Windows服务器是不是关闭了访问控制,/etc/hosts.equiv文件中是 否有“*”号,等等。

SATAN作为最早的并且是最典型的扫描工具,具备以下特点:
扫描指定的主机系统
扫描常见的弱点
给数据分析提供帮助
总之,SATAN能够自动扫描本地和远程系统的弱点,为系统的安全或远程攻击提供帮助。

NMAP

Nmap(Network Mapper),是由Fyodor制作的端口扫描工具。
它除了提供基本的TCP和UDP端口扫描功能外, 还综合集成了众多扫描技术,可以说,现在的端口扫描技术很大程度上是根据Nmap的功能设置来划分的。
Nmap还有一个卓越的功能,那就是采用一种叫做“TCP栈指纹鉴别(stack fingerprinting)” 的技术来探测目标主机的操作系统类型。

其基本功能有三个:
1、探测一组主机是否在线,主机扫描技术。
2、扫描主机端口,嗅探所提供的网络服务,端口扫描技术。
3、还可以推断主机所用的操作系统,远程主机OS指纹识别

使用说明:
1、Ping扫描:了解哪些机器是up的
nmap –sP 202.38.64.1
缺省时同时使用发送icmp和对80端口发送ack来探测
可以用nmap –sP –P0 不发送icmp消息

使用-sP选项进行ping扫描,缺省情况下,Nmap给每个扫描到的主机发送一个ICMP echo包和一个TCP ACK包,主机对这两种包的任何一种产生的响应都会被Nmap得到。Nmap也提供扫描整个网络的简易手段。下图是对一个网段进行ping扫描的情况。

2、TCP connect扫描:
nmap –sT 202.38.64.1

使用-sT选项指定进行TCP connect端口扫描(全扫描),如果不指定端口号,缺省情况下Nmap会扫描1-1024和 nmap-services文件(在Nmap下载包中)中列出的服务端 口号。下图是利用-sT对192.168.0.1主机进行TCP connect扫描的情况,扫描端口为TCP21-25、80以及 139端口,最终结果显示,21、25、80和139端口是开放的。

3、TCP SYN扫描
nmap –sS 202.38.64.1
4、TCP FIN, XMAS, NULL扫描:
nmap –sF 202.38.64.1
nmap –sX 202.38.64.1
nmap –sN 202.38.64.1
5、UDP扫描:
nmap –sU 202.38.64.1

Nmap可以进行目标主机操作系统类型的探测,这需 要使用-O选项。另外,我们可以使用-P0选项来指定不进行ping扫描。-v选项可以指定详细结果输出。下图所示的例子中,综合运用了上述选项。

NMAP特点:
1、NMAP 是一款开源的扫描工具, 用于系统管理员查看一个大型的网络有哪些主机以及其上运行何种服务。
2、它支持多种协议的扫描如UDP,TCP connect(),TCP SYN (半连接),Ftp Proxy (暴力攻击),Reverse-Ident,ICMP (Ping Sweep),FIN,ACK Sweep,Xmas Tree,SYN Sweep和Null扫描。
3、NMAP还提供一些实用功能如通过TCP/IP来鉴别操作系统类型、秘密扫描、动态延迟和重发、平行扫描、通过并行的PING鉴别下属的主机、欺骗扫描、端口过滤探测、直接的RPC扫描、分布扫描、灵活的目标选择以及端口的描述。
4、NMAP主要的特色就是多种扫描模式以及指纹识别技术。

Nessus

Nessus采用基于插件的技术。
工作原理是通过插件模拟黑客的攻击,对目标主机系统进行攻击性的安全漏洞扫描,如测试弱势口令等,若模拟攻击成功,则表明目标主机系统存在安全漏洞。
Nessus可以完成多项安全工作,如扫描选定范围内的主机的端口开放情况、提供的服务、是否存在安全漏洞等等。

特点:
采用了基于多种安全漏洞的扫描,避免了扫描不完整的情况。
Nessus基于插件体制,扩展性强,支持及时的在线升级,可以扫描自定义漏洞或者最新安全漏洞。
Nessus采用客户端/服务端机制,容易使用、功能强大。

Nessus架构

扫描过程

X-Scan

X-Scan是国内最著名的综合扫描器,它完全免费,是不需要安装的绿色软件、界面支持中文和英文两种语言、包括图形界面和命令行方式。
X-Scan把扫描报告对扫描到的每个漏洞进行“风险等级”评估,并提供漏洞描述、漏洞溢出程序,方便网管测试、修补漏洞。

采用多线程方式对指定IP地址段(或单机) 进行安全漏洞检测,支持插件功能。
3.0及后续版本提供了简单的插件开发包, 便于有编程基础的朋友自己编写或将其他调试通过的代码修改为X-Scan插件。
扫描内容包括:远程服务类型、操作系统类型及版本,各种弱口令漏洞、后门、应用服务漏洞、网络设备漏洞、拒绝服务漏洞等 20多个大类。
对于多数已知漏洞,给出了相应的漏洞描述、 解决方案及详细描述链接。
因此,X-scan与Nessus一样,也完成了主机扫描、端口扫描、远程主机OS识别和漏洞扫描四大功能。

主界面

设置扫描参数
通过右侧窗口的“指定IP范围”可以输入独立 的IP地址或域名,也可输入以“-”和“,”分隔 的IP地址范围
如192.168.0.1-20, 192.168. 1.10-192.168.1.254”,或类 似“192.168.100.1/24”的格式。

全局设置
“扫描模块”项:选择本次扫描需要加载的插件
“并发扫描”项:设置并发扫描的主机和并发线程数,也可以单独为每个主机的各个插件 设置最大线程数
“网络设置”项:设置适合的网络适配器
“扫描报告”项:扫描结束后生成的报告文件名,保存在LOG目录下
“其他设置”项
插件设置,该模块提供对各个插件的设置方法。

设置检测范围为192.168.1.10- 20,其它使用默认设置,扫描过程如图所示。

查看扫描报告

常见扫描工具比较

扫描的防御

反扫描技术的原理

反扫描技术是针对扫描技术提出的。
扫描技术一般可以分为主动扫描和被动扫描两种,它们的共同点在于在其执行的过程中都需要与受害主机互通正常或非正常的数据报文。

主动扫描:是主动向受害主机发送各种探测数据包,根据其回应判断扫描的结果。因此防范主动扫描可以从以下几个方面入手:
1、减少开放端口,做好系统防护;
2、实时监测扫描,及时做出告警;
3、伪装知名端口,进行信息欺骗。

被动扫描由其性质决定,它与受害主机建立的通常是正常连接,发送的数据包也属于正常范畴,而且被动扫描不会向受害主机发送 大规模的探测数据,因此其防范方法到目前 为止只能采用信息欺骗(如返回自定义的banner信息或伪装知名端口)这一种方法。

防火墙技术

防火墙技术是一种允许内部网接入外部网络,但同时又能识别和抵抗非授权访问的网络技术,是网络控制技术中的一种。
防火墙的目的是要在内部、外部两个网络之间建立一个安全控制点,控制所有从因特网流入或流向因特网的信息都经过防火墙,并检查这些信息,通过允许、拒绝或重新定向经过防火墙的数据流,实现对进、出内部网络的服务和访问的审计和控制。

防火墙的包过滤技术对单个包实施控制,根据数据包内部的源地址、目的地址、协议类型、源端口号及目的端口号、各种标志位以及ICMP消息类型等参数与过滤规则进行比较,判断数据是否符合预先制定的安全策略,从而决定数据包的转发或丢弃。包过滤技术可以将扫描数据包阻挡在“堡垒” 之外。

防火墙的状态检测技术把属于同一连接的所有数据包作为一个整体来看待,不仅检查所有通信的数据,还分析先前通信的状态。
状态检测对每一个包的检查不仅根据规则表, 更考虑了数据包是否符合会话所处的状态,因此状态检测为防火墙提供了对传输层的控制能力。
通过防火墙的状态检测,很容易跟踪到数据包的状态,从而判断哪些包是正常的连接请求,哪些包是扫描包。

审计技术

审计技术是使用信息系统自动记录下的网络中机器的使用时间、敏感操作和违纪操作等,为系统进行事故原因查询、事故发生后的实时处理提供详细可靠的依据或支持。
审计技术可以记录网络连接的请求、返回等信息,从中识别出扫描行为。

其它反扫描技术

如果仅仅讨论对扫描技术的防范问题的话,下面这几种技术也非常实用而且简单易行: (1)数据包监听 (2)端口监测

小结

扫描是网上攻击者获取信息的最重要途径,是攻击开始的前奏。如何防范和发现扫描现象的存在,是靠多种技术综合才能做到的。扫描工具能够自动的扫描本地和远程系统的弱点,扫描工具是一把双刃剑。
要防范扫描行为,必须减少开放的端口,关闭不必的服务,合理地配置防火墙。

【网络与系统安全实验】网络扫描与防御技术相关推荐

  1. 【网络与系统安全实验】口令破解及防御

    [网络与系统安全实验]口令破解及防御 口令的历史与现状 20世纪80年代,当计算机开始在公司里广泛应用时,人们很快就意识到需要保护计算机中的信息.仅用userID标识自己,很容易被其他人得到,出于这个 ...

  2. 【网络与系统安全实验】拒绝服务攻击及防御

    [网络与系统安全实验]拒绝服务攻击及防御 拒绝服务攻击概述 拒绝服务攻击的概念 "拒绝服务"这个词来源于英文Denial of Service(简称DoS),它是一种简单的破坏性攻 ...

  3. 网络货运系统源码 网络货运平台源码,货运APP源码 货物运输管理源码

    网络货运系统源码 网络货运平台源码,货运APP源码 货物运输管理源码 网络货运为无车承运人更名而来,网络货运平台的好处可以节省找车找货的时间与成本.根据国家对智慧物流行业的发展规划,及<网络平台 ...

  4. 【网络与系统安全实验】网络监听及防御技术

    网络监听及防御技术 网络监听概述 基础知识 网络监听的概念 网络监听技术又叫做网络嗅探技术,顾名思义这是一种在他方未察觉的情况下捕获其通信报文或通信内容的技术. 在网络安全领域,网络监听技术对于网络攻 ...

  5. linux 网络盘系统下载,NDisk网络硬盘系统下载_NDisk网络硬盘系统官方下载-太平洋下载中心...

    NDisk网络硬盘系统是一套基于NetBT协议的网络硬盘系统.具有共享目录.共享文件.公共群组.用户群组.本地盘符操作丰富功能.因为是基于NetBT协议,客户端对网络硬盘的操作真正做到了跟本地硬盘完全 ...

  6. ip网络广播系统服务器,【IP网络音频系统服务器主机(IP网络广播服务器)】 - 太平洋安防网...

    重量15.28Kg IP网络音频服务器主机*版图 IP网络音频服务器功能特点 1. 工业级机柜式机箱设计,机箱采用钢结构,有较高的防磁.防尘.防冲击的能力. 2. 17英寸1080P全高清显示屏幕,简 ...

  7. 基于python的网络爬虫系统论文_python网络爬虫毕业论文

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  8. Pxe +ks+ cobbler+ cobbler-web 实现centos6.7,centos7.2无人值守全自动化网络安装系统。

    Pxe +ks+ cobbler+ cobbler-web 实现centos6.7,centos7.2无人值守全自动化网络安装系统. 实验环境:一台centos7.2 主机 一块网卡 vnet1 10 ...

  9. 在线网络考试系统源码

    在线网络考试系统源码 网络考试系统是一套可以用于学校.企事业单位和培训机构等在互联网和局域网上实现无纸化考试学习.新闻管理.帐户管理.题库管理.试卷管理和成绩统计等于一体的集成软件.通过努力,现在隆重 ...

最新文章

  1. xa 全局锁_fescar锁设计和隔离级别的理解
  2. ARCGIS10.1 插值分析结果按指定多边形输出
  3. ABAP和Java SpringBoot的单元测试
  4. 从底层重学 Java 之四大整数 GitChat链接
  5. 我的世界java服务器刷_一个教程, 叫你如何在服务器刷op
  6. arcade 物理系统_如何使用Python和Arcade库创建2D游戏
  7. 局域网ssr转pptp_[网络技术][转]PPTP连接过程
  8. 程序员求生指南:告别大小周,摆脱监视,直奔年终奖!
  9. mysql驱动和url在5.7以上版本变化
  10. 【搜索引擎】强推!最好用资源最全的十个百度网盘搜索引擎
  11. Java Filter——敏感词汇过滤
  12. ORBSLAM3 的改进
  13. 树莓派usb免驱摄像头报错
  14. 离散时间傅里叶变换(一)
  15. C#调用QQ邮箱简单代码(网络摘抄笔记)
  16. 学历不高的人,去学这5个技术,好找工作,上班也不累
  17. 什么是Linux内存管理中的RSS和VSZ
  18. usb设备驱动之uvc设备
  19. 开发一款棋牌游戏的成本有多大?
  20. webstorm热更新

热门文章

  1. selenium登录豆瓣网
  2. python计算中文文件字数_完成计算文本文件字数的Python代码实例
  3. python这个语言值得学吗_python和java哪个更值得学
  4. jasper report 子报表中嵌套子报表
  5. python如何实现隔行换色_Excel2010如何实现隔行设置背景色
  6. apache c语言源码,Apache模块开发/用C语言扩展apache(2:APR编程介绍)
  7. 医疗器械软件 软件生存周期过程
  8. [Unix下C/C++开发] unix编程书籍推荐
  9. 计算机一级照片像素调整多少钱,怎么调整图片分辨率
  10. Web应用服务器tomcat