九味书屋 > 文学经管电子书 > 30天打造专业红客 >

第14部分

30天打造专业红客-第14部分

小说: 30天打造专业红客 字数: 每页4000字

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!



字系统实现。)
1》。DNS欺骗
在DNS的缓存还没有过期之前;如果在DNS的缓存中已经存在的记录;一旦有客户查询;DNS服务器将会直接返回缓存中的记录。
下面我们来看一个例子:
一台运行着unix的Inter主机;并且提供rlogin服务;它的IP地址为123。45。67。89;它使用的DNS服务器(即/etc/resolv。conf中指向的DNS服务器)的IP地址为98。76。54。32;某个客户端(IP地址为38。222。74。2)试图连接到unix主机的rlogin端口;假设unix主机的/etc/hosts。equiv文件中使用的是dns名称来允许目标主机的访问;那么unix主机会向IP为98。76。54。32的DNS服务器发出一个PTR记录的查询:
123。45。67。89 …》 98。76。54。32 'Query'
NQY: 1 NAN: 0 NNS: 0 NAD: 0
QY: 2。74。222。38。in…addr。arpa PTR
IP为98。76。54。32的DNS服务器中没有这个反向查询域的信息;经过一番查询;这个DNS服务器找到38。222。74。2和38。222。74。10为74。222。38。in…addr。arpa。的权威DNS服务器;所以它会向38。222。74。2发出PTR查询:
98。76。54。32 …》 38。222。74。2 'Query'
NQY: 1 NAN: 0 NNS: 0 NAD: 0
QY: 2。74。222。38。in…addr。arpa PTR
请注意;38。222。74。2是我们的客户端IP;也就是说这台机子是完全掌握在我们手中的。我们可以更改它的DNS记录;让它返回我们所需要的结果:
38。222。74。2 …》 98。76。54。32 'Answer'
NQY: 1 NAN: 2 NNS: 2 NAD: 2
QY: 2。74。222。38。in…addr。arpa PTR
AN: 2。74。222。38。in…addr。arpa PTR trusted。host。
AN: trusted。host。 A 38。222。74。2
NS: 74。222。38。in…addr。arpa NS ns。sventech。
NS: 74。222。38。in…addr。arpa NS ns1。sventech。
AD: ns。sventech。 A 38。222。74。2
AD: ns1。sventech。 A 38。222。74。10
当98。76。54。32的DNS服务器收到这个应答后;会把结果转发给123。45。67。98;就是那台有rlogin服务的unix主机(也是我们的目标 :) );并且98。76。54。32这台DNS服务器会把这次的查询结果缓存起来。
这时unix主机就认为IP地址为38。222。74。2的主机名为trusted。host。;然后unix主机查询本地的/etc/hosts。equiv文件;看这台主机是否被允许使用rlogin服务;很显然;我们的欺骗达到了。
在unix的环境中;有另外一种技术来防止这种欺骗的发生;就是查询PTR记录后;也查询PTR返回的主机名的A记录;然后比较两个IP地址是否相同:
123。45。67。89 …》 98。76。54。32 'Query'
NQY: 1 NAN: 0 NNS: 0 NAD: 0
QY: trusted。host。 A
很不幸;在98。76。54。32的DNS服务器不会去查询这个记录;而会直接返回在查询2。74。222。38。in…addr。arpa时得到的并且存在缓存中的信息:
98。76。54。32 …》 123。45。67。89 'Query'
NQY: 1 NAN: 1 NNS: 2 NAD: 2
QY: trusted。host。 A
AN: trusted。host。 A 38。222。74。2
NS: 74。222。38。in…addr。arpa NS ns。sventech。
NS: 74。222。38。in…addr。arpa NS ns1。sventech。
AD: ns。sventech。 A 38。222。74。2
AD: ns1。sventech。 A 38。222。74。10
那么现在unix主机就认为38。222。74。2就是真正的trusted。host。了;我们的目的达到了!
这种IP欺骗的条件是:你必须有一台Inter上的授权的DNS服务器;并且你能控制这台服务器;至少要能修改这台服务器的DNS记录;我们的欺骗才能进行。
2》。拒绝服务攻击 Denial of service
还是上面的例子;如果我们更改位于38。222。74。2的记录;然后对位于98。76。54。32的DNS服务器发出2。74。222。38。in…addr。arpa的查询;并使得查询结果如下:
因为74。222。38。in…addr。arpa完全由我们控制;所以我们能很方便的修改这些信息来实现我们的目的。
38。222。74。2 …》 98。76。54。32 'Answer'
NQY: 1 NAN: 2 NNS: 2 NAD: 2
QY: 2。74。222。38。in…addr。arpa PTR
AN: 2。74。222。38。in…addr。arpa PTR trusted。host。 
AN:。pany。 A 0。0。0。1
NS: 74。222。38。in…addr。arpa NS ns。sventech。
NS: 74。222。38。in…addr。arpa NS ns1。sventech。
AD: ns。sventech。 A 38。222。74。2
AD: ns1。sventech。 A 38。222。74。10
这样一来;使用98。76。54。32这台DNS服务器的用户就不能访问。pany。了;因为这个IP根本就不存在!
3》。偷取服务 Theft of services
还是上面的例子;只是更改的查询结果如下:
38。222。74。2 …》 98。76。54。32 'Answer'
NQY: 1 NAN: 3 NNS: 2 NAD: 2
QY: 2。74。222。38。in…addr。arpa PTR
AN: 2。74。222。38。in…addr。arpa PTR trusted。host。
AN:。pany。 CNAME。petitor。
AN: pany。 MX 0 mail。petitor。
NS: 74。222。38。in…addr。arpa NS ns。sventech。
NS: 74。222。38。in…addr。arpa NS ns1。sventech。
AD: ns。sventech。 A 38。222。74。2
AD: ns1。sventech。 A 38。222。74。10
这样一来;一个本想访问http://。petitor。的用户会被带到另外一个地方;甚至是敌对的公司的竹叶(想想把华为和北电联起来是什么样的感觉。 :) )。并且发给pany。的邮件会被发送给mail。pertitor。。(越来越觉得在网络上的日子不踏实! xxbin这样想)。
4》。限制
对这些攻击;也有一定的限制。
首先;攻击者不能替换缓存中已经存在的记录。比如说;如果在98。76。54。32这个DNS服务器上已经有一条。pany。的CNAME记录;那么攻击者试图替换为。petitor。将不会成功。然而;一些记录可以累加;比如A记录;如果在DNS的缓存中已经存在一条。pany。的A记录为1。2。3。4;而攻击者却欺骗DNS服务器说。pany。的A记录为4。3。2。1;那么。pany。将会有两个A记录;客户端查询时会随机返回其中一个。(呵呵;这不是loading balance么?)
其次;DNS服务器有个缓存刷新时间问题;如果。buddy。org的TTL为7200;那么DNS服务器仅仅会把。buddy。org的信息缓存7200秒或者说两个小时。如果攻击者放入一条TLL为604800的A记录;那么这条记录将会在缓存中保存一周时间;过了默认的两天后;这个DNS服务器就会到处〃分发〃攻击者假造的记录。
下面是常用的几种可以累加和不能累加的记录:
A can add
NS can add
MX can add
PTR cannot add
CNAME cannot add
再说说网络攻击的几种形式吧;说这个不是叫大家去攻击别人而是作为一种了解而已
1、服务拒绝攻击 
服务拒绝攻击企图通过使你的服务计算机崩溃或把它压跨来阻止你提供服务,服务拒绝攻击是最容易实施的攻击行为,主要包括: 
死亡之ping (ping of death) 
概览:由于在早期的阶段,路由器对包的最大尺寸都有限制,许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,当产生畸形的,声称自己的尺寸超过ICMP上限的包也就是加载的尺寸超过64K上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使接受方当机。 
防御:现在所有的标准TCP/IP实现都已实现对付超大尺寸的包,并且大多数防火墙能够自动过滤这些攻击,包括:从windows98之后的windows;NT(service 
pack 3之后),linux、Solaris、和Mac OS都具有抵抗一般ping of 
death攻击的能力。此外,对防火墙进行配置,阻断ICMP以及任何未知协议,都讲防止此类攻击。 
泪滴(teardrop) 
概览:泪滴攻击利用那些在TCP/IP堆栈实现中信任IP碎片中的包的标题头所包含的信息来实现自己的攻击。IP分段含有指示该分段所包含的是原包的哪一段的信息,某些TCP/IP(包括service 
pack 4以前的NT)在收到含有重叠偏移的伪造分段时将崩溃。 
防御:服务器应用最新的服务包,或者在设置防火墙时对分段进行重组,而不是转发它们。 
UDP洪水(UDP flood) 
概览:各种各样的假冒攻击利用简单的TCP/IP服务,如Chargen和Echo来传送毫无用处的占满带宽的数据。通过伪造与某一主机的Chargen服务之间的一次的UDP连接,回复地址指向开着Echo服务的一台主机,这样就生成在两台主机之间的足够多的无用数据流,如果足够多的数据流就会导致带宽的服务攻击。 
防御:关掉不必要的TCP/IP服务,或者对防火墙进行配置阻断来自Inter的请求这些服务的UDP请求。 
SYN洪水(SYN flood) 现在最流行的DDOS攻击的一种
概览:一些TCP/IP栈的实现只能等待从有限数量的计算机发来的ACK消息,因为他们只有有限的内存缓冲区用于创建连接,如果这一缓冲区充满了虚假连接的初始信息,该服务器就会对接下来的连接停止响应,直到缓冲区里的连接企图超时。在一些创建连接不受限制的实现里,SYN洪水具有类似的影响。 
防御:在防火墙上过滤来自同一主机的后续连接。 
未来的SYN洪水令人担忧,由于释放洪水的并不寻求响应,所以无法从一个简单高容量的传输中鉴别出来。 
Land攻击 
概览:在Land攻击中,一个特别打造的SYN包它的原地址和目标地址都被设置成某一个服务器地址,此举将导致接受服务器向它自己的地址发送SYN…ACK消息,结果这个地址又发回ACK消息并创建一个空连接,每一个这样的连接都将保留直到超时掉,对Land攻击反应不同,许多UNIX实现将崩溃,NT变的极其缓慢(大约持续五分钟)。 
防御:打最新的补丁,或者在防火墙进行配置,将那些在外部接口上入站的含有内部源地址滤掉。(包括 
10域、127域、192。168域、172。16到172。31域) 
Smurf攻击 
概览:一个简单的smurf攻击通过使用将回复地址设置成受害网络的广播地址的ICMP应答请求(ping)数据包来淹没受害主机的方式进行,最终导致该网络的所有主机都对此ICMP应答请求作出答复,导致网络阻塞,比ping 
of death洪水的流量高出一或两个数量级。更加复杂的Smurf将源地址改为第三方的受害者,最终导致第三方雪崩。 
防御:为了防止黑客利用你的网络攻击他人,关闭外部路由器或防火墙的广播地址特性。为防止被攻击,在防火墙上设置规则,丢弃掉ICMP包。 
Fraggle攻击 
概览:Fraggle攻击对Smurf攻击作了简单的修改,使用的是UDP应答消息而非ICMP 
防御:在防火墙上过滤掉UDP应答消息 
电子邮件炸弹 
概览:电子邮件炸弹是最古老的匿名攻击之一,通过设置一台机器不断的大量的向同一地址发送电子邮件,攻击者能够耗尽接受者网络的带宽。 
防御:对邮件地址进行配置,自动删除来自同一主机的过量或重复的消息。 
畸形消息攻击 
概览:各类操作系统上的许多服务都存在此类问题,由于这些服务在处理信息之前没有进行适当正确的错误校验,在收到畸形的信息可能会崩溃。 
防御:打最新的服务补丁。 
2、利用型攻击 
利用型攻击是一类试图直接对你的机器进行控制的攻击,最常见的有三种: 
口令猜测 
概览:一旦黑客识别了一台主机而且发现了基于BIOS、Tel或NFS这样的服务的可利用的用户帐号,成功的口令猜测能提供对机器的控制。 
防御:要选用难以猜测的口令,比如词和

返回目录 上一页 下一页 回到顶部 0 0

你可能喜欢的