README
上传用户:zht1018
上传日期:2007-01-07
资源大小:29k
文件大小:9k
源码类别:

系统/网络安全

开发平台:

Unix_Linux

  1.         =======================================================
  2.         dds - a combined trinoo/TFN/stacheldraht agent detector
  3.         =======================================================
  4. "dds" is a program to scan for a limited set of distributed denial of
  5. service (ddos) agents.
  6. At present, it scans for active instances of "trinoo", "Tribe Flood
  7. Network" ("TFN") and "stacheldraht" agents, which were compiled
  8. using the default values in known source distributions, such as those
  9. found at:
  10. http://packetstorm.securify.com/distributed/
  11. It will *not* detect TFN2K agents.
  12. For analyses of the three distributed denial of service attack
  13. tools it scans for, and the methods being used by dds to identify
  14. them, see:
  15. http://staff.washington.edu/dittrich/misc/trinoo.analysis
  16. http://staff.washington.edu/dittrich/misc/tfn.analysis
  17. http://staff.washington.edu/dittrich/misc/stacheldraht.analysis
  18. To be honest, I would recommend using an even newer and more general
  19. tool, RID, by David Brumley of Stanford University.  You can find a
  20. link to RID source, and other resources on DDoS attacks, on
  21. the following page:
  22. http://staff.washington.edu/dittrich/misc/ddos/
  23. See CHECKSUMS.asc for PGP signed MD5 checksums.
  24. Usage
  25. =====
  26. This program is known to compile and run on at least the following
  27. operating systems:
  28. * Linux (kernel 2.2.x)
  29. * Solaris 2.6 or higher (Solaris 2.5 seems to be missing inet_aton())
  30. * Digital Unix 4.0d 
  31. * IBM AIX 4.2
  32. * FreeBSD 3.3-Release
  33. * OpenBSD 2.6
  34. * IRIX 6.5 (MIPS Pro compiler warns of incompatible type
  35.                     with trinoo_rctport variable)
  36. You may need to edit the Makefile to define the libraries necessary
  37. to compile the program.  The default should work for Sun Solaris
  38. systems.
  39. You must run dds as root, as it needs to open a raw mode socket.
  40. (If you don't trust running the code as root, which you *should*
  41. be wary of doing if someone asks you, the source file is there
  42. to check.)
  43. There is an interpacket delay, as well as a default 30 second delay
  44. after sending out all packets to allow delayed packets to be received
  45. before the program exits.  If you use the debug or verbose options, be
  46. aware of this delay (the program is not "hung," it is simply being
  47. patient.)
  48. Networks are specified using classless interdomain routing (CIDR)
  49. notation.  (See RFC 1518 and RFC 1519.)
  50. Common netmasks, and their CIDR equivalents, are:
  51. 255.255.0.0 /16
  52. 255.255.255.0 /24
  53. 255.255.255.255 /32
  54. Say you have a network of subnets, all sharing a common network
  55. address of 198.162.  To scan this entire /16 network, you would
  56. use the command:
  57. # ./dds 198.162.0.0/16
  58. If you instead wish to just scan the 24 bit subnet 198.162.1, you
  59. would use the command:
  60. # ./dds 198.162.1.0/24
  61. To scan a single host, just give its IP address (/32 is assumed):
  62. # ./dds 198.162.1.1
  63. If dds is able to find an active trinoo or stacheldraht agent, it will
  64. report as follows:
  65. # ./dds 192.168.1.0/24
  66. Received 'PONG' from 192.168.1.17 - probable trinoo agent
  67. Received TFN Reply from 192.168.1.153 - probable tfn agent
  68. Received 'sicken' from 192.168.1.202 - probable stacheldraht agent
  69. If dds does not find any active trinoo, TFN or stacheldraht agents, it
  70. will return nothing.  You can use verbose mode if you really want to
  71. see it report each time it sends a packet, like this:
  72. # ./dds -v 192.168.1.0/24
  73. Mask: 24
  74. Target: 192.168.1.0
  75. dds $Revision: 1.3 $ - scanning...
  76. Probing address 192.168.1.1
  77. Probing address 192.168.1.2
  78.  . . .
  79. Received 'PONG' from 192.168.1.17 - probable trinoo agent
  80.  . . .
  81. Probing address 192.168.1.152
  82. Received TFN Reply from 192.168.1.153 - probable tfn agent
  83.  . . .
  84. Received 'sicken' from 192.168.1.202 - probable stacheldraht agent
  85. Probing address 192.168.1.203
  86.  . . .
  87. Probing address 192.168.1.254
  88. If you do this, realize that scanning a /24 subnet will generate
  89. > 254 lines out output, so you will probably need to run "script" to
  90. capture all the output.
  91. If dds receives an ICMP_ECHOREPLY packet that happens to have the same
  92. ID value (669) as a stacheldraht agent produces, but without the
  93. word "sicken" in the data portion of the packet, or a UDP packet
  94. on the trinoo handler listen port without "PONG" in the data portion
  95. of the packet, it will report one of the following:
  96. Unexpected ICMP packet from ...
  97. Unexpected UDP packet received on port ... from ...
  98. This is not the same as detecting a trinoo or stacheldraht agent.
  99. Please read the analyses of trinoo and stacheldraht to understand what
  100. this tool is doing and what it expects to receive.
  101. Any ICMP_ECHOREPLY packet with an ID of 123 received by dds
  102. will appear to be (and will be reported as coming) from a
  103. probable TFN agent. It is very unlikely this would be a false
  104. positive.
  105. Caveats
  106. =======
  107. This program MAY NOT DETECT stacheldraht agents that are not part of
  108. an active network.  In other words, if a stacheldraht agent is
  109. installed on a system, but there is no handler currently running to
  110. control it, it may not respond to the packets sent by this program.
  111. This program WILL NOT DETECT agents which have had the default values
  112. changed for handler/agent "command" communication.
  113. Because of these limitations, a negative response DOES NOT GUARANTEE
  114. you have no agents on your network.
  115. Even if you do detect trinoo, TFN or stacheldraht agents, you may find
  116. it difficult to locate them due to "root kits" or loadable kernel
  117. modules installed on the system.  This may require that you use file
  118. system integrity checking techniques, or otherwise identify the
  119. modified files.  A write-up on root kits can be found at:
  120. http://staff.washington.edu/dittrich/misc/faq/rootkits.faq
  121. A complementary tool that will scan the local file system for
  122. handlers/agents on Solaris systems is provided by the National
  123. Infrastructure Protection Center.  See:
  124. http://www.fbi.gov/nipc/trinoo.htm
  125. For more information on ddos tools and how to respond to them, see:
  126. http://www.cert.org/advisories/CA-2000-01.html
  127. http://www.cert.org/reports/dsit_workshop.pdf
  128. You should take care to NOT SCAN networks that you do NOT OWN AND
  129. CONTROL.  People will get very angry with you if you do this.  This
  130. tool was intended to be used by network administrators and incident
  131. response teams for scanning internal networks.
  132. You should also coordinate your activities with other groups that
  133. share the use of, or administration of, your network.
  134. If you find agents with this tool, you have identified the bottom tier
  135. of a distributed network, which may contain hundreds (as many as a
  136. thousand) of other agents at various sites.  Proper forensic
  137. procedures, to gather evidence about which computers (most likely at
  138. other sites) are acting as the handlers of the network, which will
  139. then lead to the other agents.  You should remove the system from the
  140. network, and perform a backup of the system immediately, to ensure you
  141. take the system out of the control of the attackers who compromised
  142. it, and to preserve evidence.  More information on responding to root
  143. level compromise can be found in the CERT advisory mentioned above.
  144. CREDITS
  145. =======
  146. I can only take credit for the analyses of trinoo, TFN, and
  147. stacheldraht, the initial C version of "gag" (dds' predecessor, which
  148. was hacked together from the stacheldraht source code and then
  149. significantly modified by Marcus Ranum of Network Flight Recorder and
  150. others) and the addition of trinoo agent detection to dds (based on
  151. code produced by George Weaver of Pennsylvania State University.)  TFN
  152. detection was added to dds by David Brumley of Stanford University.
  153. Alan Cox provided some bug fix advice.
  154. It would not have been possible to get the program to this level, this
  155. fast, without their contributions (which is greatly appreciated!)
  156. (Anyone wishing to supply patches to fix bugs or add new features,
  157. please feel free to send them my way.  Open source development
  158. rules!)
  159. LEGALESE
  160. ========
  161. This software should only be used in compliance with all applicable laws and
  162. the policies and preferences of the owners of any networks, systems, or hosts
  163. scanned with the software
  164. The developers and licensors of the software provide the software on an "as
  165. is" basis, excluding all express or implied warranties, and will not be liable
  166. for any damages arising out of or relating to use of the software.
  167. THIS SOFTWARE IS MADE AVAILABLE "AS IS", AND THE UNIVERSITY OF WASHINGTON
  168. DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, WITH REGARD TO THIS SOFTWARE,
  169. INCLUDING WITHOUT LIMITATION ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  170. FITNESS FOR A PARTICULAR PURPOSE, AND IN NO EVENT SHALL THE UNIVERSITY OF
  171. WASHINGTON BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
  172. DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  173. ACTION OF CONTRACT, TORT (INCLUDING NEGLIGENCE) OR STRICT LIABILITY, ARISING
  174. OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.