1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636
|
ROOTKIT HUNTER FREQUENTLY ASKED QUESTIONS (FAQ)
===============================================
The latest version of this FAQ can be found on the RKH web site.
(https://sourceforge.net/p/rkhunter/rkh_code/ci/develop/tree/files/FAQ)
===========================================================
1. GENERAL QUESTIONS
1.1) What is Rootkit Hunter?
1.2) What are rootkits?
1.3) Can I help with the development of this project?
1.4) I like your software! How can I thank you?
2. INSTALLATION QUESTIONS
2.1) How do I install Rootkit Hunter?
2.2) How do I create a Rootkit Hunter RPM file?
3. USAGE QUESTIONS
3.1) Rootkit Hunter tells me there is something wrong with
my system. What do I do?
3.2) Rootkit Hunter tells me that I have vulnerable applications
installed. But I have fully patched my server! How is this
possible?
3.3) How can I automatically run Rootkit Hunter every day?
3.4) What is the meaning of the test names?
3.5) Can rkhunter handle filenames with spaces in them?
3.6) What does the following warning mean:
Determining OS... Warning: this operating system is not
fully supported!
3.7) I have just installed Rootkit Hunter, and I am already
getting warning messages. Why is that?
3.8) When I used the '--propupd' option, Rootkit Hunter told me
I had some missing hashes. What does this mean?
3.9) I run rkhunter in cron and in the emailed output I get some
strange characters. Why is this?
3.10) When I used the '--propupd' option, Rootkit Hunter told me
that it had found more files than it was searching for. How
is this possible?
4. ERROR AND WARNING MESSAGES
4.1) What does the following warning mean:
The file of stored file properties (rkhunter.dat) is empty,
and should be created. To do this type in
'rkhunter --propupd'.
4.2) Rootkit Hunter skips some checks, and the logfile indicates
that certain commands are missing. What can I do?
4.3) I get warnings from PHP like:
PHP Warning: Function registration failed - duplicate name
- pg_update in Unknown on line 0. What does this mean?
4.4) After performing some updates, all, or some, binaries in the
file properties checks are marked with a 'Warning'.
What can I do?
5. UPDATING QUESTIONS
5.1) Rootkit Hunter tells me that I have multiple versions
installed. How it this possible?
5.2) Can I be notified when a new release will be available?
6. WHITELISTING EXAMPLES
6.1) Common whitelisting examples
===========================================================
1. GENERAL QUESTIONS
====================
1.1) What is Rootkit Hunter?
A. Rootkit Hunter (RKH) is an easy-to-use tool which checks
computers running UNIX (clones) for the presence of rootkits
and other unwanted tools.
1.2) What are rootkits?
A. Most times they are self-hiding toolkits used by blackhats,
crackers and scriptkiddies, to avoid the eye of the sysadmin.
1.3) Can I help with the development of this project?
A. Yes, everyone can help in some way. For example:
Help your fellow Rootkit Hunter users on the rkhunter-users
mailing list;
Send a copy of an undetected rootkit to us so that it can
be added and help others;
Translate RKH messages to your native language. Details of
how to do this are in the README file. For the template
see the standard language file i18n/en.
Are you a package maintainer? If so, then please submit
your changes to us so that everyone can benefit from them;
Are you an end-user? FOSS, and hence RKH, ultimately depends
upon you. Contributing is your responsibility, not someone
elses. Whatever you contribute is very much welcomed. For
example, contribute or discuss enhancing Rootkit Hunter with
us; submit a patch or discuss enhancements; file a bug
report; or test the application by using it on your servers.
1.4) I like your software! How can I thank you?
A. Simple - by contributing. See question 1.3 above.
===========================================================
2. INSTALLATION QUESTIONS
=========================
2.1) How do I install Rootkit Hunter?
A. Instructions on installing RKH can be found in the README file.
2.2) How do I create a Rootkit Hunter RPM file?
A. The RKH source contains an rkhunter.spec file which will
allow an RPM to be built. To build the RPM run the following
command:
rpmbuild -ta rkhunter-<version>.tar.gz
The last part of the displayed build process should indicate
where the RPM file has been written. However, it will usually
be found in '/usr/src/redhat/RPMS/noarch'.
NOTE: The RKH development team do not support any third-party
RPM files. However, the rkhunter.spec file will be maintained.
===========================================================
3. USAGE QUESTIONS
==================
3.1) Rootkit Hunter tells me there is something wrong with my
system. What do I do?
A. Prior to any incident it is recommended that you have read
"Intruder Detection Checklist". This is available from
http://web.archive.org/web/20080109214340/http://www.cert.org/tech_tips/intruder_detection_checklist.html
This document will tell you what to check, and makes it easier
for you to find out and answer any questions.
If you are unsure as to whether your system is compromised,
you can get a second opinion from sources such as the
rkhunter-users mailing list, the Linux-oriented forum
LinuxQuestions.org, or even IRC. Please note you need to
subscribe before posting to the rkhunter-users mailing list.
If a file property check fails, then it is possible you have
what is called a 'false positive'. Sometimes this will happen
due to package updates, customised configurations or changed
binaries. If so, then please check further:
1. If you run a file integrity checker, for example Aide,
Samhain, or Tripwire, consult the results from running those
tools. Note they must be installed directly after the O/S
installation in order to be useful, and you must keep a copy
of the binary, configuration files and databases off-site.
Also note that running those tools, and Rootkit Hunter, is no
substitute for updating software when updates are released,
and proper host and network hardening.
2. If you don't run a file integrity checker you can possibly
use your distributions package management system if it is
configured to deal with verification.
3. Run 'strings <file>' and check the results for untrusted file
paths (for example, /dev/.hiddendir).
4. Check recently updated binaries and their original source.
5. Run 'file <file>' and compare the results with other files,
especially trusted binaries. If some binaries are statically
linked and others are all dynamic, then they could have been
trojaned.
If you have a warning from another part of the checks, then
please subscribe first and then email the rkhunter-users mailing list
and tell us about your system configuration:
The purpose of the server
(for example: web server, intranet fileserver, shell server);
The (approximate) date of the incident and when you found out;
The running distribution name, release and kernel version;
Whether any passwd or shadow file data has changed;
Any anomalies you find from reading the system, daemon, IDS
and firewall logs;
If all the installed software was recently updated;
What services are or were running at the time;
If you found setuid root files in directories for temporary
files;
Any anomalies you find from reading user shell histories.
If your system is infected with a rootkit, cleaning it up is
not an option. Restoring is also not an option unless you are
skilled, and have autonomous and an independent means of
verifying that the backup is clean, and does not contain
misconfigured or stale software. Never trust a compromised
machine. Period.
Read "Steps for Recovering from a UNIX or NT System Compromise".
This is available from
http://www.cert.org/tech_tips/win-UNIX-system_compromise.html
A clean install of the system is recommended after backing up
the full system. To do this follow these steps:
1. Stay calm. Be methodical.
2. From another machine inform users, and the network,
facility or host owner, that the machine is compromised.
3. Get the host offline or make sure the firewall is raised
to only allow network traffic to and from your management
IP address or range.
4. Backup your data. If you do not intend to investigate the
problem, then do not backup any binaries or binary data
which you cannot verify.
5. Verify the integrity of your backup by visual inspection
(authentication data, configurations, log files), or by
using a file integrity checker or your distributions
package management tools.
6. Install your host with a fresh install. Whilst you are
updating and configuring the software and services,
restrict network access to the system using authentication
features like accounts, PAM, firewall, TCP wrappers, and
daemon configurations. Make sure you properly harden the
machine.
7. Investigate the old log files, and the tools used if
possible. Also investigate the services which were
vulnerable at the time of attack.
3.2) Rootkit Hunter tells me that I have an out-of-date or unsecure
application installed. But I have fully patched my server!
How is this possible?
A. Some distributions, for example Red Hat and OpenBSD, do patch
old versions of software. However, Rootkit Hunter thinks it is
an old version, and so sees it as being unsecure.
It is possible to whitelist specific applications, or specific
versions of an application. The configuration file contains more
details about this.
If you wish you can skip the application version check completely
by adding the 'apps' test name to the DISABLE_TESTS option in your
rkhunter configuration file.
3.3) How can I automatically run Rootkit Hunter every day?
A. There are several ways that rkhunter can be run via cron. However,
it must be remembered that cron will automatically email any output
produced by the program to the root user. Secondly, when the rkhunter
'--cronjob' option is used, the program will generally not produce
any output. It is, therefore, necessary to tell rkhunter what output
should be shown. Typically this will just be any warning messages,
and this can be achieved by using the '--rwo' (report warnings only)
option.
For the first example, the rkhunter command could be added directly
to the root crontab:
30 5 * * * /usr/local/bin/rkhunter --cronjob --update --rwo
This would run rkhunter at 5:30 (AM) every day. If no output is
produced by rkhunter, then nothing is emailed to root. Any output
this is produced, which would only be warning messages, is
automatically emailed to root by the cron process.
Note that the '--update' option has been included. Rkhunter will
first perform any updates required to its data files, and then
perform the system checks. This option can be omitted, but it is
suggested that the option is used regularly to ensure that the
rkhunter data files are kept up todate.
If it is wished that all the normal output of rkhunter, as seen when
running rkhunter from the command-line, is emailed to root, then this
is possible. The '--rwo' option should be removed, and the '--cronjob'
option replaced by '--sk --nocolors --check'.
The next example is of a cronjob script. For Linux systems this
script could be put in to the /etc/cron.daily directory, so that
it will be automatically run every day.
The script might look like this:
#!/bin/sh
( /usr/local/bin/rkhunter --cronjob --update --rwo && echo "" ) \
| /bin/mail -s "Rkhunter daily run on `uname -n`" root
exit 0
Because we are piping any output through to the mail command, it is
required to use 'echo ""' when there are no warnings. Without this,
the mail command would issue its own warning about there being no
message body.
If it is wished to include the date in the output, then something
like this could be used instead:
#!/bin/sh
( date; /usr/local/bin/rkhunter --cronjob --update --rwo ) \
| /bin/mail -s "Rkhunter daily run on `uname -n`" root
exit 0
Finally, it is possible to run rkhunter in quiet-mode, whereby no
output will be produced at all. However, if the return code indicates
that warnings were found, then we get cron to mail the root user.
For example:
30 5 * * * /usr/local/bin/rkhunter --cronjob --update --quiet \
|| echo "Rkhunter daily run on `uname -n` has produced warning messages"
An alternative to the above example would be to use:
30 5 * * * /usr/local/bin/rkhunter --cronjob --update --quiet
and then simply set the MAIL-ON-WARNING option in the configuration
file with the root email address. This way, rkhunter produces no
output, and so nothing is emailed to root by cron. However, if any
warnings are found during the system check, then a notice message is
emailed to root by rkhunter itself.
Note: The '--quiet' option in the above two examples is not actually
necessary, but was included for clarity. The '--cronjob' option assumes
the '--quiet' option, and so, as mentioned above, when rkhunter is run
with the '--cronjob' option no output is generally produced.
3.4) What is the meaning of the test names?
A. See the README file for information about the test names.
3.5) Can rkhunter handle filenames with spaces in them?
A. Generally yes for the tests themselves, but not for configuration options.
Additionally, Some tests may not like filenames with the colon (:) character
in them.
3.6) What does the following warning mean:
Determining OS... Warning: this operating system is not
fully supported!
A. This is a message from older versions of rkhunter. Upgrade to
a newer version.
3.7) I have just installed Rootkit Hunter, and I am already
getting warning messages. Why is that?
A. The first run of rkhunter after an installation will usually give
some warning messages. One of the checks is whether the file of
file properties (called 'rkhunter.dat') exists. This file won't
exist until rkhunter is run with the '--propupd' option. There is
also a check to see if any commands have been replaced by a script.
To avoid these warning messages you can whitelist the commands in
your configuration file. Similarly if there are warnings about
hidden files or directories, then these can be whitelisted. Look in
the configuration file and you will find examples of these.
Once these changes have been made, then re-run rkhunter and no
warnings should appear. Obviously warning messages from other
checks indicate that something else is wrong, and so should be
investigated.
NOTE: When using the '--propupd' option it is the users
responsibility to ensure that the files on their system are
genuine. Rootkit Hunter can only inform the user of a change
to the files, not whether they are the original files or not.
Although Rootkit Hunter can use a package manager for some
systems, it must be remembered that the package manager itself
uses files stored on the system. Those files may have been
tampered with.
The logfile will contain further information about each warning
message. Once the reason for the warning has been found, and you
believe that rkhunter has given a false-positive result, then
looking in the configuration file may show you that the relevant
item can be whitelisted. Also see WHITELISTING EXAMPLES below.
3.8) When I used the '--propupd' option, Rootkit Hunter told me
I had some missing hashes. What does this mean?
A. Your system probably uses prelinking (the log file will say if
it does or not). Sometimes a file may be updated but not be
prelinked. When this happens RKH cannot determine the files hash
value. If you run the command 'prelink --verify --sha <file>'
on the file, it will probably give an error about the files
dependencies having changed. This is what RKH sees, and flags
it as a missing hash. If you are sure that the file is genuine,
then you can try using 'prelink <file>' to correct it. The
'prelink' command above should then work. Re-run RKH with the
'--propupd' option to ensure that all the hash values are recorded.
3.9) I run rkhunter in cron and in the emailed output I get some strange
characters. Why is this?
A. The problem only occurs when the '--update' or '--versioncheck'
options are used, and does not occur when rkhunter is run from
the command-line. It also does not occur if the '--cronjob' or
'--quiet' options are used in cron.
The emailed output probably looks something like this:
[1;33mChecking rkhunter data files...[0;39m
Checking file mirrors.dat[34C[ [1;32mNo update[0;39m ]
The 'strange' characters are ANSI color codes and escape sequences,
and this is why the problem does not occur if rkhunter is run from
the command-line. The terminal correctly interprets the codes, but
cron cannot do this.
The solution is to use the '--nocolors' option in your cron job.
The '--cronjob' option assumes '--nocolors', which is why the
problem does not occur when '--cronjob' is used.
3.10) When I used the '--propupd' option, Rootkit Hunter told me
that it had found more files than it was searching for. How
is this possible?
A. The output from rkhunter probably shows something like this:
File updated: searched for 149 files, found 171
When rkhunter collects file property information about files
(commands), it uses generic file names - for example, 'awk'
and 'sed'. As such, if these files exist in more than one
directory that is being searched, then it will have found two
files but only have been looking for one. Secondly, some files
are symbolic (soft) links to another file. In this instance
rkhunter will record both the link itself, and the file that
it points to. So, again, two files have been found. It is,
therefore, quite possible on some systems for rkhunter to find
more files than it says it is looking for. It simply indicates
that rkhunter has found some files more than once.
===========================================================
4. ERROR AND WARNING MESSAGES
=============================
4.1) What does the following warning mean:
The file of stored file properties (rkhunter.dat) is empty,
and should be created. To do this type in
'rkhunter --propupd'.
A. For rkhunter to perform file property checks, it must first
have a database file ('rkhunter.dat') containing the property
values for each file. It can then compare each files current
values against those stored in the database. Any difference
indicates that the file has changed. To create and/or update
the database file use the '--propupd' option.
NOTE: An additional warning will be displayed stating that it
is the users responsibility to ensure that the files are
valid before using the '--propupd' option. That is, the
user must be sure that the files have not been compromised.
4.2) Rootkit Hunter skips some checks, and the logfile indicates
that certain commands are missing. What can I do?
A. You have a choice:
1) Install the relevant command. You may be able to do this
simply by running a package updater for your system (for
example, 'yum' or 'apt-get').
2) You may be able to disable the check by adding its test
name to your configuration file. (See the README file
for more information about the test names.)
3) If you are sure that the relevant command is present on
your system, then rkhunter is having a problem locating
it. Check the logfile for the 'command directories' it
is using. If the directory containing the command isn't
listed, then you can set the command directories to use
by using the '--bindir' command-line option, or the BINDIR
option in the configuration file.
4.3) I get warnings from PHP like:
PHP Warning: Function registration failed - duplicate name
- pg_update in Unknown on line 0. What does this mean?
A. This may occur during the 'apps' test. It is usually because
you have updated the Apache version of PHP, but forgot to
update or recompile the CLI (console version) of PHP. So
update or recompile it, and then try again.
4.4) After performing some updates, all, or some, binaries in the
file properties checks are marked with a 'Warning'.
What can I do?
A. The first thing would be to verify that the update is the cause
of the warnings. Checking the system log files should indicate
what has been updated.
It is most likely that the stored rkhunter file property values
need to be recalculated. To do this use the RKH '--propupd'
option. However, the output of the RKH file properties check
should only be seen as an indication that the file has changed.
Updating the stored property values should be done only after
proper verification of the files using a file integrity checker
or your distributions package management tools.
Alternatively, you can use the '--pkgmgr' command-line option, or
the PKGMGR option in the configuration file, to tell RKH to obtain
its file properties information from the package manager database.
See the README file for more information about the package manager
options.
NOTES
=====
1) If the logfile indicates that a files' hash value has changed
from some value to 'No hash value found', and your system
uses prelinking, then the file probably needs to be
specifically prelinked. This can usually be done by running
the 'prelink' command on the relevant file. Running RKH with
the '--propupd' option afterwards will indicate if there
are still any hash values missing. Check the logfile and
repeat the above process of prelinking the files.
RKH will try and determine if your system is using prelinking
or not. The logfile will contain the result of the check.
2) If your system uses Libsafe and prelinking, then errors can
occur. Disable preloading Libsafe in /etc/ld.so.preload.
Prelink again, and then run 'rkhunter --propupd'.
===========================================================
5. UPDATING QUESTIONS
=====================
5.1) Rootkit Hunter tells me that I have multiple versions
installed. How it this possible?
A. Usually you install a tool and upgrade it later. Sometimes
if you use a 'non-official' updater or package manager
(for example, from an external party, or build from source
using an installer like RPM/DEB/TGZ/TXZ), the binaries may be
installed into a different location from the original. So there
are then two binaries with the same name, but in different
locations. You will have to check which are the old binaries,
and remove them.
5.2) Can I be notified when a new release will be available?
A. Yes, you can join the rkhunter-announce mailing list. This is
a low volume list. Details can be found on the RKH web site.
Additionally, the '--versioncheck' option of rkhunter itself
will indicate if a new version is available.
===========================================================
6. WHITELISTING EXAMPLES
========================
6.1) After Rootkit Hunter has run you may encounter items in the log
file you would like to whitelist. First verify that the entries
are safe to add. The results of running these commands can be
added to your 'rkhunter.conf.local' configuration file. Please
adjust the commands, and the location of your 'rkhunter.log' log
file, and verify the results before adding them. Do not automate
adding whitelist entries to your configuration file.
Allow script replacements ("properties" test):
awk -F"'" '/replaced by a script/ {print "SCRIPTWHITELIST="$2}' rkhunter.log
Allow processes using deleted files ("deleted_files" test):
awk '/Process: / {print "ALLOWPROCDELFILE="$3}' rkhunter.log | sort -u
Allow Xinetd services:
awk '/Found enabled xinetd service/ {print $NF}' rkhunter.log |\
xargs -iX grep -e "server[[:blank:]]" 'X' | awk '{print "XINETD_ALLOWED_SVC="$NF}'
Allow packet capturing applications ("packet_cap_apps" test):
awk -F"'" '/is listening on the network/ {print "ALLOWPROCLISTEN="$2}' rkhunter.log
Allow "suspicious" files ("filesystem" test):
grep '^\[..:..:..\][[:blank:]]\{6\}.*/dev/shm/.*:' rkhunter.log |\
awk '{print "ALLOWDEVFILE="$2}' | sed -e "s|:$||g"
Allow hidden directories ("filesystem" test):
awk '/Warning: Hidden directory/ {print "ALLOWHIDDENDIR="$6}' rkhunter.log
Allow hidden files ("filesystem" test):
awk '/Warning: Hidden file/ {print "ALLOWHIDDENFILE="$6}' rkhunter.log |\
sed -e "s|:$||g"
===========================================================
|