当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: Author:LionD8Email:liond8@126.com转自安焦测试平台 VC++6.0 Windows2000 server目标平台 Windows 2000 , Windows Xp????突发奇想,受NAPTHA攻击方式的启发,希望能把这种伪造连接的方式扩展到个人的PC上,并且不...
 

 

    摘要: 转自安焦 众所周知在非 admin 用户模式下,是不允许加载驱动执行 ring 0 代码的。本文提供了一种方法,通过修改系统 gdt,idt 来添加自己的 callgate 和intgate 这样便在系统中设置了一个后门。我们就可以利用这个后门在任意用户模式下执行 ring 0 代码了。为了保证我们添加的 callgate 和 intgate 永久性。可以在第一次安装时利用 service api 或 inf 文件设置成随系统启动。不过此方法也有个缺陷......
    摘要:转自安焦 总结windows下堆溢出的三种利用方式1.利用rtlallocheap这是isno提到的,看这个例子main (int argc, char *argv[]){??char *buf1, *buf2;??char s[] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\x03\x00\x05\x00\x00\x01\x08\x00\x11\x11\x11\x11\x21\x21\x21\x21";?......


新型D.o.S(伪造TCP连接进行数据传输的D.o.S)
author:liond8

email:liond8@126.com 【相关文章:WoodPecker开源社区众生像--I

【扩展阅读:Essential .NET 学习笔记[

转自安焦 【扩展信息:使用Cookie传递数据

测试平台 vc++6.0 windows2000 server

目标平台 windows 2000 , windows xp

????突发奇想,受naptha攻击方式的启发,希望能把这种伪造连接的方式扩展到个人的pc上,并且不受局域网的这个条件因素的限制。才去花了时间去研究了一下下面写的东西,好了不废话了。现在拿出来与大家share一下,还不是很成熟,希望能与大家多多讨论。

????关于naptha原来写过一篇naptha在2000下的实现。为什么要利用一个局域网,仅仅是为了更好的隐藏吗?还有一个更重要的因素应该是避免自己的主机响应远程主机发出的第二此握手的包,防止系统发出rst包断开掉伪造的连接。另外原来测试过naptha对windows系统并没有多大的影响。消耗不到windows的多少内存。如果再伪造连接成功过后再传输数据呢?

????a为攻击者 c被攻击者:

????a syn --------> c

????a syn,ack c

????a 发送数据-----> c

????a ack c

????a ack http://www.xfocus.net/articles/200210/457.html

????仅仅是修改一行代码就ok了。

把 if(packet[13]==0x2 && sendinterfaceindex==invalid_pf_if_index)

修改为 if(packet[13]==0x4 && sendinterfaceindex!=invalid_pf_if_index)

详细见原文。原文讲得很详细.

2.伪造数据的传输

????通过sniffer分析,要想对方相信这个伪造的连接还在syn包发出的时候要加上选项数据,协商能够接收的数据包的大小。否则,就算建立了连接过后对方也不回接受发出的数据,就是说想消耗对方的内存就不行了。对于一般的syn扫描,还有naptha请求连接的时候tcp header长度都是20,是没有选项数据的。例如的我2000上选项是8字节,而我朋友的2000则是12字节。以我的机器为例8字节,所以tcp header长度要变成28字节。即tcp_head.th_lenres=0x70.

另外还有一个地方要指出就是关于tcp头部的效验与的计算。

ushort checksum(ushort *buffer, int size)

{

????unsigned long cksum=0;

????while(size >1)

????{

????????cksum+=*buffer++;

????????size -=sizeof(ushort);

????}

????if(size)

????{

????????cksum += *(uchar*)buffer;

????}

????cksum = (cksum >> 16) + (cksum & 0xffff);

????cksum += (cksum >>16);

????return (ushort)(~cksum);

}

如果带有数据在20字节的tcp头部的后面,这个与windows2000系统算出来的就不一样。经过分析与数据长度有关系。如果说20字节的ip头,20字节的tcp头,加2字节的数据。如果用checksum计算出tcp效验与为0x4523.但是系统计算出来的就是0x4323

所以:

tcpheader.th_sum=checksum((ushort *)szsendbuf,sizeof(psdheader)+sizeof(tcpheader)+dwsize);

tcpheader.th_sum = htons(ntohs(tcpheader.th_sum)-(ushort)dwsize);

dwsize为带的数据的长度。否则对方不接收伪造的数据包。那么要达到消耗对方内存的目的也不行了。

下面是测试的代码。考虑到此程序还是有一定的危害的效果所以没有写成十分方便的测试程序,需要手工sniffer选项字节。然后在命令行下面输入选项字节。

例如:


...   下一页
    摘要:在工作中为了实现临时保存数据的目的,我选择了用app.config 本文假设app.config的预先设置内容如下: <?xml version="1.0" encoding="utf-8" ?><configuration> <appsettings> <add key="copy" value="abc公司"/> <......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE