内容载入中...
在本章,将要介绍一些利用
port list(from neohapsis)学习Linux网络编程(2)NetXray捕获telnet登录口令Nmap网络安全扫描器说明(1)Tcpdump的使用FREEBSD中使用IPFW来过滤ICMP服务 关上可恶的后门-消除NetBIOS隐患利用处理程序错误攻击(下)嗅探原理与反嗅探技术详解TCP Chargen DoS攻击及其对策相关链接共 162 篇<<刷新该页面可以得到不同的关键字链接>>','相关的链接')" href="http://www.safechina.net/article/showarticle.php?id=1003652159#">TCP/IP协议的处理程序中错误进行攻击的原理、方法以及一些防范对策。
这些攻击包括当前流行的Teardrop和Land攻击。
利用协议实现的攻击方法,都是故意错误地设定数据包头的一些重要字段,例如,IP包头部的Total
Length、Fragment offset、IHL和Source address等字段。使用Raw Socket将这些错误的IP数据包
发送出去。在接受数据端,接收程序通常都存在一些问题,因而在将接受到的数据包组装成一个完整
的数据包的过程中,就会使系统当机、挂起或系统崩溃。
在最后,是一个服务程序错误而导致攻击的例子:OOB。
在本章,我们将结合一些程序来讨论这种攻击能够实施的原理的同时,读者也可以使用这些程序来检
查自己系统针对这类攻击的安全程度,并采取相应的措施。
1 攻击的现象及其后果
使用了Windows 95和Windows 98 NT的人们都经历过系统陷入混乱,对任何输入都没有响应的情况。
这时候,屏幕出现蓝屏,迟迟无法重新刷新。按下Ctrl+Alt+Del时,看到系统CPU利用率达到100%,
同时显示一个应用程序无响应。这是程序出错或者使用了盗版软件的缘故。
通过网络,也可以使正在使用的计算机出现这种无响应、死机的现象。事实上,大量的程序往往经
不住人们恶意的攻击。
人们已经使用了许多方法来专门对付上网的Windows 95和Windows NT。目前,能够对Windows 95和
Windows NT进行攻击的方法很多,当前流行的有:tearDrop(也称为“泪滴”)、OOB、Land和Ping of Death
等。其中,关于Ping of Death在缓冲区溢出一章中对这种攻击做了介绍,并给出了一些对策。
一般的攻击过程是这样的:当入侵者发现了一台Windows 95或者Windows NT(这只需用
帐号安全通过NetBIOS入侵 nc使用技巧解读防火墙记录网络攻击与路由器的NAT功能windows下的sock代理个人电脑防御黑客绝招关上可恶的后门-消除NetBIOS隐患Nmap网络安全扫描器说明(2)菜鸟操一(bfctx原创)相关链接共 35 篇<<刷新该页面可以得到不同的关键字链接>>','相关的链接')" href="http://www.safechina.net/article/showarticle.php?id=1003652159#">端口扫描工具扫一
下就可以辨认出来),便用一个OOB或者TearDrop攻击,再次用ping命令时,目标主机就没有响应了。事
实上,这些攻击并不是局限于Windows NT和Windows 95平台,一些攻击,如Land已被发现对
Linux 指令大全(1) 非安全编程演示之高级篇简评黑客的终极武器-DDoSIA64 地址模式和保护利用处理程序错误攻击(上)teTeX Filters 临时文件存在竞争条件漏洞 常见IP碎片攻击详解优化Apache服务器的重负荷。攻击CISCO路由器IP端口对照表(中文注释)相关链接共 136 篇<<刷新该页面可以得到不同的关键字链接>>','相关的链接')" href="http://www.safechina.net/article/showarticle.php?id=1003652159#">Linux、Cisco
网络基础知识关注内网安全:网络卫士LANguard详解IP端口对照表(中文注释)管理信息系统安全方案详解网络信息安全概况如何用IIS建立高安全性Web服务器Cisco路由器的密码恢复(CCNA基本知识) TCP/IP协议安全性能 Win2000 IP路由应用解析tcp/ip基础知识相关链接共 52 篇<<刷新该页面可以得到不同的关键字链接>>','相关的链接')" href="http://www.safechina.net/article/showarticle.php?id=1003652159#">路由器以及其他大量的UNIX操作系统都具有相当的攻击能力。
能够实施这种攻击的原因是在Windows 95和Windows NT中存在错误,这是一种处理TCP/IP协议或者服务程
序的错误。人们利用这些错误。通过给端口送一些故意弄错的数据包,在这个数据包的偏移字段和长度字
段,写入一个过大或过小的值。Windows 95和Windows NT都不能处理这个情况,然后Windows 95就先变成
蓝屏,Windows NT是非死机不可。据称TearDrop可以使被攻击的主机立刻当机。
这些攻击的危险性在于可以通过网络发起攻击,当攻击者发现了一台上网的Windows 95、Windows NT或者
Linux操作系统主机时,只需启动这一程序,输入入口参数假冒IP、端口号,被攻击主机的IP地址和端口号,
便可以发起攻击了。通常是Linux一遭到攻击就当机,而Windows在受到十几次攻击之后也会死机。这时候,
用ping命令,被攻击的主机就再也没有回应了。
服务程序存在错误的情况是很多的,例如,Windows NT中的
关于Win2000 Server安全Windows2000安全检查清单解读防火墙记录IP端口对照表(中文注释)NetXray使用说明总汇帐号安全The Solaris安全FAQ网络安全方面的专业词汇Nessus安全测试插件编写教程2Improving the Security of Your Site by Breaking Into it相关链接共 31 篇<<刷新该页面可以得到不同的关键字链接>>','相关的链接')" href="http://www.safechina.net/article/showarticle.php?id=1003652159#">RPC服务存在
IP端口对照表(中文注释)国货精品----NetHackerIITelnet密码破解软件Letmein1.0说明 Linux安全概述1―――用户帐号菜鸟XXX客快速入门一些FreeBSD相关的安全问题 10个针对分布式拒绝服务攻击有关的快速补救措施利用way-board.cgi入侵韩国网站SQL数据库的一些攻击保护数据库服务器加强数据库安全相关链接共 205 篇<<刷新该页面可以得到不同的关键字链接>>','相关的链接')" href="http://www.safechina.net/article/showarticle.php?id=1003652159#">漏洞。某个用户可以远程登录到
Windows NT 3。5x或者
FolkQQ专业黑软回顾Win NT/2000的安全隐患apache服务器的保护如何隐藏你的踪迹Netbios详谈Java服务器端编程安全必读优化Apache服务器的重负荷。MySQL安全性指南 Windows新漏洞将任意用户提升到SYSTEM级别的权限的方法一个2000的日志清除器是怎么练成的相关链接共 262 篇<<刷新该页面可以得到不同的关键字链接>>','相关的链接')" href="http://www.safechina.net/article/showarticle.php?id=1003652159#">服务器的端口135,并任意输入10个字符,然后回车,切断连接。这便可以使目标
主机的CPU利用率达到100%。虽然一个简单的重启动就消除了这个问题,但毕竟这是很讨厌的,是系统安
全的重要隐患并严重地影响系统性能。
对于OOB攻击,人们已经提出一些对策,如在Windows NT 4.0 中,呆以对发到端口若悬河39的包进行过滤
等,都需要对系统的网络设置进行一番配置,来分别处理拔号上网和使用LAN的情况。
目前网上已经出现补丁程序,用来对付这些攻击方法的攻击。在 Windows 95和Windows NT上的安装非常
简单,只需运行一下安装包即可。
在没有找到补丁程序之前,也可能性安装一个PC
NETBUS2.0说明The Solaris安全FAQ浏览图片就有可能中木马!警惕DoS的路由器攻击由http暗藏通道探讨开linux内核防火墙netfilter中的5个钩子菜鸟操补丁版NT/2000提升权限的方法小结 Windows NT 4的安全结构安全扫描浅谈相关链接共 103 篇<<刷新该页面可以得到不同的关键字链接>>','相关的链接')" href="http://www.safechina.net/article/showarticle.php?id=1003652159#">防火墙。该工具非常有效,例如,当禁止从主机的所有端
口发出数据包,同时禁止数据包发向本主机的所有端口时,实际上已将本主机应用层的服务功能和访问功
能切断。此时,虽然可以ping通一台有帐户和
扫描器Windows 2000 的通用的SIDs ftp命令大全SNIFF原理解析对pgp的进一步讨论基于NT/2000建立安全WEB站点的解决方案Linux后门手法一种基于VFP5.0的数据库加密算法 Unix黑客初学者指导如何用IIS建立高安全性Web服务器相关链接共 91 篇<<刷新该页面可以得到不同的关键字链接>>','相关的链接')" href="http://www.safechina.net/article/showarticle.php?id=1003652159#">口令的UNIX主机,但却地法登上(telnet)该主机或从该主
机用ftp取回文件。
可以用该工具来过滤发向本主机一些端口(例如139)的数据包。
2 泪滴(TearDrop)攻击工具
这个攻击工具起名为泪滴,它确实可以让人们恨得咬牙切齿。
当辛苦的劳动成果突然因为一次莫名其妙的当机而化为乌有。也许,这次当机便是一个人随意地向你的计
算机动了一次小小的攻击所致。
这个攻击利用的是系统在实现时的一个错误,我们以Linux上的一个实现为例,也就是说,某些Linux操作
系统也是脆弱的,我们也可以用这种方法攻击Linux操作系统。
Linux操作系统在它的IP数据包重装模块有一个严重的错误,更确切一点地说,是在ip-glue()函数中。
当Linux收到一个个IP包,送到IP层进行组装,以形成发送端原来的IP包时,它将进入了一个循环中,将
接收队列中的一个个数据包中的有效数据,拷贝到一个新分配的缓冲区中。
这段代码如下:
fp = qp->fragments;
while (fp ! =NULL)
{
if (count +fp ->len >skb ->len)]
{
error-to-big;
}
memcpy (ptr + fp ->offaet ), fp-> ptr, fp->len);
count +=fp ->len;
fp =fp->next;
}
在程序中,检查了每段数据是否过长,因为如果数据部分过长,将会向内核拷贝过多的数据,引起内核
发生某种危险。然而在程序中并没有检查包中有效数据的长度是否过分小,例如,当表示包中数据长度
的变量变成了一个负数时(例如 fp->len<0),对这种情况,并没有进行检查,结果是系统将过多的数据
拷贝到内核中去。
以下,让我们看看Linux是如何将收到的IP数据加入到组装队列中去的。
计算这一fragmrnt的终结位置:
/*
l Determine the position of this fragmrment.
l /
end =offset +ntohs(iph ->tot-len) –ihl;
在正常情况下一切也正常。但是,当我们精心准备这样的数据包,让前后包中的“fragment offset”字
段交叠在一起,会发生什么呢?
看看程序对“fragment offset”做了那些处理:
if (prev != NULL&& offset
{
I =prev->end –offset;
Offset +=I : /*ptr into datagram */
Ptr += I /* ptr into fragment data */
}
如果我们发现当前包的段偏移在前一包数据内部,也就是说根据偏移字段的值,前后两数据包的数据部
分有重叠。组装程序试图正确对齐它们的边界。程序代码如上所示。这一步是对的。除非当前包中的有
效数据碰巧没有足够的数据来满足对齐的要求。在这种情况下,“offset”域中的值将会比“ end”域
中的值大。这两个数值被交给“ip-frag-create()”模块,在这个模块中,将会计算当前包的长度。
/* Fill in the structure. */
fp->offset =offset;
fp->end =end;
fp->len =end –offset;
在这种极少见的情况下,计算出来的fp-len竟变成了一个负数,于是memcpy()最终将会把大量的数据拷贝
到内核中,因为memcpy()中的记数器是一个反码,是一个非常大的数值。根据使用的内存管理机制的不同,
将会引起系统重启动或停机。
这种情况完全可以通过编程来实现,例如可以发送两个特殊的数据包,第一个包中的“offset”域置为0,
包中有效数据(IP数据)长度为N,MF位置1。第二个包中MF位置0,“offset”为一个小于N的数,包中的
IP数据也少于N。
当将收到的两个数据包组装时,先将第一个数据包拷贝到一个缓冲区中去,然后拷贝第二个数据包。因为
next->offset
cur ->offset =next ->offset +(pre->end-next->offest);
cur ->end =next ->offest +(next->iph ->tot-len)-ihl);
cur ->len =cur->end-cur->offest;
当ntohs(next->iph->tot-len)-ihl<(pre->end-next->offset)时,错误就发生了。这时候,cur->len为
负数。
在正常情况下,无法预言这种情况是否会发生,发生的频率如何。但是在人为的情况下,尤其是在一处故
意的情况下,那就一定会发生的。
人们可以自己编写发送raw数据包的程序。在数据包中,从IP包头开始,都可以填入自己想要的任意数值。
而我们使用软件并不能处理这类非常复杂的情况。事实上,即使对软件曾经进行了详细的测试,也很难说
会发现这种错误。
当前的许多Linux的实现中都有这个错误,向Linux发送很少几个这样的数据包,便可以引起Linux当机,
因为通常这种IP包重组和缓冲区开在系统核心态,缓冲区溢出将使系统崩溃。同样地,向Windows 95、
Windows NT发送10-15个这样的包,也会引起死机。
现在在网上已经出现了大量类似这样的程序,这些攻击的方法依然是对一些字段使用错误的值,但和
“泪滴”相反,将段偏移字段写入一个大于头的长度的数值或者伪造
IP组播技术综述学习Linux网络编程(2)Resource Kit 第一部分(24~43) 一个访问NTFS磁盘权限的方法使用xinetdTCP Chargen DoS攻击及其对策 再谈进程与端口的映射通过SOCKS5上OICQ隐藏真实IPWin2000 Server入侵监测如何关闭你的NetBIOS 端口,让黑客无法入侵你!相关链接共 77 篇<<刷新该页面可以得到不同的关键字链接>>','相关的链接')" href="http://www.safechina.net/article/showarticle.php?id=1003652159#">UDP的长度,直到伪造为真实长度的
两倍。或者将原来专门攻击53端口的程序改造为可以攻击一系列端口。