私のウェブサイトは、少なくとも3135ファイル(私のすべてのWordPressサイト)にマルウェアを挿入したマルウェアに感染しました。
以下は感染したファイルの1つです。http://pastebin.com/FXU1ht4R
これが私が望む結果です:http://pastebin.com/YPJwjiWH
find
私はいくつかの簡単なコマンド以外にgrep
Unixコマンドについて何も知りません。
私は少し調査の終わりにこのコマンドを見つけましsed
たが、私の場合はこのコマンドの使い方がわかりません。
上記のコードに示されているように、一般的なパターンは、コードが各ファイルの上部、つまり元のタグの前<?php
に<?php
挿入されているということです。
cnajwp =
それで、その前に2番目のタグを含むすべてのファイルを見つけてすべて削除することができると思いました<?php
。
cnajwp
以下を使用して埋め込みファイルを見つけることができます。
find * -type f -name "*.php" -exec grep -l "cnajwp =" {} \;
<?php
しかし、これらのイベントの2番目のラベルより前のすべての項目を置き換える方法はわかりません。
ここで誰でも私を助けることができますか?
ベストアンサー1
次に、コマンドを使用して感染ファイルを見つけ、最初の行で式を実行するxargsにリストを提供します。
find * -type f -name "*.php" -exec grep -l "cnajwp =" {} \; |
xargs sed -i -E '1s/^(<\?php) \$ocnajwp =.*$/\1/'
入力ファイルの例に基づいて、これはトリックを実行する必要があります。
同時に、感染がわずかに異なる場所にあるファイルを見つけ、最初の行に両方のファイルが含まれているため、次のコマンドを<?php
実行してそのファイルを修復できます。
find * -type f -name "*.php" -exec \
gawk -i inplace 'NR==2 && /^<\?php$/ {next} 1' {} \;