강좌
클라우드/리눅스에 관한 강좌입니다.
해킹&보안 분류

rootkit hunter로 루트킷 탐지

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

rootkit hunter로 루트킷 탐지

 

rootkit hunter는 앞에서 살펴본 chkrootkit과 비슷한 기능을 제공하지만 상호 장단점이 있어 함께 활용하는 것이 좋다.

 

rootkit hunter는 백도어나 루트킷 등을 탐지하기 위해 md5 hash 값을 이용하여 비교하거나 일반적으로 rootkit이 사용하는 파일의 존재 여부, 숨김 파일 존재 여부 등으로 판별하는데, 리눅스뿐만 아니라 solaris를 제외한 대부분의 유닉스를 지원하며 slappert0rn50여 가지에 이르는 루트킷이나 백도어를 판별할 수 있는 기능을 가지고 있다.

 

rootkit hunter는 매우 빨리 업그레이드가 이루어지고 있으므로 가장 최신 버전의 프로그램을 이용하도록 한다.

 

 

9.2.1 다운로드 및 설치

 

rootkit hunter의 홈페이지는 http://www.rootkit.nl/이며 홈페이지에 접속하여 최신 버전의 패키지를 다운로드하면 된다.

 

 

 

 

 

ab790006690e3d62bbb0037300157788_1657701129_9435.png

[그림] rootkit hunter 홈페이지

 

[root@server root]# tar zxfvp rkhunter-1.x.x.tar.gz // 압축해제

[root@server root]# cd rkhunter // 설치 디렉토리로 이동

[root@server rkhunter]# ./installer.sh --layout /usr/local --install //설치

 

 

9.2.2 사용 방법

 

실행은 rkhunter 또는 /usr/local/bin/rkhunter를 실행하면 되는데, 아무 옵션 없이 실행하면 사용할 수 있는 옵션을 보여준다.

 

먼저 --update를 실행하여 업데이트된 항목이 있는지 확인하여 업데이트하도록 한다.

 

 

rkhunter --update

[ Rootkit Hunter version 1.3.2 ]

 

Checking rkhunter data files...

Checking file mirrors.dat [ No update ]

Checking file programs_bad.dat [ No update ]

Checking file backdoorports.dat [ No update ]

Checking file suspscan.dat [ No update ]

Checking file i18n/cn [ Updated ]

Checking file i18n/en [ No update ]

Checking file i18n/zh [ No update ]

Checking file i18n/zh.utf8 [ No update ]

 

다음과 같이 “rkhunter -c”를 실행하면 시스템을 스캔하기 시작한다.

 

 

[root@server rkhunter]# rkhunter -c

 

 

아래는 rkhunter를 실행하였을 때의 화면인데, 매우 직관적이고 화려한 결과를 보여준다.

 

ab790006690e3d62bbb0037300157788_1657701157_5206.png
 

[그림] rootkit hunter 실행화면

 

바이너리의 변조 여부를 확인하기 위해 strings 파일을 사용하는데, 제일 먼저 strings 자체가 변조되었는지를 확인한 후 바이너리 파일에 대해 스캔을 하기 시작한다.

 

만약 변조되었으면 아래와 같이 [ Warning ] 이라는 메시지가 출력된다.

 

 

 

/bin/ls [ Warning ]

/bin/more [ OK ]

/bin/mount [ OK ]

/bin/mv [ OK ]

/bin/netstat [ Warning ]

 

 

여기에서 rkhunter는 다음과 같은 항목에 대해 스캔을 진행하며 순서는 버전에 따라 다소 다를 수 있다.

 

 

 

알려진 rootkit 존재 여부에 대해 스캔

만약 루트킷이 탐지되면 아래와 같이 보이게 된다.

 

 

 

Shutdown Rootkit [ Not found ]

SHV4 Rootkit [ Warning ]

SHV5 Rootkit [ Warning ]

Sin Rootkit [ Not found ]

 

알려진 루트킷 관련 파일의 존재 여부, 로그인 백도어 존재 여부 확인,

수상한 디렉토리 및 sniffer 로그 존재 여부에 대해 스캔

 

/etc/rc.d/rc.sysinit /etc/xinetd.conf 파일에 의심스런 설정이 추가되었는지 확인

 

/bin/ps, /bin/ls /bin/netstat등 자주 변조되는 파일의 변조 여부

 

로드된 모듈의 이상 여부 확인

 

자주 사용되는 백도어 포트 확인, 이때 확인하는 포트는 다음과 같다

Port 2001: Scalper Rootkit

Port 2006: CB Rootkit

Port 2128: MRK

Port 14856: Optic Kit (Tux)

Port 47107: T0rn Rootkit

Port 60922: zaRwT.KiT

인터페이스의 promisc 여부 확인

 

유저와 그룹 파일의 변조 여부

/etc/rc.d/rc.local rc.d/ 디렉토리 이하가 수상한지 여부

 

/dev내 수상한 파일 확인

 

특정 응용 프로그램의 패치 여부

이때 실행 결과는 아래와 같은 결과가 보여진다.

 

Checking application versions...

Checking version of GnuPG [ Warning ]

Checking version of Bind DNS [ OK ]

Checking version of OpenSSL [ Warning ]

Checking version of Procmail MTA [ OK ]

Checking version of ProFTPd [ Warning ]

Checking version of OpenSSH [ OK ]

 

SSH 보안 설정등 기타 보안 설정 확인

SSH와 관련해서는 아래와 같이 실행한다.

 

 

Performing system configuration file checks

Checking for SSH configuration file [ Found ]

Checking if SSH root access is allowed [ Warning ]

Checking if SSH protocol v1 is allowed [ Warning ]

Checking for running syslog daemon [ Found ]

Checking for syslog configuration file [ Found ]

Checking if syslog remote logging is allowed [ Not allowed ]

 

체크가 완료되면 어떠한 부분 때문에 Warning이 되었는지 상세한 체크항목이 /var/log/rkhunter.log 파일에 저장되므로 좀 더 구체적인 내용에 대해서는 해당 파일을 살펴보기 바란다.

 

 

rkhunter 역시 버전이 올라가면서 기능이 보강되고 인식할 수 있는 루트킷도 추가되므로 항상 최신의 버전으로 시스템을 모니터링하기 바란다.

 

이를 위해 다음과 같이

--versioncheck를 실행하면 현재 버전과 최신 버전을 바로 확인할 수 있다.

 

 

아래의 예는 최신 버전과 현재 버전이 동일한 것을 알 수 있다.

 

[root@server bin]# rkhunter --versioncheck

[ Rootkit Hunter version 1.3.2 ]

 

Checking rkhunter version...

This version : 1.3.2

Latest version: 1.3.2

 

이외에도 많은 옵션을 제공하고 있는데, 자세한 내용은 rkhunter -h를 실행하면 확인할 수 있다.

 

이를테면 테스트할 때 마다 스캔할 것인지 여부를 묻게 되는데, 실행할 때 --skip-keypress 옵션을 함께 주게 되면 확인과정 없이 스캔을 하게 되고, --report-warnings-only 옵션을 주면 chkrootkit-q 옵션처럼 정상적인 내용은 출력되지 않고 비정상적인 결과만을 출력된다.  

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,807 개
  • 현재 접속자 :  151 명