


NEMESIS-DNS(1)					   NEMESIS-DNS(1)


NAME
       nemesis-dns - DNS Protocol (The Nemesis Project)

SYNOPSIS
       nemesis-dns [-kv?] [-a ack-number ] [-A number-of-authori-
       tative-DNS-resource-records ] [-b number-of-DNS-answers	]
       [-d  Ethernet-device  ]	[-D  destination-IP-address ] [-f
       TCP-flags ] [-F fragmentation-offset ] [-g DNS-flags ] [-H
       source-MAC-address ] [-i DNS-ID ] [-I IP-ID ] [-M destina-
       tion-MAC-address ] [-o TCP-options-file ] [-O  IP-options-
       file  ]	[-P  payload-file ] [-q number-of-DNS-questions ]
       [-r   number-of-additional-DNS-resource-records	 ]    [-s
       sequence-number ] [-S source-IP-address ] [-t IP-TOS ] [-T
       IP-TTL ]	 [-u  urgent-pointer  ]	 [-w  window-size  ]  [-x
       TCP/UDP-source-port ] [-y TCP/UDP-destination-port ]

DESCRIPTION
       The  Nemesis  Project  is  designed  to be a command line-
       based, portable human IP stack for UNIX like systems.  The
       suite  is  broken  down	by protocol, and should allow for
       useful scripting of injected packet  streams  from  simple
       shell scripts.

       nemesis-dns  provides an interface to craft and inject DNS
       packets allowing the user to specify any portion of a  DNS
       packet as well as lower-level IP and TCP/UDP packet infor-
       mation.

DNS OPTIONS
       -A number-of-authoritative-resource-records
	      Specify	 the	number-of-authoritative-resource-
	      records within the DNS header.

       -b Number-of-answer-resource-records
	      Specify	 the	number-of-answer-resource-records
	      within the DNS header.

       -g DNS-flags
	      Specify the DNS-flags within the DNS header.

       -i DNS-ID
	      Specify the DNS-ID within the DNS header.

       -k     Enables the use of TCP when injecting DNS	 packets.

       -P payload-file
	      This  will  cause	 nemesis-dns to use the specified
	      payload-file as  the  payload  when  injecting  DNS
	      packets.	For packets injected using the raw inter-
	      face (where -d is not used),  the	 maximum  payload
	      size  is 65443 bytes for DNS packets injected using
	      TCP and 65455 for DNS packets injected  using  UDP.
	      For packets injected using the link layer interface
	      (where -d IS used), the  maximum	payload	 size  is



			   12 July 2002				1





NEMESIS-DNS(1)					   NEMESIS-DNS(1)


	      1368  bytes  for TCP DNS packets and 1420 bytes for
	      UDP DNS packets.	Payloads can also  be  read  from
	      stdin  by	 specifying  '-P -' instead of a payload-
	      file.

	      The payload file can consist of any  arbitary  data
	      though  it  will be most useful to create a payload
	      resembling the structure of the DNS  packet  speci-
	      fied  using  the command-line options.  In order to
	      send real DNS packets,  a	 payload  containing  the
	      appropriate  record  data	 (as specified in the DNS
	      header) must be created manually.

       -q Number-of-questions
	      Specify  the  number-of-questions	 within	 the  DNS
	      header.

       -r Number-of-additional-resource-records
	      Specify  the  number-of-additional-resource-records
	      within the DNS header.

       -v verbose-mode
	      Display the injected packet in human readable form.
	      Use  twice to see a hexdump of the injected packet.

TCP OPTIONS (enabled via -k)
       -a Acknowledgement-Number
	      Specify  the  acknowledgement-number  (ACK  number)
	      within the TCP header.

       -f TCP flags (-fS/-fA/-fR/-fP/-fF/-fU)
	      Specify the TCP flags:

	      -fS (SYN)
	      -fA (ACK)
	      -fR (RST)
	      -fP (PSH)
	      -fF (FIN)
	      -fU (URG)

	      within  the  TCP	header.	 Flags can be combined in
	      the form '-fPA'.


       -o TCP-options-file
	      This will cause nemesis-dns to  use  the	specified
	      TCP-options-file	as  the options when building the
	      TCP header for the injectect packet.   TCP  options
	      can  be  up to 40 bytes in length.  The TCP options
	      file  must  be  created  manually	 based	upon  the
	      desired options.	TCP options can also be read from
	      stdin by	specifying  '-o	 -'  instead  of  a  TCP-
	      options-file.




			   12 July 2002				2





NEMESIS-DNS(1)					   NEMESIS-DNS(1)


       -s  sequence-number
	      Specify  the sequence-number within the TCP header.

       -u urgent-pointer-offset
	      Specify the urgent-pointer-offset	 within	 the  TCP
	      header.

       -w window-size
	      Specify the window-size within the TCP header.

       -x TCP-source-port
	      Specify  the  TCP-source-port packet within the TCP
	      header.

       -y TCP-destination port
	      Specify  the  TCP-destintion-port	 within	 the  TCP
	      header.

UDP OPTIONS
       -x UDP-source-port
	      Source Port of injected packet.

       -y UDP-Destination-Port
	      Target Port of injected packet.

IP OPTIONS
       -D destination-IP-address
	      Specify  the  destination-IP-address  within the IP
	      header.

       -F fragmentation-offset
	      Specify the  fragmentation  offset  within  the  IP
	      header.

       -I IP-ID
	      Specify the IP-ID within the IP header.

       -O IP-options-file
	      This  will  cause	 nemesis-dns to use the specified
	      IP-options-file as the options when building the IP
	      header for the injectect packet.	IP options can be
	      up to 40 bytes in length.	 The IP options file must
	      be created manually based upon the desired options.
	      IP options can also be read from stdin by	 specify-
	      ing '-O -' instead of an IP-options-file.

       -S source-IP-address
	      Specify the source-IP-address within the IP header.

       -t IP-TOS
	      Specify the IP-type-of-service (TOS) within the  IP
	      header.  Valid type of service values:

	      2	 (Minimize monetary cost)



			   12 July 2002				3





NEMESIS-DNS(1)					   NEMESIS-DNS(1)


	      4	 (Maximize reliability)
	      8	 (Maximize throughput)
	      24 (Minimize delay)

	      Note: type of service values cannot be combined.

       -T IP-TTL
	      Specify  the  IP-time-to-live  (TTL)  within the IP
	      header.

DATA LINK OPTIONS
       -d Ethernet-device
	      Specify the name of the Ethernet-device to use (eg.
	      ne0, fxp0, eth0).

       -H source-MAC-address
	      Specify the source-MAC-address (XX:XX:XX:XX:XX:XX).

       -M destination-MAC-address
	      Specify	      the	   defination-MAC-address
	      (XX:XX:XX:XX:XX:XX).

DIAGNOSTICS
       Nemesis-dns  returns 0 on a successful exit, 1 if it exits
       on an error.

BUGS
       An interface for	 users	to  create  DNS	 packet	 payloads
       should be created.

       Send   concise	and   clearly	written	 bug  reports  to
       jeff@snort.org

AUTHOR
       Jeff Nathan <jeff@snort.org>

       Originally developed by Mark Grimes <mark@stateful.net>

SEE ALSO
       nemesis-arp(1),	 nemesis-ethernet(1),	 nemesis-icmp(1),
       nemesis-igmp(1),	 nemesis-ip(1), nemesis-ospf(1), nemesis-
       rip(1), nemesis-tcp(1), nemesis-udp(1)















			   12 July 2002				4


