JavaScript Trojaner Sezieren

7

Ich habe kürzlich mit allot von JavaScript gespielt und dachte mir, dass ich kein Stück JavaScript finden würde, das ich nicht debuggen könnte.

Nun, ich war heute angenehm überrascht und verärgert, als wir eine Reihe von JavaScript-Redirect-Trojanern auf unserer Unternehmenswebseite entdeckt haben.

Der Großteil des Codes, den wir gefunden haben, konnte ich leicht sezieren und Standard-Escaping verwenden, um die Code-Funktion zu verschleiern.

Aber unter dem Code, den wir gefunden haben, hat mich der unten stehende Code völlig verwirrt, was er tut. (Der einzige Teil, den ich anscheinend ausarbeiten kann, ist, dass er einige der Parameter ersetzt).

Würde also jemand bitte freundlich sein, den folgenden Code für mich zu sezieren? Ich würde gerne genau wissen, was vor sich geht ...

%Vor%     
Maxim Gershkovich 20.07.2010, 08:06
quelle

3 Antworten

17

Es bettet Ссылка , und dies ist die Zeile, wo Sie es sehen können:

%Vor%

Sie sehen, wie jedes ungerade Zeichen, wenn es aus dieser Zeichenfolge ausgewählt wird, die URL bildet. Ich habe das nicht ausgeführt, also bin ich mir nicht sicher, unter welchen Bedingungen dies geschieht, aber Sie können sehen, dass String.replace in String.gT umbenannt wurde und eine Regex gegen die Zeichen übergeben wird, die die Zeichenfolge verschleiern. Wenn Sie dieselbe Methode anwenden und ungerade Zeichen auswählen, können Sie sehen, dass ein versteckter Iframe, einige JavaScript-Ereignishandler, setAttribute usw. vorhanden sind:

%Vor%

So wird String.replace Aliasing:

%Vor%

Im Kontext dieser Funktion ist this die Zeichenfolge, für die gT aufgerufen wird, und d ist die Zeichenfolge replace . Beim Prototyp einer Zeichenfolge gibt this['replace'] die Methode replace() zurück, die dann mit den beiden Argumenten an gT aufgerufen wird. Das Ergebnis wird zurückgegeben.

Aktualisieren

Ich habe das Skript wie folgt umgestaltet:

  1. Alle Aufrufe von string.gT() wurden durch ihre einfachen Formulare ersetzt.
  2. Alle Variablen entfernt, die nicht referenziert sind.
  3. Gave funktioniert mit einigen Common-Sense-Namen.

Das ist das Ergebnis, es sollte ziemlich klar sein, wie es jetzt funktioniert:

%Vor%     
Jesse Dhillon 20.07.2010, 08:33
quelle
4

Es fügt der folgenden URL zu Ihrer Website einen unsichtbaren iFrame hinzu:

%Vor%

Die Webseite fancycake wird unter Firefox als angegriffen und bösartig markiert.

    
Erik 20.07.2010 08:13
quelle
1

Führen Sie es in einem JavaScript-Debugger aus; Schließlich wird der Code sich selbst dekompilieren und versuchen zu starten. Ich schlage vor, die neueste Version von FireFox vielleicht auf einer Linux-Box zu verwenden, um auf der sicheren Seite zu sein.

    
Aaron Digulla 20.07.2010 08:21
quelle