Home | Artikel | LUGS kille Spammer

LUGS Vortrag vom 2000.12.21 - Wie kille ich Spammer

Grundsätzliches

Was ist Spam

Jegiliche Mails oder Posts, die die erwünschte Kommunikation begraben in einer Flut von Abfall der nicht hierher gehört. Ursprünglich entstand der Begriff für Mehrfachposts auf Usenet oder Mailinglisten. Er kommt vom Monty Pythons Vikinger Gag her. Heutzutags wird er aber hauptsächlich benutzt für unbestellte Massenaussände (UBE = unsolicitated bulk email), v.a. für Werbemails (UCE = Unsolicitated commercial email).

Was ist nicht Spam

Prinzipiell alles was bestellt wurde, auch implizit durch Subscriben bei einer Liste oder Newsgroup.

Warum sind wir gegen Spam

Weil es die Kommunikation via das Netz zerstört und so uns schädigt.

Woher haben die Spammer die Adressen

Zum Beispiel: filtern von Usenet Posts. Ich bekam meine erste Dosis (von 1 Spam alle paar Wochen zu mehrere Täglich) innerhalb der ersten Woche nach meinem ersten Usenet Post. Nachdem ich einen Spamblocker einführte ging das Spamvolumen in 2..3 Monaten auf 2-4 pro Woche zurück. Auf diese alte Adresse bekom ich immer noch heute 1-3 Spams pro Woche.

Wegen Spamblocker sind derart gesammelte Adresse oft Müll. Die ETH Architektur hatte Mai 1998 einen Relay abuse mit 1300 Bounces. Daher sollte man auch niemals Reply an den Spammer machen, das bestätigt das man existiert und befördert die Adresse in die "klein aber fein" Kategorie teurer gehandelten Adressen.

Gemäss einem Kollegen werden auch Domain Besitzer Datenbanken auf die Art gescannt und missbraucht.

Oft behauptet aber nie bewiesen: Web Roboter die nach Adressen suchen. Ich hatte meine heutige Adresse über 1 Jahr auf meiner Webseite bevor sie die erste Spam bekam.

Eine andere Methode ist Usern ihre Adresse abluchsen, Beispiel: ein Kollege hat die Adresse einer Projekt Mailliste zusammen mit der URL der Website des Projekts in eine FFA "Werbe für Webpage" Webpage eingetippt. Das Resultat waren über 10 "Danke für ihre Registration und hier unser Sponsor" Mails von ebensovielen Sites und danach über 100 Spams über die Liste. Selbst heute bekommt diese Liste mehrere wöchentlich.

Wie gegen Spam vorgehen

Spams einfach ausgrenzen

Mail Filter erlauben es Mail nach Kriterien zu killen, am besten bereits auf dem Mailserver, ohne sie zu downloaden. Kriterien können sein: Aber filtern beseitigt nur die Symptome (teilweise) für einen, löst aber nicht das Problem für alle. Und während man Ruhe in der Mailbox hat zahlt man immer noch für die verschossene Bandbreite und hat mit überlasteten Mailservern und anderen verärgerten Usern zu tun.

Spammer abschiessen

Dazu Mails an verschicken an abuse@provider, postmaster@provider. Man muss an beide schicken, weil verschiede Provider nur das eine oder das andere haben. Bei Providern mit nur einem bounct einfach das andere.

Dies macht man für alle Provider aller Dienste die der Spammer benutzt:

Generell zielt man auf alle seine Accounts, dem Spammer seine ganze Infrastruktur. Die darf er danach neu aufbauen, das kostet ihm. Von verlorenen Verbindungen von bestehenden Kunden ganz abgesehen. Wichtig ist daher insbesondere, dass seine jetztigen Adressen verschwinden.

Nicht zu vergessen: die meisten Spammer sind "Erstmalige" die es einfach nicht besser wissen. Ein Schuss vor den Bug stoppt die für immer.

Mails an Provider wirken: Erfolgsmeldungen.

Wer Spammer abschiessen will muss ihre Provider finden. Dazu muss man die Spam analysieren um sie zu finden.

Mail und Post Header analysieren

Mail Addressen vom Spammer

    From: ich@komm-angeblich-von-hier
    Reply-To: replies@bitte-hierhin
    To: dies@ist-angeblich-meine-mailliste
    
Alles diese Zeilen können gefälscht werden. Aber es lohnt sich trotzdem auch deren Provider anzumailen, da manche auch echt sind. Lieber zu viel schiessen als zu wenig.

Mail "Poststempel"

    Recieved: und hier sehr viel Zeugs
    Recieved: und noch eine
    Recieved: und noch ...
    
Wichtig ist: man muss um diese zu sehen die vollen Header anzeigen! In Netscape geht das so: View->Headers->All. Ohne volle Header kann man keine Spams bekämpfen! Weder findet man den Absender, noch kann ein angemailter Provider dies.

Eine Recieved: Zeile hat mehrere Teile, hier für 2 Recieved::

    Received: from betelgeuse.advanced.org (betelgeuse.advanced.org
      [209.211.239.10] (may be forged)) by island.ethz.ch (8.10.1/8.10.1)
      with ESMTP id eB3Ig8h1180127 for ; Sun, 3
      Dec 2000 19:42:09 +0100 (MET)
    Received: from sx2 (ts018d10.atl-ga.concentric.net [206.173.85.118]) by
      betelgeuse.advanced.org (8.9.3/8.9.1) with SMTP id NAA12084
      for <26026@thinkquest.org>; Sun, 3 Dec 2000 13:41:52 -0500 (EST)
    
Diese besagen:

Es hat immer mehrere Recieved: Zeilen, einer für jeden Mailserver durch den die Spam ging. Welcher ist es nun den man braucht? Grundregel: neuere Zeilen sind weiter oben. Der oberste ist der letzte, also der eigene Mailserver. Dem kann man trauen, je weiter nach unter umso eher sind sie kaputt oder gefälscht. Welche nun glaubwürdig sind abzuschätzen, dafür muss man seinen Verstand benutzen. Hier ist betelgeuse.advanced.org glaubwürdig, also kann man auch seine "from" benutzen.

Ein grosses Problem sind die offenen Relays. Das sind Mail Server, die Mail von jedermann weiterreichen. Damit führen sie in die Irre, wo den nun die Mail herkommt. Besonders ärgerlich sind solche mit alter Mail Software, die die IP Adressen wo die Mails herkommen nicht aufzeichnen, v.a. Solaris 2.6 direkt ab CD Install, erkennbar an "SMI-8.6".

Nicht jeder Server, der weiter gibt ist aber ein offenes Relay. Der betelgeuse.advanced.org im Beispiel ist ein Server, der nur unschuldig seine .forwards aufgelöst hat, am geänderten "for" Teil zu erkennen.

News "Poststempel"

    NNTP-Posting-Host: hier.host.name
    
Oft erscheinen solche als nackte IP Adressen. In diesem Fall muss man nslookup verwenden:
    root@chonsp 16:08:24 ~# nslookup 62.226.52.113
    Server:  dns1-rz-fddi.ethz.ch
    Address:  129.132.98.12

    Name:    p3EE23471.dip.t-dialin.net
    Address:  62.226.52.113
    
Oft haben die von Spammer benutzten Billigprovider keine ordentlichen DNS Server. Für solche namenlose IP Adressen gibts aber traceroute zum dem Provider finden:
    root@chonsp 16:12:21 ~# traceroute www.stsmarketing.ch
    traceroute to www.stsmarketing.ch (193.247.162.17), 30 hops max, 40 byte packets
     1  dialup800-nac.ethz.ch (172.16.0.3)  167.534 ms  169.619 ms  159.746 ms
     2  ezci104-dialup800-nat-inside.ethz.ch (172.16.0.1)  169.547 ms  169.688 ms  169.809 ms
     3  ezwf11-dialup800-dyn.ethz.ch (192.33.95.1)  169.522 ms  169.71 ms  189.805 ms
     4  ezci1-fddi.ethz.ch (129.132.100.2)  169.526 ms  159.72 ms  169.812 ms
     5  swiez1-eth-switch-fast.ethz.ch (192.33.92.87)  179.578 ms  179.718 ms  179.814 ms
     6  swiEZ2-F1-0-0.switch.ch (130.59.20.203)  179.536 ms  179.714 ms  179.812 ms
     7  swiTIX-A2-0-3.switch.ch (130.59.33.190)  179.582 ms  179.715 ms  159.803 ms
     8  tix-1.sunrise.ch (194.42.48.29)  179.586 ms  179.737 ms  169.786 ms
     9  p11-0-0.zur01d03.sunrise.ch (195.141.236.13)  169.578 ms  169.714 ms  199.807 ms
    10  Hssi8-1-0.GW2.ZUR3.ALTER.NET (146.188.33.209)  169.523 ms  179.717 ms  169.801 ms
    11  421.ATM8-0-0.CR1.ZUR3.Alter.Net (146.188.6.57)  189.547 ms  159.719 ms  179.803 ms
    12  POS4-0-0.CR1.ZUR4.Alter.net (146.188.7.178)  169.54 ms  179.719 ms  169.797 ms
    13  411.ATM12-1-0.GW2.ZUR4.Alter.Net (146.188.10.125)  199.496 ms  179.714 ms  189.868 ms
    14  uunet-active2-gw.customer.ALTER.NET (146.188.48.198)  179.467 ms  159.717 ms  159.8 ms
    15  gw-zu-3640-1-e0.active.ch (193.246.240.25)  179.547 ms  179.715 ms  179.817 ms
    16  gw-na-3640-1-zurich.active.ch (212.215.15.98)  189.524 ms  179.867 ms  199.932 ms
    17  gw-we-3640-1-naenikon.active.ch (212.215.39.18)  209.936 ms  199.859 ms  199.942 ms
    18  gw-inm.active.ch (212.215.39.22)  209.932 ms  219.833 ms  219.942 ms
    19  inm17.inm.ch (193.247.162.17)  259.952 ms  219.892 ms  239.908 ms
    
Hier sieht man, dass der Webserver ein Virtualserver auf inm17.inm.ch ist. Leider bekommt man oft einige letzten Zeilen ohne Namen. Da kann man nur auf den letzten Provider losgehen, mit dem Hinweis, wie man auf ihn kommt (er hat ja keinen Bezug zum Spammer seinen Namen) und der Bitte an den hoffentlich ihm bekannten sub-Provider weiterzuleiten.

Auch für Mails muss man oft den Mailserve Hoster finden. Auxch dies kann man mit nslookup, aber es ist etwas aufwendiger, weil eine Mail Adresse mit @diese-domain nicht auf einem Server namens diese-domain sein muss:

    root@chonsp 16:09:37 ~# nslookup 
    Default Server:  dns1-rz-fddi.ethz.ch
    Address:  129.132.98.12

    > set type=MX
    > stsmarketing.ch
    Server:  dns1-rz-fddi.ethz.ch
    Address:  129.132.98.12

    Non-authoritative answer:
    stsmarketing.ch preference = 10, mail exchanger = mail.stsmarketing.ch
    stsmarketing.ch preference = 15, mail exchanger = ln.active.ch

    Authoritative answers can be found from:
    stsmarketing.ch nameserver = inm05.inm.ch
    stsmarketing.ch nameserver = ns.inm.ch
    mail.stsmarketing.ch    internet address = 193.247.162.5
    ln.active.ch    internet address = 193.246.240.19
    inm05.inm.ch    internet address = 193.247.162.5
    ns.inm.ch       internet address = 193.247.162.2
    > exit
    

Body analysieren

Prinzipiell will der Spammer etwas von seinen Opfern, zumindest hofft er auf etwas von einigen wenigen von ihnen. Also sollte man den eigentlichen Spam Text auf Resourcen des Spammers untersuchen.

Selten ist eine Mail so: total leer. Da kann man nur auf seine From: Mailadresse losgehen.

Oft hast in der Spam weitere Mailadressen auf die der Spammer Antworten zu sammeln versucht. Nicht vergessen sollte man die "Remove" Adressen, auch dort sammelt er Mails, v.a Bestätigungen echter Mail Adressen! Und selbstverständlich schickt man nie "Remove" Mails, ausser natürlich "Remove Spammer" Mails an seine verschiedenen Provider.

Manche Spammer wollen sich vor dem Verlust eingegangener Mails schützen, indem sie nur eine Mail Redirector Adresse verspammen. Dies sind z.B. ???@bigfoot.com und ???@n2mail.com Addressen. Da muss man dann nicht vergessen, diesen Redirector Leuten darauf hinzuweisen, auch die dahinter liegende Mailbox zu schliessen. Leider sind diese beiden Firmen nicht für schnellen Service bekannt.

Oder er bewirbt seine Website. Diese Spams sind besonders nett, weil man die Website abschiessen lassen kann und so dem Spammer nicht nur die neu angeworbenen sondern auch die bestehenden Kunden verliert.

Oft seht man da URLs mit nur IP Adresse, auch bei benamsten Servern, um den Anti-Spammer zu behindern. nslookup ist auch da wieder unser Freund. Es gibt kein Entrinnen.

Besonders ärgerlich sind Integer Adressen. Diese muss man zürst in xxx.xxx.xxx.xxx umwandeln. Das kann man mit ping:

    root@chonsp 16:44:53 ~# ping 3506561041
    PING 3506561041 (209.1.224.17): 56 data bytes
    64 bytes from 209.1.224.17: icmp_seq=1 ttl=243 time=189.0 ms
    64 bytes from 209.1.224.17: icmp_seq=2 ttl=243 time=190.0 ms

    --- 3506561041 ping statistics ---
    3 packets transmitted, 2 packets received, 33% packet loss
    round-trip min/avg/max = 189.0/189.5/190.0 ms
    
Irix ping findet sogar automatisch den Hostnamen, falls vorhanden. Linux ping liefert nur IP Adresse, also nslookup res7.geocities.yahoo.com. Bingo.

Und dann gibt es solche total verbastelte URLs:

    http://778924820@3626046468/%61%625/%6A%61%63%6B%69%65%6A%6F%6E%65%73/
    
Zum Glück müssen die aber auch für Webbrowser verständlich sein, also sind auch für uns zu verstehen. Zum den Host finden ist zuerst mal stets das zwischen // und / zu extrahieren. Dann muss man noch das bis und mit @ entfernen (wäre ein Web Server User Account Login). Es bleibt: 3626046468. Ping ergibt dann 216.33.20.4, und nslookup bigip.angelfire.com. Treffer.

Manchmal findet man auch Hostnummern der Art: ab%3c%3d%3e.... Das sind dann rohe ASCII codes in HEX. Bei obigem wären die beiden a und b richtige Ziffern und dann %3c und %3d und %3e versteckte Ziffern, einfach das %3 streichen. Achtung, die beiden ersten Ziffern ab sind echt, dort nichts entfernen! Dieser % Trick kann (mit anderem als %3) auch Buchstaben verstecken, da ist dann eine ASCII Tabelle nötig zum umwandeln.

Ein besonders "kluger" Spammer hat geglaubt mit Web Redirectoren seine Site schützen zu können. Das gab dann eine solche URL:

    http://216.32.74.52/request.cgi=key3495792685//http://3472742688/FreeWeb/linux4i/stealth.cgi/?http://209.1.225.4-ccvv-ny-rr.htm=UserID579736@207.225.188.250/FreeSites/912476/default_stop.asp?/virtualautosystems.net/55566B.html?redirect=216.33.20.4/freeweb/hurizbvr/free.htm?digitalnetworkssystems.org/redirect.cgi?angelfire.lycos.com-refer#4908732?http://geocities.net/majorcomputernetworking:endofline.com?hexadecimaldatasytems.com:1.5.4://redirect?http://24.1.598.3?12.5.102.4?digitaldatastreamcomputernetworking.com/main.html?http://geocities.net/207.445.255.32/FreeSites/795663?/virtualautosystems:endofline.com?http://www.rom-ware.com:1.5.4://redirect:national-data-online.com/root/12.5.204.4/freesite/index.htm
    
Bei solchen muss man dann die einzelnen "Stationen" herauspicken:
    http://216.32.74.52/        = www3.dcx.yahoo.com
    http://3472742688/          = 206.253.217.32 = v32.go2net.com
    http://207.225.188.250/     nicht 209.1.225.4-ccvv-ny-rr.htm, da @ drin !!!
    virtualautosystems.net      der 207.225.188.250 braucht kein http://
    216.33.20.4                 = bigip.angelfire.com
    .. und so weiter
    
Nicht vergessen, den jeweiligen Admins den "herausgeschnitten" Anteil für ihre Website zu geben, damit sie nicht wieder suchen müssen, oder noch schlimmer nur den Anfang ansehen und es fortwerfen, "weil nicht bei uns". Dieser Trick ist selten, da das funktionieren der URL bereits durch einen schnellen Sysadmin unterbrochen werden kann.

Und leider macht HTML Mail auch nicht vor Spammern halt, manchmal sogar mit vielen nervenden Bildern. Da muss man dann mit der Maus über die Links um die Websites zu finden, oder "Show Page Source" verwenden und nach href= (Links), src= (Bilder) und action= (Formulare) suchen für die URLs zum killen.

Und dann gibts noch die Spammer die Mails mit HTML Formularen drin verschicken. Da muss man mit "Show Page Source" die Zeilen mit action="mailto:spam-mail-box@provider" finden und dort die Mail Adresse herausfischen. Und wieder getroffen.

Und dann gibt es noch total unlesbares, wie chinesische und taiwanesische Spams. Da kann man nur die Adressen und URLs herausfischen, die zum Glück als ASCII aus dem Müll herausstechen. Kein Entkommen.

Noch ganz lustig sind die Referals. Da will der Spammer, das man auf eine Website geht und sich anmeldet, indem man in seine Mail clickt, so dass er für die "Empfehlung" Bonuspunkte bekommt. Die eigentliche beworbene Site ist zumeist unschuldig und distanziert sich vom Spammer. Beschwerden bei der Site verlieren dem Spammer den erhofften Bonus und seine ganzen bisher bekommenen Bonuse. Bonus für einem.

Zuguterletzt gibts die Spams ohne irgendwelche Netz Resourcen, aber mit Telephonnummern oder Postadressen. Wenn die in den U.S. sind, dann mailt man nach uce@ftc.gov, das Spam Büro von U.S. Handelsamt. Hier ist deren Pressemitteilung gegen Spam.

Probleme mit Providern

Natürlich gehen Mails an abuse und postmaster nur zu oft schief. Ich erwarte so ca 10-20% Ausfallsquote. Das es schief geht hat verschiedene mögliche Gründe: In solchen Fällen gibts nur eins: ab zum Provider des Providers. Dabei nicht vergessen, dass dieser keinen Bezug zum Spammer hat, also muss man hinweisen, welcher Sub-Provider der Spammer hat. Und was für ein Problem man mit dem Sub-Provider hat.

Nach einem Mailchen vom Provider der Providers werden manche solche Provider sehr schnell aktiv. Der hier im LUGS bekannt terra.es war so einer. Der hat auf 5 Mails an sein abuse und postmaster nicht reagiert. Nach der zweiten an seinen Provider kan sehr schnell eine Reaktion, direkt von terra.es.

Probleme mit Profispammern

Auch nach alledem kann man manche Spammer nicht anhalten, nämlich die Profispammer, die Wegwerfaccounts aufmachen, diese nur ein mal brauchen, so lange sie noch offen sind und dann einfach neue aufmachen. Für die ist dass schlicht Geschäftsunkosten. Ach ja, der Spammer in dem Text vergleicht sich und seine Kollegen mit Kakerlaken, sehr passend.

Aber auch die sind nicht alle ganz unverwundbar. Einige dieser Spammen für bezahlende Kunden. und dann kann man auch die beworbenen Resourcen der Kunden losgehen. Ein Kunde, der statt dem versprochenen Erfolg seiner Werbeaktion statt dessen viele Argermails, geschlossene Websites und Aufträumkosten bekommt, wird kaum wieder von diesem "Service" Gebrauch machen, und dies auch nicht weiter empfehlen. Und es braucht wohl nur Zeit, bis der Ruf von "Email Werbeagenturen" in der Geschäftswelt drauf geht. Und so kann man diese Art von Spammern via ihren Markt treffen.


Home | Artikel | LUGS kille Spammer

Diese Seite ist von Neil Franklin, letzte Aenderung 2001.05.01