Skip to content

2010.03.28 01:45

안티 루트킷 사용 예

조회 수 11573 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

rootkit은 비정상적으로 서버를 공격하여 해킹을 하였을 때 이후에 보다 쉽게 접속을 하기 위해 백도어나 트로이잔 목마 프로그램을 설치하여 시스템에 숨겨놓은 프로그램을 의미한다.
대부분의 해킹 사고가 발생하였다면 무조건 재설치가 우선되어야 하지만 다양한 파일 무결성 검사나 또는 루트킷 체킹 프로그램(chkrootkit)을 이용하여 검사할 수 있다.

그러나 가장 많이 사용되는 명령어나 핵심 프로그램의 내용을 일부만 변경하여 정상적인 파일로 보이게 만들기 때문에 잡아내기 매우 힘들며 또한 보안을 위해서는 재설치를 해야 한다.
그러나 문제는 해킹 사고가 발생하였는지 조차 파악하지 못하는 경우가 있는데 이때는 주기적으로 루트킷 탐지 프로그램을 사용하거나 파일 무결성 검사로 파악 할 수 있다.

chkrootkit 설치를 통해서 현재 내가 운영하고 있는 시스템에 파일무결성에 문제는 없는지 확인해보자.


1. 다운로드 및 압축해제
http://www.chkrootkit.org 로 접속하여 현재 릴리즈된 소스를 다운로드하고 md5sum을 실행하여 소스의 변경 유무를 검사하고 압축을 해제한다.

2007. 05. 30.일 현재 아래버전이 최근에 나온소스이다.
 chkrootkit 0.47 is now available! (Release Date: Tue Oct 10 2006)

[root@smileserv]# wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz

[root@smileserv src]# md5sum chkrootkit.tar.gz
4c6455d202cef35395a673386e4bf01a  chkrootkit.tar.gz

[root@smileserv src]# tar xvfz chkrootkit.tar.gz



2. 환경설정 및 설치
다운받은 파일 압축을 풀고 들어가보면 README 파일이 보인다.
대부분에 소스파일에는 친절하게도 README 파일안에 해당 소스가 무엇인지, 어떻게 설치하는지, 사용되는 옵션및 기타등등 자세히 나와있다.
다만 영어라는게 문제지만;;;;;;;;
아주 영어에 XXX가 아니라면 이정도 간단한 단어 연결이야 무슨말인지 이해가 갈것이다.

[root@smileserv src]# cd chkrootkit-0.47

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

[root@smileserv src]# cat README
.................................................
.................................................
.................................................

 5. Installation
 ---------------
 To compile the C programs type:
 # make sense
 After that it is ready to use and you can simply type:
 # ./chkrootkit


설치는 아주 간단하다...
make sense 명령어 입력후 엔터치면 끝이다.

3. chkrootkit 테스트
아래와 같이 실행하면 머가 후다닥 지나간다.

 [root@smileserv chkrootkit-0.47]# pwd
/usr/local/src/chkrootkit-0.47
[root@smileserv chkrootkit-0.47]# ./chkrootkit
ROOTDIR is `/'
Checking `amd'... not found
Checking `basename'... not infected
Checking `biff'... not found
Checking `chfn'... not infected
Checking `chsh'... not infected
Checking `cron'... not infected
...........................................
...........................................



이 제 먼지모를것들이 지나갔는데 이것들이 의미하는것이 무엇인지 알아보자.
infected  :  rootkit에 의해 변형이 됨
not infected  :  어떤 루트킷의 증후를 발견하지 못함 / 이상없음
not tested  :  점검을 실행하지 못함
not found  :  점검한 command가 없다.
※ 검사결과에서 infected가 출력되었다면 rootkit에 의해 변형된 파일이 존재한다는 의미이므로 반드시 세부적인 검사가 필요하며 때에 따라서는 OS를 재설치해야 한다.


4. chkrootkit 옵션
다음은 "chkrootkit" 명령어에서 제공하는 옵션이다.
하나 씩 실행해서 차이점이 무엇인지 비교해 보면 어떻게 다른지 금방 눈에 보일것이다.
-d  :  debug 검사 정보를 출력
-n  :  옵션을 출력
-l   :  검사할때 사용할 리스트를 출력
-q  :  일반적인 검사내용은 생략하며 검사 정보만 출력
-r,p  :  지정한 디렉토리를 최상위 디렉토리로 설정하여 검사하며 여러개를 지정하고자 할때는 -p 옵션을 사용할수 있으나 일반적인 환경에서는 사용되지 않음
-x  :  전문가 모드로 출력
-V  :  버전 정보를 출력


5. 스크립트를 통한 메일전송
대충 chkrootkit이 무엇인지 알았을것이다.
이제는 매일마다 들어가서 체크하기가 귀찮을것이다...
리눅스에는 cron 데몬이라는 아주 유용한 녀석이 시간에 마춰서 명령어를 실행해준다.
간단하게 스크립트를 이용해서 하루에 한번 메일을 통해서 점검결과를 자동전송할수 있게금 설정해보자.

[root@smileserv chkrootkit-0.47]# cd /etc/cron.daily

[root@smileserv chkrootkit-0.47]# cat smileserv.chkrootkit_ckeck
#!/bin/bash
BASE=/usr/local/src/chkrootkit-0.47
cd $BASE
chk=`./chkrootkit`
if [ -n "$chk" ] ;then
       echo $chk | mail -s "My SYSTEM Chkrootkit Result " 사용ID@사용도메인
       echo Finished
fi

 
위와 같이 스크립트 파일을 만들고 테스트삼아 돌려주면 자신에 MAIL로 1통에 반가운메일이 수신된걸 확인하면 끝...........


TAG •

Who's l2zeo

profile

I see no changes, wake up in the morning and I ask myself

Is life worth living should I blast myself

Things would never be the same.


List of Articles
번호 제목 글쓴이 날짜 조회 수
88 CentOS Portsentry 1.2 소스설치 오류 ADMINPLAY 2014.01.19 7052
87 PHP 보안의 약방의 감초 open_basedir ADMINPLAY 2014.01.02 7520
86 CentOS 5.2 32bit 에 2.6.27.4 커널 + iptables 1.4.2 + c... ADMIN 2008.11.10 7818
85 wowhacker.com ADMIN 2008.11.11 8065
84 파일 퍼미션 설정을 통한 로컬 공격 방지 l2zeo 2010.03.08 8168
83 lsof 활용 가이드 ADMINPLAY 2009.11.30 8313
82 서버종합점검[리눅스] ADMINPLAY 2009.05.28 8367
81 iptables 기본 ADMINPLAY 2009.05.22 8386
80 SSH 공격막아내기 방법 l2zeo 2010.03.08 8391
79 SSH(Security SHell) 보안쉘 ADMINPLAY 2009.10.20 8404
78 Tcpdump 용어 정리 ADMINPLAY 2010.01.30 8505
77 ZONE-H.KR ADMIN 2008.11.11 8542
76 pam_abl 을 통한 SSH 무작위 공격 방어 ADMINPLAY 2009.06.04 8731
75 LINUX 해킹당했을 때 대처요령 l2zeo 2010.03.08 8731
74 시스템 로그를 메일로 - logcheck file ADMINPLAY 2009.09.08 8772
73 서버의 iptable 보안설정 일부분 ADMINPLAY 2009.05.28 8786
72 Kernel 2.4.23 버전 이하에 나온 ptrace 버그에 관한 사항 ADMINPLAY 2009.12.13 8797
71 iptables 옵션 및 상태 추적 테이블 및 rule ADMINPLAY 2009.11.30 8851
70 iptables 설정, centos64 설치 간단셋팅 ADMINPLAY 2009.05.28 8854
69 홈페이지 보안 강화 도구(CASTLE) 보급 안내 1 file ADMINPLAY 2010.01.22 8925
Board Pagination Prev 1 2 3 4 5 Next
/ 5

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234