Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
UDP6(1) 		     General Commands Manual			 UDP6(1)

NAME
     udp6 - A security assessment tool for UDP/IPv6 implementations

SYNOPSIS
     udp6 -i INTERFACE [-S LINK_SRC_ADDR] [-D LINK-DST-ADDR] [-s SRC_ADDR[/LEN]]
     [-d  DST_ADDR]  [-A  HOP_LIMIT]  [-y  FRAG_SIZE]  [-u DST_OPT_HDR_SIZE] [-U
     DST_OPT_U_HDR_SIZE] [-H HBH_OPT_HDR_SIZE] [-P PAYLOAD_SIZE]  [-o  SRC_PORT]
     [-a  DST_PORT] [-Z DATA] [-j PREFIX[/LEN]] [-k PREFIX[/LEN]] [-J LINK_ADDR]
     [-K LINK_ADDR] [-b  PREFIX[/LEN]]	[-g  PREFIX[/LEN]]  [-B  LINK_ADDR]  [-G
     LINK_ADDR]  [-F  N_SOURCES] [-T N_PORTS] [-L] [-l] [-p PROBE_MODE] [-z SEC-
     ONDS] [-r RATE] [-v] [-h]

DESCRIPTION
     udp6 allows the assessment of IPv6 implementations with respect to a  vari-
     ety of attack vectors based on UDP/IPv6 datagrams. This tool is part of the
     SI6  Networks'  IPv6  Toolkit:  a	security  assessment and troubleshooting
     toolkit for the IPv6 protocols.

     udp6 tool has two modes of operation: active and listening. In active mode,
     the tool attacks a specific target, while in listening mode the  tool  lis-
     tens  to  UDP  traffic  on the local network, and launches an attack in re-
     sponse to such traffic. Active mode is employed if an IPv6 Destination  Ad-
     dress  is	specified. Listening mode is employed if the "-L" option (or its
     long counterpart "--listen") is set. If both an attack target and the  "-L"
     option  are specified, the attack is launched against the specified target,
     and then the tool enters listening mode to respond  incoming  packets  with
     UDP datagrams.

     udp6  supports  filtering	of incoming packets based on the Ethernet Source
     Address, the Ethernet Destination Address, the IPv6 Source Address, and the
     IPv6 Destination Address.	There are two types of filters: "block	filters"
     and  "accept filters". If any "block filter" is specified, and the incoming
     packet matches any of those filters, the message is discarded (and thus  no
     UDP  datagrams  are sent in response). If any "accept filter" is specified,
     incoming packets must match the specified filters in order for the tool  to
     respond with UDP datagrams.

OPTIONS
     udp6  takes itS parameters as command-line options. Each of the options can
     be specified with a short name (one  character  preceded  with  the  hyphen
     character,  as  e.g.  "-i") or with a long name (a string preceded with two
     hyphen characters, as e.g. "--interface").

     If the tool is instructed to e.g. flood the victim with UDP datagrams  from
     different	sources ("--flood-sources" option), multiple packets may need to
     be generated.

     udp6 supports IPv6 Extension  Headers,  including	the  IPv6  Fragmentation
     Header,  which  might be of use to circumvent layer-2 filtering and/or Net-
     work Intrusion Detection Systems (NIDS). However,	IPv6  extension  headers
     are not employed by default, and must be explicitly enabled with the corre-
     sponding options.

     -i INTERFACE, --interface INTERFACE
	    This  option specifies the network interface that the tool will use.
	    The network interface must be specified (i.e., the tool does not se-
	    lect any network interface "by default").

     -S SRC_LINK_ADDR, --src-link-address SRC_LINK_ADDR

	    This option specifies the link-layer Source  Address  of  the  probe
	    packets.  If  left unspecified, the link-layer Source Address of the
	    packets is set to the real link-layer address of the network  inter-
	    face. Note: this option is meaningful only when the underlying link-
	    layer technology is Ethernet.

     -D DST_LINK_ADDR, --dst-link-address DST_LINK_ADDR

	    This  option  specifies  the  link-layer  Destination Address of the
	    probe packets. By default, the link-layer Destination Address is au-
	    tomatically set to the link-layer address of  the  destination  host
	    (for  on-link  destinations)  or  to  the  link-layer address of the
	    first-hop router. Note: this option is meaningful only when the  un-
	    derlying link-layer technology is Ethernet.

     -s SRC_ADDR, --src-address SRC_ADDR

	    This option specifies the IPv6 source address (or IPv6 prefix) to be
	    used  for  the  Source  Address  of  the attack packets. If the "-F"
	    ("--flood-sources") option is specified,  this  option  includes  an
	    IPv6  prefix,  from which random addresses are selected. See the de-
	    scription of the "-F" option for further information on how the "-s"
	    option is processed in that specific case.

	    Note: When operating in "listening" mode, the Source Address is  au-
	    tomatically set to the Destination Address of the incoming packet.

     -d DST_ADDR, --dst-address DST_ADDR

	    This option specifies the IPv6 Destination Address of the victim. It
	    can  be  left unspecified only if the "-L" option is selected (i.e.,
	    if the tool is to operate in "listening" mode).

	    Note: When operating in "listening" mode, the Destination Address is
	    automatically set to the Source Address of the incoming packet.

     -A HOP_LIMIT, --hop-limit HOP_LIMIT

	    This option specifies the Hop Limit to be used for the IPv6 packets.
	    It defaults to 255.

     -u HDR_SIZE, --dst-opt-hdr HDR_SIZE

	    This option specifies that a Destination Options header is to be in-
	    cluded in the outgoing packet(s). The extension header size must  be
	    specified  as  an argument to this option (the header is filled with
	    padding options). Multiple Destination Options headers may be speci-
	    fied by means of multiple "-u" options.

     -U HDR_SIZE, --dst-opt-u-hdr HDR_SIZE

	    This option specifies a Destination Options header to be included in
	    the "unfragmentable part" of the outgoing packet(s). The header size
	    must be specified as an argument  to  this	option	(the  header  is
	    filled  with  padding options). Multiple Destination Options headers
	    may be specified by means of multiple "-U" options.

     -H HDR_SIZE, --hbh-opt-hdr HDR_SIZE

	    This option specifies that a Hop-by-Hop Options header is to be  in-
	    cluded  in the outgoing packet(s). The header size must be specified
	    as an argument to this option (the header is filled with padding op-
	    tions). Multiple Hop-by-Hop Options  headers  may  be  specified  by
	    means of multiple "-H" options.

     -y FRAG_SIZE, --frag-hdr FRAG_SIZE

	    This  option specifies that the resulting packet must be fragmented.
	    The fragment size must be specified as an argument to this option.

     -P PAYLOAD_SIZE, --payload-size PAYLOAD_SIZE

	    This options specifies the size of the UDP payload. It defaults to 0
	    (i.e., empty UDP datagrams).

     -o SRC_PORT, --src-port SRC_PORT

	    This option specifies the UDP Source Port.

     -a DST_PORT, --dst-port DST_PORT

	    This option specifies the UDP Destination Port.

     -Z DATA, --data DATA

	    This option is used to specify the UDP payload.  It  will  typically
	    include  an application-layer request. Note: the string used for the
	    DATA parameter can contain the "\r" and  "\n"  C-style  escape  sen-
	    quenced  for representing "carriage return" and "line feed" (respec-
	    tively).

	    As an example, this option could be employed to send an HTTP request
	    if set as '--data "GET / HTTP/1.0\r\n\r\n"'.

     -j SRC_ADDR, --block-src SRC_ADDR

	    This option sets a block filter for the incoming packets,  based  on
	    their  IPv6  Source  Address. It allows the specification of an IPv6
	    prefix in the form "-j prefix/prefixlen". If the  prefix  length  is
	    not  specified, a prefix length of "/128" is selected (i.e., the op-
	    tion assumes that a single IPv6 address, rather than an IPv6 prefix,
	    has been specified).

     -k DST_ADDR, --block-dst DST_ADDR

	    This option sets a block filter for the incoming packets,  based  on
	    their  IPv6  Destination  Address. It allows the specification of an
	    IPv6 prefix in the form "-k prefix/prefixlen". If the prefix  length
	    is	not  specified, a prefix length of "/128" is selected (i.e., the
	    option assumes that a single IPv6 address, rather than an IPv6  pre-
	    fix, has been specified).

     -J LINK_ADDR, --block-link-src LINK_ADDR

	    This  option  sets a block filter for the incoming packets, based on
	    their link-layer Source Address. The option must be  followed  by  a
	    link-layer address (currently, only Ethernet is supported).

     -K LINK_ADDR, --block-link-dst LINK_ADDR

	    This  option  sets a block filter for the incoming packets, based on
	    their link-layer Destination Address. The option must be followed by
	    a link-layer address (currently, only Ethernet is supported).

     -b SRC_ADDR, --accept-src SRC_ADDR

	    This option sets an accept filter for the incoming packets, based on
	    their IPv6 Source Address. It allows the specification  of	an  IPv6
	    prefix  in	the  form "-b prefix/prefixlen". If the prefix length is
	    not specified, a prefix length of "/128" is selected (i.e., the  op-
	    tion assumes that a single IPv6 address, rather than an IPv6 prefix,
	    has been specified).

     -g DST_ADDR, --accept-dst DST_ADDR

	    This  option sets a accept filter for the incoming packets, based on
	    their IPv6 Destination Address. It allows the  specification  of  an
	    IPv6  prefix in the form "-g prefix/prefixlen". If the prefix length
	    is not specified, a prefix length of "/128" is selected  (i.e.,  the
	    option  assumes that a single IPv6 address, rather than an IPv6 pre-
	    fix, has been specified).

     -B LINK_ADDR, --accept-link-src LINK_ADDR

	    This option sets an accept filter for the incoming packets, based on
	    their link-layer Source Address. The option must be  followed  by  a
	    link-layer address (currently, only Ethernet is supported).

     -G LINK_ADDR, --accept-link-dst LINK_ADDR

	    This option sets an accept filter for the incoming packets, based on
	    their link-layer Destination Address. The option must be followed by
	    a link-layer address (currently, only Ethernet is supported).

     -F N_SOURCES, --flood-sources N_SOURCES

	    This  option  instructs the tool to send multiple UDP datagrams with
	    different Source Addresses. The number of different source addresses
	    is specified as "-F number". The Source Address of each UDP datagram
	    is randomly selected from the prefix specified by the  "-s"  option.
	    If the "-F" option is specified but the "-s" option is left unspeci-
	    fied,  the	Source	Address of the packets is randomly selected from
	    the prefix ::/0.

     -T N_PORTS, --flood-ports N_PORTS

	    This option instructs the tool to send multiple UDP  datagrams  with
	    different Source Ports. The Source Port of each UDP datagram is ran-
	    domly selected from the whole port number space (0-65535).

     -l, --loop

	    This  option  instructs the udp6 tool to send periodic UDP datagrams
	    to the victim node. The amount of time to pause between sending  UDP
	    datagrams can be specified by means of the "-z" option, and defaults
	    to 1 second. Note that this option cannot be set in conjunction with
	    the "-L" ("--listen") option.

     -z, --sleep

	    This  option  specifies  the amount of time to pause between sending
	    UDP datagrams (when the "--loop" option is set).  If  left	unspeci-
	    fied, it defaults to 1 second.

     -r RATE, --rate-limit RATE

	    This option specifies the rate limit to use when performing a remote
	    address  scan.  "RATE" should be specified as "xbps" or "xpps" (with
	    "x" being an unsigned integer), for rate-limits in bits  per  second
	    or packets per second, respectively.

     -L, --listen

	    This  instructs the udp6 tool to operate in listening mode (possibly
	    after attacking a given node). Note that this option cannot be  used
	    in conjunction with the "-l" ("--loop") option.

     -p PROBE_MODE, --probe-mode PROBE_MODE

	    This  option instructs th too to operate in probe mode. The specific
	    probe mode is specified as an argument to  this  option  (currently,
	    only  "script"  mode  is  supported).  In probe mode, the udp6 sends
	    probe datagrams, and waits for response packets. The response  pack-
	    ets are decoded based on the selected probe mode.

	    In	the  "script" probe mode, the tool decodes UDP datagrams as fol-
	    lows:

		 RESPONSE:RESPONSE_TYPE:RESPONSE_DECODE...

	    Where the string RESPONSE is fixed, and RESPONSE_TYPE indicates  the
	    response received. As of this version of the tool, the following RE-
	    SPONSE_TYPE values are supported:

	       + UDP6: Indicates that the tool received a UDP/IPv6 packet
	       + TIMEOUT: Indicates that the tool received no response

	    Possibe output lines of the tool are:

		RESPONSE:TIMEOUT:
		RESPONSE:UDP6:

	    Note: Future versions of the tool will also decode ICMPv6 error mes-
	    sages,  and  will include additional data regarding the incoming UDP
	    datagrams (e.g., payload size).

     -v, --verbose

	    This option instructs the udp6 tool to be verbose.	When the  option
	    is	set twice, the tool is "very verbose", and the tool also informs
	    which packets have been accepted or discarded as a result of  apply-
	    ing the specified filters.

     -h, --help

	    Print help information for the udp6 tool.

EXAMPLES
     The following sections illustrate typical use cases of the udp6 tool.

     Example #1

     # udp6 -s fc00:1::/64 -d fc00:1::1 -a 22 -F 100 -l -z 1 -v

     In  this example the udp6 tool is essentially employed to flood port number
     22 of the host fc00:1::1. The tool sends  UDP  datagrams  from  the  prefix
     fc00:1::/64  (as specified by the "-s" option) to port 22 (specified by the
     "-a" option) at the destination address fc00:1::1 (specified  by  the  "-d"
     option).  The  tool  sends  UDP  datagrams from 100 different addresses (as
     specified by the "-F" option) every one second (as specified  by  the  "-l"
     and  "-z"	options). The tool will be verbose (as specified by the "-v" op-
     tion).

     Example #3

     # udp6 -d fc00:1::1 -a 80 -l -r 1pps -v --data "GET / HTTP/1.0\r\n\r\n"

     Flood the target system (fc00:1::1) with UDP datagrams at	a  rate  of  one
     packet  per  second.  Each  UDP  datagram will contain (in the payload) the
     string specified via the "--data" option.

     Example #4

     # udp6 -i eth0 -d	fc00:1::1  -a  80  -L  -s  fc00:1::/112  -l  -r  1000pps
     --udp-flags auto -v --data "GET / HTTP/1.0\r\n\r\n" --flood-ports 10 --win-
     dow-mode close

     Flood  the  target  node  (fc00:1::1) with UDP connections (on port 80). On
     each connection that is established, an HTTP request is sent, and	the  UDP
     window  is immediately closed. For each forged IPv6 source address ten dif-
     ferent UDP source ports are randomized. The bandwidth of the attack is lim-
     ited to 1000 pps.

     Example #5

     # udp6 -d fc00:1::1 -a 80 --udp-flags A --dst-opt-hdr 8  --payload-size  50
     --probe-mode script

     Send  a  probe  UDP  datagram to UDP port 80 at fc00:1::1. The probe packet
     consists of an IPv6 packet with a Destination Options header  of  8  bytes,
     and  an IPv6 payload consisting of a UDP datagram with the ACK bit set, and
     50 data bytes. The probe mode is "script".

AUTHOR
     The udp6 tool and the corresponding manual pages were produced by	Fernando
     Gont <fgont@si6networks.com> for SI6 Networks <http://www.si6networks.com>.

COPYRIGHT
     Copyright (c) 2011-2013 Fernando Gont.

     Permission is granted to copy, distribute and/or modify this document under
     the  terms  of the GNU Free Documentation License, Version 1.3 or any later
     version published by the Free Software Foundation; with no  Invariant  Sec-
     tions,  no  Front-Cover  Texts, and no Back-Cover Texts.  A copy of the li-
     cense is available at <http://www.gnu.org/licenses/fdl.html>.

									 UDP6(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=udp6&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help