RunCheckRootKit v1.1 - chkrootkit을 간편하게!

Stand Alone Complex의 이미지

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
Forums: 

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.