$Id: README,v 1.8 2001/04/16 16:03:52 slay Exp $

README for SING v1.1
====================

"This program is distributed under the GNU GPL license. See the COPYING file 
for more details."

SING stands for 'Send ICMP Nasty Garbage' :).

Sing is a little tool that sends ICMP packets fully customized from command
line. The main purpose is to replace/complement the niceful ping command
with certain enhancements as:

 - Send fragmented packets (Linux and BSD).

 - Send monster packets > 65534 (Linux and BSD).

 - Send/read IP spoofed packets.(Libpcap included in distribution).
 
 - Send/read Ethernet spoofed packets.(Libnet included in distribution).

 - Send many ICMP Information types in addition to the ECHO REQUEST type sent
   by default as Address Mask Request, Timestamp, Information Request, Router
   Solicitation and Router Advertisement.

 - Send many ICMP error types: Redirect, Source Quench, Time Exceeded,
   Destination Unreach and Parameter Problem.

 - Send to host with Loose or Strict Source Routing.

 - Use fingerprinting techniques to discover remote OOSS.

 - Send ICMP packets emulating certain OS: Cisco, Solaris, Linux, Shiva,
   Unix and Window$ at the moment.

The ICMP packet types accepted on the command line follows:

Value   Extended Value    Meaning
-----   --------------    -------
-echo   --echo_req        Echo Request. Sent by default.
-reply                    Echo Reply.
-mask   --mask_req        Address Mask Request.
-tstamp --timestamp       Timestamp.
-rts    --router_solicit  Router Solicitation (Router Discovery).
-rta    --router_advert   Router Advertisement (Router Discovery).
-du     --dest_unreach    Destination Unreach.
-info   --info_req        Information Request.
-red    --redirect        Redirect.
-param  --param_problem   Parameter Problem.
-sq     --src_quench      Source Quench.
-tx     --time_exc        Time Exceeded.

This keys can be combined with multiple options like ICMP code (-x code),
no resolve (-n), garbage size bytes (-s bytes|max), etc.
See the man page for examples with deep details.

RETURN VALUES

Value  Meaning
-----  -------
0      Program finished OK
1      General error
2      Sent packet OK but received no response
3      Out of memory

-----------------------------------------------------------------------
IMPORTANT:
I released this program for evaluation of TCP/IP stacks *ONLY*. Take it
like a little tool to improve your system security, not for cracking,
disturbing or flooding another systems. This can be a crime on certain
countries.
-----------------------------------------------------------------------

I like to read your opinions, suggestions, bugs etc. about this program.

My e-mail address is:

  aandres@s21sec.com

Feel free to contact.  :)

Enjoy!

Ooooooops! The last thing... sorry for my bad english! :)


Madrid, 2001. Slay.
