Hallo Experten,
in Beitrag "Psion Organiser II" wurde ein wunderbarer
Link zu einem bösen JS-Skript gepostet:
> www[dot]schwitt[dot]de/radiobasteln/index.html (GEFAHR! VIRUS!)
Das Skript sieht so aus
und ich wüsste gerne was da passiert.
1. Versuch: Malzilla --> "can't be compiled" ohne weitere Infos
2. Versuch: Per Hand --> Ich hab echt kaum Ahnung von JS, das wird so
nichts.
Kennt jemand ein Tool was dabei helfen kann diesen Brocken zu
analysieren? Sowas wie Malzilla aber besser, also ein Interpreter mit
gutem Debugger und eine Sandbox drumherum?
Gefunden habe ich http://www.relentless-coding.org/projects/jsdetox/info
aber das läuft nur unter Linux, ich nutze Win XP.
troll schrieb:> in Beitrag "Psion Organiser II" wurde ein wunderbarer> Link zu einem bösen JS-Skript gepostet
Woher nimmst du die Annahme, dass dieses Skript böse ist?
Ist aber seltsamer Code:
Was macht dieses Stück?
$=~[];
Der Variable $ wird ein Wert zugewiesen. Dieser Wert ist bitwise not
eines leeren Arrays. Verstehe nicht, was das soll...?
.... schrieb:> Ist aber seltsamer Code:
Das kannst du aber laut sagen, deshalb interessiert er mich ja. :-)
> $=~[];
Wenn man da ein document.write hintersetzt kommt iirc −2.147.483.648
raus, also der min. Wert bei 32 Bit signed.
Leeres Array anlegen und bitweises invertieren. Sollte das gleiche
ergeben wie $=~0;
1
$={
weise nun $ ein Objekt/Hash mit folgenden Eigenschaften zu:
1
___:++$,
2
$$$$:(![]+"")[$],
3
__$:++$,
4
$_$_:(![]+"")[$],
5
_$_:++$,
6
$_$$:({}+"")[$]....
Falls das Skript schädlich ist, und nicht nur Unsinn und/oder
Obfuscated (die ... sollen wohl sagen es geht noch weiter) hätte ich
jetzt getippt, das irgendwelche Bufferoverflows oder Browserabstürze
damit ausgelöst werden sollen.
Läubi .. schrieb:> weise nun $ ein Objekt/Hash mit folgenden Eigenschaften zu:
Ja, bis dahin bin ich auch gekommen aber dann wurde es mir zu
langwierig, ich wäre wohl immernoch am rätseln...
Das Skript ist noch deutlich länger, siehe Link (einfach mit wget laden,
dann passiert da nichts). Ich tippe darauf dass das Skript einen iframe
in die Seite schreibt wo dann weiterer Mist geladen wird. Siehe auch
Heise Security Tatort Internet (sehr zu empfehlen!).
(Die einfachste(?) Lösung wäre wohl den Kram mal in einer VM auszuführen
und zu beobachten, aber das schafft mein alter PC nur mit viel Mühe,
darauf hab ich keine Lust.)
@ich
Danke, mein Verdacht (iframe) bestätigt sich. Der Link geht bei mir
nicht, host not found, vielleicht liegts an meinem DNS-Server.
Bleibt die große Frage: Wie hast du das rausgefunden?
Bis dahin kann man das ganz gut z.B. mit der JavaScript Konsole von
Mozilla Firefox auswerten wenn man nichts besseres hat. Den Rest hab ich
dann mit eigenen Tools entziffert, geht aber bestimmt mit Handarbeit
auch in der Javascript-Konsole.
1
$.$(
2
$.$(
3
//Ewig viel Zeugs, das auch nur wieder einen langen string zusammensetzt wie oben.
Sorry wegen Doppelpost...
Hab was unterschlagen... Streng genommen macht das Script im Orginal gar
nichts, weil nämlich aus irgend einem Grund ein paar Backslash verloren
gegangen sind... Aber würde es funktionieren würde es das machen.
ich schrieb:> Bis dahin kann man das ganz gut z.B. mit der JavaScript Konsole von> Mozilla Firefox auswerten wenn man nichts besseres hat.
Gute Idee, wäre mir allerdings zu unsicher sofern das nicht in einer VM
läuft. Auch in FF gibt es ab und zu Sicherheitslücken und wer weiß was
sich die bösen Schreiberlinge so ausgedacht haben...
Auf jeden Fall hast du mehr Ahnung von JS als ich (was auch nicht weiter
schwer ist...), das ist natürlich schon mal ein großer Vorteil!
DirkB schrieb:> ganz nett:> jsunpack.jeek.org/?report
Ach ja, das wurde auch bei Heise Security verlinkt. Scheint das
Skript/die Seite aber nicht für verdächtig zu halten oder verstehe ich
das falsch?
http://jsunpack.jeek.org/?report=125e3886caa27582225bafbf4ca7d1cf16b7036ehttp://jsunpack.jeek.org/?report=b28c00776e02067713d7fb2c74036590a81d9906
Sorry - ich war zu schnell.
troll schrieb:> Scheint das> Skript/die Seite aber nicht für verdächtig zu halten oder verstehe ich> das falsch?
Was wohl hier dran liegen dürfte:
>Streng genommen macht das Script im Orginal gar>nichts, weil nämlich aus irgend einem Grund ein paar Backslash verloren>gegangen sind...