RunCheckRootKit v1.1 - chkrootkit을 간편하게!
2008년 현재 한국 미러는 운영하지 않습니다.
참고 바랍니다.
-
RunCheckRootKit v1.0에 대한 정보는 아래 링크를 참고해주세요.
http://forum.ev1servers.net/showthread.php?postid=272335
1. 용도
chkrootkit 을 신뢰성 있게 자동으로 검사하고 보고하는 쉘 스크립트 프로그램입니다.
2. 원래 프로그램을 수정한 이유
원래 프로그램이 사용자가 설정할 수 있는 옵션이 빈약하고 예외 처리에 빈약하여서 수정하였습니다.
3. 원래 프로그램과 비교할 때 바뀐 점
위 프로그램과 비교하여 바뀐 점은 여러 실행 조건들이 옵션화 되었다는 것과 로그파일 출력이 좀더 세련(?) 되어졌다는 겁니다.
또한 주석을 달았습니다. (허접한 영어 실력이니 기대하지 말아주세요. :()
주의: 반드시 프로그램을 실행하기 전에 파일을 열어서 옵션을 수정해주세요. (프로그램 소스은 아래에 있습니다.)
4. 실행법
1) 코드를 복사하시고 옵션을 조정하신뒤 파일로 저장하세요.
2) 알맞은 위치에 알맞은 이름으로 바꾸세요.
3) 쉘에서
chmod 755 프로그램 ./프로그램
라고 하시면 실행됩니다.
궁금하신 점 있으면 댓글 달아주세요.
최선을 다해 답변해드리겠습니다.
5. 부록 - 옵션 설정
# 포트센트리 옵션
USEPORTSENTRY="BLANK_HERE_IF_DONT_USE" # 포트 센트리를 쓰신다면 이것을 언 코멘트 해주세요.
#USEPORTSENTRY="" # 안 쓰신다면 여기를 언코멘트 해주세요.
PORTSENTRYPATH="/etc/init.d/portsentry" # 포트센트리 데몬 파일 위치
# 프로그램 위치 옵션
WGETPATH="/usr/bin/wget" # wget 실행 파일 위치
TARPATH="/bin/tar" # tar 실행 파일 위치
MD5SUMPATH="/usr/bin/md5sum" # md5sum 파일 위치
MAKEPATH="/usr/bin/make" # make 실행 파일 위치
# 이메일 옵션
#SENDEMAIL="BLANK_HERE_IF_DONT_USE" # 검사후 로그파일을 이메일로 보내시려면 여기를 언 코멘트 해주세요.
SENDEMAIL="" # 안 보내시려면 여기를 언 코멘트 해주세요.
EMAILTITLE="chkrootkit results" # 보내질 이메일 제목
EMAILADDRESS="tdthp@terra.com.br" # 보내질 이메일 주소
# chkrootkit 미러 옵션
#MIRROR="http://www.mirrors.wiretapped.net/security/host-security/chkrootkit"
# chkrootkit 호주 미러
#MIRROR="ftp://gd.tuwien.ac.at/infosys/security/chkrootkit"
# chkrootkit 오스트리아 미러
#MIRROR="http://www.spenneberg.org/chkrootkit-mirror/files"
# chkrootkit 독일 미러
MIRROR="http://chkrootkit.ath.cx/mirror"
# chkrootkit 한국 미러
#MIRROR="http://ftp.bit.nl/mirror/chkrootkit"
# chkrootkit 네덜란드 미러
#MIRROR="ftp://ftp.geekcq.com/pub/mirrors/chkrootkit"
# chkrootkit 미국 미러 1
#MIRROR="http://us.chkrootkit.org/download"
# chkrootkit 미국 미러 2
#MIRROR="ftp://ftp.pangeia.com.br/pub/seg/pac"
# chkrootkit 사이트 내의 다운로드 주소
# 기본 옵션
BASEDIR="/root" # 작업할 기본 디렉토리
LOGFILENAME="chklog" # 로그파일 이름
OPTIONS="" # chkrootkit 옵션 설정
DONECLEAN="BLANK_HERE_IF_DONT_USE" # 실행을 끝낸 뒤 chkrootkit 파일들을 삭제하시려면 여기를 언 코멘트해주세요.
#DONECLEAN="" # 삭제하지 않으시려면 여기를 언 코멘트 해주세요.
PS. 한국 미러는 제가 운영중입니다. 파일 변조는 걱정하지마세요.
정 의심스러우면 파일 내에 있는 다른 미러를 이용하시길 바랍니다.
PS2. 언 코멘트란 그 줄에 첫 부분에 있는 "#" 문자를 제거하는 것을 말합니다.
#!/bin/sh ########################################################################### # RunCheckRootKit v1.1 # # v1.0 by Luis Fernando Estrozi - lemon @ grad.icmc.usp.br - 10/04/2004 # v1.1 by Chae jong bin - mac68k @ gmail.com - 11/19/2005 ########################################################################### # You may edit anything below this point at your own risk, do not request # support for modified versions of this software. This is free software # and free for redistribution in accordance with the GNU GPL. ########################################################################### # Changelog ########################################################################### # 1.1: # 1) Add a lot of options. # 2) Edit log output message. ########################################################################### # ToDo ########################################################################### # 1.1: # 1) Optimize and arrange shell script. (Very dirty :() # 2) Add more exception process. (Same directory name problem) ########################################################################### # Portsentry option USEPORTSENTRY="BLANK_HERE_IF_DONT_USE" # If use portsentry #USEPORTSENTRY="" # If don't use portsentry PORTSENTRYPATH="/etc/init.d/portsentry" # Portsentry daemon path # Program path option WGETPATH="/usr/bin/wget" # wget path TARPATH="/bin/tar" # tar path MD5SUMPATH="/usr/bin/md5sum" # md5sum path MAKEPATH="/usr/bin/make" # make path # Email option #SENDEMAIL="BLANK_HERE_IF_DONT_USE" # Send log file to email SENDEMAIL="" # Don't send log file to email EMAILTITLE="chkrootkit results" # Email title EMAILADDRESS="tdthp@terra.com.br" # Your email address # chkrootkit Mirror option #MIRROR="http://www.mirrors.wiretapped.net/security/host-security/chkrootkit" # chkrootkit Australian Mirror #MIRROR="ftp://gd.tuwien.ac.at/infosys/security/chkrootkit" # chkrootkit Austrian Mirror #MIRROR="http://www.spenneberg.org/chkrootkit-mirror/files" # chkrootkit German Mirror #MIRROR="http://chkrootkit.ath.cx/mirror" # chkrootkit Korean Mirror #MIRROR="http://ftp.bit.nl/mirror/chkrootkit" # chkrootkit NL Mirror #MIRROR="ftp://ftp.geekcq.com/pub/mirrors/chkrootkit" # chkrootkit US Mirror 1 #MIRROR="http://us.chkrootkit.org/download" # chkrootkit US Mirror 2 MIRROR="ftp://ftp.pangeia.com.br/pub/seg/pac" # chkrootkit original url # Basic option BASEDIR="/root" # Base directory LOGFILENAME="chklog" # Log file name OPTIONS="" # chkrootkit options DONECLEAN="BLANK_HERE_IF_DONT_USE" # Clean files when done #DONECLEAN="" # Don't clean files when done ########################## END OF CONFIGURATION ########################## sendlog() { cat $BASEDIR/$LOGFILENAME | mail -s "$EMAILTITLE" $EMAILADDRESS } pwd=$PWDORG cd $BASEDIR rm -rf chkrootkit.* rm -rf chkrootkit-* echo "Downloading chkrootkit..." >$BASEDIR/$LOGFILENAME echo >>$BASEDIR/$LOGFILENAME echo >>$BASEDIR/$LOGFILENAME if [ ! -e $WGETPATH ]; then echo >>$BASEDIR/$LOGFILENAME echo >>$BASEDIR/$LOGFILENAME echo "***** WGET PATH ERROR *****" >>$BASEDIR/$LOGFILENAME if [ -n "$SENDEMAIL" ]; then sendlog fi exit fi $WGETPATH -a $BASEDIR/$LOGFILENAME $MIRROR/chkrootkit.tar.gz $WGETPATH -a $BASEDIR/$LOGFILENAME $MIRROR/chkrootkit.md5 if [ ! -e $BASEDIR/chkrootkit.tar.gz ]; then echo >>$BASEDIR/$LOGFILENAME echo >>$BASEDIR/$LOGFILENAME echo "***** FILE DOWNLOAD ERROR *****" >>$BASEDIR/$LOGFILENAME if [ -n "$SENDEMAIL" ]; then sendlog fi exit fi if [ ! -e $BASEDIR/chkrootkit.md5 ]; then echo >>$BASEDIR/$LOGFILENAME echo >>$BASEDIR/$LOGFILENAME echo "***** FILE DOWNLOAD ERROR *****" >>$BASEDIR/$LOGFILENAME if [ -n "$SENDEMAIL" ]; then sendlog fi exit fi echo "Done!" >>$BASEDIR/$LOGFILENAME echo >>$BASEDIR/$LOGFILENAME echo >>$BASEDIR/$LOGFILENAME echo "Checking md5 checksum..." >>$BASEDIR/$LOGFILENAME if [ ! -e $MD5SUMPATH ]; then echo >>$BASEDIR/$LOGFILENAME echo >>$BASEDIR/$LOGFILENAME echo "***** MD5SUM PATH ERROR *****" >>$BASEDIR/$LOGFILENAME if [ -n "$SENDEMAIL" ]; then sendlog fi exit fi if [ "`$MD5SUMPATH $BASEDIR/chkrootkit.tar.gz | awk '{print $1}'`" != "`cat $BASEDIR/chkrootkit.md5 | awk '{print $1}'`" ] ; then echo >>$BASEDIR/$LOGFILENAME echo >>$BASEDIR/$LOGFILENAME echo "***** INVALID CHECKSUM *****" >>$BASEDIR/$LOGFILENAME if [ -n "$SENDEMAIL" ]; then sendlog fi exit fi echo >>$BASEDIR/$LOGFILENAME echo >>$BASEDIR/$LOGFILENAME echo "Done!" >>$BASEDIR/$LOGFILENAME echo >>$BASEDIR/$LOGFILENAME echo >>$BASEDIR/$LOGFILENAME echo "Compiling chkrootkit..." >>$BASEDIR/$LOGFILENAME echo >>$BASEDIR/$LOGFILENAME if [ ! -e $TARPATH ]; then echo >>$BASEDIR/$LOGFILENAME echo >>$BASEDIR/$LOGFILENAME echo "***** TAR PATH ERROR *****" >>$BASEDIR/$LOGFILENAME if [ -n "$SENDEMAIL" ]; then sendlog fi exit fi tar -zxpvf chkrootkit.tar.gz >>$BASEDIR/$LOGFILENAME cd chkrootkit-* if [ ! -e $MAKEPATH ]; then echo >>$BASEDIR/$LOGFILENAME echo >>$BASEDIR/$LOGFILENAME echo "***** MAKE PATH ERROR *****" >>$BASEDIR/$LOGFILENAME if [ -n "$SENDEMAIL" ]; then sendlog fi exit fi $MAKEPATH sense >>$BASEDIR/$LOGFILENAME echo >>$BASEDIR/$LOGFILENAME echo >>$BASEDIR/$LOGFILENAME if [ ! -e ./chkrootkit ]; then echo "***** COMPILE ERROR *****" >>$BASEDIR/$LOGFILENAME if [ -n "$SENDEMAIL" ]; then sendlog fi exit fi echo "Done!" >>$BASEDIR/$LOGFILENAME if [ -n "$USEPORTSENTRY" ]; then echo >>$BASEDIR/$LOGFILENAME $PORTSENTRYPATH stop >>$BASEDIR/$LOGFILENAME echo >>$BASEDIR/$LOGFILENAME fi echo >>$BASEDIR/$LOGFILENAME echo >>$BASEDIR/$LOGFILENAME echo "Starting chkrootkit ..." >>$BASEDIR/$LOGFILENAME echo >>$BASEDIR/$LOGFILENAME ./chkrootkit $OPTIONS >>$BASEDIR/$LOGFILENAME if [ -n "$USEPORTSENTRY" ]; then echo >>$BASEDIR/$LOGFILENAME $PORTSENTRYPATH start >>$BASEDIR/$LOGFILENAME fi if [ -n "$SENDEMAIL" ]; then sendlog fi if [ -n "$DONECLEAN" ]; then cd .. rm -rf chkrootkit.* rm -rf chkrootkit-* fi cd $PWDORG echo >>$BASEDIR/$LOGFILENAME echo "Done!" >>$BASEDIR/$LOGFILENAME
댓글 달기