web-dev-qa-db-ja.com

Wordpressサイトが何度もハッキングされた

WebサイトのIDのために、実際の組織に関する識別情報をあまり多く提供したくはありませんが、サーバーのバックグラウンド情報をできるだけ多く提供しようとすることができます。

私はWordプレスサイトを管理しており、サイトが最初にハッキングされたこの8月まではすべて順調に進んでいたようです。侵害されたファイルの量のために、ロボットがすべてのphpファイルにコードを大量に挿入できるようにする何らかの脆弱性があるように見えました。各<php?タグを開く前に、 here で示した暗号化されたコードのブロックがありました。

上記のリンクは、スクリプトのワークフローを示す整頓されたphpコードを示しています。さらに文字列をデコードしようとすると、文字列は読みやすくなりますが、文字列が何をするのかを正確に識別することは非常に困難です。

ここ はunphpの「Eval + gzinflate + Base64」ツールで少しデコードされ、 here はhtmlのようにunphpの「再帰的難読化解除」ツールでデコードされます他人のウェブサイトの広告。

ただし、内容は比較的重要ではありません。この最初のハックの後、githubのバックアップから復元し、サイトにスクリプトがないことを確認しました。また、新しいパスワードで新しいユーザーを作成し、ドメインのルートファイルをこの新しいユーザーに変更しました。

これで問題は解決したと思いましたが、ウェブサイトは非常によく似た方法でさらに2回ハッキングされました。 Githubからバックアップを行うたびに、ディレクトリがクリーンであることを確認しました。

最初は、ハッキングがWordプレスの更新と相関しており、Wordpressの脆弱性であると考えたため、プラグインおよびWordpressの更新に関してサイトを最新の状態に保つようにしました。結局、それは問題ではなかったようです。

OS: Debian 3.1.9

ホスティングプロバイダー: ドリームホスト

また、私が誰かからサイトの管理を引き継いだことも注目に値します。そのため、ずさんな種類のレガシーコードがたくさんあります。

tl; dr 私の質問は、これをどのように診断できますか?脆弱性の原因を見つけるためにどのような手順を実行できますか?私は今、本当に途方に暮れており、これが起こり続けることに本当にイライラしています。

あなたが提供できるアドバイスやサポートをありがとう、私はこの時点で必死です。

更新:

この投稿からしばらくして、復元を試みました。約2時間後、サイトは同じように侵害されました。今回の違いは、すべてのファイル許可を保護し、wp_userテーブルから疑わしいユーザーを削除したことです。明らかに、これらのことはどちらも役に立たなかったようです。

5
Wold

WordPressをセルフホスティングする際に確認/考慮すべき事項:

  1. プラグインは安全ですか? wordpress.orgリポジトリまたは他の場所から入手しましたか?これらの既知の優れた開発者(例:Gravity Forms)またはEnvato/Themeforest以外のものが他にある場合は?
  2. あなたのテーマについて同じ質問。それはどこから来たの? テーマチェック プラグインおよびその他のツールを使用して、セキュリティの問題を徹底的にチェックしましたか?

2つの質問は、WordPressが生成したセキュリティ問題の大部分を網羅しています。攻撃の媒介となるのは、ほとんどの場合、コーディングが不十分なプラグインまたはテーマ(または意図的なバックドアを持つもの)です。ランダムなテーマとプラグインをインストールするだけでなく、他のすべてを実際に調査する以外に、 BruteProtect (Jetpackにバンドルされる予定)と WordFence をインストールすることを強くお勧めします。どちらも無料で、あなたを保護し続けるのに役立ちます。あなたがお金を使う意思がある/できるなら、 Sucuri (特に ファイアウォール製品 )またはStopTheHackerへのサブスクリプションはドライブバイスタイルの攻撃を防ぐためにさらに進んでいます。

他の回答が示すように、サーバーのセキュリティが不十分である可能性もあります。攻撃者がシェルユーザーを侵害する可能性がある場合、あらゆる種類の意地悪が続き、WordPressは、その人気のおかげで、WordPressをターゲットとするスクリプトから最大限の効果を得ることが実質的に保証されているため、スクリプトベースの攻撃の標的になります。サーバーが何度も釘付けになった場合、おそらくホスティングの切り替えを検討する時が来たでしょうか?専用のWordPressホスト(Dreamhost独自の製品、WP Engine、Rackspace、Page.ly、Synthesisを含む)は、月額料金の増加と一部の人々に対するセキュリティを処理します。それが本当に最良の選択肢です。

2
JCL1178

正直なところ、あなたのサイトに本当のウイルスが存在する可能性があります。これらはWordpressウェブサイトをハッキングするためだけに存在し、ルートキットを含む完全なアンチウイルススキャンやハードドライブの消去、必要に応じて最初からやり直すまで、再インストールと再展開を停止することはありません。

また、ソフトウェアのALLが完全に最新であること、特にWordpressを確認してください。 Wordpressは、最もハッキングされた唯一のソフトウェアです。どれも近くに来ません。また、すべての不要なサービスが停止していることと、意図したもの以外の開いているポートがないことを確認してください。 FTPとDNSは、リフレクション攻撃のため特に危険です。これは、それらを使用できないことを意味するのではなく、可能であれば最新の状態で「刑務所」にいることを確認してください。

3
closetnoc

問題はユーザー/ログインとは関係ありませんが、ファイルに設定されたアクセス許可とは関係がない可能性があります。 1つのphpファイルにあまりにも多くの権利があり、それらがそれを悪用する方法を知っている場合、あなたはあなたが説明したような侵害を持っています。

通常の設定では、ディレクトリは0755およびファイル0644である必要があります。
可変コンテンツを含むディレクトリ(ファイルを配置する必要がある)0777およびファイル0666

また、すべてのファイルに適切な所有者がいることを確認してください(例:rootにならない)。

コマンドライン/シェル用のいくつかの(おそらく)便利なコマンド:

find -type d -exec chmod a+x -R {} \; // set dirs +excecute
find -type f -exec chmod a-x -R {} \; // set files -excecute (only dirs are exce.)
find -type f -exec chmod a-w -R {} \; // set files -writable/changeble
chmod a+rw -R ./somedir // will set all files and dirs (read- and) writable
chown username.username -R ./somedir // will set ALL owners to username

また、WPサイトのロック方法、脆弱なファイルなどを説明するさまざまなツールやサイトがあります。私は自分自身はWPerではありませんが、いくつかのWPサイトをホストしています。

3
Martijn

DreamhostのWordPressサイトもハッキングされました。私は彼らの共有ホスティングパッケージを使用していましたが、あなたもそうだと思います。ハッカーは、サーバー上の別のユーザーを侵害し、wp-config.php0644権限を持っているため、誰でも読み取り可能)を読み取り、データベースにアクセスし、wp_usersテーブルに独自の管理ユーザーを作成することで侵入しました。管理者になれば、PHPコードをユーザーとして実行する方法を簡単に見つけることができます(プラグインのインストール、テーマファイルへの書き込みなど)。

DreamhostはsuEXEC/suPHP(FTPに使用するユーザーとして)の下で実行されるため、wp-config.phpの権限を0600または0640に変更できます。また、ホームディレクトリのアクセス許可を変更して、すべてのユーザーがそのコンテンツのリストを表示できないようにします。これは、おそらく最初に見つけた方法です。 chmod 710 ~/homeを実行できないため、Dreamhostにはls /homeディレクトリに対する同様の権限があります。ただし、ハッカーはcat /etc/passwdを実行して、ターゲットとするユーザーのリストを取得できます。また、~/.ssh/authorized_keysにSSHキーがインストールされているかどうかを確認する必要があります(私にとっては2回目の取得方法でした)。

2
Matt Barry