動かなくなった

マルウェア l.php 、0x.php 対策。

最近やられた、l.php 、0x.php というファイルを残すマルウェアを対策したのでその方法を書き残しておきます。
すぐにその方法を知りたいとおもいますのでざっくりと書いておきます。

マルウェア l.php 、0x.php は、0x.php と .htaccess を残します。
なので、0x.php と .htaccess を削除します。

ワードプレスの index.php を改ざんしますので、正しいものを上書きします。
index.php 以外にも about.php なども改ざんするようです。

ですが、復旧作業として .htaccess と index.php を復旧、プラグインを全削除してワードプレスが動く環境にしてから復旧を開始します。
※いきなりやらないください。焦る気持ちはわかりますが、とりあえず保存できるものを保存してからです。

0x.php マルウェア対策の大前提

マルウェア l.php 、0x.phpは、WEBサーバーの領域の1~2個上の階層まで侵入しています。
そのため、WEBサーバー領域しか開放していない、 サクラサーバー、ロリポップサーバー、オウルネットのスターサーバーなどでは対策できません。
すぐに契約を解除して引っ越してください。引っ越し先で対策しましょう。

やっぱ、引っ越し先はエックスがいいでしょう。
ほかでも借りているのならリスク分散も考えたほうがいいですけど、とりあえずです。
エックスサーバー

0x.php マルウェアの侵入経路

あくまでも状況証拠からでしかありませんが、マルウェア l.php 、0x.php は、 WP の plugin から入り込むようです。

あくまでも私の推測です。
確定ではありませんが、 wp-all-in-one-migration が怪しいと思っています。
all-in-one-wp-migration は、使わないときは「無効化」しておくのが正解かと。
確定情報ではないので、そうかもね、ぐらいで。

マルウェア l.php 、0x.php 対策

前述のように現象としては、 0x.php と .htaccess を残骸(なのかトリガーなのかわからないけど)として残します。
無条件で 0x.phpは、殺して構いません。

.htaccess は基本削除でいいんですが、どうかいたっけ?という場合は、ファイルを開くと起動系のコマンドが入ってるのでわかると思います。
javascriptで書いてあったり php で書いてあったり、.htaccess のコマンドで if から分岐させるであったりとさまざまです。

0x.php と .htaccess 以外に ワードプレスの index.php にコードを埋め込んでいます。
ワードプレスの index.php は、以下のような短いコードで作られているので、何が追加されたか一目瞭然だと思います。


0001 <?php
0002 /**
0003 * Front to the WordPress application. This file doesn't do anything, but loads
0004 * wp-blog-header.php which does and tells WordPress to load the theme.
0005 *
0006 * @package WordPress
0007 */
0008
0009 /**
0010 * Tells WordPress to load the WordPress theme and output it.
0011 *
0012 * @var bool
0013 */
0014 define( 'WP_USE_THEMES', true );
0015
0016 /** Loads the WordPress Environment and Template */
0017 require __DIR__ . '/wp-blog-header.php';
0018           ↑
0019 トップの位置を変えるときここを書き換えるので同じではない。


ついでに、ワードプレスの .htaccess の基本形です。

0001 
0002 # BEGIN WordPress
0003 # "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
0004 # 動的に生成され、WordPress フィルターによってのみ修正が可能です。
0005 # これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
0006 <IfModule mod_rewrite.c>
0007 RewriteEngine On
0008 RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
0009 RewriteBase /
0010 RewriteRule ^index\.php$ - [L]
0011 RewriteCond %{REQUEST_FILENAME} !-f
0012 RewriteCond %{REQUEST_FILENAME} !-d
0013 RewriteRule . /index.php [L]
0014 </IfModule>
0015
0016 # END WordPress
0017

マルウェア l.php 、0x.php の状況

マルウェア l.php 、0x.php は、l.php がちりがーのようですが、ユーザーが気が付いたときには大体消されてます。
サーバー管理者の報告によって l.php を知ったのですが、見たことはありません。
0x.php が残骸としてのこっているので、確認できたということです。

マルウェア l.php 、0x.php 対策手順

マルウェア l.php 、0x.php の対策の手順は次の通りです。
  1. wp-content をFTPでバックアップ
  2. WEBサーバーの階層の2つ上までを見ていって 0x.php , .htaccess を削除
    サーバー側が気が付いたとき、これらのファイルのパーミッションが00になっていることがあります。
    その場合には nextFTPでは削除できないのでFilezillaを使ってください)
  3. ワードプレスのフォルダー内の 0x.php を削除、 htaccess と index.phpを復旧。
  4. ワードプレスにログインしてみます。動いたら次のステップへ、動かなかった場合以下へ
  5. ワードプレスが動かなかった場合

    1. ワードプレスのフォルダーを FTPでバックアップ(Filezilla でダウンロード。
      FileZillaはパーミッション 00 のファイルをスキップしてくれるので0x.phpがダウンロードされなくてちょっと便利
    2. インストールしてあるワードプレスと同じバージョンのワードプレスのソースファイルを持ってきます。
      ※wordpress.org にあります。
    3. wp-content以外を削除。(ワードプレスの入っているフォルダーの階層のファイル、wp-admin,wp-includes)
    4. ワードプレスの階層と wp-admin,wp-includeをアップロード
    5. 起動してみる。ダメなら次へ
  6. まだ駄目かよ?!
    1. ワードプレスのフォルダー全部を削除、再インストール。
      この時、同じデータベース、データベーステーブル、同じテーブルプレフィックスを使用します。
      この時役立つのが先ほどバックアップしておいて wp-config.phpです。
      wp-config.phpを丸写しすればOKです。
      詳しくは、このサイトのワードプレスの再インストールを参照してください。
    2. これで大抵はワードプレスが復活します。
      データベース、データベーステーブルをいじってしまってたらこうはいきません。
      たぶん、本気のおしゃかです。
  7. マルウェアファイルを削除

    1. プラグイン、anti-malware をインストールします。
    2. 友達のためにanti-malware のインストールから使い方までを動画にしたものがありますので確認してください。

      多分ですが、wp-content の中には、マルウェアがいじれるものはない(phpで動くようなものがない)はずなので 0x.php と .htaccess が削除候補になります。
      であれば、全対策OKにしてしまって大丈夫です。(バックアップ持ってるし)


この投稿があなたのお役に立てたら幸いです。
スポンサードリンク

関連記事一覧