작성의 편의를 위해 경어체(?)는 생략합니다;

1. 소개


홈페이지 : http://rkhunter.sourceforge.net/

chkrootkit과 비슷한 성격(?)의 프로그램으로 기본적인 rootkit검사와 추가적으로 시스템 취약점 (보안버그가 있는 중요
패키지 - ex : openssl, glibc등) 을 점검해주고 터미널 출력 및 로그파일을 남겨준다. 또한 passwd 파일에서
root외 uid 0을 가지는 사용자를 점검해주고 shadow파일에서 패스워드가 없는 계정도 점검해준다.

Supported' rootkits/backdoors/LKM's/worms:
55808 Trojan - Variant A, ADM W0rm, AjaKit, aPa Kit, Apache Worm, Ambient (ark) Rootkit, Balaur Rootkit
BeastKit, beX2, BOBKit, CiNIK Worm (Slapper.B variant), Danny-Boy's Abuse Kit, Devil RootKit, Dica
Dreams Rootkit, Duarawkz Rootkit, Flea Linux Rootkit, FreeBSD Rootkit, Fuck`it Rootkit, GasKit, Heroin LKM
HjC Rootkit, ignoKit, ImperalsS-FBRK, Irix Rootkit, Kitko, Knark, Li0n Worm, Lockit / LJK2
mod_rootme (Apache backdoor), MRK,  Ni0 Rootkit, NSDAP (RootKit for SunOS), Optic Kit (Tux), Oz Rootkit
Portacelo, R3dstorm Toolkit, RH-Sharpe's rootkit, RSHA's rootkit, Scalper Worm, Shutdown, SHV4 Rootkit
SHV5 Rootkit, Sin Rootkit, Slapper, Sneakin Rootkit, Suckit, SunOS Rootkit, Superkit, TBD (Telnet BackDoor)
TeLeKiT, T0rn Rootkit, Trojanit Kit, URK (Universal RootKit), VcKit, Volc Rootkit, X-Org SunOS Rootkit
zaRwT.KiT Rootkit

and ..some known/unknown sniffers, backdoors like:
Anti Anti-sniffer
LuCe LKM
THC Backdoor


2006년 이후로 원 개발자인 Michael Boelen이 프로젝트를 현재 개발 프로젝트(Rootkit Hunter project team)에 넘겨
(?)주었다고 한다.

2. 다운로드
http://sourceforge.net/projects/rkhunter/

3. 설치
설치시 필요사항 :
cat, sed, head, tail (대부분의 시스템에 설치되어 있으니 큰 문제는 없을것 같다. 다만 해당 파일들이 없다면
rkhunter는 실행되지 않을것이다.)

추가 필요사항 :
stat, readlink, md5/md5sum or sha1/sha1sum (해당 파일이 없다면 rkhunter는 perl 스크립트를 자동으로 사용한다)


현재 최근버전은 1.32이고 tar.gz 형식으로 제공하나 rpm 사용이 가능한 시스템은 rpm으로 만들어 관리의 편리(?)를
도모할수 있겠다.
ex) rpm -ta  rkhunter-1.3.2.tar.gz 명령으로 /usr/src/redhat/RPMS/noarch/rkhunter-1.3.2-1.noarch.rpm 파일이
만들어 진다. 그것을 설치하면 되겠다.

rpm패키지가 없거나 할경우 rkhunter의 압축을 풀고
./installer.sh  --layout /usr/local --install 옵션으로 플렛폼 독립적인 /usr/local에 설치할수 있다.
installer.sh만 실행했을때 더 많은 설치옵션을 볼수있다.



4. 실행 예제
실행 옵션 :  여기서는 몇가지 옵션만 나열한다. 자세한 옵션은  rkhunter -h 명령으로 볼수 있다.

가장 먼저 rkhunter --propupd 명령으로 파일 데이타 베이스를 만든다. rpm같은 패키지 메니져를 사용한다면
(
별도로 설치한 프로그램이 없다면) 다음 명령을 실행하라. ( RPM설치가 아닌 별도 설치프로그램이 많다면
NONE을 선택하라.)

rkhunter --propupd --pkgmgr RPM


사용가능 패키지 메니져 : RPM, DPKG, BSD, NONE(기본값)

위의 pkgmgr옵션을 사용했다면 rkhunter 실행시 rkhunter -c --pkgmgr RPM 으로 실행해야 데이타베이스 비교시
error나 warning이 나오지 않는다.


rkhunter --configfile = 설정 파일 경로 설정
rkhunter --append-log = 로그파일을 갱신 하지 않고 덧붙임, 이전로그와 함께 보관
rkhunter -c, --check = 시스템 체크
rkhunter --sk, --skip-keypress = 기본적으로 각 테스트후 사용자 입력을 기다리나 이 옵션으로 계속 체크 가능
rkhunter --rwo, --report-warnings-only = 경고 메세지만 출력
rkhunter --display-logfile = 실행 종료후 로그파일 출력

샘플 로그
[22:33:52] Running Rootkit Hunter version 1.3.2 on free4u
[22:33:52] Info: X will be automatically detected
[22:33:52] Info: Found the 'diff' command: /usr/bin/diff
[22:33:52] Info: Found the 'file' command: /usr/bin/file
[22:33:52] Info: Found the 'find' command: /usr/bin/find
[22:33:53] Info: Found the 'ifconfig' command: /sbin/ifconfig
[22:33:53] Info: Found the 'ip' command: /sbin/ip
[22:33:53] Info: Found the 'ldd' command: /usr/bin/ldd
[22:33:53] Info: Found the 'lsattr' command: /usr/bin/lsattr
[22:33:53] Info: Found the 'lsmod' command: /sbin/lsmod
[22:33:53] Info: Found the 'lsof' command: /usr/sbin/lsof
[22:33:53] Info: Found the 'mktemp' command: /bin/mktemp
[22:33:53] Info: Found the 'netstat' command: /bin/netstat
.
.
[22:33:54] Performing 'strings' command checks
[22:33:54] Info: Starting test name 'strings'
[22:33:54] Scanning for string /usr/sbin/ntpsx            [ OK ]
[22:33:54] Scanning for string /usr/lib/.../ls               [ OK ]
[22:33:54] Scanning for string /usr/lib/.../netstat        [ OK ]
[22:33:55] Scanning for string /usr/lib/.../lsof            [ OK ]
.
.
[22:34:02] Performing 'shared libraries' checks
[22:34:02] Info: Starting test name 'shared_libs'
[22:34:02] Checking for preloading variables            [ None found ]
[22:34:02] Checking for preload file                         [ Not found ]
[22:34:02] Info: Starting test name 'shared_libs_path'
[22:34:02] Checking LD_LIBRARY_PATH variable       [ Not found ]
.
.
[22:34:24] Checking for 55808 Trojan - Variant A...
[22:34:24]   Checking for file '/tmp/.../r'                  [ Not found ]
[22:34:24]   Checking for file '/tmp/.../a'                  [ Not found ]
.
.
[22:34:24] Checking for AjaKit Rootkit...
[22:34:24]   Checking for file '/dev/tux/.addr'              [ Not found ]
[22:34:24]   Checking for file '/dev/tux/.proc'              [ Not found ]
.
.
[22:36:05] Checking application versions...
[22:36:05] Info: Starting test name 'apps'
[22:36:07] Info: Application 'exim' not found.
[22:36:08]   Checking version of GnuPG                       [ OK ]
[22:36:08] Info: Application 'gpg' version '1.x' found.


5. cron에 등록하기
rkhunter를 cron에 등록해 사용할수도 있다.
아래 스크립트를 만들어 /etc/cron.daily에 rkhunter등의 이름으로 저장 하는 방법이 있고

#!/bin/sh
          ( /usr/local/bin/rkhunter --versioncheck
/usr/local/bin/rkhunter --update
/usr/local/bin/rkhunter --cronjob --report-warnings-only
) | /bin/mail -s 'rkhunter Daily Run' root


또는 crontab -e 명령으로 직접 추가 할수도 있다. (path_to는 rkhunter가 설치된 디렉토리이다.)
30 5 * * * /path_to/rkhunter -c --cronjob 

rkhunter 실행 결과 시스템 침입, 변조가 의심 된다면 아래링크를 참고하라.
http://free4u.wo.tc/docs/intruder-detection-checklist.txt
http://free4u.wo.tc/docs/root_compromise.txt

관련링크 :
http://www.rootkit.nl/projects/rootkit_hunter.html
http://rkhunter.sourceforge.net/



+ Recent posts