ウェブ(PHP)ハッキング、危険コードのチェックプログラム

サーバーハッキングを介して不正なPHPがインストールされている監視と危険性があるコードがあることを簡単に確認するために作成しました。

  1. そのコードをサーバーのアカウントに作成して上げます。
    <?
    /**
    * Name: Kilho's PHP Diagnosis
    * Author: Kilho Oh ([email protected])
    * 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