欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP编程入门进阶(二十):ADO组件之显示数据记录

程序员文章站 2023-11-24 19:49:58
    tfn2k使用方法和对策(3) 作者:佳佳 本来想再分两次写完本文,后来发现佳佳要翻译的两篇文章 http://packetstorm.secur...
    tfn2k使用方法和对策(3) 作者:佳佳 本来想再分两次写完本文,后来发现佳佳要翻译的两篇文章 http://packetstorm.securify.com/distributed/TFN2k_Analysis-1.3.txt http://packetstorm.securify.com/distributed/tfn.analysis.txt backend已经翻译过(本文最后给出了链接),佳佳就不做太多重复劳动了。 先介绍一下DDoS攻击的原理:     DDoS把DoS又向前发展了一步,DDoS的行为更为自动化,它可以方便地协调从多台计算机上启动的进程,让一股DoS洪流冲击网络,并使网络因过载而崩溃。确切地讲,DDoS攻击是指在不同的高带宽主机上安装大量的DoS服务程序,它们等待来自*客户端的命令,*客户端随后通知全体受控服务程序,并批示它们对一个特定目标发送尽可能多的网络访问请求。       对DoS而言,其攻击方式很多,主要使用的攻击有4种,分别是TCP-SYN flood,UDP flood,ICMP flood,smurf。  TCP--- 当用户进行一次标准的TCP连接时,会有一个3次握手过程。首先是请求服务方发送一个SYN消息,服务方收到SYN后,会向请求方回送一个SYN-ACK表示确认,当请求方收到SYN-ACK后,再次向服务方发送一个ACK消息,这样,一次TCP连接建立成功。但是TCP-SYN flood在实现过程中只进行前2个步骤:当服务方收到请求方的SYN-ACK确认消息后,请求方由于采用源地址欺骗等手段使得服务方收不到ACK回应,于是,服务方会在一定时间处于等待接收请求方ACK消息的状态。对于某台服务器来说,可用的TCP连接是有限的,如果恶意攻击方快速连续地发送此类连接请求,该服务器可用的TCP连接队列将很快被阻塞,系统可用资源急剧减少,网络可用带宽迅速缩小,长此下去,网络将无法向用户提供正常的服务。  UDP---- 由于UDP(用户数据包协议)在网络中的应用比较广泛,基于UDP攻击种类也较多。如今在Internet上提供WWW和Mail等服务设备通常是使用Unix的服务器,它们默认一些被恶意利用的UDP服务,如echo和chargen服务,它会显示接收到的每一个数据包,而原本作为测试功能的chargen服务会在收到每一个数据包时随机反馈一些字符,如果恶意攻击者将这2个UDP服务互指,则网络可用带宽将很快耗尽。  ICMP----由于在早期的阶段,路由器对包的最大尺寸都有限制,许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,当产生畸形的,声称自己的尺寸超过ICMP上限的包也就是加载的尺寸超过64K上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使接受方当机。如果对方的操作系统已经可以防御堆栈崩溃,也占去许多带宽。 Smurf----一个简单的smurf攻击通过使用将回复地址设置成受害网络的广播地址的ICMP应答请求(ping)数据包来淹没受害主机的方式进行,最终导致该网络的所有主机都对此ICMP应答请求作出答复,导致网络阻塞,比ping of death洪水的流量高出一或两个数量级。更加复杂的Smurf将源地址改为第三方的受害者,最终导致第三方雪崩。 tfn2k的程序及分析: 在你执行 $tar zxvf tfn2k.tgz 以后 在src目录下就是源文件, 其中主要的两个文件就是tfn.c和td.c 你可以看一下Makefile文件 SERVER_OBJ = pass.o aes.o base64.o cast.o flood.o ip.o process.o tribe.o td.o CLIENT_OBJ = pass.o aes.o base64.o cast.o ip.o tribe.o tfn.o 可以看出tfn和td各是由哪些.o链接而成的。 tfn.c: tfn和td的网络通讯是经过CAST-256算法(RFC 2612)加密,还可能混杂了许多虚假数据包。参看security_through_obscurity()和encode64()等函数。 尽管tfn没有密码保护,每一个发送给td的命令都有一个16位二进制形式的数在ICMP_ECHOREPLY包的id域。这个序列号通常是0x0000,这样看起来更象ping初始包的响应。参看passchk()函数。 tfn_sendto()函数是根据hosts.txt向td发命令。 usage()函数是使用帮助。 td.c: td的守护程序是完全沉默的,它不会对接收到的命令有任何回应。客户端重复发送每一个命令20次(RETRY=20),并且认为守护程序应该至少能接收到其中一个。如果没有接收到需要重新发送,你也可以修改RETRY(tfn.c文件中)的值。 守护进程为每一个攻击产生子进程(td.c文件中)。 在看td.c文件时有些迷惑,它作为服务器端并没有绑定固定的端口,后来才明白从tfn到td的通讯是通过ICMP_ECHOREPLY数据包完成,这样在tfn和td就没有任何基于TCP或UDP的通讯了。 td试图通过修改argv[0]内容以掩饰自己。伪造的进程名在编译时指定,因此每次安装时都有可能不同。这个功能使TFN2K伪装成代理端主机的普通正常进程。只是简单地检查进程列表未必能找到td(及其子进程),在你运行 #./td 以后,在运行 #ps -af 可能根本就找不到td.(不要以为它没有运行啊!)。 td.c的tribe_cmd()是根据id(0--10)执行命令,它要调用process.c中的函数。 process.c中的commerce_syn(),commerce_udp(),commerce_icmp(),commerce_mix(),commerce_smurf()等函数就是发动攻击的具体程序,根据id(0--11)分别对应着tcp,udp,icmp,mix,smurf等攻击。 防御措施: 见下列链接文章,我就不重复了。 其它DDoS工具  1. Trinoo: 它是基于UDP flood的攻击软件,它向被攻击目标主机的随机端口发出全零的4字节UDP包,在处理这些超出其处理能力垃圾数据包的过程中,被攻击主机的网络性能不断下降,直到不能提供正常服务,乃至崩溃,它对IP地址不做假,此攻击方法用得不如TFN多。  下载地址:http://darknet.evilnerds.org/dos/ddos/trinoo.tar.gz  2. Stacheldraht:对命令来源做假,而且可以防范一些路由器用RFC2267过滤。若检查出有过滤现象,它将只做假IP地址最后8位,从而让用户无法了解到底是哪几个网段的哪台机器被攻击。此外,它还具有自动更新功能,可随软件的更新而自动更新。  下载地址:http://darknet.evilnerds.org/dos/ddos/stachel-yps.tar.gz   关于TFN2K的探讨就此结束,其实许多前辈都撰文写过此类的文章。我只是参考他们的文章(中文或英文),并细节化了一些。如果有指教或有问题请来信jjgirl@sina.com或在我的BBS留言。感谢你耐心看完佳佳写的不怎么样的文章。