웹(PHP) 해킹, 위험코드 점검 프로그램

서버 해킹을 통해 악성 PHP 가 설치되었는지 모니터링 및 위험성이 있는 코드가 있는지 손쉽게 확인하기 위해 만들었습니다.

  1. 해당 코드를 서버계정에 작성하여 올립니다.
    <?
    /**
    * 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);
    ?>
    
  2. 아래 다운로드 버튼을 클릭하셔서 모니터링 프로그램을 다운받습니다.
  3. 다운받은 프로그램을 실행시킨 후 URL(s) 에 (1)에서 작성한 URL 을 입력합니다.
  4. Diagnose 를 클릭하시면 아래와 같이 의심되는 파일명을 알려줍니다.
  5. 평소에 없던 코드가 생겼을 경우 반드시 해당 파일을 검사하시길 바랍니다.

 

  다운로드

arrow