---
name: "t50"
section: "8"
platform: "linux"
package: "t50"
version: "5.8.7b-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/t50"
---

# t50(8)

network packet injector

## NAME

T50 - network packet injector

## SYNOPSIS

**t50** \[options\] \[--\] *host\[/CIDR\]*

## DESCRIPTION

Experimental mixed packet injector tool.

This is NOT a DoS tool, but a tool to inject packets using various protocols.

## OPTIONS

- **host\[/CIDR\]**

  The host address is the target of T50. It can be informed in one of two formats: IP address or URI name. This address can be informed as a range of IPs (by omitting one or mode octects) or using a CIDR separating the IP (full or partial) or URI with "/##", for instance: "192.168/16" or "host.com.local/22". When using a partial IP address T50 will calculate CIDR automatically (8, 16 or 24 bits, if the first, second or third octect \[from right to left\] are omitted, respectively).

  Notice that, sometimes, the "host\[/CIDR\]" argument is misinterpreted as an option. When this happens, you can use the pseudo option '--' before the host address:

-

  \# t50 --flood -- 192.168.1.32/27

  Also, to avoid this error you can provide the host address as the first argument.

  Notice, also, ONLY IPv4 addresses are allowed. T50 don't provide IPv6 support yet.

- **--threshold** NUM

  Number of packets to inject (default 1000).

- **--flood**

  Keep injecting packets until user terminates the process (^C). Cannot be used with --threshold.

- **-B**, **--bogus-csum**

  Use a bogus "random " checksum instead of calculating the actual packet checksum.

- **--turbo**

  Inject packets faster (creates a child process).

- **--shuffle**

  When used with T50 "protocol", it will shuffle the available protocols. Otherwise they will be sent in the same order as listed with --list-protocols option. This option will not work with any other "protocol".

- **-s**, **--saddr** ADDR

  IP header source address (default RANDOM).

- **-p**, **--protocol** protoname

  Select an specific protocol to use (default: TCP. Use --list-protocols to see all protocols available). Use T50 if you want to inject all available protocols. The "protocolname" is case insensitive.

- **-h**, **--help**

  Display all available options and their defaults.

- **-v**, **--version**

  Display t50 version.

- **-l**, **--list-protocols**

  Lists all available protocols T50 can provide.

## EXAMPLES

See all available protocols:

-

  ```
  # t50 -l
  T50 Experimental Mixed Packet Injector Tool 5.6.15
  Originally created by Nelson Brito <nbrito@sekure.org>
  Previously maintained by Fernando Mercês <fernando@mentebinaria.com.br>
  Maintained by Frederico Lamberti Pissarra <fredericopissarra@gmail.com>
  [INFO]  List of supported protocols (--protocol):
     1 - ICMP (Internet Control Message Protocol)
     2 - IGMPv1 (Internet Group Message Protocol v1)
     3 - IGMPv3 (Internet Group Message Protocol v3)
     4 - TCP  (Transmission Control Protocol)
     5 - EGP  (Exterior Gateway Protocol)
     6 - UDP  (User Datagram Protocol)
     7 - RIPv1  (Routing Internet Protocol v1)
     8 - RIPv2  (Routing Internet Protocol v2)
     9 - DCCP (Datagram Congestion Control Protocol)
     10 - RSVP  (Resource Reservation Protocol)
     11 - IPSEC (Internet Security Protocl (AH/ESP))
     12 - EIGRP (Enhanced Interior Gateway Routing Protocol)
     13 - OSPF  (Open Shortest Path First)
  ```

Send 500 packets to a single target:

-

  \# t50 192.168.0.100 --threshold 500

Flooding targets from 192.168.0.1 to 192.168.0.254 (notice the partial IP) with TCP packets:

-

  \# t50 192.168.0 --flood

Flooding targets from 192.168.0.1 to 192.168.255.254 with all protocols T50 can provide in a random order using "Turbo" mode.

-

  \# t50 192.168 --flood -p t50 --shuffle --turbo

## NOTES

Root privilege is mandatory to run t50.

There are lots of options. Please, use -h or --help to see them and their default values.

## BUGS

As noted before, the "host\[/CIDR\]" argument sometimes is misinterpreted as an option. This bug was introduced when the argument parser was changed to support flexible host "names". Someday I'll correct this (Frederico).

## AUTHORS

Nelson Brito

## CONTRIBUTORS

Fernando Mercês\
 Frederico Lamberti Pissarra

## BUGS and SOURCE CODE AVAILABILITY

The latest release of the source code can be downloaded at: T50 GitLab Repository ⟨https://\\:gitlab.com/\\:fredericopissarra/\\:t50⟩\\. You can also report bugs there or at t50-dev google group via t50-dev@googlegroups.com (but gitlab's is preferable!).

## COPYRIGHT

Copyright © 2014-2018 T50 developers. Licensed GPLv3+: GNU GPL version 3 or later \<http://gnu.org/licenses/gpl.html\>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
