最近、クライアントのWebサイトが侵害され、攻撃による被害と露出を分析しています。ログで簡単に見つけることができるURLに「コールホーム」するスクリプトを見つけましたが、これはログに記録され、どこにありますか?
/usr/local/Apache/logs/access_log
アウトバウンド接続(HTTPなどのURLラッパーを使用したfile_get_contents
からの接続)は、このファイルまたはどこかにログインしていますか?
Suhosinを変更して、実際にシミュレートするシミュレーションモードを実行してから、外部接続を開くために使用されるコマンドをブラックリストに登録できます。先日、コード修正を投稿しましたが、スレッドが削除されました。
Suhosin-0.9.27/execute.cの1588行目、gotoexecute_internal_bailoutをコメントアウトします。
if(SUHOSIN_G(func_blacklist) != NULL) {
if(zend_hash_exists(SUHOSIN_G(func_blacklist), lcname, function _name_strlen+1)) {
suhosin_log(S_EXECUTOR, "function within blacklist called: %s()", lcname);
// goto execute_internal_bailout;
}
}
(ウィキはそのコードを壊しました、それを理解しようとするのに時間をかけるつもりはありません)
シミュレーションモードがデフォルトです。
suhosin.simulation = on
suhosin.executor.func.blacklist = include,include_once,require_once,open,file_get_contents
ログに記録したいコマンドを追加します。次のようなログエントリが表示されます。
Jun 24 06:32:07 machinexx suhosin [1086]:ALERT-SIMULATION-呼び出されたブラックリスト内の関数:exec()(attacker '11 .22.71.67 '、file'/var/www/domain.com/tp/top_thumb.php ' 、283行目)
そこから、少なくとも、確認するターゲットファイルのセットがあります。このようにスホシンを使用することはお勧めしませんが、干し草の山で針を探しているときは、ツールを正常に機能させる必要がある場合があります。
PHPのアプリケーション/ウェブサイトにログシステムがない限り、誰が何をしたかを確認することはできません。
ApacheまたはPHPはアウトバウンド接続ログを保持しません。
yeap phpとApacheはアウトバウンド接続をログに記録しません。とにかくphpスクリプトを実行するには、ユーザーからのリクエストが必要です。誰がスクリプトを起動したかをいつでも確認できます。アウトバウンド接続を監視するには、ファイアウォールを設定し、アウトバウンドされているものをすべてログに記録してから、必要なすべてのパッケージからのアウトゴーイング接続をキャッチするようにログシステムを構成します。