linux使用tfn2k攻击之修改tfn2k错误使之正常运行

(菜鸟记录)
学习了tfn2k的工具使用方法,这里把自己遇到的google了很久才找到答案的问题记录一下,这里的所有操作都是在超级用户模式下进行的

先到网上下载tfn2k.tgz的压缩包,然后选择一个目录解压:
tar -zxvf 相对路径/tfn2k.tgz
解压之后先不要编译,修改完错误之后再编译
进入解压后的文件夹src,查看目录下的文件

错误1
aes.c文件
aes_setkey函数中,使用key变量前,先对其置零;
u4byte keylen = strlen (password) * 8;
u4byte key[strlen (password) / 4];

添加一行代码: memset(key, 0, sizeof(key));
memcpy (key, password, strlen (password));

错误2
aes.h文件
在64位的系统下,gcc会认为unsigned long是8个字节,而tfn2k把它当4个字节使用,从而导致在aes_setkey函数中误用。 最终导致的问题就是,在使用./tfn攻击时时,输入正确密码也会一直提示“Sorry, passwords do not match.”,tfn2k不兼容64位。
typedef unsigned long u4byte; /* a 32 bit unsigned integer type */
中的long改为int,变成这样:
typedef unsigned int u4byte; /* a 32 bit unsigned integer type */

错误3
disc.c文件
编译时,会提示open with O_CREAT in second argument needs 3 arguments时,open加上第三个参数0777;
close (open ("agreed", O_WRONLY | O_CREAT | O_TRUNC));
open函数加上第三个参数0777,变成这样:
close (open ("agreed", O_WRONLY | O_CREAT | O_TRUNC, 0777));

错误4
mkpass.c文件
和错误3一样,给open函数加上第三个参数0777
fd = open ("pass.c", O_WRONLY | O_TRUNC | O_CREAT);
变成这样:
fd = open ("pass.c", O_WRONLY | O_TRUNC | O_CREAT, 0777);

错误5
ip.h文件
避免重定义
注释掉一些内容:

#ifndef in_addr
/*
struct in_addr
{
unsigned long int s_addr;
};
*/
#endif

修改完成后就可以make编译
编译之后可以使用./tfn攻击了

注意所有的修改内容都要在编译(make)之前修改,在编译之后修改要将之前编译产生的内容全部删除再编译,不然修改会无效!

参考:http://blog.chinaunix.net/uid-16728139-id-4411623.html
./tfn攻击的具体方法参考:http://foreverzpk.blog.51cto.com/683356/1573940
http://www.cnetnews.com.cn/2008/0922/1143024.shtml
tfn2k.tgz下载:http://www.xfocus.net/tools/200405/697.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
  什么是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的特征

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值