IP地址欺骗与盗用原理(IP欺骗是指黑客通过伪造IP地址)
大家好,今天就和吖吖一起来看看这个问题吧 。IP欺骗是指黑客通过伪造IP地址,IP地址欺骗与盗用原理很多人还不知道,现在让我们一起来看看吧!
IP地址欺骗与盗用原理:
IP恶搞的技术很复杂,不是简单的画虎为猫就能掌握的。但作为一种常规的攻击手段,有必要了解其原理,至少有利于自身的安全。保管容易,保管难。
假设B上的客户运行rlogin与A上的rlogin通信:
1.b发送一个带有SYN标志的数据段,通知a需要建立TCP连接。并将TCP报头中的序列号设置为该连接的初始值ISN。
2.a向B发回一个带有SYS ACK标志的数据段,通知自己的ISN,确认B发送的第一个数据段,并将确认号设置为B的ISN 1。
3.b确认接收到的A的数据段,并将确认号设置为A的ISN 1。
B - SYN - A
B - SYN ACK - A
B - ACK - A
TCP使用的序列号是一个32位计数器,范围从0-4294967295。TCP为每个连接选择
选择一个初始序列号ISN。为了防止三次握手受到延迟、重传等的干扰。是不能随便选的。不同的系统有不同的算法。了解TCP如何分配ISN以及ISN如何随时间变化对于成功的IP欺骗攻击非常重要。
基于远程过程调用RPC的命令,如rlogin、rcp、rsh等。根据/etc/hosts.equiv和$HOME/进行检查。rhosts文件。这样做的本质是只根据源的IP地址来确认用户的身份,从而允许或拒绝用户的RPC。
IP欺骗攻击描述:
1.假设Z试图攻击A,A信任B,所谓信任是指/etc/hosts.equiv和$ home/.rhosts中有相关设置,注意,怎么才能知道A信任B呢?没有确定的方法。我的建议是平时注意收集线索,多多积累。
事实上,一次成功的攻击主要是由于广泛而详细的信息收集,而不是技术的先进性。我用了自以为很有成就感的技术,但并不比酒桌上提问高明多少。攻击只把成功作为最终目的,不在乎手段。
2.假设Z已经知道了可信的B,应该想办法暂时禁用B的网络功能,以免干扰攻击。
著名的SYN flood通常是IP欺骗攻击的前奏。请看并发服务器的框架:
int initsockid,newsockid
if ((initsockid=socket(.)) 0) {
错误(“无法创建套接字”);
}
if (bind(initsockid,) 0) {
错误(“绑定错误”);
}
if (listen(initsockid,5) 0) {
错误(“监听错误”);
}
for(;{
newsockid=acc ept(initsockid,);/*阻塞*/
if(new ockid 0){
错误(“接受错误”);
}
If (fork()==0) {/*子进程*/
close(initsockid);
do(newsockid);/*处理客户端请求*/
退出(0);
}
close(newsockid);
}
listen函数中的第二个参数是5,这意味着initsockid上允许的最大连接请求数。如果initsockid上的连接请求数在某个时候达到了5,那么到达initsockid的后续连接请求将被TCP丢弃。请注意,一旦通过三次握手建立了连接,并且accept调用已经处理了该连接,TCP连接请求队列将空出一个位置。所以这个5并不意味着initsockid上只能接受5个连接请求。SYN flood是一种拒绝服务,导致B的网络功能暂时中断。
发送若干带有SYN标志的数据段给Z B请求连接,注意把源的IP地址改成不存在的主机X;b向假想的X发送SYN ACK数据段,但是没有来自X的ACK出现。B的IP层会向B的TCP层报告X不可达,但是B的TCP层忽略了这一点,认为这只是暂时的。所以B不能再接这个initsockid了。
接收正常的连接请求。
Z(X) -同步B
Z(X)
Z(X) ---- SYN ----> B
Z(X) ---- SYN ----> B
Z(X) ---- SYN ----> B
......
X <---- SYN+ACK ---- B
X <---- SYN+ACK ---- B
X <---- SYN+ACK ---- B
X <---- SYN+ACK ---- B
X <---- SYN+ACK ---- B
......
我认为这样就使得B网络功能暂时瘫痪,可我总觉得好象不对头。
因为B虽然在initsockid上无法接收TCP连接请求,但可以在another initsockid上接收,这种SYN flood应该只对特定的服务(端口),不应该影响到全局。当然如果不断地发送连接请求,就和用ping发洪水包一个道理,使得B的TCP/IP忙于处理负载增大。至于SYN flood,回头有机会我单独灌一瓢有关DoS的。如何使B的网络功能暂 碧被居 很多办法,根据具体情况而定,不再赘述。
3. Z必须确定A当前的ISN。首先连向25端口(SMTP是没有安全校验机制的),与1中类似,不过这次需要记录A的ISN,以及Z到A的大致的RTT(round trip time)。这个步骤要重复多次以便求出RTT的平均值。现在Z知道了A的ISN基值和增加规律(比如每秒增 加128000,每次连接增加64000),也知道了从Z到A需要RTT/2 的时间。必须立即进攻击,否则在这之间有其他主机与A连接, ISN将比预料的多出64000。
4. Z向A发送带有SYN标志的数据段请求连接,只是信源IP改成了B,注意是针对TCP513端口(rlogin)。A向B回送SYN+ACK数据段,B已经无法响应,B的TCP层只是简单地丢弃A的回送数据段。
5. Z暂停一小会儿,让A有足够时间发送SYN+ACK,因为Z看不到这个包。然后Z再次伪装成B向A发送ACK,此时发送的数据段带有Z预测的A的ISN+1。如果预测准确,连接建立,数据传送开始。问题在于即使连接建立,A仍然会向B发送数据,而不是Z,Z 仍然无法看到A发往B的数据段,Z必须蒙着头按照rlogin协议标准假冒B向A发送类似 "cat + + >> ~/.rhosts" 这样的命令,于是攻击完成。如果预测不准确,A将发送一个带有RST标志的数据段异常终止连接,Z只有从头再来。
Z(B) ---- SYN ----> A
B <---- SYN+ACK ---- A
Z(B) ---- ACK ----> A
Z(B) ---- PSH ----> A
......
6. IP欺骗攻击利用了RPC服务器仅仅依赖于信源IP地址进行安全校验的特性,建议阅读rlogind的源代码。攻击最困难的地方在于预测A的ISN。我认为攻击难度虽然大,但成功的可能性也很大,不是很理解,似乎有点矛盾。考虑这种情况,入侵 者控制了一台由A到B之间的路由器,假设Z就是这台路由器,那么A回送到B的数据段,现在Z是可以看到的,显然攻击难度骤然下降了许多。否则Z必须精确地预见可能从A发往B的信息,以及A期待来自B的什么应答信息,这要求攻击者对协议本身相当熟悉。同时需要明白,这种攻击根本不可能在交互状态下完成,必须写程序完成。当然在准备阶段可以用netxray之类的工具进行协议分析。
7. 如果Z不是路由器,能否考虑组合使用ICMP重定向以及ARP欺骗等技术?没有仔细分析过,只是随便猜测而已。并且与A、B、Z之间具体的网络拓扑有密切关系,在某些情况下显然大幅度降低了攻击难度。注意IP欺骗攻击理论上是从广域网上发起的,不局限于局域网,这也正是这种攻击的魅力所在。利用IP欺骗攻击得到一个A上的shell,对于许多高级入侵者,得到目标主机的shell,离root权限就不远了,最容易想到的当然是接下来进行buffer overflow攻击。
8. 也许有人要问,为什么Z不能直接把自己的IP设置成B的?这个问题很不好回答,要具体分析网络拓扑,当然也存在ARP冲突、出不了网关等问题。那么在IP欺骗攻击过程中是否存在ARP冲突问题。回想我前面贴过的ARP欺骗攻击,如果B的ARP Cache没有受到影响,就不会出现ARP冲突。如果Z向A发送数据段时,企图解析A的MAC地址或者路由器的MAC地址,必然会发送ARP请求包,但这个ARP请求包中源IP以及源MAC都是Z的,自然不会引起ARP冲突。而ARP Cache只会被ARP包改变,不受IP包的影响,所以可以肯定地说,IP欺骗攻击过程中不存在ARP冲突。相反,如果Z修改了自己的IP,这种ARP冲突就有可能出现,示具体情况而言。攻击中连带B一起攻击了,其目的无非是防止B干扰了攻击过程, 如果B本身已经down掉,那是再好不过。
9. fakeip曾经沸沸扬扬了一下,我对之进行端口扫描,发现其tcp端口113是接收入连接的。和IP欺骗等没有直接联系,和安全校验是有关系的。当然,这个东西并不如其名所暗示,对IP层没有任何动作。
10. 关于预测ISN,我想到另一个问题。就是如何以第三方身份切断 A与B之间的TCP连接,实际上也是预测sequence number的问题。尝试过,也很困难。如果Z是A与B之间的路由器,就不用说了; 或者Z动用了别的技术可以监听到A与B之间的通信,也容易些; 否则预测太难。作者在3中提到连接A的25端口,可我想不明白的 是513端口的ISN和25端口有什么关系?看来需要看看TCP/IP内部实现的源代码。
看过文章“IP地址欺骗与盗用原理”的人还看了:
1.自动或手动设置IP地址图解教程
2.怎样查看自己的ip地址
3.怎样快速找回被改IP地址
4.子网掩码与IP地址有什么关系
5.迅捷(FAST)路由器获取IP地址的方法
6.查找路由器非默认IP地址的方法
7.教你轻松解决Win7系统经常获取不到IP地址问题
8.如何给电脑设置ip地址
9.IP地址冲突原因分析及解决方案
10.如何划分ip地址
这篇文章到此就结束,希望能帮助到大家。
扫描二维码推送至手机访问。
版权声明:文章内容摘自网络,如果无意之中侵犯了您的版权,请联系本站,本站将在3个工作日内删除。谢谢!