Schädlingen auf der Spur, Teil 3

Seite 2: hp1.exe

Inhaltsverzeichnis

Die Datei beglückt uns mit 49.152 Bytes Visual Basic Code (prust!). Die Versionsinformationen der Datei behaupten, sie sei von einer Firma namens "df" mit dem internen Namen "bigs104" erstellt worden. Startet man das Programm, ergießt sich eine wahre Flut von Schädlingen auf den Rechner. Lehnen Sie sich zurück und versuchen Sie, Schritt zu halten, während wir den Spuren dieser Schädlinge folgen:

Zunächst kontaktiert es http://mmm.roings.com/bundle.php?aff=bigs104 und lädt 1449 Bytes an Daten nach:

388
{}{}{}wrds======ckkcha*gki+waevgl9uxwaevgl*}elkk*gki+waevgl9tx
}elkk*gki+v+w|+.9txv`w*}elkk*gki+9txwaevgl*iwj*gki+vawqhpw*ewt9ux
eqpk*waevgl*iwj*gki+vawqhpw*ewt9uxc*iwj*gki+9uxekhwaevgl*gki+
ekhgki+waevgl9uqav}xwaevgl*ekh*gki+ekhgki+waevgl9uqav}xehhplasaf*
gki+waevgl9uxsaf*ewo*gki+saf9uxkravpqva*gki+`+waevgl9Oa}skv`wx
gkjpajp*kravpqva*gki+`+waevgl9Oa}skv`wxiw|ih*mjbkwtega*gki+lkia+`
kc9uosxmjbkwtega*gki+lkia+`kc9uosxwaevgl*japwgeta*gki+jw+waevgl9
uqav}xjapwgeta*gki+jw+waevgl9uqav}xehpermwpe*gki+saf+vawqhpw9ux
waevgl*h}gkw*gki+`abeqhp*ewt9uqav}xh}gkw*gki+waevgl*ewt9uqav}x
waevgl*aevplhmjo*jap+pvego9uxwaevgl*hkkowievp*gki+t+waevgl9up
{}{}{}doms======faewp}wtkvpeh*2|*pk9995xxxgavmeh~*gki9996xxx
`vmjoi}*gki9995
{}{}{}ver======17
{}{}{}pay======yes
{}{}{}ip======aa.bbb.cc.dd (das war Ottos IP-Adresse)
{}{}{}phases======`veckjfehh~9995xxxgvegow9996xx
mb$}kq$qwa$plmw$wmpa9995
{}{}{}sewers======wa|$bkv$bvaa9995xxxwa|9996xxxikva$wa|$bkv$ia
999512
{}{}{}outers======
175
xxxxxi}a|a999lppt>++fmjw6*ia`me)ikpkv*jap+wkbp+hke`w+999i}a|
a999999EHHxJQHHxxxxxerepev999lppt>++sss*erepevvawkqvgaw*gki+`
mwp+ewp[0[ii*a|a999ewp[0[ii*a|a999ewp[0[ii*a|a999QWxAFxEQxGExCFxxxxx
a6cmra999lppt>++fmjw6*ia`me)ikpkv*jap+wkbp+Ia`meIkpkv61*a|a999Ia`
meIkpkv61*a|a999Ia`meIkpkv61*a|a999QWxGExxxxx
qjwpeh999lppt>++qtw*vkmjcw*gki+wkbp+qjwpehh*a|
a999qmjwpehhav999999EHHxJQHH
f
{}{}{}reg======
5c
xxxxxkg|5<999lppt>++fmjw6*ia`me)ikpkv*jap+wkbp+ii64*kg|999ii64*kg|
999ii64*kg|999EHHxQWxGExAF
6
{}{}{}

0

(Anmerkung: Die Daten wurden für eine bessere Darstellung etwas umformatiert.)

Was zum Teufel soll das nun wieder bedeuten? Hmm... es war offensichtlich ein dynamisch erstellter Datensatz, da er Ottos IP-Adresse im Klartext enthielt (genauer: die IP-Adresse der NAT-Firewall hinter der Ottos Rechner saß). Und es scheint, als wären die Daten irgendwie "verschlüsselt".

Nach geraumer Zeit -- und vielen frustiert zusammengeknüllten Zetteln, denen die Katze gerade noch ausweichen konnte -- gelang es dem unerschrockenen Autor doch noch, den Code zu knacken. Und zwar mit folgendem kleinen Programm:

#include <stdio.h>

int main(int ac, char **av) {
FILE *in, * out;
char buffer[80], *c, val;
int cont = 1;

if(ac != 2)
{puts("Usage: df_decrypt filename"); return 1;}
if((in = fopen(av[1], "r")) == NULL)
{puts("Cannot open input file."); return 2;}
if(!(out = fopen("output.txt", "w")))
{puts("Cannot open output file."); return 3;}
while(cont){
if(fgets(buffer, sizeof(buffer), in)){
c = buffer;
while(*c){
if(*c != '\n'){
val = *c & 7;
if(val < 4) *c = *c + 4;
else *c = *c - 4;
}
c++;
}
fputs(buffer, out);
} else cont = 0;
}
fclose(in); fclose(out);
return 0;
}

Führt man die entschlüsselten Daten mit den offensichtlichen Schlüsselwörtern aus dem Original zusammen, ergibt sich folgender Klartext:

388
{}{}{}wrds======google.com/search=q|search.yahoo.com/search=p|
yahoo.com/r/sx/*=p|rds.yahoo.com/=p|search.msn.com/results.asp=q|
auto.search.msn.com/results.asp=q|g.msn.com/=q|
aolsearch.com/aolcom/search=query|search.aol.com/aolcom/search=query|
alltheweb.com/search=q|web.ask.com/web=q|overture.com/d/search=Keywords|
content.overture.com/d/search=Keywords|msxml.infospace.com/home/dog=qkw|
infospace.com/home/dog=qkw|search.netscape.com/ns/search=query|
netscape.com/ns/search=query|altavista.com/web/results=q|
search.lycos.com/default.asp=query|lycos.com/search.asp=query|
search.earthlink.net/track=q|search.looksmart.com/p/search=qt
{}{}{}doms====== beastysportal.6x.to===1|||cerialz.com===2|||drinkmy.com===1
{}{}{}ver======17
{}{}{}pay======yes
{}{}{}ip======aa.bbb.cc.dd (das war Ottos IP-Adresse)
{}{}{}phases====== dragonballz===1|||cracks===2||if you use this site===1
{}{}{}sewers====== sex for free===1|||sex===2|||more sex for me===1
12
{}{}{}outers======
175
|||||myexe===http://bins2.media-motor.net/soft/loads/
===myexe======ALL|NULL
|||||avatar===http://www.avatarresources.com/dist/ast_4_mm.exe
===ast_4_mm.exe===ast_4_mm.exe===US|EB|AU|CA|GB
|||||e2give===http://bins2.media-motor.net/soft/MediaMotor25.exe
===MediaMotor25.exe===MediaMotor25.exe===US|CA
|||||unstal===http://ups.roings.com/soft/unstall.exe
===uinstaller======ALL|NULL
f
{}{}{}reg======
5c
|||||ocx18===http://bins2.media-motor.net/soft/mm20.ocx
===mm20.ocx===mm20.ocx===ALL|US|CA|EB
6
{}{}{}
0