20CN网络安全小组第一代论坛
发表新主题  发表回复

个人资料 | 社区目录 用户登录 | | 论坛搜索 | 常见问题 | 论坛主页
  下一个最老的主题   下一个最新的主题
» 20CN网络安全小组第一代论坛   » 电 脑 技 术   » 编程破解   » IP 欺骗原理及实现! (2)

   
作者 标题: IP 欺骗原理及实现! (2)
阿 坤
未注册


图标 2  发表于         编辑/删除帖子   引用原文回复  
大家好又开课了,上次的教程都会了吧.有朋友把IP欺骗当做了IP隐藏,这可是不同的两个话题,
IP欺骗是一种入侵手段,请不要再弄糊涂了.今天我们来看看如何进行IP欺骗.第二课---IP欺骗描述
######

假设X要入侵A,X发现A信任B("信任"就是第一课里面讲的/etc/hosts.equiv以及/home/.rhosts文件设定进行安全校验的
设置).至于如何发现A信任B,那就需要自己多留意目标了.这是X要作的就是使B的网络功能暂时瘫痪,以免对攻击造成干扰.这时
我们可以采用同步洪水(SYN FLOOD)攻击来攻击B,使它尚失网络功能.这里我来简单介绍一下SYN FLOOD攻击的原理,我们先来看
看支持并发服务的原理:

int initsockid,newsockid;
if ((initsockid=socket(...)) <0
{
error("can't creat socket");
}
if (bind(initsockid,...)<0)
{
error("bind error");
}
if (listen(initscokid,5)<0) /*listen函数中允许initsockid连接的最大请求数目为5个请求*/
{
error("listen error");
}
for (;
{
newsockid=accept(initsockid,...); /*堵塞*/
if (newsockid<0)
{
error ("accept error");
}
if (fork()==0) /*子进程*/
{
close(initsocketid); /*处理客户的请求*/
exit(0);
}
close(newsockid);
}

listen在处理多于5个initsockid连接请求时会被丢弃.但注意一旦连接通过三次握手建立成功后,accept调用就已经处理了
这个连接,此时TCP连接请求队列空出一个位置.所以5不是initsockid上只能接受5个连接请求,而是在请求队列中等待连接的
请求数目.X向B发送多个带有SYN标志的数据包以请求连接,但在IP包中将IP地址换成不存在的主机Z,当B收到来自Z的连接请求后,
B将向Z发送SYN+ACK数据包,但此时不会有任何来自Z的ACK数据存在.B的IP层报告TCP层Z是不可到达的,但B的TCP层会认为是暂时
通讯中断,将不予处理.于是B在这个initsockid上就不能再接收任何正常的连接请求.

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

X <----SYN+ACK----- B
X <----SYN+ACK----- B
.
.
.
X <----SYN+ACK----- B

SYN flood 正是这种DoS (Denial of Service),将导致目标主机特定端口瘫痪.这时Z必须确定A当前的ISN,连接没有安全校验机制的SMTP(25)端口,这与我们第一节课讲得一样, 只是这里记录的是A的ISN,以及Z到A的大致RTT(Round trip time),这个步凑要重复多次以求出RTT的平均值.现在Z知道A的ISN基值和增加规律,也知道了从Z到A需要RTT/2的时间,现在需要马上攻击,否则在此期间有别的主机与A 连接,ISN将比预料的增加一个基本单位.

######

今天就将到这里,希望对大家有所帮助!

IP: 已记录

 
发表新主题  发表回复 关闭主题 突出主题 移动主题 删除主题 下一个最老的主题   下一个最新的主题
 - 适于打印的主题视图
转到:
联系我们 | 20CN网络安全小组

Powered by Infopop Corporation
UBB.classic™ 6.5.0
NetDemon修改版 1.5.0, 20CN网络安全小组 版权所有。