黑客24小时在线接单网站

电脑高手24在线咨询,黑客24小时在线接单网站,黑客接单平台,黑客网站找人,黑客在线qq接单

tcpip详解黑客(TCP攻击)

本文目录一览:

Tcp/Ip网络层的攻击方法和防范策略;基于方式的数字签名分类;VPI采用的安全技术和VPI的发展;防火墙新技

1、Tcp/Ip网络层的攻击方法和防范策略

每一项服务都对应相应的端口,比如众如周知的WWW服务的端口是80,smtp是25,ftp是21,win2000安装中默认的都是这些服务开启的。对于个人用户来说确实没有必要,关掉端口也就是关闭无用的服务。 “控制面板”的“管理工具”中的“服务”中来配置。 1、关闭7.9等等端口:关闭Simple TCP/IP Service,支持以下 TCP/IP 服务:Character Generator, Day, Discard, Echo, 以及 Quote of the Day。 2、关闭80口:关掉WWW服务。在“服务”中显示名称为"World Wide Web Publishing Service",通过 Internet 信息服务的管理单元提供 Web 连接和管理。 3、关掉25端口:关闭Simple Mail Transport Protocol (SMTP)服务,它提供的功能是跨网传送电子邮件。 4、关掉21端口:关闭FTP Publishing Service,它提供的服务是通过 Internet 信息服务的管理单元提供 FTP 连接和管理。 5、关掉23端口:关闭Telnet服务,它允许远程用户登录到系统并且使用命令行运行控制台程序。 6、还有一个很重要的就是关闭server服务,此服务提供 RPC 支持、文件、打印以及命名管道共享。关掉它就关掉了win2k的默认共享,比如ipc$、c$、admin$等等,此服务关闭不影响您的共他操作。 7、还有一个就是139端口,139端口是NetBIOS Session端口,用来文件和打印共享,注意的是运行samba的unix机器也开放了139端口,功能一样。以前流光2000用来判断对方主机类型不太准确,估计就是139端口开放既认为是NT机,现在好了。 关闭139口听方法是在“网络和拨号连接”中“本地连接”中选取“Internet协议(TCP/IP)”属性,进入“高级TCP/IP设置”“WINS设置”里面有一项“禁用TCP/IP的NETBIOS”,打勾就关闭了139端口。 对于个人用户来说,可以在各项服务属性设置中设为“禁用”,以免下次重启服务也重新启动,端口也开放了。 每一项服务都对应相应的端口,比如众如周知的WWW服务的端口是80,smtp是25,ftp是21,win2000安装中默认的都是这些服务开启的。对于个人用户来说确实没有必要,关掉端口也就是关闭无用的服务。 “控制面板”的“管理工具”中的“服务”中来配置。 1、关闭7.9等等端口:关闭Simple TCP/IP Service,支持以下 TCP/IP 服务:Character Generator, Day, Discard, Echo, 以及 Quote of the Day。 2、关闭80口:关掉WWW服务。在“服务”中显示名称为"World Wide Web Publishing Service",通过 Internet 信息服务的管理单元提供 Web 连接和管理。 3、关掉25端口:关闭Simple Mail Transport Protocol (SMTP)服务,它提供的功能是跨网传送电子邮件。 4、关掉21端口:关闭FTP Publishing Service,它提供的服务是通过 Internet 信息服务的管理单元提供 FTP 连接和管理。 5、关掉23端口:关闭Telnet服务,它允许远程用户登录到系统并且使用命令行运行控制台程序。 6、还有一个很重要的就是关闭server服务,此服务提供 RPC 支持、文件、打印以及命名管道共享。关掉它就关掉了win2k的默认共享,比如ipc$、c$、admin$等等,此服务关闭不影响您的共他操作。 7、还有一个就是139端口,139端口是NetBIOS Session端口,用来文件和打印共享,注意的是运行samba的unix机器也开放了139端口,功能一样。以前流光2000用来判断对方主机类型不太准确,估计就是139端口开放既认为是NT机,现在好了。 关闭139口听方法是在“网络和拨号连接”中“本地连接”中选取“Internet协议(TCP/IP)”属性,进入“高级TCP/IP设置”“WINS设置”里面有一项“禁用TCP/IP的NETBIOS”,打勾就关闭了139端口。 对于个人用户来说,可以在各项服务属性设置中设为“禁用”,以免下次重启服务也重新启动,端口也开放了。

给你介绍一个在手工在windows里面设置的方法 本地连接》》状态》》属性》》tcp/ip协议》》属性》》高级》》选项》》属性》》启用TCP/IP删选》》只把你需要的端口填上去。其余都不要就可以了 还有一些默认的端口需要手工去修改注册表 1.关闭139端口:139端口是NetBIOS Session端口,用来文件和打印共享,注意的是运行samba的unix机器也开放了139端口,功能一样。关闭139口听方法是在“网络和拨号连接”中“本地连接”中选取“Internet协议(TCP/IP)”属性,进入“高级TCP/IP设置”“WINS设置”里面有一项“禁用TCP/IP的NETBIOS”,打勾就关闭了139端口。 2.关闭445端口:修改注册表,添加一个键值 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters] "SMBDeviceEnabled"=dword:00000000 QQ的端口号:在家里上网的话是4000 但珊瑚虫版的是3000以后 通过关闭端口可以做到防止病毒入侵和禁止登陆某些软件的功能,如QQ和BT 对于个人用户来说,您可以限制所有的端口,因为您根本不必让您的机器对外提供任何服务;而对于对外提供网络服务的服务器,我们需把必须利用的端口(比如WWW端口80、FTP端口21、邮件服务端口25、110等)开放,其他的端口则全部关闭。

这里,对于采用Windows 2000或者Windows XP的用户来说,不需要安装任何其他软件,可以利用“TCP/IP筛选”功能限制服务器的端口。具体设置如下:

1.通用篇(适用系统Win2000/XP/server2003),最近我在论坛看了一些文章,发现大家都有一个误区,就是哪个端口出漏洞就关闭哪个端口,其实这样是不能保证系统安全的,正确的方法应该是先了解清楚自己需要开放哪些端口,了解完毕后,把自己不需要的端口统统关闭掉,这样才能保证系统的安全性。 比如说你的电脑是一台服务器,服务器需要有Mail Server和WEB服务,还要有FTP服务,这些只需要开放21、25、80、110就足够了。其它的就应该全部关闭。 关闭的方法:点击“开始→控制面板→网络连接→本地连接→右键→属性”,然后选择“Internet(tcp/ip)”→“属性”,。在“Internet(tcp/ip)属性”对话框中选择“高级”选项卡。在“高级TCP/IP设置”对话框中点选“选项”→“TCP/IP筛选”→“属性”,。在这里分为3项,分别是TCP、UDP、IP协议。假设我的系统只想开放21、80、25、110这4个端口,只要在“TCP端口”上勾选“只允许”然后点击“添加”依次把这些端口添加到里面,然后确定。注意:修改完以后系统会提示重新启动,这样设置才会生效。这样,系统重新启动以后只会开放刚才你所选的那些端口 ,其它端口都不会开放。 2.利用系统自带防火墙关闭端口(适用系统WinXP/Server 2003) 微软推出WinXP之后的操作系统本身都自带防火墙,用它就可以关闭掉不需要的端口,实现的步骤也很简单。 具体设置:“控制面板”→“本地连接”→“高级”,把“Inernet连接防火墙”下面的选项勾选上,如图所示,然后点击“设置”,出现如图所示窗口。假设我们要关闭135端口(所有使用Win2000或者是WinXP的用户马上关闭135端口,因为最新的漏洞可以利用这个端口攻击服务器获取权限),135端口用于启动与远程计算机的RPC连接。我们可以在“高级设置”窗口的“服务”选项卡中点击“添加”按钮,。在“服务设置”对话框中把各项按图中所示填写好之后一路确定就可以了。这样防火墙就自动启动了,启动以后“本地连接”图标会出现一个可爱的小锁头。 以上就是利用系统本身自带防火墙关闭端口的方法。当然了,有条件的朋友还可以使用第三方防火墙来关闭端口。

4:防火墙新技术

.1 包过滤防火墙(Packet Filter Firewall)

包过滤防火墙----第一代防火墙,没有状态的概念。通过包过滤,管理员能够允许或禁止ACLs(Access Control Lists,访问控制列表)中的选项,包过滤防火墙主要具有以下属性:

★ 数据包到达的物理网络接口;

★ 源IP地址和端口;

★ 目标IP地址和端口;

但是,包过滤防火墙的安全性有一定的缺陷,因为系统对应用层信息无感知,也就是说,防火墙不理解通信的内容,所以可能被黑客所攻破。

由于种种原因,人们认为包过滤防火墙不过安全,于是逐渐被状态检测防火墙所取代。

1.2 状态检测防火墙(Stateful Inspection Firewall)

状态检测防火墙出现,并成为市场上的绝对领导者,主要有以下原因,包括性能,部署能力和扩展能力。他们在90年代中期得到了迅速发展。1993年,Check Point公司成功推出了世界上第一台商用的状态检测防火墙产品。

状态检测防火墙工作于网络层,与包过滤防火墙相比,状态检测防火墙判断允许还是禁止数据流的依据也是源IP地址,目的IP地址,源端口,目的端口和通讯协议等。与包过滤防火墙不同的是,状态检测防火墙是基于会话信息做出决策的,而不是包的信息;

状态检测防火墙验证进来的数据包时,判断当前数据包是否符合先前允许的会话,并在状态表中保存这些信息。状态检测防火墙还能阻止基于异常 TCP的网络层的攻击行为。网络设备,比如路由器,会将数据包分解成更小的数据帧,因此,状态检测设备,通常需要进行IP数据帧的重组,按其原来顺序组装成完整的数据包。

1.3 深度检测防火墙(Deep Inspection Firewall)

深度检测防火墙,将状态检测和应用防火墙技术结合在一起,以处理应用程序的流量,防范目标系统免受各种复杂的攻击。结合了状态检测的所有功能,深度检测防火墙能够对数据流量迅速完成网络层级别的分析,并做出访问控制决;对于允许的数据流,根据应用层级别的信息,对负载做出进一步的决策。

深度检测防火墙深入分析了TCP或UDP数据包的内容,以便对负载有个总的认识

2、深度检测技术的四个基本特征

新的深度检测技术仍在不断出现,以实现不同的深度检测功能,但是我们需要了解深度检测技术所具有的基本特征。

高级的深度检测防火墙整合了包过滤防火墙和状态检测防火墙的所有功能,如图1所示。

高级的深度检测技术一般具有以下四个方面的特征:

◆ 应用层加密/解密;

◆ 正常化;

◆ 协议一致性;

◆ 双向负载检测;

这四种特征,为Web应用程序提供了重要防护,如果其中一种特征没有实现的话,深度检测防火墙在抵制应用层攻击时,效果会大打折扣。

2.1 应用层加密/解密

SSL广泛被应用于各种场合,以确保相关数据的安全性。这就对防火墙提出了新要求:必须能够处理数据加密/解密。如果不对SSL加密的数据进行解密,防火墙就不能对负载的信息进行分析,更不可能判断数据包中是否含有应用层攻击信息。如果没有解密功能,深度检测的所有优点都无法体现出来。

由于SSL加密的安全性很高,企业常使用SSL技术,以确保关键应用程序的通讯数据的安全性。如果深度检测不能对企业中关键应用程序提供深度检测安全性的话,整个深度检测的优势将失去意义。

2.2 正常化

防范应用层攻击,很大程度上依赖于字符串匹配。不正常的匹配会造成安全漏洞。比如,为了探知某种请求的安全策略是否被启用,防火墙通常根据请求的URL与安全策略来进行匹配。一旦与某种策略条件完全匹配,防火墙就采用对应的安全策略。指向同一个资源的URL或许有多种不同形态,如果该URL的编码方式不同的话,二进制方式的比较就不起作用了。攻击者会利用各种技术,对输入的URL进行伪装,企图避开字符串匹配,以达到越过安全设备的目的。

这些攻击行为,在欺骗IDS和IPS方面,特别有效,因为攻击代码只要与安全设备的特征库有一点点不同的话,就能够达到目的。如图2所示。

解决字符串匹配问题需要利用正常化技术,深度检测能够识别和阻止大量的攻击。对于防范隐藏在帧数据、Unicode、URL编码,双重URL编码和多形态的Shell等类型的攻击行为,必须要用到正常化技术,如图3所示。

2.3 协议一致性

应用层协议,如HTTP、SMTP、POP3、DNS、IMAP和FTP,在应用程序中经常用到。每个协议,都由RFC(Request For Comments)相关规范创建。

深度检测防火墙,必须确认应用层数据流是否与这些协议定义相一致,以防止隐藏其中的攻击。

深度检测在应用层进行状态检测。协议一致性,通过对协议报文的不同字段进行解密而实现,当协议中的字段被识别出来后,防火墙采用RFC定义的应用规则,来检查其合法性。如图4所示。

2.4 双向负载检测

深度检测具有强大功能,能够允许数据包通过,拒绝数据包,检查或修改第4到7层数据包,包括包头或负载。HTTP深度检测能够查看到消息体中的 URL,包头和参数等信息。深度检测防火墙能够自动进行动态配置,以便正确检测服务变量,如最大长度,隐藏字段和Radio按钮等等。如果请求的变量不匹配,不存在或者不正确的话,深度检测防火墙会将请求丢弃掉,将该事件写入日志,并给管理员发出警告信息。

深度检测技术允许修改或转换URL,包头和参数,这一点与应用层上的NAT类似。如图5所示。

3、总结

在复杂的Web环境中,为了提供全面的应用程序防护,深度检测是必需的。为了能够有效的阻止Web攻击,防火墙必须能够应用基于源IP地址、目的IP地址、端口以及应用程序内容的安全策略。

深度检测技术还在不断发展,但是深度检测技术一般具有应用层加密/解密、正常化、协议一致性、双向负载检测等四个方面的特征。

企业部署Web应用程序时,应该要确保防火墙能够满足这些应用程序要求得的安全需求,并且防火墙能够满足深度检测技术中的四项基本特征。

TCP/IP协议 是个什么东东

什么是TCP/IP?

TCP协议和IP协议指两个用在Internet上的网络协议(或数据传输的方法)。它们分别是传输控制协议和互连网协议。这两个协议属于众多的TCP/IP 协议组中的一部分。

TCP/IP协议组中的协议保证Internet上数据的传输,提供了几乎现在上网所用到的所有服务。这些服务包括:电子邮件的传输 文件传输 新闻组的发布 访问万维网

在TCP/IP协议组分两种协议:网络层的协议 应用层的协议

网络层协议

网络层协议管理离散的计算机间的数据传输。这些协议用户注意不到,是在系统表层以下工作的。比如,IP协议为用户和远程计算机提供了信息包的传输方法。它是在许多信息的基础上工作的,比如说是机器的IP地址。在机器IP地址和其它信息的基础上,IP确保信息包能正确地到达目的机器。通过这一过程,IP和其它网络层的协议共同用于数据传输。如果没有网络工具,用户就看不到在系统里工作的IP。

应用层协议

相反地,应用层协议用户是可以看得到的。比如,文件传输协议(FTP)用户是看得到的。用户为了传输一个文件请求一个和其它计算机的连接,连接建立后,就开始传输文件。在传输时,用户和远程计算机的交换的一部分是能看到的。

请记住这句总结性的话:TCP/IP协议是指一组使得Internet上的机器相互通信比较方便的协议。

TCP/IP是如何工作的?

TCP/IP通过使用协议栈工作。这个栈是所有用来在两台机器间完成一个传输的所有协议的几个集合。(这也就是一个通路,数据通过它从一台机器到另一台机器。)栈分成层,与这里有关的是五个层。学习下面的图可以对层有个概念。

在数据通过图示的步骤后,它就从网络中的一台机器传到另一台机器了。在这个过程中,一个复杂的查错系统会在起始机器和目的机器中执行。

栈的每一层都能从相邻的层中接收或发送数据。每一层都与许多协议相联系。在栈的每一层,这些协议都在起作用。本章的下一部分将分析这些服务,以及它们在栈中是如何联系的。同时也分析一下它们的功能,它们提供的服务和与安全性的关系。

协议简介

已经知道数据是怎样使用TCP/IP协议栈来传输的了。现在仔细分析在栈中所用到的关键的协议。先从网络层的协议开始。

网络层协议

网络层协议是那些使传输透明化的协议。除了使用一些监视系统进程的工具外,用户是看不见这些协议的。

Sniffers是能看到这些步骤的装置。这个装置可以是软件,也可以是硬件,她能读取通过网络发送的每一个包。Sniffers广泛地用于隔离用户看不到的、网络性能下降的问题。sniffers能读取发生在网络层协议的任何活动。而且,正如你已经猜到的,sniffers会对安全问题造成威胁。参见Sniffers一章。

重要的网络层协议包括:

地址解析协议(ARP)

Internet控制消息协议(ICMP)

Internet协议(IP)

传输控制协议(TCP)

下面仅仅简单介绍一下。

地址解析协议ARP

地址解析协议的目的是将IP地址映射成物理地址。这在使信息通过网络时特别重要。在一个消息(或其他数据)发送之前,被打包到IP包里,或适合于Internet传输的信息块。这包括两台计算机的IP地址。在这个包离开发送计算机之前,必须要找到目标的硬件地址。这就是ARP最初用到的地方。

一个ARP请求消息在网上广播。请求由一个进程接收,它回复物理地址。这个回复消息由原先的那台发送广播消息计算机接收,从而传输过程就开始了。

ARP的设计包括一个缓存。为了理解缓存的概念,考虑一下:许多现代的HTML浏览器(比如Netscape或Microsoft的Internet

Explorer)使用了一个缓存。缓存是磁盘的一部分,从Web网上经常访问的东西就存在里面(比如按钮,或通用的图形)。这是符合逻辑的,因为当你返回这些主页的时候,这些东西不必再从远程计算机上装载了。从缓存中装载的速度要比较快。

相似的,ARP的实现包括一个缓存。以这种方式,网络或远程计算机的硬件地址就存着了,并为接着的ARP请求作准备。这样节省了时间和网络资源。

但是,正是由于缓存,就引起了安全性。

对于网络安全来将,这并不是最重要的安全性问题。然而,地址缓存(不仅仅是在ARP而且在其他例子中)确实会引起安全性问题。一旦这些地址保存,都会是让黑客伪造一个远程连接,它们对缓存的地址很欢迎。 Internet控制消息协议ICMP

Internet控制消息协议是用来在两台计算机间传输时处理错误和控制消息的。它允许这些主机共享信息。在这一方面,ICMP是用来诊断网络问题的重要工具。通过ICMP收集诊断信息的例子如下:

一台主机关机

一个网关堵塞和工作不正常

网络中其他的失败

可能最著名的ICMP实现的网络工具是ping。ping通常用来判断是否一台远程机器正开着,数据包从用户的计算机发到远程计算机。这些包通常返回用户的计算机。如果没有返回数据包到用户计算机,ping程序就产生一个表示远程计算机关机的错误消息。

应用层协议

应用层协议是专门为用户提供应用服务的。它是建立在网络层协议之上的。

Telnet

Telnet在RFC

854中有详细地描述,Telnet协议中说明:Telnet协议的目的就是提供一个相当通用的,双向的,面向八位字节的通信机制。它的最初目的是允许终端和面向终端的进程之间的交互。

Telnet不仅允许用户登录到一个远程主机,它允许用户在那台计算机上执行命令。这样,Los Angeles的一个人可以Telnet到New

York的一台机器,并在这台机器上运行程序,就跟在New York的用户一样。

对于熟悉Telnet的用户来讲,他的操作与BBS的界面一样。Telnet是一个能提供建立在终端字体的访问数据库的一个应用程序。比如,多于80%的大学的图书馆的目录可以通过Telnet访问到。

即使GUI应用程序被大大采用,Telnet这个建立在字符基础上的应用程序,仍相当的流行。这有许多原因。第一,Telnet允许你以很小的网络资源花费实现各种功能(如收发邮件)。实现安全的Telnet是件十分简单的事。有许多这样的程序,通用的是Secure Shell。

要使用Telnet,用户要指定启动Telnet客户的命令,并在后面指定目标主机的名字。在Linux中,可以这样:

$telnet internic.net

这个命令启动Telnet过程,连接到internic.net。这个连接可能被接受,或被拒绝,这与目标主机的配置有关。在UNIX,Telnet命令很久以前就是内置的。也就是说,Telnet已经包含在UNIX的发行版本中有十年了。但并不是所有操作系统都将Telnet作为内置的Telnet客户。

文件传输协议FTP

文件传输协议是从一个系统向另一个系统传递文件的标准方法。它的目标在RFC 0765中写得很清楚。

FTP的目标是1)促进文件和程序的共享,2)鼓励间接和含蓄的使用远程计算机,3)使用户不必面对主机间使用的不同的文件存储系统,4)有效和可靠地传输文件。FTP,尽管用户可以直接通过终端来使用,是设计成让别的程序使用的。

约有二十年,研究者调查了相当广泛的文件传输方法。FTP经历了多次改变。1971年作了第一次定义,整个的说名参见RFC 114。

FTP是怎样工作的?

FTP文件传输应用在客户/服务环境。请求机器启动一个FTP客户端软件。这就给目标文件服务器发出了一个请求。典型地,这个要求被送到端口21。一个连接建立起来后,目标文件服务器必须运行一个FTP服务软件。

FTPD是标准的FTP服务daemon。它的功能很简单:回复inetd收到的连接请求,并满足这些要传输文件的请求。这个daemon在许多发行版的UNIX中是个标准。

FTPD等待一个连接请求。当这样的一个请求到达时,FTPD请求用户登录。用户提供它的合法的登录名和口令或匿名登录。

一旦登录成功,用户可以下载文件了。在某些情况下,如果服务器的安全允许,用户可以上载文件。

简单邮件传输协议SMTP

简单邮件传输协议的目的是使得邮件传输可靠和高效。

SMTP是一个相当小和有效的协议。用户给SMTP服务器发个请求。一个双向的连接随后就建立了。客户发一个MAIL指令,指示它想给Internet上的某处的一个收件人发个信。如果SMTP允许这个操作,一个肯定的确认发回客户机。随后,会话开始。客户可能告知收件人的名称和IP地址,以及要发送的消息。

尽管SMTP相当简单,邮件服务是无穷的安全漏洞的源泉。

SMTP服务在Linux内部是内置的。其它网络操作系统也提供某些形式的SMTP。

Gopher

Gopher是一个分布式的文件获取系统。它最初是作为Campus Wide Information

System在Minnesota大学实现的。它的定义如下:

Internet

Gopher协议最初是设计用来最为一个分布式文件发送系统的。文档放在许多服务器上,Gopher客户软件给客户提供一个层次项和目录,看上去象一个文件系统。事实上,Gopher的界面设计成类似一个文件系统,因为文件系统是查找文件和服务的最好模型。

tcp/ip的欺骗技术有哪几种

即使是很好的实现了TCP/IP协议,由于它本身有着一些不安全的地方,从而可以对TCP/IP网络进行攻击。这些攻击包括序列号欺骗,路由攻击,源地址欺骗和授权欺骗。本文除了介绍IP欺骗攻击方法外,还介绍怎样防止这个攻击手段。

上述攻击是建立在攻击者的计算机(包括路由)是连在INTERNET上的。这里的攻击方法是针对TCP/IP本身的缺陷的,而不是某一具体的实现。

实际上,IP 欺骗不是进攻的结果,而是进攻的手段。进攻实际上是信任关系的破坏。

第一节 IP欺骗原理

信任关系

在Unix 领域中,信任关系能够很容易得到。假如在主机A和B上各有一个帐户,在使用当中会发现,在主机A上使用时需要输入在A上的相应帐户,在主机B上使用时必须输入在B上的帐户,主机A和B把你当作两个互不相关的用户,显然有些不便。为了减少这种不便,可以在主机A和主机B中建立起两个帐户的相互信任关系。在主机A和主机B上你的home目录中创建.rhosts 文件。从主机A上,在你的home目录中输入'echo " B username " > ~/.rhosts' ;从主机B上,在你的home目录中输入'echo " A username " >~/.rhosts' 。至此,你能毫无阻碍地使用任何以r*开头的远痰饔妹如:rlogin,rcall,rsh等,而无口令验证的烦恼。这些命令将允许以地址为基础的验证,或者允许或者拒绝以IP地址为基础的存取服务。

这里的信任关系是基于IP地址的。

Rlogin

Rlogin 是一个简单的客户/服务器程序,它利用TCP传输。Rlogin 允许用户从一台主机登录到另一台主机上,并且,如果目标主机信任它,Rlogin 将允许在不应答口令的情况下使用目标主机上的资源。安全验证完全是基于源主机的IP 地址。因此,根据以上所举的例子,我们能利用Rlogin 来从B远程登录到A,而且不会被提示输入口令。

TCP 序列号预测

IP只是发送数据包,并且保证它的完整性。如果不能收到完整的IP数据包,IP会向源地址发送一个ICMP 错误信息,希望重新处理。然而这个包也可能丢失。由于IP是非面向连接的,所以不保持任何连接状态的信息。每个IP数据包被松散地发送出去,而不关心前一个和后一个数据包的情况。由此看出,可以对IP堆栈进行修改,在源地址和目的地址中放入任意满足要求的IP地址,也就是说,提供虚假的IP地址。

TCP提供可靠传输。可靠性是由数据包中的多位控制字来提供的,其中最重要的是数据序列和数据确认,分别用SYN和ACK来表示。TCP 向每一个数据字节分配一个序列号,并且可以向已成功接收的、源地址所发送的数据包表示确认(目的地址ACK 所确认的数据包序列是源地址的数据包序列,而不是自己发送的数据包序列)。ACK在确认的同时,还携带了下一个期望获得的数据序列号。显然,TCP提供的这种可靠性相对于IP来说更难于愚弄。

序列编号、确认和其它标志信息

由于TCP是基于可靠性的,它能够提供处理数据包丢失,重复或是顺序紊乱等不良情况的机制。实际上,通过向所传送出的所有字节分配序列编号,并且期待接收端对发送端所发出的数据提供收讫确认,TCP 就能保证可靠的传送。接收端利用序列号确保数据的先后顺序,除去重复的数据包。TCP 序列编号可以看作是32位的计数器。它们从0至2^32-1 排列。每一个TCP连接(由一定的标示位来表示)交换的数据都是顺序编号的。在TCP数据包中定义序列号(SYN)的标示位位于数据段的前端。确认位(ACK)对所接收的数据进行确认,并且指出下一个期待接收的数据序列号。

TCP通过滑动窗口的概念来进行流量控制。设想在发送端发送数据的速度很快而接收端接收速度却很慢的情况下,为了保证数据不丢失,显然需要进行流量控制,协调好通信双方的工作节奏。所谓滑动窗口,可以理解成接收端所能提供的缓冲区大小。TCP利用一个滑动的窗口来告诉发送端对它所发送的数据能提供多大的缓冲区。由于窗口由16位bit所定义,所以接收端TCP 能最大提供65535个字节的缓冲。由此,可以利用窗口大小和第一个数据的序列号计算出最大可接收的数据序列号。

其它TCP标示位有RST(连接复位,Reset the connection)、PSH(压入功能,Push function)和FIN (发送者无数据,No more data from sender)。如果RST 被接收,TCP连接将立即断开。RST 通常在接收端接收到一个与当前连接不相关的数据包时被发送。有些时候,TCP模块需要立即传送数据而不能等整段都充满时再传。一个高层的进程将会触发在TCP头部的PSH标示,并且告诉TCP模块立即将所有排列好的数据发给数据接收端。FIN 表示一个应用连接结束。当接收端接收到FIN时,确认它,认为将接收不到任何数据了。

TCP序列号预测最早是由Morris对这一安全漏洞进行阐述的。他使用TCP序列号预测,即使是没有从服务器得到任何响应, 来产生一个TCP包序列。这使得他能欺骗在本地网络上的主机。

通常TCP连接建立一个包括3次握手的序列。客户选择和传输一个初始的序列号(SEQ标志)ISN C,并设置标志位SYN=1,告诉服务器它需要建立连接。服务器确认这个传输,并发送它本身的序列号ISN S,并设置标志位ACK,同时告知下一个期待获得的数据序列号是ISN=1。客户再确认它。在这三次确认后,开始传输数据。整个过程如下所示:(C:Client S:Server)

C---S: SYN(ISN C )

S---C: SYN(ISN S ) ,ACK(ISN C )

C---S: ACK(ISN S )

C---S:数据 或S---C:数据

也就是说对一个会话,C必须得到ISN S确认。ISN S可能是一个随机数。

了解序数编号如何选择初始序列号和如何根据时间变化是很重要的。似乎应该有这种情况,当主机启动后序列编号初始化为1,但实际上并非如此。初始序列号是由tcp_init函数确定的。ISN每秒增加128000,如果有连接出现,每次连接将把计数器的数值增加64000。很显然,这使得用于表示ISN的32位计数器在没有连接的情况下每9.32 小时复位一次。之所以这样,是因为这样有利于最大限度地减少旧有连接的信息干扰当前连接的机会。这里运用了2MSL 等待时间的概念(不在本文讨论的范围之内)。如果初始序列号是随意选择的,那么不能保证现有序列号是不同于先前的。假设有这样一种情况,在一个路由回路中的数据包最终跳出了循环,回到了“旧有”的连接(此时其实是不同于前者的现有连接),显然会发生对现有连接的干扰。

假设一个入侵者X有一种方法,能预测ISN S。在这种情况下,他可能将下列序号送给主机T来模拟客户的真正的ISN S:

X---S: SYN(ISN X ) ,SRC = T

S---T: SYN(ISN S ) ,ACK(ISN X )

X---S: ACK(ISN S ) ,SRC =T

尽管消息S*T并不到X,但是X能知道它的内容,因此能发送数据。如果X要对一个连接实施攻击,这个连接允许执行命令,那么另外的命令也能执行。

那么怎样产生随机的ISN?在Berkeley系统,最初的序列号变量由一个常数每秒加一产生,等到这个常数一半时,就开始一次连接。这样,如果开始了一个合法连接,并观察到一个ISN S在用,便可以计算,有很高可信度,ISN S 用在下一个连接企图。

Morris 指出,回复消息

S---T:SYN(ISN S ) ,ACK(ISN X )

事实上并不消失,真正主机将收到它,并试图重新连接。这并不是一个严重的障碍。

Morris发现,通过模仿一个在T上的端口,并向那个端口请求一个连接,他就能产生序列溢出,从而让它看上去S*T消息丢失了。另外一个方法,可以等待知道T关机或重新启动。

下面详细的介绍一下。

IP欺骗

IP欺骗由若干步骤组成,这里先简要地描述一下,随后再做详尽地解释。先做以下假定:首先,目标主机已经选定。其次,信任模式已被发现,并找到了一个被目标主机信任的主机。黑客为了进行IP欺骗,进行以下工作:使得被信任的主机丧失工作能力,同时采样目标主机发出的TCP 序列号,猜测出它的数据序列号。然后,伪装成被信任的主机,同时建立起与目标主机基于地址验证的应用连接。如果成功,黑客可以使用一种简单的命令放置一个系统后门,以进行非授权操作。

使被信任主机丧失工作能力

一旦发现被信任的主机,为了伪装成它,往往使其丧失工作能力。由于攻击者将要代替真正的被信任主机,他必须确保真正被信任的主机不能接收到任何有效的网络数据,否则将会被揭穿。有许多方法可以做到这些。这里介绍“TCP SYN 淹没”。

前面已经谈到,建立TCP连接的第一步就是客户端向服务器发送SYN请求。 通常,服务器将向客户端发送SYN/ACK 信号。这里客户端是由IP地址确定的。客户端随后向服务器发送ACK,然后数据传输就可以进行了。然而,TCP处理模块有一个处理并行SYN请求的最上限,它可以看作是存放多条连接的队列长度。其中,连接数目包括了那些三步握手法没有最终完成的连接,也包括了那些已成功完成握手,但还没有被应用程序所调用的连接。如果达到队列的最上限,TCP将拒绝所有连接请求,直至处理了部分连接链路。因此,这里是有机可乘的。

黑客往往向被进攻目标的TCP端口发送大量SYN请求,这些请求的源地址是使用一个合法的但是虚假的IP地址(可能使用该合法IP地址的主机没有开机)。而受攻击的主机往往是会向该IP地址发送响应的,但可惜是杳无音信。与此同时IP包会通知受攻击主机的TCP:该主机不可到达,但不幸的是TCP会认为是一种暂时错误,并继续尝试连接(比如继续对该IP地址进行路由,发出SYN/ACK数据包等等),直至确信无法连接。

当然,这时已流逝了大量的宝贵时间。值得注意的是,黑客们是不会使用那些正在工作的IP地址的,因为这样一来,真正IP持有者会收到SYN/ACK响应,而随之发送RST给受攻击主机,从而断开连接。前面所描述的过程可以表示为如下模式。

1 Z (X) ---SYN --- B

  Z (X) ---SYN ---> B

  Z (X) ---SYN ---> B

2 X <---SYN/ACK-- B

X <---SYN/ACK-- B

3 X <--- RST --- B

在时刻1时,攻击主机把大批SYN 请求发送到受攻击目标(在此阶段,是那个被信任的主机),使其TCP队列充满。在时刻2时,受攻击目标向它所相信的IP地址(虚假的IP)作出SYN/ACK反应。在这一期间,受攻击主机的TCP模块会对所有新的请求予以忽视。不同的TCP 保持连接队列的长度是有所不同的。BSD 一般是5,Linux一般是6。使被信任主机失去处理新连接的能力,所赢得的宝贵空隙时间就是黑客进行攻击目标主机的时间,这使其伪装成被信任主机成为可能。

序列号取样和猜测

前面已经提到,要对目标主机进行攻击,必须知道目标主机使用的数据包序列号。现在,我们来讨论黑客是如何进行预测的。他们先与被攻击主机的一个端口(SMTP是一个很好的选择)建立起正常的连接。通常,这个过程被重复若干次,并将目标主机最后所发送的ISN存储起来。黑客还需要估计他的主机与被信任主机之间的RTT时间(往返时间),这个RTT时间是通过多次统计平均求出的。RTT 对于估计下一个ISN是非常重要的。前面已经提到每秒钟ISN增加128000,每次连接增加64000。现在就不难估计出ISN的大小了,它是128000乘以RTT的一半,如果此时目标主机刚刚建立过一个连接,那么再加上一个64000。再估计出ISN大小后,立即就开始进行攻击。当黑客的虚假TCP数据包进入目标主机时,根据估计的准确度不同,会发生不同的情况:

如果估计的序列号是准确的,进入的数据将被放置在接收缓冲器以供使用。

如果估计的序列号小于期待的数字,那么将被放弃。

如果估计的序列号大于期待的数字,并且在滑动窗口(前面讲的缓冲)之内,那么,该数据被认为是一个未来的数据,TCP模块将等待其它缺少的数据。如果估计的序列号大于期待的数字,并且不在滑动窗口(前面讲的缓冲)之内,那么,TCP将会放弃该数据并返回一个期望获得的数据序列号。下面将要提到,黑客的主机并不能收到返回的数据序列号。

1 Z(B) ----SYN --- A

2 B <---SYN/ACK--- A

3 Z(B) -----ACK---> A

4 Z(B) ---――PSH---> A

攻击者伪装成被信任主机的IP 地址,此时,该主机仍然处在停顿状态(前面讲的丧失处理能力),然后向目标主机的513端口(rlogin的端口号)发送连接请求,如时刻1所示。在时刻2,目标主机对连接请求作出反应,发送SYN/ACK数据包给被信任主机(如果被信任主机处于正常工作状态,那么会认为是错误并立即向目标主机返回RST数据包,但此时它处于停顿状态)。按照计划,被信任主机会抛弃该SYN/ACK数据包。然后在时刻3,攻击者向目标主机发送ACK数据包,该ACK使用前面估计的序列号加1(因为是在确认)。如果攻击者估计正确的话,目标主机将会接收该ACK 。至耍连接正式建立起来了。在时,将开始数据传输。一般地,攻击者将在系统中放置一个后门,以便侵入。经常会使用 ′cat ++ ~/.rhosts′。之所以这样是因为,这个办法迅速、简单地为下一次侵入铺平了道路。

一个和这种TCP序列号攻击相似的方法,是使用NETSTAT服务。在这个攻击中,入侵者模拟一个主机关机了。如果目标主机上有NETSTAT,它能提供在另一端口上的必须的序列号。这取消了所有要猜测的需要。

典型攻击工具和攻击过程:hunt

IP欺骗的防止

防止的要点在于,这种攻击的关键是相对粗糙的初始序列号变量在Berkeley系统中的改变速度。TCP协议需要这个变量每秒要增加25000次。Berkeley 使用的是相对比较慢的速度。但是,最重要的是,是改变间隔,而不是速度。

我们考虑一下一个计数器工作在250000Hz时是否有帮助。我们先忽略其他发生的连接,仅仅考虑这个计数器以固定的频率改变。

为了知道当前的序列号,发送一个SYN包,收到一个回复:

X---S: SYN(ISN X )

S---X: SYN(ISN S ) ,ACK(ISN X ) (1)

第一个欺骗包,它触发下一个序列号,能立即跟随服务器对这个包的反应:

X---S: SYN(ISN X ) ,SRC = T (2)

序列号ISN S用于回应了:

S---T: SYN(ISN S ) ,ACK(ISN X )

是由第一个消息和服务器接收的消息唯一决定。这个号码是X和S的往返精确的时间。这样,如果欺骗能精确地测量和产生这个时间,即使是一个4-U时钟都不能击退这次攻击。

抛弃基于地址的信任策略

阻止这类攻击的一种非常容易的办法就是放弃以地址为基础的验证。不允许r*类远程调用命令的使用;删除.rhosts 文件;清空/etc/hosts.equiv 文件。这将迫使所有用户使用其它远程通信手段,如telnet、ssh、skey等等。

进行包过滤

如果您的网络是通过路由器接入Internet 的,那么可以利用您的路由器来进行包过滤。确信只有您的内部LAN可以使用信任关系,而内部LAN上的主机对于LAN以外的主机要慎重处理。您的路由器可以帮助您过滤掉所有来自于外部而希望与内部建立连接的请求。

使用加密方法

阻止IP欺骗的另一种明显的方法是在通信时要求加密传输和验证。当有多种手段并存时,可能加密方法最为适用。

使用随机化的初始序列号

黑客攻击得以成功实现的一个很重要的因素就是,序列号不是随机选择的或者随机增加的。Bellovin 描述了一种弥补TCP不足的方法,就是分割序列号空间。每一个连接将有自己独立的序列号空间。序列号将仍然按照以前的方式增加,但是在这些序列号空间中没有明显的关系。可以通过下列公式来说明:

ISN =M+F(localhost,localport ,remotehost ,remoteport )

M:4微秒定时器

F:加密HASH函数。

F产生的序列号,对于外部来说是不应该能够被计算出或者被猜测出的。Bellovin 建议F是一个结合连接标识符和特殊矢量(随机数,基于启动时间的密码)的HASH函数

TCP/IP攻击的基于TCP/IP协议的网络攻击方式

有三台主机:

A:IP地址 192.168.0.1;硬件地址AA:AA:AA:AA:AA:AA

B:IP地址 192.168.0.2;硬件地址BB: BB: BB: BB: BB: BB

C:IP地址 192.168.0.3;硬件地址CC:CC:CC: CC:CC:CC

一个位于主机B的入侵者想非法进入主机A,可是这台主机上安装有防火墙。通过收集资料得知这台主机A的防火墙只对主机C有信任关系。而入侵者必须要使用telnet来进入主机A,这个时候入侵者应当如何处理?

要telnet到主机A,入侵者可以让主机A相信主机B就是主机C。如果主机A与C的信任关系是建立在IP地址上的。攻击者可以先通过各种拒绝式服务方式让C这台机器暂时宕机,同时将B的IP地址改为192.168.0.3,B就可以成功地通过23端口telnet到A上,而成功地绕过防火墙的限制。

但是,如果AC的信任关系是建立在硬件地址之上,这个时候上述的方式就不行了,需要运用ARP欺骗方式。

入侵者认为地制造一个arp_reply的响应包,发送给想要欺骗的主机A,这是可以实现的,因为ARP协议并没有规定在收到arp_echo请求后才可以发送响应包(这就是能够实现的关键,在一般的情况之下只有路由器进行了arp广播之后,主机才会回复)。这样,就可以通过发送虚假的ARP响应包来修改主机A上的动态ARP缓存来达到欺骗的目的。

具体步骤如下:

①利用工具,进行拒绝式服务攻击,让主机C宕机,暂时停止工作。

②在这段时间里,入侵者把自己的IP改为192.168.0.3(主机C的IP)。

③用工具发一个源地址为192.168.0.3,源MAC地址为BB: BB: BB: BB: BB: BB的包给主机A,要求A更新自己的ARP转换表(ARP缓存)。

④主机A更新了ARP缓存中关于主机C的IPàMAC的对应关系。

⑤防火墙失效了,现在主机B可以telnet到主机A。 2.1ICMP转向连接攻击

攻击者使用ICMP超时或者ICMP主机不可达报文,这两种报文都会使得主机迅速放弃连接。此时通信连接就会被切断。

一台主机错误地认为信息的目标地址不在本地网络之中的时候,网关通常会使用ICMP重定向消息。如果攻击者伪造一条重定向消息,就可以导致主机经过攻击者主机向特定连接发送数据包。

2.2ICMP数据包放大(ICMP Smurf)

攻击者向安全薄弱网络的广播地址发送ICMP回显请求,所有的主机都会像被攻击主机,发送ICMP应答,占用了目标系统的带宽,并导致合法通信的拒绝服务(DoS)。

2.3ICMP Ping淹没攻击

大量的ping信息广播淹没了目标系统。

2.4ICMP nuke攻击

nuke发送出目标操作系统无法处理的信息数据包,从而导致该系统瘫痪。

2.5通过ICMP进行攻击信息收集

可以通过ping来检查目标主机是否存活,并且根据返回的TTL值就可以判断目标主机的操作系统(Linux应答TTL为64,windows 200/NT/XP为128,其他系统未列出)。

2.6ICMP攻击防范

策略一:对ICMP数据包进行过滤

使用防火墙的功能

策略二:修改TTL值巧妙骗过黑客

系统缺省的TTL值是可以修改的,可以编写一个批处理文件来进行修改。 假设主机A和B建立TCP连接,要进行三次握手。针对TCP协议的攻击原理是:TCP协议三次握手没有完成的时候,被请求端B一般都会重试(即再给A发送SYN+ACK报文)并等待一段时间,这就可以用来进行DoS、Land、SYN flood攻击。

在SYN flood攻击中,黑客向受害主机发送大量伪造源地址的TCP SYN报文,受害主机分配必要的资源,然后向源地址返回SYN+ACK包;并等待源地址返回ACK包,由于源地址是伪造的所以源端永远不会发送ACK包,所以受害主机继续发送SYN+ACK包,并将半链接放入端口的积压队列之中,虽然一般主机都有超时机制和默认的重传次数,但是如果不断向受害主机发送大量的TCP SYN报文,半连接队列就会很快被填满,导致受害主机无法响应其他主机的连接请求。

防御方法:针对SYN flood的攻击防范措施主要有两种:一种是通过防火墙、路由器等过滤网关防护,另一种是通过加固TCP/IP协议栈。

黑客门请近来看看,在局域网中怎么抓获数据包呢

常用的抓包软件 sniffer小巧实用 etherpeek功能强大但是收费软件。

原理,网卡一般处于普通模式,只接受目的地址是自己的数据包,或广播数据包包,但抓包软件将网卡设置为混杂模式,于是网卡便可以捕获一切流经它的数据包,并对其解码 查看包内容。这并不是黑客才用的,这是网络管理员排查网络故障的必备工具。

这些属于tcp/ip的知识,参考书有 《tcp/ip详解》《tcp/ip协议原理与应用》

  • 评论列表:
  •  泪灼眼趣
     发布于 2022-07-10 06:17:05  回复该评论
  • trol Lists,访问控制列表)中的选项,包过滤防火墙主要具有以下属性: ★ 数据包到达的物理网络接口; ★ 源IP地址和端口; ★ 目标IP地址和端口; 但是,包过滤防火墙的安全性有一定的缺陷,因为系统对
  •  语酌云裳
     发布于 2022-07-10 05:31:12  回复该评论
  • 一旦与某种策略条件完全匹配,防火墙就采用对应的安全策略。指向同一个资源的URL或许有多种不同形态,如果该URL的编码方式不同的话,二进制方式的比较就不起作用了。攻击者会利用各种技术,对输入的URL进行伪装,企图避开字符串匹配,以达到越过安全设
  •  语酌池木
     发布于 2022-07-10 06:53:16  回复该评论
  • 组装成完整的数据包。 1.3 深度检测防火墙(Deep Inspection Firewall) 深度检测防火墙,将状态检测和应用防火墙技术结合在一起,以处理应用程序的流量,防范目标系统免受各种复杂的攻击。结合了状态检测的

发表评论:

Powered By

Copyright Your WebSite.Some Rights Reserved.