home *** CD-ROM | disk | FTP | other *** search
/ H4CK3R 16 / hacker16 / 16_HACKER16.ISO / linux / tpm-security-server-1.2.1.iso / readme / chkrootkit-README next >
Encoding:
Text File  |  2004-01-27  |  11.6 KB  |  317 lines

  1.                              chkrootkit V. 0.42a
  2.  
  3.           Nelson Murilo <nelson@pangeia.com.br> (main author)
  4.             Klaus Steding-Jessen <jessen@nic.br> (co-author)
  5.  
  6.           This program locally checks for signs of a rootkit.
  7.          chkrootkit is available at: http://www.chkrootkit.org/
  8.  
  9.  
  10.                  No illegal activities are encouraged!
  11.          I'm not responsible for anything you may do with it.
  12.  
  13.            This tool includes software developed by the
  14.            DFN-CERT, Univ. of Hamburg (chklastlog and chkwtmp),
  15.            and small portions of ifconfig developed by
  16.            Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>.
  17.  
  18.  
  19.  1. What's chkrootkit?
  20.  ---------------------
  21.  
  22.  chkrootkit is a tool to locally check for signs of a rootkit.  It
  23.  contains:
  24.  
  25.  * chkrootkit: a shell script that checks system binaries for
  26.    rootkit modification.
  27.  
  28.  * ifpromisc.c: checks if the network interface is in promiscuous
  29.    mode.
  30.  
  31.  * chklastlog.c: checks for lastlog deletions.
  32.  
  33.  * chkwtmp.c: checks for wtmp deletions.
  34.  
  35.  * check_wtmpx.c: checks for wtmpx deletions.  (Solaris only)
  36.  
  37.  * chkproc.c: checks for signs of LKM trojans.
  38.  
  39.  * chkdirs.c: checks for signs of LKM trojans.
  40.  
  41.  * strings.c: quick and dirty strings replacement.
  42.  
  43.  chkwtmp and chklastlog *try* to check for deleted entries in the wtmp
  44.  and lastlog files, but it is *not* guaranteed that any modification
  45.  will be detected.
  46.  
  47.  Aliens tries to find sniffer logs and rootkit config files.  It looks
  48.  for some default file locations -- so it is also not guaranteed it
  49.  will succeed in all cases.
  50.  
  51.  chkproc checks if /proc entries are hidden from ps and the readdir
  52.  system call.  This could be the indication of a LKM trojan.  You can
  53.  also run this command with the -v option (verbose).
  54.  
  55.  
  56.  2. Rootkits, Worms and LKMs detected
  57.  ------------------------------------
  58.  
  59.  For an updated list of rootkits, worms and LKMs detected by
  60.  chkrootkit please visit: http://www.chkrootkit.org/
  61.  
  62.  
  63.  3. Supported Systems
  64.  --------------------
  65.  
  66.  chkrootkit has been tested on: Linux 2.0.x, 2.2.x and 2.4.x, FreeBSD
  67.  2.2.x, 3.x, 4.x and 5.x, OpenBSD 2.x and 3.x., NetBSD 1.5.2, Solaris
  68.  2.5.1, 2.6 and 8.0, HP-UX 11, True64 and BSDI.
  69.  
  70.  
  71.  4. Package Contents
  72.  -------------------
  73.  
  74.  README
  75.  README.chklastlog
  76.  README.chkwtmp
  77.  COPYRIGHT
  78.  chkrootkit.lsm
  79.  
  80.  Makefile
  81.  chklastlog.c
  82.  chkproc.c
  83.  chkdirs.c
  84.  chkwtmp.c
  85.  check_wtmpx.c
  86.  ifpromisc.c
  87.  strings.c
  88.  
  89.  chkrootkit
  90.  
  91.  
  92.  5. Installation
  93.  ---------------
  94.  
  95.  To compile the C programs type:
  96.  
  97.  # make sense
  98.  
  99.  After that it is ready to use and you can simply type:
  100.  
  101.  # ./chkrootkit
  102.  
  103.  
  104.  6. Usage
  105.  --------
  106.  
  107.  chkrootkit must run as root.  The simplest way is:
  108.  
  109.  # ./chkrootkit
  110.  
  111.  This will perform all tests.  You can also specify only the tests you
  112.  want, as shown below:
  113.  
  114.  Usage: ./chkrootkit [options] [testname ...]
  115.  Options:
  116.          -h                show this help and exit
  117.          -V                show version information and exit
  118.          -l                show available tests
  119.          -d                debug
  120.          -q                quiet mode
  121.          -x                expert mode
  122.          -r dir            use dir as the root directory
  123.          -p dir1:dir2:dirN path for the external commands used by chkrootkit
  124.  
  125.  Where testname stands for one or more from the following list:
  126.  
  127.  aliens asp bindshell lkm rexedcs sniffer wted w55808 scalper slapper
  128.  z2 amd basename biff chfn chsh cron date du dirname echo egrep env find
  129.  fingerd gpm grep hdparm su ifconfig inetd inetdconf identd init killall
  130.  ldsopreload login ls lsof mail mingetty netstat named passwd pidof
  131.  pop2 pop3 ps pstree rpcinfo rlogind rshd slogin sendmail sshd syslogd
  132.  tar tcpd tcpdump top telnetd timed traceroute vdir w write
  133.  
  134.  For example, the following command checks for trojaned ps and ls
  135.  binaries and also checks if the network interface is in promiscuous
  136.  mode.
  137.  
  138.    # ./chkrootkit ps ls sniffer
  139.  
  140.  The `-q' option can be used to put chkrootkit in quiet mode -- in
  141.  this mode only output messages with `infected' status are shown.
  142.  
  143.  With the `-x' option the user can examine suspicious strings in the
  144.  binary programs that may indicate a trojan -- all the analysis is
  145.  left to the user.
  146.  
  147.  Lots of data can be seen with:
  148.  
  149.    # ./chkrootkit -x | more
  150.  
  151.  Pathnames inside system commands:
  152.  
  153.    # ./chkrootkit -x | egrep '^/'
  154.  
  155.  chkrootkit uses the following commands to make its tests: awk, cut,
  156.  egrep, find, head, id, ls, netstat, ps, strings, sed, uname.  It is
  157.  possible, with the `-p' option, to supply an alternate path to
  158.  chkrootkit so it won't use the system's (possibly) compromised
  159.  binaries to make its tests.
  160.  
  161.  To use, for example, binaries in /cdrom/bin:
  162.  
  163.    # ./chkrootkit -p /cdrom/bin
  164.  
  165.  It is possible to add more paths with a `:'
  166.  
  167.    # ./chkrootkit -p /cdrom/bin:/floppy/mybin
  168.  
  169.  Sometimes is a good idea to mount the disk from a compromised machine
  170.  on a machine you trust.  Just mount the disk and specify a new
  171.  rootdir with the `-r' option.
  172.  
  173.  For example, suppose the disk you want to check is mounted under
  174.  /mnt, then:
  175.  
  176.    # ./chkrootkit -r /mnt
  177.  
  178.  
  179.  7. Output Messages
  180.  ------------------
  181.  
  182.  The following messages are printed by chkrootkit (except with the -x
  183.  and -q command options) during its tests:
  184.  
  185.    "INFECTED": the test has identified a command probably modified by
  186.    a known rootkit;
  187.  
  188.    "not infected": the test didn't find any known rootkit signature.
  189.  
  190.    "not tested": the test was not performed -- this could happen in
  191.    the following situations:
  192.      a) the test is OS specific;
  193.      b) the test depends on an external program that is not available;
  194.      c) some specific command line options are given. (e.g. -r ).
  195.  
  196.    "not found": the command to be tested is not available;
  197.  
  198.    "Vulnerable but disabled": the command is infected but not in use.
  199.    (not running or commented in inetd.conf)
  200.  
  201.  
  202.  8. A trojaned command has been found.  What should I do now?
  203.  ------------------------------------------------------------
  204.  
  205.  Your biggest problem is that your machine has been compromised and
  206.  this bad guy has root privileges.
  207.  
  208.  Maybe you can solve the problem by just replacing the trojaned
  209.  command -- the best way is to reinstall the machine from a safe media
  210.  and to follow your vendor's security recommendations.
  211.  
  212.  
  213.  9. Reports and questions
  214.  ------------------------
  215.  
  216.  Please send comments, questions and bug reports to
  217.  nelson@pangeia.com.br and jessen@nic.br.
  218.  
  219.  A simple FAQ and Related information about rootkits and security can
  220.  be found at chkrootkit's homepage, http://www.chkrootkit.org.
  221.  
  222.  
  223.  10. ACKNOWLEDGMENTS
  224.  -------------------
  225.  
  226.  See the ACKNOWLEDGMENTS file.
  227.  
  228.  11. ChangeLog
  229.  -------------
  230.  
  231.  02/20/1997 - Initial release
  232.  02/25/1997 - Version 0.4, formal testing.
  233.  03/30/1997 - Version 0.5, suspect files routine added.
  234.  06/11/1997 - Version 0.6, minor fixes and Debian compatibility.
  235.  06/24/1997 - Version 0.7, FreeBSD compatibility fixed.
  236.  08/07/1997 - Version 0.8, yet another FreeBSD compatibility and
  237.                            RedHat PAM fixed.
  238.  04/02/1998 - Version 0.9, new r00tkits versions support.
  239.  07/03/1998 - Version 0.10, another types of r00tkits supported.
  240.  10/15/1998 - Version 0.11, bug found by Alberto Courrege Gomide fixed.
  241.  11/30/1998 - Version 0.12, lrk4 support added.
  242.  12/26/1998 - Version 0.13, minor fixes for Red Hat and glibc users.
  243.  06/14/1999 - Version 0.14, Sun/Solaris initial support added.
  244.  04/29/2000 - Version 0.15, lrk5 features added and minor fixes.
  245.  07/09/2000 - Version 0.16, new r00tkits types support and contrib patches.
  246.  09/16/2000 - Version 0.17, more contrib patches, rootkit types and
  247.                             Loadable Kernel Modules (LKM) trojan checking
  248.                             added.
  249.  10/08/2000 - Version 0.18, new rookits types support and many bug fixes.
  250.  12/24/2000 - Version 0.19, -r, -p, -l options added.  ARK support
  251.                             added.  Some bug fixes.
  252.  01/18/2001 - Version 0.20, Ramen Worm and latest t0rnkit detection,
  253.                             temporay check for promisc mode disabled
  254.                             on Solaris boxes.
  255.  01/19/2001 - Version 0.21, Corrects a bug in the Ramen Worm detection.
  256.  01/26/2001 - Version 0.22, chklastlog core dump bug fixed, login and
  257.                             bindshell false positives fixed, cron test
  258.                             improvement.
  259.  03/12/2001 - Version 0.23, lrk6, rh[67]-shaper, RSHA and Romanian
  260.                             rootkit detection.  Test for shell history
  261.                             file anomalies.  More ports added to the
  262.                             bindshell test.
  263.  03/15/2001 - Version 0.23a fixes a bug found in the cron and
  264.                             bindshell tests.
  265.  
  266.  03/22/2001 - Version 0.30  lots of new tests added.  RK17 and Lion
  267.                             Worm detection.
  268.  04/07/2001 - Version 0.31  new tests: gpm, rlogind, mgetty.  Adore
  269.                             Worm detection.  Some bug fixes.
  270.  05/07/2001 - Version 0.32  t0rn v8, LPD Worm, kenny-rk and Adore LKM
  271.                             detection. Some Solaris bug fixes.
  272.  06/02/2001 - Version 0.33  new tests added.  ShitC, Omega and Wormkit
  273.                             Worm detection.  dsc-rootkit detection.
  274.                             Some bug fixes.
  275.  09/19/2001 - Version 0.34  new tests added.  check_wtmpx.c added.
  276.                             Ducoci rootkit and x.c Worm detection.
  277.                             `-q' option added.
  278.  01/17/2002 - Version 0.35  tests added: lsof and ldsopreload.
  279.                             strings.c added.  Ports added to the
  280.                             bindshell test.  RST.b, duarawkz, knark
  281.                             LKM, Monkit, Hidrootkit, Bobkit, Pizdakit,
  282.                             t0rn v8.0 (variant) detection.
  283.  06/15/2002 - Version 0.36  test added: w.  chkproc.c additions.
  284.                             Showtee, Optickit, T.R.K, MithRa's
  285.                             Rootkit, George and SucKIT detection.
  286.  09/16/2002 - Version 0.37  tests added: scalper and slapper.
  287.                             Scalper Worm, Slapper Worm, OpenBSD rk
  288.                             v1, Illogic and SK rootkit detection.
  289.                             chklastlog.c and chkproc.c improvements.
  290.                             Small chkrootkit bug fix.
  291.  12/20/2002 - Version 0.38  chkdirs.c added.  chkproc.c improvements.
  292.                             slapper B, sebek LKM, LOC, Romanian
  293.                             rootkit detection.  new test added: trojan
  294.                             tcpdump.  Minor bug fixes in the
  295.                             chkrootkit script.
  296.  01/30/2003 - Version 0.39  chkdirs.c and chkproc.c fixes.  bug fixes
  297.                             in the chkrootkit script.  (more) Slapper
  298.                             variants detection.
  299.  04/03/2003 - Version 0.40  chkproc.c fixes.  True64 support. small
  300.                             corrections in chkrootkit.  New test
  301.                             added: init.  New rootkits detected: shv4,
  302.                             Aquatica, ZK.
  303.  06/20/2003 - Version 0.41  chkproc.c fixes.  New test added: vdir.
  304.                             New worms detected: 55808.A and TC2. New
  305.                             rootkits detected: Volc, Gold2, Anonoying,
  306.                             Suckit (improved), ZK (improved).  Minor
  307.                             corrections.
  308.  09/12/2003 - Version 0.42  BSDI support for chkdirs.c.  chkproc.c
  309.                             fix.  New rootkit detected: ShKit.
  310.                             ifpromisc test fixed for Linux 2.4.x
  311.                             kernels. corrections for the -r option.
  312.                             FreeBSD 5.x support.  HPUX correction.
  313.                             Extra "\n" removed from chklastlog.c
  314.                             output.
  315.  09/18/2003 - Version 0.42a  Buf fix release
  316.  -------------- Thx for using chkrootkit ----------------
  317.