웹(PHP) 해킹, 위험코드 점검 프로그램
서버 해킹을 통해 악성 PHP 가 설치되었는지 모니터링 및 위험성이 있는 코드가 있는지 손쉽게 확인하기 위해 만들었습니다.
- 해당 코드를 서버계정에 작성하여 올립니다.
<? /** * Name: Kilho's PHP Diagnosis * Author: Kilho Oh (prince@kilho.net) * Author URI: http://kilho.net/ */ class TDiagnosis { public $dir;public function __construct() { $this->dir = $_SERVER['DOCUMENT_ROOT'].'/'; }private function SeekFile($dir, &$files) { $hnd = opendir($dir); while (false !== ($entry = readdir($hnd))) { if(in_array($entry, array('.', '..'))) continue;if(is_dir($dir.$entry) && !in_array($entry, array('.', '..'))) { $this->SeekFile($dir.$entry.'/', $files); }else{ if(!in_array(substr($entry, strrpos($entry, '.')+1), array('php', 'inc', 'html', 'htm', 'php3'))) continue;$file = $dir.$entry; if(!in_array($file, $files)) $files[] = $file; } } closedir($hnd); }private function Diagnosis($files) { $suspicion = array(); $loop = 0; do { $file = $files[$loop]; $loop++;if($file == $_SERVER['SCRIPT_FILENAME']) continue;$data = file_get_contents($file); $data = preg_replace('//*(.*?)*//is', '', $data); $data = preg_replace('///*(.*)n/', '', $data);if(preg_match('/(^|s|?php3|[?])(eval|system|exec)s*(/i', $data)) $suspicion[] = $file; } while ($loop < count($files));return $suspicion; }public function Run() { $files = array(); $this->SeekFile($_SERVER['DOCUMENT_ROOT'].'/', $files); return $this->Diagnosis($files); } }/** * Main */ $diagnosis = new TDiagnosis;$result['host'] = $_SERVER['HTTP_HOST']; $result['suspicion'] = $diagnosis->run(); echo json_encode($result); ?>
- 아래 다운로드 버튼을 클릭하셔서 모니터링 프로그램을 다운받습니다.
- 다운받은 프로그램을 실행시킨 후 URL(s) 에 (1)에서 작성한 URL 을 입력합니다.
- Diagnose 를 클릭하시면 아래와 같이 의심되는 파일명을 알려줍니다.
- 평소에 없던 코드가 생겼을 경우 반드시 해당 파일을 검사하시길 바랍니다.
Comments (26)
좋은 프로그램이네요.
저는 최근 랜섬웨어 사건을 보면서 백업을 자주하고 있습니다. 그리고 조금 무거운 보안 플러그인도 하나 설치해놓았는데 얼마나 효과가 있을지 모르겠습니다.
며칠전에 이 프로그램 보고 이거 워드프레스 플러그인화 (option 없는 그냥 설치만 하면 작동되는 간단한 플러그인 형태) 로 만들면 참 좋겠다는 생각을 했습니다.
지금 조선일보 IT 잡지 (정확한 이름이 지금 생각나지 않네요) 에서 워드프레스글을 하나 써달라고 해서 그 글도 쓰고 있는데, 플러그인화 해주시면 플러그인으로 소개해도 좋을 것 같구요. ㅎㅎㅎ
이번에 6주동안 개발자분들을 상대로 워드프레스 튜토리얼을 진행했었는데, front-end 를 잘하는 젊은 친구가 하나 있어서 그 친구하고 Kilho 님 하고 스타트업 하나 하시면 MVP 는 어렵지 않게 하나 뽑을 수 있겠다는 생각이 들었었습니다. MVP 나오면 펀딩은 제가 받고 (물론 저한테도 지분 나눠 주시고) ㅋㅋㅋㅋㅋ
제가 생각하는 MVP 는 Kilho 님의 utility 들을 하나로 packaging 해서 …….
아,… 제 아이디어는, 혹시 관심있으시면 이메일로 드리겠습니다. ㅎㅎㅎ
댓글 보고 뚝딱 해보았습니다 ^^
http://kilho.net/archives/wordpress/1670
아. 그리고, 아이디어가 궁금하네요 ^^ 조만간 여쭤보겠습니다 😉
localhost 와 실서버 두군데서 테스트 해봤는데, 소스파일을 보면 이 프로그램이 실행되면 kh_scan.dat 라는 파일이 생성되어야 하고, 아마 그 파일의 data 를 윈도우 프로그램으로 보내지는 형태 같은데….
저는 kh_scan.dat 라는 파일이 생성되지 않고 있습니다.
플러그인 과 그냥 php 파일 둘다 테스트 해보았습니다.
제 localhost 와 실서버 모두 Nginx 입니다. 오류나는게 이거랑 상관이 있는건지는, 제가 back-end 쪽이 아니라서 잘 모르겠습니다. ^^;;
아, 다운로드 페이지 jQuery 스크립트 오류나고 있습니다. ㅎㅎ
감사합니다 ^^ jQuery 오류부분은 수정하였습니다.
그리고 kh_scan.dat 생성을 plugins/kh-scan 폴더에 저장하려고 했는데 권한문제로 실패되었던거였네요. (테스트 서버가 윈도우라서 생성이 되었던거였네요 ㅠㅠ)
생성파일은 /wp-content/uploads/kh-scan 에 위치하도록 했습니다.
새로 다운받아보시면 됩니다 ^^
아, 혹시 Nginx 때문이 아니라 제가 사용하는 php 버전이 7.14 라서 그런건 아닌지… 100% 근거없는 추측일 뿐 입니다.
앗? 본문에서 설명하신 내용과 실제 코드 작동과 차이가 있네요?
다시 소스파일을 보니 플러그인은 관리자 이메일로 스캔 결과를 보내게 되어있는 것 같습니다.
wp_mail(get_bloginfo('admin_email'), $title, $content);
맞나요?
그리고 이메일 지금 확인해 보니….
Kilho 님 플러그인이 이메일을 제대로 발송한 것 같습니다.
Success!!!! ㅎㅎㅎㅎ
작동 잘 됩니다.
Kilho 님 플러그인 소개글도 하나 쓰고, 조선일보 IT 잡지 글에도 이 플러그인을 언급하겠습니다.
좋은 플러그인 개발해 주시고 공유해 주셔서 감사합니다. ^^
네 ^^ 해당 플러그인은 윈도우 어플리케이션을 사용하지 않고, 발견시 관리자 메일로 정보를 알려줍니다.
워드프레스 자체의 cron 기능을 이용하고 최종 정리해서 올렸습니다 ^^
http://kilho.net/archives/wordpress/1670
혹시 IT조선의 마이크로소프트웨어 아닌가요?
네. 지금 확인해보니 맞습니다.
그런데 생전 처음 들어보는데라… IT조선 이란데가… ㅎㅎㅎㅎ
무슨 잡지회사인지도 잘 모르겠고….
몇명 보지도 않는 잡지 같아서 글쓰기가 싫고 있습니다.
반쯤 써놓긴 했는데…. ㅋㅋㅋ
블로그 글쓰는건 좋은데, 이런 글은 참 쓰기가 싫으네요.
우리나라의 거의 모든 잡지가 구독자 수가 얼마 안 되는 것으로 알고 있습니다.
우리나라 사람들이 책 자체를 잘 안 봅니다.ㅎㅎ
요즘도 그런지 모르겠는데 예전에는 일본 전철 안에서 일본인들이 책 읽는 것을 뉴스에서 다루고 그랬거든요. 그만큼 우리나라 사람들이 책을 안 읽는데 인터넷이 발달하면서 책을 더 안 읽는다는…
Warning: preg_replace(): Unknown modifier ‘*’ in /html/php.php on line 33
Warning: preg_replace(): Unknown modifier ‘/’ in /html/php.php on line 34
Warning: preg_match(): Compilation failed: nothing to repeat at offset 5 in /html/php.php on line 34
오류가나는데요..확인부탁드립니다.
제가 컴퓨터 초보라서 1번에 코드를 서버계정에 올리라는 걸 어떻게 하는지 잘 모르겠습니다.
메모장이나 기타 에디터에 해당 내용을 복사, 붙여넣기 하신 후 파일로 저장하시면 됩니다.
1번에.. 코드가 어떤건지..ㅠㅠㅠㅠ 저도 잘 모르겠어서..ㅠㅠ 부탁드릴게요..ㅠ 메일로라도 가능하시다면.. alstn0228@naver.com 죄송해요 ㅠ
제가 메일을 보냈는지 모르겠네요 ^^; 나야나 랜섬웨어로 서버 복구 과정에서 댓글을 확인을 제대로 못했군요.
다운받고 압축푸니
v3에서 Malware/Gen.Generic.C1094687
감지했다고 삭제합니다.
v3 가 오진하고 있네요. 워낙 오진이 심한 백신이라 ㅎㅎ 첨부파일에 델파이 소스도 포함했듯이 문제가 될만한 부분이 없습니다. 감사합니다 ^^
아…v3가 오진이심한가요??
그럼 뭘로바꿔야할까요?
윈도우10에 기본으로 내장된 Windows Defender 만 사용하셔도 충분합니다. ^^
아직 윈도우10업글을 안했습니다
윈도우7이 쓰기편해서요
그리고 다른게 궁금한게있는데요
K클리너로 강제종료시키는 프로그램 임의로 지정할 수는 없는거죠?
앱체크라는 랜섬웨이프로그램을 사용하고 있는데
그것도 같이 종료되서요
noclean.txt 에 앱체크 파일명을 입력하시면 종료하지 않습니다.
그리고 윈도우7에도 디펜더가 설치되어 있습니다. ^^
종료는 되지 않는데요
앱체크에서 실시간 보호 는 꺼지네요
이건어쩔수없는거죠?
실시간 보호에 관련된 프로그램도 종료된 것으로 예상됩니다.
종료된 프로세서중 관련된게 없는지 확인 한번 부탁드리겠습니다 ^^
아하~~해결했습니다 감사합니다~~~~