그누보드 사이트 해킹 점검용 쉘스크립트

nonots의 이미지

그누보드 혹은 영카드 사용하는 사이트가 많은 가상호스팅서버에서
해킹당한 여부를 점검하는 쉘스크립트입니다.
서버에 한두개 사이트 뿐이라면 별 도움 안될겁니다.
사용하는 bash 버전이 3 이상에서 테스트한 겁니다. centOS 4 이상.
그 이하에서 오류 날지도 모르겠군요..
..
아래 내용을 복사해서 check.sh 등으로 저장후 쉘에서
check.sh | more 등으로 실행하면 됩니다.
만약 웹사이트의 소스 상위 위치가 /home 이 아니라면
상단 HDIR 변수를 적당하게 수정하면 됩니다.

#!/bin/sh
#
# 작성처 : 바다웹호스팅 <a href="http://www.bada.cc" rel="nofollow">http://www.bada.cc</a>
# 작성자 : 권기성
# 작성일 : 2008-06-12 오후
#
# 이스크립트는 리눅스 가상웹호스팅이 많은 사이트에서 
# 그누보드 웜 취약점 점검을 위해 작성되었습니다.
# 참조 : <a href="http://sir.co.kr/bbs/board.php?bo_table=co_notice&wr_id=1029
 
#" rel="nofollow">http://sir.co.kr/bbs/board.php?bo_table=co_notice&wr_id=1029
 
#</a> 점검할 사용자 홈디렉토리 : 적절한 서버의 경로로 수정하세요 
HDIR="/home";
 
# 임시 파일 
TEM_FILE="/tmp/__gnu_check_file"
TEM_FILE_YES="/tmp/__gnu_check_file_patched"
TEM_FILE_NOT="/tmp/__gnu_check_file_not_patched"
TEM_FILE_WORM="/tmp/__gnu_check_file_worm"
 
if [ "$1" == "-c" ] ; then
	/bin/rm -f $TEM_FILE
fi
 
# CH STR
CK_STR1="board_skin_path=''";
CK_STR2="board_skin_path = ''";
CK_STR3='board_skin_path=""';
CK_STR4='board_skin_path = ""';
 
# 루트로 이동
cd /
if [ ! -f $TEM_FILE ] ; then
	echo "
>> 그누보드가 설치된 사용자 디렉토리를 찾아서 임시파일 $TEM_FILE 에 저장중입니다.
>> 몇분 정도 시간이 소요됩니다. 기다리세요..";
	echo "";
	find $HDIR | grep "admin.menu100.php" | xargs -i  dirname {} | xargs -i dirname {} > $TEM_FILE
else
	echo "
>> 이미 생성된 그누보드 위치 임시파일을 사용합니다. 
>> 재검색 하려면 임시파일 $TEM_FILE 을 삭제후 
>> $0 -c 명령어로 다시 실행 하시기 바랍니다."
	echo "";
fi
 
for i in `cat $TEM_FILE`
do
	cd $i
	COMMON_FILE="$i/common.php";
	DATA_FILE="$i/data";
	if [ -f $COMMON_FILE ] ;then
		echo "O:  $COMMON_FILE 있습니다.";
		#echo "egrep  \"$CK_STR1|$CK_STR2|$CK_STR3|$CK_STR4\" $COMMON_FILE ";
 
		if  `grep "$CK_STR1" $COMMON_FILE > /dev/null 2>&1 ` || `grep "$CK_STR2" $COMMON_FILE > /dev/null 2>&1 ` || `grep "$CK_STR3" $COMMON_FILE > /dev/null 2>&1 ` || `grep "$CK_STR4" $COMMON_FILE > /dev/null 2>&1 `  
		then
			echo "   OK ----- YES  이미 패치된 듯 !!";
			echo $COMMON_FILE >> $TEM_FILE_YES
		else
			echo "   NOT PATCHED !! -----  NO 패치가 필요한듯 다시 확인하세요";
			echo $COMMON_FILE >> $TEM_FILE_NOT
 
		fi
 
		## 웜 점검1
		if [ -e $DATA_FILE ] ;then
			echo "       $DATA_FILE 폴더에서 크기 0 이상인 의심되는 php 파일 ";
			NOTZE=`find  $DATA_FILE -size +0 | grep ".php" |  xargs -i ls -1 {}`
			for k in $NOTZE
			do 
				echo "        !!! 웜 경고1 : $k"
				echo $k >> $TEM_FILE_WORM
			done
		fi
 
		## 웜 점검2
		if `grep -rs 'eval($_REQUEST' *.php`
		then
			echo "        !!! 웜 경고2 : $k"
			echo $COMMON_FILE >> $TEM_FILE_WORM
		fi
 
		## 웜 점검3
		if `grep -rs 'eval(gzinflate(base64_decode(' *.php `
		then
			echo "        !!! 웜 경고3 : $k"
			echo $COMMON_FILE >> $TEM_FILE_WORM
		fi
 
	else
		echo "X:  !!! 그런 파일 없음 ::  $COMMON_FILE ";
	fi
	echo "";
done
 
 
echo "
=======================================
=== 이미 패치된 파일"
cat $TEM_FILE_YES | sort | uniq
 
echo "
=======================================
=== 패치안된 파일"
NOTPT=`cat $TEM_FILE_NOT | sort | uniq`
for z in $NOTPT
do
	echo $z
done 
 
echo "
=======================================
=== 이미 웜에 감염된 듯한 사이트"
cat $TEM_FILE_WORM | sort | uniq
 
 
if [ -f $TEM_FILE_NOT ]  ; then
	echo ""
	echo -n "패치안된 파일을 패치하시겠습니까? y/n "
	read kk
	if [ "x$kk" != "x" ] ; then
		if [ $kk == "y" ] ; then
			for i in $NOTPT
			do
				vim $i
			done
		fi 
	fi
fi
 
 
 
/bin/rm -f $TEM_FILE_YES
/bin/rm -f $TEM_FILE_NOT
/bin/rm -f $TEM_FILE_WORM

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.