DDoS攻击工具——TFN2K 分析

社区服务
高级搜索
猴岛论坛电脑百科DDoS攻击工具——TFN2K 分析
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
3个回复

[资源分享]DDoS攻击工具——TFN2K 分析

楼层直达
不懂也不知道

ZxID:10586231

等级: 禁止发言

举报 只看楼主 使用道具 楼主   发表于: 2010-07-21 0
DDoS攻击工具——TFN2K 分析
本文是对分布式拒绝服务(DDoS)攻击工具"Tribe Flood Network 2000 (TFN2K)"的技术分析。TFN2K是由德国著名黑客Mixter编写的同类攻击工具TFN的后续版本。
关于Trinoo、TFN和Stacheldraht等分布式拒绝服务攻击工具的分析请参阅相关文档。
术 语
--------
客户端——用于通过发动攻击的应用程序,攻击者通过它来发送各种命令。
守护程序——在*****端主机运行的进程,接收和响应来自客户端的命令。
主控端——运行客户端程序的主机。
*****端——运行守护程序的主机。
目标主机——分布式攻击的目标(主机或网络)。
什么是TFN2K?
------------
TFN2K通过主控端利用大量*****端主机的资源进行对一个或多个目标进行协同攻击。当前互联网中的UNIX、Solaris和Windows NT等平台的主机能被用于此类攻击,而且这个工具非常容易被移植到其它系统平台上。
TFN2K由两部分组成:在主控端主机上的客户端和在*****端主机上的守护进程。主控端向其*****端发送攻击指定的目标主机列表。*****端据此对目标进行拒绝服务攻击。由一个主控端控制的多个*****端主机,能够在攻击过程中相互协同,保证攻击的连续性。主控央和*****端的网络通讯是经过加密的,还可能混杂了许多虚假数据包。整个TFN2K网络可能使用不同的TCP、UDP或ICMP包进行通讯。而且主控端还能伪造其IP地址。所有这些特性都使发展防御TFN2K攻击的策略和技术都非常困难或效率低下。
TFN2K的技术内幕
---------------
◆ 主控端通过TCP、UDP、ICMP或随机性使用其中之一的数据包向*****端主机
发送命令。对目标的攻击方法包括TCP/SYN、UDP、ICMP/PING或BROADCAST
PING (SMURF)数据包flood等。
◆ 主控端与*****端之间数据包的头信息也是随机的,除了ICMP总是使用
ICMP_ECHOREPLY类型数据包。
◆ 与其上一代版本TFN不同,TFN2K的守护程序是完全沉默的,它不会对接收
到的命令有任何回应。客户端重复发送每一个命令20次,并且认为守护程
序应该至少能接收到其中一个。
◆ 这些命令数据包可能混杂了许多发送到随机IP地址的伪造数据包。
◆ TFN2K命令不是基于字符串的,而采用了"++"格式,其中是
代表某个特定命令的数值,则是该命令的参数。
◆ 所有命令都经过了CAST-256算法(RFC 2612)加密。加密关键字在程序编
译时定义,并作为TFN2K客户端程序的口令。
◆ 所有加密数据在发送前都被编码(Base 64)成可打印的ASCII字符。TFN2K
守护程序接收数据包并解密数据。
◆ 守护进程为每一个攻击产生子进程。
◆ TFN2K守护进程试图通过修改argv[0]内容(或在某些平台中修改进程名)
以掩饰自己。伪造的进程名在编译时指定,因此每次安装时都有可能不同。
这个功能使TFN2K伪装成*****端主机的普通正常进程。因此,只是简单地检
查进程列表未必能找到TFN2K守护进程(及其子进程)。
◆ 来自每一个客户端或守护进程的所有数据包都可能被伪造。
监测TFN2K的特征
---------------
由于所有的控制通讯都是单向的,这使得实时监测TFN2K额外困难。因为其随机性地使用TCP、UDP和ICMP数据包,同时进行了加密,数据包过滤和其它被动式防御策略都显得不切实际和效率低下的。伪造的数据包更会增加追踪参与拒绝服务攻击的*****端主机的难度。
幸运的是,TFN2K仍然有弱点。可能是疏忽的原因,加密后的Base 64编码在每一个TFN2K数据包的尾部留下了痕迹(与协议和加密算法无关)。可能是程序作者为了使每一个数据包的长度变化而填充了1到16个零(0x00),经过Base 64编码后就成为多个连续的0x41('A')。添加到数据包尾部的0x41的数量是可变的,但至少会有一个。这些位于数据包尾部的0x41('A')就成了捕获TFN2K命令数据包的特征了。
对TFN2K客户端程序(tfn)和守护程序文件(td)的简单搜索也可能会找到TFN2K。虽然这些文件名可以随意修改,但客户端程序和守护程序包含许多特征字符串,可以作为搜索的关键字。如下:
TFN2K客户端程序(tfn)
[1;34musage: %s
[-P protocol]
[-S host/ip]
[-f hostlist]
[-h hostname]
[-i target string]
[-p port]
<-c command ID>
change spoof level to %d
change packet size to %d bytes
bind shell(s) to port %d
commence udp flood
commence syn flood, port: %s
commence icmp echo flood
commence icmp broadcast (smurf) flood
commence mix flood
commence targa3 attack
execute remote command
TFN2K守护程序(td)
fork
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
/dev/urandom
/dev/random
%d.%d.%d.%d
sh*
ksh*
command.exe**
cmd.exe**
tfn-daemon***
tfn-child***
* Unix and Solaris systems only
** Windows NT systems only
*** This text is likely to have been changed in many TFN2K installations
TFN2K守护程序和客户端程序(tfn和td)
security_through_obscurity *
D4 40 FB 30 0B FF A0 9F **
64 64 64 64 ... ***
* 程序编译时定义的函数名,是一个非常有用的特征字符串。
** CAST-256加密表格的头8个字节(按little-endian排序)。
*** Base 64编码算法使用的静态表格中连续128字节长度的0x64值。
TFN2K的防御策略
---------------
目前仍没有能有效防御TFN2K拒绝服务攻击的方法。最有效的策略是防止网络资源被用作客户端或*****端。
预 防
◆ 只使用应用*****型防火墙。这能够有效地阻止所有的TFN2K通讯。但只使用应
用*****服务器通常是不切合实际的,因此只能尽可能使用最少的非*****服务。
◆ 禁止不必要的ICMP、TCP和UDP通讯。特别是对于ICMP数据,可只允许ICMP类
型3(destination unreachable目标不可到达)数据包通过。
◆ 如果不能禁止ICMP协议,那就禁止主动提供或所有的ICMP_ECHOREPLY包。
◆ 禁止不在允许端口列表中的所有UDP和TCP包。
◆ 配置防火墙过滤所有可能的伪造数据包。
◆ 对系统进行补丁和安全配置,以防止攻击者入侵并安装TFN2K。
监 测
◆ 扫描客户端/守护程序的名字。
◆ 根据前面列出的特征字符串扫描所有可执行文件。
◆ 扫描系统内存中的进程列表。
◆ 检查ICMP_ECHOREPLY数据包的尾部是否含有连续的0x41。另外,检查数据侧
面内容是否都是ASCII可打印字符(2B,2F-39,0x41-0x5A,0x61-0x7A)。
◆ 监视含有相同数据内容的连续数据包(有可能混合了TCP、UDP和ICMP包)。
响 应
一旦在系统中发现了TFN2K,必须立即通知安全公司或专家以追踪入侵进行。因为TFN2K的守护进程不会对接收到的命令作任何回复,TFN2K客户端一般会继续向*****端主机发送命令数据包。另外,入侵者发现攻击失效时往往会试图连接到*****端主机上以进行检查。这些网络通讯都可被追踪。
本帖de评分: 1 条评分 DB +15
DB+15

感谢分享

┌.淫穆”

ZxID:10737016

等级: 上将
..

举报 只看该作者 沙发   发表于: 2010-07-21 0
感谢你的分享!。
___呜、咕

ZxID:10753731

等级: 贵宾
举报 只看该作者 板凳   发表于: 2010-07-22 0
顶下
夜末的寂寞。

ZxID:12662042

等级: 中将
举报 只看该作者 地板   发表于: 2010-07-22 0
  不懂?
« 返回列表
发帖 回复