全端口扫描_2013俄国多端口扫描

hacker|
145

type 8E是什么文件系统?

Snort分析报告

1.--snort的简介

snort 是一个基于libpcap的数据包嗅探器并可以作为一个轻量级的 *** 入侵检测系统(

NIDS)。所谓的轻量级是指在检测时尽可能低地影响 *** 的正常操作,一个优秀的轻量

级的NIDS应该具备跨系统平台操作,对系统影响最小等特征并且管理员能够在短时间内

通过修改配置进行实时的安全响应,更为重要的是能够成为整体安全结构的重要成员。

Snort作为其典型范例,首先可以运行在多种操作系统平台,例如UNIX系列和Windows 9

X.(需要libpcap for Win32的支持),与很多商业产品相比,它对操作系统的依赖性比

较低。其次用户可以根据自己的需要及时在短时间内调整检测策略。就检测攻击的种类

来说,据最新数据表明(2000/12/4)snort共有21类(???)1271条检测规则,其中包括

对缓冲区溢出,端口扫描和CGI攻击等等。SNORT集成了多种告警机制来提供实时告警功

能,包括:syslog、用户指定文件、UNIXSocket、通过 *** BClient使用WinPopup对Windo

ws客户端告警。 Snort的现实意义维作为开源软件填补了只有商业入侵检测系统的空白

,可以帮助中小 *** 的系统管理员有效地监视 *** 流量和检测入侵行为。

2.snort与其他工具的比较。

Snort的主要用途就是 *** 监视、数据包的记录和检测入侵行为,下面是与分别具有上述

两种功能的典型工具的比较。

1)--snort与tcpdump的比较

Tcpdump是最为经典的嗅探工具,主要是用于记录 *** 数据, *** 故障的探测诊断工具。

Snort与它的更大的共同之处在于都是基于libpcap的并且支持BPF过滤机制,所以本质上

都是调用的捕获数据包的库函数,但是snort的目的不仅仅是在于记录这个数据包而是从

安全的角度考虑出发区解析它,并且tcpdump主要是分析第二层或者第三层的报文来进行

*** 故障诊断,而snort则主要针对于应用层的数据进行分析从而实现检测入侵行为。除

此之外,由于tcpdump旨在快速完整地记录流量,所以它制定了特殊的输出格式,速度快

但是不易看懂,而snort就提供了更为友好的输出格式,有利于系统管理员的直接分析。

--Figure 1 - Typical Snort telnet packet display:

--------------------------------------------------------------------------

20:59:49.153313 0:10:4B:A9:66 - 0:60:97:7:C2:8E type:0x800 len:0x7D

192.168.1.3:23 - 192.168.1.4:1031 TCP TTL:64 TOS:0x10 DF

***PA* Seq: 0xDF4A6536 Ack: 0xB3A6FD01 Win: 0x446A

FF FA 22 03 03 E2 03 04 82 0F 07 E2 1C 08 82 04 ..".............

09 C2 1A 0A 82 7F 0B 82 15 0F 82 11 10 82 13 FF ................

F0 0D 0A 46 72 65 65 42 53 44 20 28 65 6C 72 69 ...FreeBSD (elri

63 2E 68 6F 6D 65 2E 6E 65 74 29 20 28 74 74 79 c.home.net) (tty

70 30 29 0D 0A 0D 0A p0)....

---------------------------------------------------------------------------

--Figure 2 - The same telnet packet as displayed by tcpdump:

---------------------------------------------------------------------------

20:59:49.153313 0:10:4b:d:a9:66 0:60:97:7:c2:8e 0800 125: 192.168.1.3.23

192.168.1.4.1031: P 76:147(71) ack 194 win 17514 (DF) [tos 0x10] (ttl 64,

id 660)

4510 006f 0294 4000 4006 b48d c0a8 0103

c0a8 0104 0017 0407 df4a 6536 b3a6 fd01

5018 446a d2ad 0000 fffa 2203 03e2 0304

820f 07e2 1c08 8204 09c2 1a0a 827f 0b82

150f 8211 1082 13ff f00d 0a46 7265 6542

5344 2028 656c 7269 632e 686f 6d65 2e6e

6574 2920 2874 7479 7030 290d 0a0d 0a

---------------------------------------------------------------------------

2)--snort与NFR的比较

根据Denmac System公司1999年11月的现有商用 *** 入侵检测工具的调查结果表明,NFR

的综合性能指数高于ISS公司的RealSecure和CA公司的SessionWall,所以其代表了目前

国际上的IDS的更高水准,是一个比较成熟的商业产品。Snort的许多设计思想类似于NF

R,但是在很多方面都显出不足之处,例如无法实现IP Defragmentation等功能,在探测

规则语言的格式上来说,NFR采用的是一种深层次的脚本语言,SNORT与其相比就略显单

薄。但是snort的优势就在于它是开源软件,全世界的爱好者都可以加入它的开发升级工

作中来,其前景是无法 *** 的。

2.--原理

snort作为一个NIDS[注:基于 *** 的入侵检测系统(NIDS),其工作原理为在基于共享

*** 上检测原始的 *** 传输数据,通过分析捕获的数据包,主要工作为匹配入侵行为的

特征或者从 *** 活动的角度检测异常行为,进而采取入侵的预警或记录。从检测模式而

言,snort属于是误用检测(misuse detection)。[注:该 *** 对已知攻击的特征模式

进行匹配,包括利用工作在网卡混杂模式下的嗅探器被动地进行协议分析,以及对一系

列数据包解释分析特征。]从本质上上来说,snort是基于规则检测的入侵检测工具,即

针对每一种入侵行为,都提炼出它的特征值并按照规范写成检验规则,从而形成一个规

则数据库。其次将捕获得数据包按照规则库逐一匹配,若匹配成功,则认为该入侵行为

成立。目前,snort的检测规则库主要包括了以下几类的入侵行为:

snort的结构主要分为三个部分如图n-1:

l--数据包捕获和解析子系统(Capture Packet Mechani *** from link layer and the

packet decoder ):

该子系统的功能为捕获 *** 得传输数据并按照TCP/IP协议的不同层次将数据包进行解析

。Snort利用libpcap库函数进行采集数据, 该库函数可以为应用程序提供直接从链路层

捕获数据包的接口函数并可以设置数据包的过滤器以来捕获指定的数据。(的详细介绍

请参阅附录N)。 *** 数据采集和解析机制是整个NIDS实现的基础,其中最关键的是要保

证高速和低的丢包率,这不仅仅取决于软件的效率还同硬件的处理能力相关。对于解析

机制来说,能够处理数据包的类型的多样性也同样非常重要,目前,snort可以处理以太

网,令牌环以及SLIP等多种链路类型的包。

l--检测引擎(the detect engine)

检测引擎是一个NIDS实现的核心,准确性和快速性是衡量其性能的重要指标,前者主要

取决于对入侵行为特征码的提炼的精确性和规则撰写的简洁实用性,由于 *** 入侵检测

系统自身角色的被动性——只能被动的检测流经本 *** 的数据,而不能主动发送数据包

去探测,所以只有将入侵行为的特征码归结为协议的不同字段的特征值,通过检测该特

征值来决定入侵行为是否发生。后者主要取决于引擎的组织结构,是否能够快速地进行

规则匹配。

Snort采用了灵活的插件形式来组织规则库,即按照入侵行为的种类划分为相应的插件,

用户可以根据需要选取对应的插件进行检测。目前包括的插件分别如下:

每一类插件中包括了数十条的检测规则,分别代表同一类型的不同入侵行为。对于规则

的定义,snort使用了一种简单的,轻量级的规则描述语言,上述已经提及到检测的最终

行为就是检测数据包中协议的不同字段,例如端口号就是重要的入侵线索。为了更为清

楚地阐述这个问题,我们举一例说明:

攻击名称--NT IIS Showcode ASP

攻击种类--获取非法访问权限。

攻击描述--通过构造特定的URL请求可以非法阅读服务器上的其他文件

host/msadc/Samples/SELECTOR/showcode.asp?source=/msadc/Samples/../../../../.

./boot.ini

入侵特征码 --IP地址:保护网段以外的IP地址。

--协议类型:TCP

--端口:80

--TCP标志位:PUS, ACK

--数据段内容:/selector/showcode.asp

CVE ID--CAN-1999-0736

Bugtraq ID --167

分析以上的这个入侵实例,我们可以看出其实检测该入侵行为的关键是判断端口号和数

据段内容,IP地址、协议类型和TCP标志位只是辅助的特征码。但是当开始分析原始数据

包时,是否应该就直接匹配端口和数据段的内容?无疑针对该入侵行为上述做法的匹配

效率是更高的。但是实际上这样做会降低整体检测的效率,因为入侵系统要对庞大的网

络数据逐一进行检测,应该遵循先检测所有入侵行为的共同特征其次才是个体特征的原

则,例如如果首先检测IP地址,一旦发现并不属于检测范围之内,就立即检测下一个数

据包而并非继续检测该包的其他字段。这样既保证了检测的快速性,又提高了报警的实

时性。

Snort正是按照上述原则定义规则的,将检测规则划分成两个部分:规则头和规则选项。

前者是所有规则共有的包括IP地址、协议类型、端口号,后者根据不同规则包括相应的

字段关键字,例如TCP的标志位或者窗口大小等。检测规则除了包括上述的关于“要检测

什么”还应该定义“检测到了该做什么”,snort定义了三种处理方式——alert(发送报

警信息),log(记录该数据包)和pass(忽略该数据包)并定义为规则的之一个匹配关键

字,这样设计的目的非常简单,旨在在程序中组织整个的规则库,即将所有的规则按照

处理方式组织成三个链表以用于更快速准确地进行匹配,体现了设计者的巧妙之处。

下面我们来举一实例来具体说明规则的定义:

alert tcp !$HOME_NET any - $HOME_NET 80 (msg:"CAN-1999-0736 - IIS-showcode"

;flagsA; content:"/selector/showcode.asp"; nocase

该实例正式针对表(N)中所示的入侵行为所定义的检测规则,通过该例可以看出snort

的规则语言简明实用,基本格式为:

规则动作 协议类型 IP地址 端口号 - 协议类型 IP地址 端口号 (规则选项)

源发送方 目的接受方

关于规则的具体书写规范不再赘述,下面就其关键和特别之处加以说明:

1.-- 变量和操作符

snort作为一个NIDS,主要的目的就是能够保护本网段即及时发现外部网对内部网的攻击

,所以规则中的IP地址的定义主要是针对外部网和内部网地址两种。由此snort引入了变

量的机制,即可以在规则中用变量表示IP地址字段,用户在运行前可根据实际的子网地

址来定义该变量,这样在解析检测规则时snort会自动替换变量值,增加了规则的灵活性

,不过只适应于像IP地址这种基本所有规则都具有同一值。

为了更为准确地表达规则和精确地表示检测范围,snort还定义了三类操作符:

l--否定操作符——“ ! ”

用于表示snort还增加了否定符“!”来区分内部网和外部网。例如例n的!$HOME_NET。

l--方向操作符——“-”和””

用于表示传输的方向,分别表示单向和双向传输。

l--端口描述符——“ : ”

用于表示端口的范围。例如: “600:“表示大于600的端口号。

2. 规则选项

规则选项作为检测时的重要标准组成了snort入侵检测引擎的核心,既易用又非常灵活强

大。首先其灵活性是指可以根据不同的不同行为制定相应的检测选项内容,其次其强大

性是指不仅检测具有一定的广度和深度并且定义了检测到时该做什么 。snort中有15个

规则选项关键字,其中有三个关键字是做为检测到后的回应:

msg - 在报警和包日志中打印一个消息

logto - 把包记录到用户指定的文件中而不是记录到标准输出

resp - 主动反应(切断连接等)

Resp关键字可以对匹配一条Snort规则的流量进行灵活的反应(flexible reponse

-FlexResp)。FlexResp代码允许Snort主动地关闭恶意的连接。该模块合法的参数如下

rst_snd - 向发送方发送TCP-RST数据包

rst_rcv - 向接受方发送TCP-RST数据包

rst_all - 向收发双方发送TCP_RST数据包

icmp_net - 向发送方发送ICMP_NET_UNREACH

icmp_host - 向发送方发送ICMP_HOST_UNREACH

icmp_port - 向发送方发送ICMP_PORT_UNREACH

icmp_all - 向发送方发送上述所有的ICMP数据包。

作为入侵检测系统,理论上只需要检测入侵,并不需要去回应入侵行为的。所以该功能

应该是作为SNORT的附加功能,但是值得一提的是,发送RST和ICMP UNREACH数据包向攻

击方可以暂缓其对目标主机的攻击,我们所研究的一个工具叫做dsniff中的tcpkill就是

利用这个原理进行切断非法连接,但是对于一般的拒绝服务攻击,该 *** 的作用就不甚

明显了。对于SNORT来说,实现该功能必然会降低检测的的效率尤其是在 *** 流量特别大

的时候。

另外12中关键字都是针对协议中的不同字段设置的:

关键字--检测内容--主要针对的攻击行为

ttl--检测ip头的ttl的值 --用于对traceroute探测的检测

id--检测ip头的分片id值--黑客的固定攻击,例如设置为31337

dsize--检测包的净荷尺寸的值--缓冲区溢出攻击。

content--在包的净荷中搜索指定的样式--最为重要的一个选项,用于在数据包的数据段

中搜索指定的内容并根据数据触发响应,可以搜索包含混合的文本和二进制数据。并设

置了三个辅助关键字:offset,dsize,nocase

Flags--检测tcp flags的值--非法端口扫描或者其他非法探测主机操作系统类型等。

Seq--检测tcp顺序号的值--检测主机发送的序列号集是否是固定的 *** 。入侵者可以利

用该值冒充合法用户向被入侵者发送数据,伪装正常的通信以窃取信息或者其他非法活

动。

Ack--检测tcp应答(acknowledgement)的值--Nmap的TCP PING会设置该项的值为0,从而

判断可能正在用Nmap进行非法扫描。

Itype--检测icmp type的值--拒绝服务攻击。注:只作为其中的一种特征。

Icode--检测icmp code的值--可疑的流量。

Session--记录指定会话的应用层信息的内容--记录在TCP会话中的会话数据。

Icmp_id--检测ICMP ECHO ID的值--

Icmp_seq--检测ICMP ECHO 顺序号的值--

Ipoption--监视IP option的特定代码--

Rpc--监视特定应用/进程调用的RPC服务--检测非法的RPC请求,查看RPC请求,并自动将

应用(Application),过程(procedure)和程序版本(program version)译码,如果

所有三个值都匹配的话,该规则就显示成功。

3.预处理程序

预处理程序从Snort版本1.5开始引入,其代码在检测引擎被调用之前先被运行,为检测

做铺垫,从而提高检测的准确性和速度。而且预处理机制采用插件形式,用户和程序员

能够将模块化的插件方便地融入Snort之中。目前snort现有的预处理程序模块有以下三

种:

l--Minfrag

Minfrag预处理程序检查给定尺寸限制的分片数据包。数据包被分片通常是由源和目的主

机之间的路由器引起的。一般说来,商业 *** 设备不会产生小于512字节的分片包。可以

利用这个事实,来监控含有小分片的流量。

l--HTTP Decode

HTTP Decode用于处理HTTP URI字符串,将串中的数据转化为可读的ASCII字串,用于检

测HTTP的数据信息对付隐蔽的WebURL扫描器和恶意的入侵者。

l--Portscan Detector

Snort Portscan预处理程序的用处:

向标准记录设备中记录从一个源IP地址来的端口扫描的开始和结束。

如果指定了一个记录文件,在记录扫描类型的同时也记录目的IP地址和端口。端口扫描

定义为在时间T(秒)之内向超过P个端口进行TCP连接尝试,或者在时间T(秒)之内向

超过P个端口发送UDP数据包。端口扫描可以是对任一IP地址的多个端口,也可以是对多

个IP地址的同一端口进行。现在这个版本可以处理一对一和一对多方式的端口扫描,下

一个完全版本将可以处理分布式的端口扫描(多对一或多对多)。端口扫描也包括单一

的秘密扫描(stealthscan)数据包,比如NULL,FIN,SYNFIN,XMAS等。如果包括秘密

扫描的话,端口扫描模块会对每一个扫描数据包告警。

network to monitor - 监视端口扫描的目标 *** 以network/CIDR表示

number of ports - 在探测期间访问的端口数目

detection period - 以秒计数的端口访问时间限制

logdir/filename - 告警信息存放的目录/文件名,告警也可以写入标准的告警文件中。

l--日志及报警子系统(logging/alerting subsystem)

入侵检测系统的输出结果系统的必要特征是实时性和多样性,前者指能够在检测到入侵

行为的同时及时记录和报警,后者是指能够根据需求选择多种方式进行记录和报警。一

个好的NIDS,更应该提供友好的输出界面或发声报警等等。

Snort是一个轻量级的NIDS,它的另外一个重要功能就是数据包记录器,所以该子系统主

要提供了方式:

1.--fast model :采取TCPDUMP的格式记录信息

2. readable model :按照协议格式记录,易于用户查看。

3.alert to syslog: 向syslog发送报警信息。

4.alert to text file :以明文形式记录报警信息。

值得提出的是,snort考虑到用户需要高性能的时候,即 *** 数据流量非常大,可以将数

据包信息进行压缩从而实习快速的报警。

3.-- 程序结构

1)--snort的整体结构

snort作为优秀的公开源代码的入侵检测系统范例,其整个程序结构清晰,构思巧妙,我

们对于其版本1.6.3的源码进行了深入的分析。Snort共有64个c文件和h文件,首先介绍

程序的整体结构,其流程图如下:

其中最为关键的函数就是ProcessPacket(),--其流程图如下:

2)--数据结构--

snort的主要数据结构就是几个链表,上述已经提及,snort组织规则库的巧妙之处就是

按照规则的处理动作来划分成三个链表,其中每个链表又按照协议类型:TCP,IP和ICMP

分成三个链表,所以所有的规则都会被分配到这个三个链表中。链表中的成员就是描述

每条规则的结构——RuleTreeNode,该结构中的一个重要成员就是记录该规则的处理函

数链表——RuleFpList,一条规则有时候需要调用多个处理函数来进行分析。该结构中

的另外一个重要成员就是规则选项的结构,该结构同样包括该规则的选项信息以及其处

理函数链表。

值得提出的是,并不是每一条规则都分配一个RuleTreeNode结构,因为很多规则的选项

前的头部分是相同的,只需要根据不同的规则选项链取不同的选项函数处理链表。基本

整体的结构如图n所示,所有链表的初始化都是在捕获数据包前进行的。

除以上链表外,snort还定义了预处理、输出的关键字和处理函数链表,设计链表的主要

意图是为了实现插件的思想,即用户何以根据需求添加删除预处理的功能模块。其只要

的数据结构如下:

typedef struct _PreprocessKeywordNode

{

char *keyword;

void (*func)(char *);

} PreprocessKeywordNode;

// 预处理关键字信息结构。

typedef struct _PreprocessKeywordList

{

PreprocessKeywordNode entry;

struct _PreprocessKeywordList *next;

} PreprocessKeywordList;

//预处理关键字链表。

typedef struct _PreprocessFuncNode

{

void (*func)(Packet *);

struct _PreprocessFuncNode *next;

} PreprocessFuncNode;

//预处理函数链表。

所有链表的初始化都是在捕获数据包前进行初始化的,一旦链表都已建立完毕,开始捕

获数据包,每收到一个数据包都会现首先调用预处理程序链表中的函数进行处理后,其

次按照默认地顺序遍历AlertList,PassList和LogList三个链表。遍历时首先根据数据包

的协议类型定位规则链表,其次调用递归函数进行规则的逐一匹配,即首先匹配规则头

,若匹配则继续递归匹配规则选项,若不匹配,直接匹配下一条规则。为了加快遍历的

速度,snort在规则选项中的”content”内容匹配时调用了Boyer-Moore算法。

4.--改进

1.--背景

我们认为snort已经具备了NIDS的基本功能,由于它本身定位在一个轻量级的入侵检测工

具,尽管与商业的入侵检测工具比起来,它的规则语言略显简陋,在报警方式和图形化

使用界面上也显露出不足之处,但是程序的整体结构清晰,规则语言简单实用并提供插

件的功能支持,用户可以添加自己的检测规则和处理函数,这对于规则库的及时更新有

着极为现实的意义。

通过分析,与商业的NIDS相比,SNORT 1.6.3没有设置对IP 分片包的处理功能,即对于

例如“Teardrop”和“Ping of Death”两类利用非法IP分片包进行的攻击无法检测:

?--teadrop——该攻击是针对很多操作系统的TCP/IP协议栈没有正确处理已分段的IP包

的重组。其特征是发送2个或更多特别的分段IP数据报。之一个包是偏移量为0的段,数

据段(分段长度)字节是N,并设置了MF位,第二个包是最后一个分段(MF==0),但它的偏移

量小于N,所有造成两个分段重叠了。为了重组这些包,有弱点的系统就会在TCP/IP栈中

分配非常大的空间,因此导致目标系统因为内存耗尽而停止响应或者重启。

?--Ping of Death——该攻击的特正是向攻击目标发送大量的ICMP分片数据包,当这些

数据包重组时其数据段已经大于65535个字节,系统会因为无法处理这种数据包而造成拒

绝服务或者重启。

?--

2.--方案

3.--实现

什么是端口的SYN(半连接)扫描技术

TCP

SYN

扫描是使用最为广泛的扫描方式,其原理就是像带扫描端口发送SYN

数据包,如果能够收到SYN+ACK

数据包,则代表此端口开放,如收到RST

数据包,则证明此端口关闭,如未收到任何数据包,且确定该主机存在,则证明该端口被防火墙等安全设备过滤。由于SYN

扫描并不会完成TCP

连接的三次握手过程,所以SYN

扫描又叫做半开放扫描。

SYN

扫描的更大优点就是速度,在Internet

上,如果不存在防火墙,SYN

扫描每秒钟可以扫描数千个端口,但是SYN

扫描由于其扫描行为较为明显,容易被入侵检测系统发现,也容易被防火墙屏蔽,且构造原始数据包需要较高系统权限。

如何扫描局域网内计算机的端口?

用扫描器扫描你要的端口,只要输入局域网IP段,还有自定义端口,就可以了

毕业论文 基于TCP/IP三次握手的端口扫描技术

基于TCP/IP 端口扫描技术

[摘要] 本文讲述了TCP联接的建立过程,以及介绍了一些经典的扫描器以及所谓的SYN扫描器的使用,以及隐藏攻击源的技术,更好介绍了另外一些扫描技术。考虑了一些不是基于TCP端口和主要用来进行安全扫描的扫描工具(例如SATAN)。另外分析了使用扫描器的栈指纹。栈指纹通过检测主机TCP并将应答跟已知操作系统TCP/IP协议栈应答相比较,解决了识别操作系统的问题。 关键字:

TCP/IP,UDP,三阶段握手,SYN扫描,FIN扫描,秘密扫描,间接扫描,诱骗扫描,指纹,协作扫描。

--------------------------------------------------------------------------------

正文:

端口扫描技术

前言

之一部分,我们讲述TCP连接的建立过程(通常称作三阶段握手),然后讨论与扫描程序有关的一些实现细节。

然后,简单介绍一下经典的扫描器(全连接)以及所谓的SYN(半连接)扫描器。

第三部分主要讨论间接扫描和秘密扫描,还有隐藏攻击源的技术。

秘密扫描基于FIN段的使用。在大多数实现中,关闭的端口对一个FIN 段返回一个RST,但是打开的端口通常丢弃这个段,不作任何回答。间接扫描,就像它的名字,是用一个欺骗主机来帮助实施,这台主机通常不是自愿的。

第四部分介绍了一种与应用协议有关扫描。这些扫描器通常利用协议实现中的一些缺陷或者错误。认证扫描(ident scanning)也被成为 *** 扫描(proxy scanning)。

最后一部分,介绍了另外一些扫描技术。考虑了一些不是基于TCP端口和主要用来进行安全扫描的扫描工具(例如SATAN)。另外分析了使用扫描器的栈指纹。栈指纹通过检测主机TCP并将应答跟已知操作系统TCP/IP协议栈应答相比较,解决了识别操作系统的问题。

一:TCP/IP相关问题

连接端及标记

IP地址和端口被称作套接字,它代表一个TCP连接的一个连接端。为了获得TCP服务,必须在发送机的一个端口上和接收机的一个端口上建立连接。TCP连接用两个连接端来区别,也就是(连接端1,连接端2)。连接端互相发送数据包。

一个TCP数据包包括一个TCP头,后面是选项和数据。一个TCP头包含6个标志位。它们的意义分别为:

SYN: 标志位用来建立连接,让连接双方同步序列号。如果SYN=1而ACK=0,则表示该数据包为连接请求,如果SYN=1而ACK=1则表示接受连接。

FIN: 表示发送端已经没有数据要求传输了,希望释放连接。

RST: 用来复位一个连接。RST标志置位的数据包称为复位包。一般情况下,如果TCP收到的一个分段明显不是属于该主机上的任何一个连接,则向远端发送一个复位包。

URG: 为紧急数据标志。如果它为1,表示本数据包中包含紧急数据。此时紧急数据指针有效。

ACK: 为确认标志位。如果为1,表示包中的确认号时有效的。否则,包中的确认号无效。

PSH: 如果置位,接收端应尽快把数据传送给应用层。

TCP连接的建立

TCP是一个面向连接的可靠传输协议。面向连接表示两个应用端在利用TCP传送数据前必须先建立TCP连接。 TCP的可靠性通过校验和,定时器,数据序号和应答来提供。通过给每个发送的字节分配一个序号,接收端接收到数据后发送应答,TCP协议保证了数据的可靠传输。数据序号用来保证数据的顺序,剔除重复的数据。在一个TCP会话中,有两个数据流(每个连接端从另外一端接收数据,同时向对方发送数据),因此在建立连接时,必须要为每一个数据流分配ISN(初始序号)。为了了解实现过程,我们假设客户端C希望跟服务器端S建立连接,然后分析连接建立的过程(通常称作三阶段握手):

1: C --SYN XXà S

2: C ?-SYN YY/ACK XX+1------- S

3: C ----ACK YY+1--à S

1:C发送一个TCP包(SYN 请求)给S,其中标记SYN(同步序号)要打开。SYN请求指明了客户端希望连接的服务器端端口号和客户端的ISN(XX是一个例子)。

2:服务器端发回应答,包含自己的SYN信息ISN(YY)和对C的SYN应答,应答时返回下一个希望得到的字节序号(YY+1)。

3:C 对从S 来的SYN进行应答,数据发送开始。

一些实现细节

大部分TCP/IP实现遵循以下原则:

1:当一个SYN或者FIN数据包到达一个关闭的端口,TCP丢弃数据包同时发送一个RST数据包。

2:当一个RST数据包到达一个监听端口,RST被丢弃。

3:当一个RST数据包到达一个关闭的端口,RST被丢弃。

4:当一个包含ACK的数据包到达一个监听端口时,数据包被丢弃,同时发送一个RST数据包。

5:当一个SYN位关闭的数据包到达一个监听端口时,数据包被丢弃。

6:当一个SYN数据包到达一个监听端口时,正常的三阶段握手继续,回答一个SYN ACK数据包。

7:当一个FIN数据包到达一个监听端口时,数据包被丢弃。"FIN行为"(关闭得端口返回RST,监听端口丢弃包),在URG和PSH标志位置位时同样要发生。所有的URG,PSH和FIN,或者没有任何标记的TCP数据包都会引起"FIN行为"。

二:全TCP连接和SYN扫描器

全TCP连接

全TCP连接是长期以来TCP端口扫描的基础。扫描主机尝试(使用三次握手)与目的机指定端口建立建立正规的连接。连接由系统调用connect()开始。对于每一个监听端口,connect()会获得成功,否则返回-1,表示端口不可访问。由于通常情况下,这不需要什么特权,所以几乎所有的用户(包括多用户环境下)都可以通过connect来实现这个技术。

这种扫描 *** 很容易检测出来(在日志文件中会有大量密集的连接和错误记录)。Courtney,Gabriel和TCP Wrapper监测程序通常用来进行监测。另外,TCP Wrapper可以对连接请求进行控制,所以它可以用来阻止来自不明主机的全连接扫描。

TCP SYN扫描

在这种技术中,扫描主机向目标主机的选择端口发送SYN数据段。如果应答是RST,那么说明端口是关闭的,按照设定就探听其它端口;如果应答中包含SYN和ACK,说明目标端口处于监听状态。由于所有的扫描主机都需要知道这个信息,传送一个RST给目标机从而停止建立连接。由于在SYN扫描时,全连接尚未建立,所以这种技术通常被称为半打开扫描。SYN扫描的优点在于即使日志中对扫描有所记录,但是尝试进行连接的记录也要比全扫描少得多。缺点是在大部分操作系统下,发送主机需要构造适用于这种扫描的IP包,通常情况下,构造SYN数据包需要超级用户或者授权用户访问专门的系统调用。

三:秘密扫描与间接扫描

秘密扫描技术

由于这种技术不包含标准的TCP三次握手协议的任何部分,所以无法被记录下来,从而必SYN扫描隐蔽得多。另外,FIN数据包能够通过只监测SYN包的包过滤器。

秘密扫描技术使用FIN数据包来探听端口。当一个FIN数据包到达一个关闭的端口,数据包会被丢掉,并且回返回一个RST数据包。否则,当一个FIN数据包到达一个打开的端口,数据包只是简单的丢掉(不返回RST)。

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

秘密扫描通常适用于UNIX目标主机,除过少量的应当丢弃数据包却发送reset信号的操作系统(包括CISCO,BSDI,HP/UX,MVS和IRIX)。在Windows95/NT环境下,该 *** 无效,因为不论目标端口是否打开,操作系统都发送RST。

跟SYN扫描类似,秘密扫描也需要自己构造IP 包。

间接扫描

间接扫描的思想是利用第三方的IP(欺骗主机)来隐藏真正扫描者的IP。由于扫描主机会对欺骗主机发送回应信息,所以必须监控欺骗主机的IP行为,从而获得原始扫描的结果。间接扫描的工作过程如下:

假定参与扫描过程的主机为扫描机,隐藏机,目标机。扫描机和目标记的角色非常明显。隐藏机是一个非常特殊的角色,在扫描机扫描目的机的时候,它不能发送任何数据包(除了与扫描有关的包)。

四:认证扫描和 *** 扫描

认证扫描

到目前为止,我们分析的扫描器在设计时都只有一个目的:判断一个主机中哪个端口上有进程在监听。然而,最近的几个新扫描器增加了其它的功能,能够获取监听端口的进程的特征和行为。

认证扫描是一个非常有趣的例子。利用认证协议,这种扫描器能够获取运行在某个端口上进程的用户名(userid)。认证扫描尝试与一个TCP端口建立连接,如果连接成功,扫描器发送认证请求到目的主机的113TCP端口。认证扫描同时也被成为反向认证扫描,因为即使最初的RFC建议了一种帮助服务器认证客户端的协议,然而在实际的实现中也考虑了反向应用(即客户端认证服务器)。

*** 扫描

文件传输协议(FTP)支持一个非常有意思的选项: *** ftp连接。这个选项最初的目的(RFC959)是允许一个客户端同时跟两个FTP服务器建立连接,然后在服务器之间直接传输数据。然而,在大部分实现中,实际上能够使得FTP服务器发送文件到Internet的任何地方。许多攻击正是利用了这个缺陷。最近的许多扫描器利用这个弱点实现ftp *** 扫描。

ftp端口扫描主要使用ftp *** 服务器来扫描tcp端口。扫描步骤如下:

1:假定S是扫描机,T是扫描目标,F是一个ftp服务器,这个服务器支持 *** 选项,能够跟S和T建立连接。

2:S与F建立一个ftp会话,使用PORT命令声明一个选择的端口(称之为p-T)作为 *** 传输所需要的被动端口。

3:然后S使用一个LIST命令尝试启动一个到p-T的数据传输。

4:如果端口p-T确实在监听,传输就会成功(返回码150和226被发送回给S)。否则S回收到"425无法打开数据连接"的应答。

5:S持续使用PORT和LIST命令,直到T上所有的选择端口扫描完毕。

FTP *** 扫描不但难以跟踪,而且当ftp服务器在_blank"防火墙后面的时候

五:其它扫描 ***

Ping扫描

如果需要扫描一个主机上甚至整个子网上的成千上万个端口,首先判断一个主机是否开机就非常重要了。这就是Ping扫描器的目的。主要由两种 *** 用来实现Ping扫描。

1:真实扫描:例如发送ICMP请求包给目标IP地址,有相应的表示主机开机。

2:TCP Ping:例如发送特殊的TCP包给通常都打开且没有过滤的端口(例如80端口)。对于没有root权限的扫描者,使用标准的connect来实现。否则,ACK数据包发送给每一个需要探测的主机IP。每一个返回的RST表明相应主机开机了。另外,一种类似于SYN扫描端口80(或者类似的)也被经常使用。

安全扫描器

安全扫描器是用来自动检查一个本地或者远程主机的安全漏洞的程序。象其它端口扫描器一样,它们查询端口并记录返回结果。但是它们。它们主要要解决以下问题:

1:是否允许匿名登录。

2:是否某种 *** 服务需要认证。

3:是否存在已知安全漏洞。

可能SATAN是最著名的安全扫描器。1995年四月SATAN最初发布的时候,人们都认为这就是它的最终版本,认为它不但能够发现相当多的已知漏洞,而且能够针对任何很难发现的漏洞提供信息。但是,从它发布以来,安全扫描器一直在不断地发展,其实现机制也越来越复杂。

栈指纹

绝大部分安全漏洞与缺陷都与操作系统相关,因此远程操作系统探测是系统管理员关心的一个问题。

远程操作系统探测不是一个新问题。近年来,TCP/IP实现提供了主机操作系统信息服务。FTP,TELNET,HTTP和DNS服务器就是很好的例子。然而,实际上提供的信息都是不完整的,甚至有可能是错误的。最初的扫描器,依靠检测不同操作系统对TCP/IP的不同实现来识别操作系统。由于差别的有限性,现在只能最多只能识别出10余种操作系统。

最近出现的两个扫描器,QueSO和NMAP,在指纹扫描中引入了新的技术。 QueSO之一个实现了使用分离的数据库于指纹。NMAP包含了很多的操作系统探测技术,定义了一个模板数据结构来描述指纹。由于新的指纹可以很容易地以模板的形式加入,NMAP指纹数据库是不断增长的,它能识别的操作系统也越来越多。

这种使用扫描器判断远程操作系统的技术称为(TCP/IP)栈指纹技术。

另外有一种技术称为活动探测。活动探测把TCP的实现看作一个黑盒子。通过研究TCP对探测的回应,就可以发现 TCP实现的特点。TCP/IP 栈指纹技术是活动探测的一个变种,它适用于整个TCP/IP协议的实现和操作系统。栈指纹使用好几种技术来探测TCP/IP协议栈和操作系统的细微区别。这些信息用来创建一个指纹,然后跟已知的指纹进行比较,就可以判断出当前被扫描的操作系统。

栈指纹扫描包含了相当多的技术。下面是一个不太完整的清单:

1:FIN探测

2:BOGUS标记探测

3:TCP ISN 取样

4:TCP 初始窗口

5:ACK值

6:ICMP错误信息

7:ICMP信息

8:服务类型

9:TCP选项

电脑怎么扫描端口

可以用杀毒软件的端口扫描,扫描一下就好。我记得金山毒霸上可能有这个功能,如果是想看看别人的电脑上的端口,建议你还是到那些骇客网站上去下些扫描器之类的软件。我记得好像有流光之类的软件应该都可以。

是不是通过VB100次数越多的杀毒软件质量越好?

卡巴斯基

卡巴斯基,源自俄国的世界上更好的杀毒软件之一。它以无与伦比的杀毒能力著称。自从进入中国市场以来,卡巴斯基已经得到众多中国用户的支持和拥护。它的fans们自称卡饭,在网上建立了众多的卡饭论坛。

卡巴斯基有很高的警觉性,它会提示所有具有危险行为的进程或者程序,因此很多正常程序就会被它所谓“误报”。其实只要使用一段时间把正常程序添加到卡巴斯基的信任区域就可以了, *** 上有人别有用心的利用这一特点攻击卡巴斯基,相信广大用户自有判断。

在杀毒软件的历史上,有这样一个世界纪录:让一个杀毒软件的扫描引擎在不使用病毒特征库的情况下,扫描一个包含当时已有的所有病毒的样本库。结果是,仅仅靠“启发式扫描”技术,该引擎创造了95%检出率的纪录。这个纪录,是由AVP创造的。

在国内卡巴斯基不像诺顿那样有名,可能许多人还比较陌生,在这里重点介绍下。卡巴斯基总部设在俄罗斯首都莫斯科,Kaspersky Labs是国际著名的信息安全领导厂商。公司为个人用户、企业 *** 提供反病毒、防黒客和反垃圾邮件产品。经过十四年与计算机病毒的战斗,卡巴斯基获得了独特的知识和技术,使得卡巴斯基成为了病毒防卫的技术领导者和专家。该公司的旗舰产品-著名的卡巴斯基反病毒软件(Kaspersky Anti-Virus,原名AVP)被众多计算机专业媒体及反病毒专业评测机构誉为病毒防护的更佳产品。

1989年,Eugene Kaspersky开始研究计算机病毒现象。从1991年到1997年,他在俄罗斯大型计算机公司“KAMI”的信息技术中心,带领一批助手研发出了AVP反病毒程序。Kaspersky Lab于1997年成立,Eugene Kaspersky是创始人之一。

2000年11月,AVP更名为Kaspersky Anti-Virus。Eugene Kaspersky是计算机反病毒研究员协会(CARO)的成员,该协会的成员都是国际顶级的反病毒专家。AVP的反病毒引擎和病毒库,一直以其严谨的结构、彻底的查杀能力为业界称道。 俄罗斯杀毒软件之所以非常强大,是因为俄罗斯有国际顶尖的数理科技领域的特殊人才及优良的传统,这些专业人才的培养不是三年两载就能成功的。

特点

1、对病毒上报反应迅速,卡巴斯基具有全球技术领先的病毒运行虚拟机,可以自动分析70%左右未知病毒的行为,再加上一批高素质的病毒分析专家,反应速度就是快于别家。每小时升级病毒的背后是以雄厚的技术为支撑的。

2、随时修正自身错误,杀毒分析是项繁琐的苦活,卡巴斯基并不是不犯错,而是犯错后立刻纠正,只要用户去信指出,误杀误报会立刻得到纠正。知错就改,堪称其他杀软的楷模,你去试试看给symantec纠错,会是什么结果。

3、卡巴斯基的毒库数量不是更高,但实际可杀病毒数量绝对是世界之一,这是因为,卡巴斯基的超强脱壳能力,无论你怎么加壳,只要程序体还能运行,就逃不出卡巴斯基的掌心,它总唱:是你是你还是你。因此卡巴斯基毒库目前的19万多(在2006-9-2 有198991,2006-10-2已经21万多,2007-3-13是28万多)是真实可杀数量,某些杀软对病毒的加壳版要么傻眼要么列为变种,还沾沾自喜每天100多条升级,殊不知人家卡巴一条升级就顶你几十条了。

4、最重要的一点是,卡巴斯基对上报病毒的用户并没有物质奖励,但大家却趋之若鹜,原因在于:当我1小时前中了未知病毒,于是将病毒体文件发送给卡巴,然后悠悠然去洗澡吃饭,过1小时回来后,将卡巴斯基升级后,伴随着卡巴斯基悠扬的杀猪声响起,可恶的病毒被逐个扫除,那种心理 *** 和参与感,岂是别的杀软能够带给我们的?

卡巴斯基反病毒软件单机版为家庭用户的个人电脑提供超级病毒防护,它具有最尖端的反病毒技术,时刻监控一切病毒可能入侵的途径,同时该产品应用独有的iCheckerTM技术,使处理速度比同类产品快3倍,而且它还应用第二代启发式病毒分析技术识别未知恶意程序代码,成功率约达100%,目前卡巴斯基病毒数据库样本数已经超过100000 万种并且拥有世界上最快的升级速度,每小时常规升级一次,以使系统随时保持抗御新病毒侵害的能力。

卡巴斯基反病毒软件单机版可以基于 *** TP/POP3 协议来检测进出系统的邮件,可实时扫描各种邮件系统的全部接收和发出的邮件,检测其中的所有附件,包括压缩文件和文档、嵌入式OLE对象、及邮件体本身。它还新增加了个人防火墙模块,可有效保护运行Windows操作系统的PC,探测对端口的扫描、封锁 *** 攻击并报告,系统可在隐形模式下工作,封锁所有来自外部 *** 的请求,使用户隐形和安全地在网上遨游。

卡巴斯基反病毒软件可检测出700种以上的压缩格式文件和文档中的病毒,并可清除ZIP、ARJ、CAB和RAR文件中的病毒。卡巴斯基提供7×24小时全天候技术服务.

获奖纪录

卡巴斯基反病毒产品自问世以后,在历年的,大量的权威认证和国际顶级对比评测中始终名列前茅,从而在业界以及国际上获得了很好的口碑。

CHIP新电脑,2006年12月(中国)

每小时能够提供反病毒库的更新,可以更大限度的保证用户的安全。它甚至还集成了图片OCR功能,可以扫描图片中的关键字,从而实现过滤图片垃圾邮件的功能。

PCFAN Magazine 电脑迷,2006年12月(中国)

2006年是不平静的一年,除了常见的病毒以外,流氓软件已经到了猖狂的地步,无数的读者也反映浏览器被劫持,主页被修改,广告乱弹...而杀毒软件厂商的竞争也进入白炽化,除了国内三大品牌,国外的杀毒软件也加入了竞争,其中卡巴斯基以优异的杀毒性能,及时的病毒定义更新获得用户的首肯,在这次品牌调查中脱颖而出。

China Center for Information Industry Development 中国电子信息产业发展研究院 通信产业报,2006年12月(中国)

06年度影响力反病毒产品奖。

China Center for Information Industry Development 中国电子信息产业发展研究院,2006年12月(中国)

2006 Customer Satisfaction Survey of China IT Products and Business Solution--2006中国IT用户满意反病毒软件产品奖。

卡巴斯基是唯一入选的反病毒软件产品。

China Information World 中国计算机报,2006年12月(中国)

作为全球反病毒技术的领导者,卡巴斯基实验室很早便声名远扬,进入中国市场后,虽然没有多做宣传,但凭借其强大的反病毒引擎以及对新病毒的快速响应,逐渐奠定了市场基础,并拥有了一批数量庞大的客户。2006年,卡巴斯基的市场认知度有了突飞猛进的提升,这也得益于卡巴斯基反病毒软件反病毒性能的优秀。现在卡巴斯基反病毒软件不仅在个人市场上大有斩获,同时在企业市场上也取得长足的进步。

卡巴斯基反病毒软件 *** 版支持大多数操作系统、应用程序和复杂结构的企业 *** ,有以下特点:

综合保护:卡巴斯基反病毒软件 *** 版能够准确侦查出近100%的恶意程序。综合的反病毒数据库每小时常规更新一次,保证了精确的侦测力。

使用方便:集中安装管理工具能够节省时间和资源,系统管理者能够设定自动扫描计划,配置程序参数,查看记录和管理用户权限。

CCID《软件世界》杂志,2006年12月(中国)

2006年度,金软件奖之个人年度更佳杀毒软件桌面版。

China Information World 中国计算机报,2006年12月(中国)

近来,“地下犯罪”组织日益侵扰互联网,多数计算机随时都有遭受“综合威胁”的风险,因此,仅仅针对反病毒的防护产品也许不能为您的计算机提供完整的保护。卡巴斯基互联网安 *** 装6.0个人版结合了所有卡巴斯基实验室的最新技术,针对恶意代码, *** 攻击,以及垃圾邮件进行防护。所有的程序组件可以无缝结合。

这个程序不仅包括传统的反病毒保护组件--也就是传统意义上对病毒,木马,蠕虫以及各类恶意代码的清除。更包含了最新的反垃圾邮件保护功能以及反黑客保护功能(即防火墙和入侵检测系统),同时还添加了主动防御功能以及反Rootkit技术,可以检测未知的威胁。另外,防御 *** 钓鱼攻击以及弹出广告等新的程序模块也被添加到了程序组件之中。相信这样全方位的防护,能使用户做到高枕无忧。

Computer Partner World 电脑商报,2006年12月(中国)

卡巴斯基互联网安 *** 装6.0个人版可以为PC用户提供超级反病毒防护。该款产品具有先进的反病毒技术,采用独有的iChecker技术和第二代启发式病毒分析技术,识别未知恶意程序代码的成功率接近100%。产品可以基于 *** TP/POP3协议检测进出系统的邮件。它还新增加了个人防火墙模块,可有效保护运行Windows操作系统的PC,探测对端口的扫描,封锁 *** 攻击并报告,系统可在隐形模式下工作,封锁所有来自外部 *** 的请求,使用户计算机免受各种 *** 威胁。

推荐理由:该款产品可以很到位地为用户进行在线交流,电子邮件,即时通讯工具等应用提供实时保护。卡巴斯基的产品一向在专业人士群体中有较好的口碑,尤其在近些年来明显有发力国内市场的势头。

PC World 微电脑世界,2006年12月(中国)

卡巴斯基互联网安 *** 装6.0个人版增加了“主动防御”功能,能够检测和预防系统潜在的威胁。测试中,每当激活了一些内存,文件, *** 和系统操作时,卡巴斯基互联网安 *** 装6.0个人版都会弹出不同颜色的警示窗口,提醒用户选择合适的处理方式,能够更大程度地规避风险。

卡巴斯基安全产品在国内拥有众多粉丝,他们总结了几条选择卡巴斯基的理由:一是对病毒上报反应迅速,能够每小时升级反病毒库;二是对任何上报病毒的用户,病毒分析师一律回信;三是卡巴斯基的引擎技术是国内外许多杀毒软件的核心;卡巴斯基对于加壳程序拥有超强的脱壳能力,使恶意软件无所遁形。

CHIP新电脑,2006年8月(中国)

卡巴斯基互联网安 *** 装6.0个人版就是一款全方位的单机版安全防护套装,它包括了“文件保护” ,“邮件保护”,“Web反病毒保护”,“主动防御”和“反间谍保护”共5大保护组件,针对用户可能遇到的安全问题,提供了全面的防护功能。

卡巴斯基互联网安 *** 装6.0个人版 *** 安全防护功能非常专业,可以通过 *** 隐身功能使计算机在 *** 中不容易被黑客发现,用户还可以选择只针对internet隐身,而不影响正常的局域网访问,软件还提供禁用DNS缓存的功能,防范针对DNS的域名解析攻击。

卡巴斯基互联网安 *** 装6.0个人版的病毒特征库能够做到每小时更新一次,利用软件的主动防御技术,可以实现提前预防未知病毒的功能,通过程序分析和注册表分析等功能,凡是带有病毒分析特征的程序都会被阻止。

2006年11月(俄罗斯)

11月,Home PC杂志发布了对俄罗斯市场上现有的各种防火墙进行的对比测试的结果。卡巴斯基

0条大神的评论

发表评论