본문 바로가기

Linux/보안

보안 체킹 프로그램 - chkrootkit


chkrootkit

- 루트킷 탐지 프로그램으로 루트킷 및 백도어 프로그램등의 침입을 감지한다.

-------------------------------------------------------------------

http://www.chkrootkit.org/

chkrootkit.tar.gz (다운로드)

-------------------------------------------------------------------



1. 다운 및 압축 해제

 
[root@server3 Desktop]# pwd
/root/Desktop
[root@server3 Desktop]# ls
chkrootkit.tar.gz 

[root@server3 Desktop]# tar xvfz chkrootkit.tar.gz
chkrootkit-0.48
chkrootkit-0.48/ACKNOWLEDGMENTS
chkrootkit-0.48/check_wtmpx.c
chkrootkit-0.48/chkdirs.c
chkrootkit-0.48/chklastlog.c
chkrootkit-0.48/chkproc.c
chkrootkit-0.48/chkrootkit
chkrootkit-0.48/chkrootkit.lsm
chkrootkit-0.48/chkutmp.c
chkrootkit-0.48/chkwtmp.c
chkrootkit-0.48/COPYRIGHT
chkrootkit-0.48/ifpromisc.c
chkrootkit-0.48/Makefile
chkrootkit-0.48/README
chkrootkit-0.48/README.chklastlog
chkrootkit-0.48/README.chkwtmp
chkrootkit-0.48/strings.c

[root@server3 Desktop]# ls
chkrootkit-0.48  
chkrootkit.tar.gz
[root@server3 Desktop]# mv chkrootkit-0.48/ /usr/local/src
[root@server3 Desktop]# cd /usr/local/src
[root@server3 src]# ls
chkrootkit-0.48

[root@server3 src]# cd chkrootkit-0.48/
[root@server3 chkrootkit-0.48]# ls
ACKNOWLEDGMENTS  README.chklastlog  chklastlog.c    chkutmp.c
COPYRIGHT        README.chkwtmp     chkproc.c       chkwtmp.c
Makefile         check_wtmpx.c      chkrootkit      ifpromisc.c
README           chkdirs.c          chkrootkit.lsm  strings.c




2. 설치

 
[root@server3 chkrootkit-0.48]# pwd
/usr/local/src/chkrootkit-0.48
[root@server3 chkrootkit-0.48]# make sense - 설치
gcc -DHAVE_LASTLOG_H -o chklastlog chklastlog.c
gcc -DHAVE_LASTLOG_H -o chkwtmp chkwtmp.c
chkwtmp.c: In function ‘main’:
chkwtmp.c:95: warning: incompatible implicit declaration of built-in function ‘exit’
gcc -DHAVE_LASTLOG_H   -D_FILE_OFFSET_BITS=64 -o ifpromisc ifpromisc.c
gcc  -o chkproc chkproc.c
gcc  -o chkdirs chkdirs.c
gcc  -o check_wtmpx check_wtmpx.c
gcc -static  -o strings-static strings.c
gcc  -o chkutmp chkutmp.c




3. 실행

 
[root@server3 chkrootkit-0.48]# ./chkrootkit - 시스템 바이너리 파일 변조 여부 체크 실행

- 중략

Checking `w55808'... not infected
Checking `wted'... chkwtmp: nothing deleted
Checking `scalper'... not infected
Checking `slapper'... not infected
Checking `z2'... chklastlog: nothing deleted
Checking `chkutmp'...  The tty of the following user process(es) were not found
 in /var/run/utmp !
! RUID          PID TTY    CMD
! root         5083 tty3   /sbin/mingetty tty3
! root         5088 tty4   /sbin/mingetty tty4
! root         5115 tty6   /sbin/mingetty tty6
! root         5190 tty7   /usr/bin/Xorg :0 -br -audit 0 -auth /var/gdm/:0.Xauth -nolisten tcp vt7
chkutmp: nothing deleted

- 참고
INFECTED : 해당파일이 변조되었음
not infected : 변조되지 않았음
not tested : 변조여부를 체크하지 못함
not found : 파일을 찾지 못함

[root@server3 chkrootkit-0.48]# ./chkrootkit -q - quiet mode

/usr/lib/perl5/5.8.8/i386-linux-thread-multi/.packlist /usr/lib/firefox-3.0b5/.autoreg /usr/lib/gtk-2.0/immodules/.relocation-tag

 The tty of the following user process(es) were not found
 in /var/run/utmp !
! RUID          PID TTY    CMD
! root         5083 tty3   /sbin/mingetty tty3
! root         5088 tty4   /sbin/mingetty tty4
! root         5115 tty6   /sbin/mingetty tty6
! root         5190 tty7   /usr/bin/Xorg :0 -br -audit 0 -auth /var/gdm/:0.Xauth -nolisten tcp vt7

[root@server3 chkrootkit-0.48]# ./chkrootkit -x - expert mode

- 중략

###
### Output of: ./ifpromisc
###
eth0: not promisc and no PF_PACKET sockets
eth0:0: not promisc and no PF_PACKET sockets
vmnet1: not promisc and no PF_PACKET sockets
vmnet8: not promisc and no PF_PACKET sockets
not infected
###
### Output of: ./chkwtmp -f /var/log/wtmp
###
not infected
not infected
###
### Output of: ./chklastlog -f /var/log/wtmp -l /var/log/lastlog
###
 The tty of the following user process(es) were not found
 in /var/run/utmp !
! RUID          PID TTY    CMD
! root         5083 tty3   /sbin/mingetty tty3
! root         5088 tty4   /sbin/mingetty tty4
! root         5115 tty6   /sbin/mingetty tty6
! root         5190 tty7   /usr/bin/Xorg :0 -br -audit 0 -auth /var/gdm/:0.Xauth -nolisten tcp vt7
chkutmp: nothing deleted

[root@server3 chkrootkit-0.48]# ./chklastlog - lastlog 파일 삭제 여부 체크
unable to open lastlog-file /var/adm/lastlog

[root@server3 chkrootkit-0.48]# ./chkwtmp - wtmp 파일 삭제 여부 체크

[root@server3 chkrootkit-0.48]# ./ifpromisc - NIC가 promiscuous 모드 여부 체크
eth0: not promisc and no PF_PACKET sockets
eth0:0: not promisc and no PF_PACKET sockets
vmnet1: not promisc and no PF_PACKET sockets
vmnet8: not promisc and no PF_PACKET sockets

[root@server3 chkrootkit-0.48]# ./chkproc - ps 파일 변조 및 LKM(Loadable Kernel Module) 트로이안 여부 체크
You have    29 process hidden for readdir command
You have    29 process hidden for ps command
[root@server3 chkrootkit-0.48]#




- 참고
백도어 (Back Door)
시스템의 보안이 제거된 비밀통로로서, 서비스 기술자나 유지보수 프로그래머들의 액세스 편의를 위해 시스템 설계자가 고의적으로 만들어 놓은 것이다. 이러한 헛점을 남기게 된 동기에 항상 악의가 있는 것은 아니며, 몇몇 운영체제들은 현장에서 서비스 기술자나 공급사의 유지 보수 프로그래머에 의해 사용될 목적으로 제공되는 특수한 계정이 함께 딸려 나오기도 한다. 다른 말로는 트랩도어 (Trap Door) 라고 부르기도 한다.

루트킷 (Root Kit)
루트킷은 해커들이 컴퓨터나 또는 네트워크에 침이비한 사실을 숨긴 채 관리자용 접근권한을 획득하는데 사용하는 도구, 즉 프로그램 모음이다. 침이비자는 먼저 알려져 있는 시스템 취약점을 찾아내거나 또는 암호를 크래킹 하는 등의 방법으로 사용자용 접근권한을 획득한 뒤, 컴퓨터에 루트킷을 설치한다. 루트킷은 네트워크 상의 다른 컴퓨터에 있는 사용자 ID와 암호들을 수집함으로써, 해커에게 루트 권한이나 기타 특수한 접근권한을 제공한다. 루트킷은 또한 해킹탐지를 교묘하게 피하기 위해 유틸리티 프로그램들로 구성될 수 있다.