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


댓글 달기