Home | Data Center | Contact US | Login

제목 chkrootkit 설치 및 사용법
첨부파일 chkrootkit 설치 및 사용법.pdf 작성일 2007-11-27 10:19:01

작성자 : 기술지원부 지 국 현 wlrnrgusdl@nextline.net
 
chkrootkit 설치 및 사용법
 
chkrootkit이란 시스템에 루트킷(rootkit)이 설치되었는지 여부를 손쉽게 체크할 수 있는 프로그램으로 chkrootkit은 일반적인 루트킷뿐 아니라, 커널기반의 루트킷, worm까지도 탐지가 가능합니다.
 
chkrootkit의 홈페이지는 http://www.chkrootkit.org/ 입니다.
이 사이트에서 최신 버전의 chkrootkit을 다운로드 합니다.
 
wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz

 
tar 명령으로 압축을 풀어 make sense의 명령어로 컴파일 합니다.
 
 
압축을 푼 chkrootkit-0.47폴더로 이동합니다.
cd chkrootkit-0.47


 
chkrootkit-0.47폴더로 들어와 make sense의 명령어로 컴파일을 합니다.




 
설치가 완료 되면 아래의 그림과 같이 실행 파일이 만들어 집니다.

 

정상적으로 설치가 되어는지 아래의 그림처럼 실행하여 봅니다.
실행 명령어는 “ ./chkrootkit ” 입니다.

 
 
* 참고 사항입니다.
 
[실제 사용방법]
 
chkrootkit 명령어의 실행 형식은 다음과 같습니다.
 
./chkrootkit [option][test...]
 
옵션 :
-h : 사용할 수 있는 옵션을 보여줍니다.
-V : chkrootkit의 버전정보를 보여줍니다.
-l : 사용가능한 test들을 보여줍니다.
-d : debug 모드로 자세한 화면을 보여줍니다.
-q : quiet 모드로서 변조된 정보만 보여줍니다.
-x : 전문가 모드로 strings 결과를 보여줍니다.
-r dir : 디렉토리 이하에 대해 체크합니다.
-p dir1:dir2:dirN : 복수개의 디렉토리에서 체크합니다.
 
실행 결과의 의미
 
chkrootkit을 실행하여 각 파일의 변조 여부를 확인 한 후
각각의 파일에 대해 변조 여부를 알려줍니다.
이때 보여지는 메시지들은 다음과 같습니다.
 
- INFECTED : 해당 파일이 rootkit 등에 의해 변조되었음을 뜻합니다.
- not infected : 파일이 변조되지 않았음을 뜻합니다.
- not tested :  파일 변조 여부를 체크하지 못했음을 뜻합니다.
- not fount : 변조 여부를 체크하려는 파일이 없음을 뜻합니다.
 
만약 위와 같이 확인하였을 때 파일이 변조되고 루트킷이 설치되었다는 것을
확인한 후에는 먼저 변조된 파일을 원본 파일로 교체하고 설치되어 있는
백도어를 찾아 모두 제거해야 합니다.
그러나 백도어가 설치되었다는 것은 이미 해킹을 당하여 누군가가
시스템의 관리자 권한을 획득했다는 의미이므로 변조된 파일을 찾아
원본 파일로 교체하는 것은 임시방편 입니다.
따라서 이러한 경우 시스템을 완전히 다시 설치하는 것이 가장 좋습니다.
 


[실행파일의 종류 및 기능]


- chkrootkit
시스템의 바이너리 변조 여부를 체크하는 메인 셀 스크립트입니다.
chkrootkit은 아래와 같은 바이너리 파일들의 변조여부를 체크합니다.
 
aliens asp bindshell lkm rexedcs sniffer wted z2 amd basename biff
chfn chsh cron date du dirname echo egrep env find fingerd gpm grep
hdparm su ifconfig inetd inetdconf identd killall ldsopreload login
ls lsof mail mingetty netstat named passwd pidof pop2 pop3 ps
pstree rpcinfo rlogind rshd slogin sendmail sshd syslogd tar tcpd
top telnetd timed traceroute write
 
- fpromisc
네트워크 인터페이스가 promiscuous 모드인지 체크합니다.
 
- chklastlog
lastlog 파일의 삭제여부를 체크합니다.
lastlog 파일은 모든 계정들의 마지막 접근시간과 IP 주소를 저장한 파일로
lastlog를 실행했을 때의 결과에 대한 정보를 저장하고 있습니다.
 
- chkwtmp
wtmp 파일의 삭제여부를 체크합니다.
wtmp 파일은 last 명령어를 입력하였을 때 보여지는 결과를 저장한 파일로
telnet 이나 ftp를 접속하였을 때의 접속시간과 IP주소등이 남습니다.
 
- chkproc
ps파일을 변조하는 LKM 트로이안 여부를 체크합니다.
./chkproc -v 와 같이 사용하여 Hidden Process가 있는지 여부를 확인합니다.
ps에서 보이는 정보와 /proc/pid/ 정보와 비교하여 hidden process가 있는지
조사하는 것이므로 짧은 시간에 많은 접속이 있는 시스템의 경우 프로세스가 빨리 생겨났다가
사라져 마치 hidden process인 것처럼 잘못 판단될 수 있으니 주의해야 합니다.
 
- strings
원래의 strings를 대체합니다.

 
[스크립트를 통한 메일전송]

chkrootkit을 매일 체크하시기가 어려우시다면 리눅스있는 cron 데몬을 이용하여
간단하게 아래의 방법으로 스크립트를 만들어 chkrootkit을 하루에 한번 자동으로
실행하여 메일을 통해서 점검결과를 자동전송할수 있도록 아래와 같이 설정하시면 됩니다.
 
스크립트는 관리하기 쉬운곳에 만들어 놓으시기 바랍니다.
 
Touch 명령어로 스크립트 아래와 같이 파일을 만듬니다.

 
vi 명령어로 만들어 놓은 check_chkrootkit.sh 파일에 아래의 스크립트를 넣어 줍니다.
Vi check_chkrootkit.sh [엔터] 아래의 스크립트 삽입후, wq으로 정장하고 나옵니다.
===================================================================
#!/bin/bash
BASE=/root/chkrootkit-0.47
cd $BASE
chk=`./chkrootkit`
if [ -n "$chk" ] ;then
       echo $chk | mail -s "My SYSTEM Chkrootkit Result " 메일주소
       echo Finished
fi
===================================================================

 
root만 실행할수 있도록 chmod 명령어로 아래와 같이 설정합니다.

 
위의 작업을 완료후 1루에 한번 위의 스크립트가 실행되어 메일을 받아볼수 있도록
vi 명령어로 crontab에 들어가 아래와 같이 설정합니다.
Vi /etc/crontab [엔터]

 
00 8 * * * 의 부분이 / 분 / 시간 / 날짜 / 월 / 요일 / 을 나타내므로 시간은 원하시는
시간대에 스크립트가 실행이 되도록 설정하실수 있습니다.
 
위의 설정은 1루에 1번 8시 정각에 /root/bin/안에 있는 check_chkrootkit.sh란 스크립트를
실행하라는 설정입니다.
  lshw 란?
  윈도우 서버에서 서비스 거부 공격에 대비한 TCP/IP 스택 강화





회사소개 개인정보취급방침 이용약관 이메일주소 무단수집거부 CONTACT US IDC 약도
회사소개 개인정보취급방침 이용약관 이메일주소 무단수집거부 CONTACT US IDC 약도 회사소개 개인정보취급방침 이용약관 이메일주소 무단수집거부 CONTACT US IDC 약도