Gehaxelts Blog

IT-Security & Hacking

Emailvalidierung per HTML-Spammail

Wie ist es möglich Emailaddressen zu validieren, in an diese Emailadresse nur eine Email geschickt wird. Vorraussetzung ist, das das Opfer die Email einmalig öffnet.

Die HTML-Mail

Es ist fast üblich geworden, dass man HTML-Emails verschickt, statt normaler Text-Emails. Zumindest größere Unternehmen verschicken diese oft.

Die HTML Mail unterscheidet sich zur normalen Email durch folgenden Headereintrag:

Content-type: text/html; charset=iso-8859-1

In dieser Email ist es dann möglich die ganzen Gewohnheiten, wie HTML-Tags, CSS & Javascript ebenfalls nutzen kann.

Die arme Privatsphäre

Wie auch schon in dem Artikel über das IP-Logging in Signaturen beschrieben kann man über dynamisch erzeugte Bilder die IP Adressen des aufrufenden Programmes mitschreiben.

Ergänzt man dieses Szenario um eine Unique-ID, welche beim Verschicken der Email an die URL des Bildes angehängt wird, so kann man daraus auf folgende Fakten schließen:

  • Hat der Empfänger die Email geöffnet -> Wie die Email noch “aktiv” genutzt?

  • Wann wurde die Email geöffnet -> Zeitabstand zum Versandt

  • Welche IP Adresse hat der Empfänger -> Länderzuweisung bei ungenauen Mailanbietern (gmail.com, gmx.net)

An diese Informationen gelangt der Angreifer bzw. der Absender, wenn das Opfer die Email öffnet, und das Bild vom Server des Absenders geladen wird.

Das Schema

Wir nehmen an, der Spamversender hat eine Datenbank ‘D’ mit x Emailadressen. Wir nehmen an, der Empfänger nutzt einen Mailclient, wie z.B. Thunderbird, welcher in seiner Grundeinstellung, die HTML Mail anstandslos anzeigt.

Der Absender nutzt für seine Masche zwei - sagen wir mal PHP Scripte - um die Emails zu verschicken bzw. die Bilder zu generieren.

Das erste Script dient dazu, die Emailaddressen aus der Datenbank auszulesen, eine Email nach einer Vorlage zu erstellen, eine möglichst eindeutige ID (z.B. MD5 Hash der Empfängeremail + Salt) zu generieren, als Parameter für die Bildquelle anzugeben und die Email zu verschicken. Dabei wird in der Datenbank der Timestamp des Emailversandes gespeichert, ebenso wie die eindeutige ID, welche zuvor generiert wurde.

Die Email könnte folgendermaßen aussehen:

1
2
3
4
5
6
7
8
9
10
<html>
  <head>
      <title>Email von Onkel Dagobert</title>
  </head>
  <body>
      <h1>Beste Grüße aus deinem Heimatort!</h1>
      <p>Hier ein tolles Urlaubsfoto</p>
      <img src="http://absenderhost.de/generate_pic.php?u_id=EINDEUTIGE_ID" /> 
  </body>
</html>

Das zweite Script soll bei dessen Aufruf ein Bild erzeugen, und nebenbei die oben genannten Daten auslesen bzw. berechnen und anhand der eindeutigen Identifikation in der Datenbank zu der entsprechenden Email eintragen.

Öffnet das Opfer die Email aus Neugier, oder aus anderen Gründen, dann wird das Bild geladen und der Absender hat die Daten, welche er haben möchte.

Folgen

Der Spammversender hat nach einigen Tagen seine Datenbank unterteilt in Emailaddressen, welche noch “aktiv” genutzt werden, und welche, die nicht mehr “aktiv” genutzt werden, oder entsprechende Vorkehrungen getroffen haben, sodass diese uninteressant für diesen werden.

Die aufgewerteten Emailadressen können nun vom Versender für einen höheren Preis auf bestimmten Märkten verkauft werden, oder häufiger mit Emails zugemüllt werden, mit der erhöhten Wahrscheinlichkeit, dass der Nutzer die Email öffnet und Opfer von Phishing bzw. diversen Angeboten wird.

Die Folgen für das Opfer ist dementsprechend ganz logisch: Man bekommt mehr Spam.

Fazit

Es ist aus der Empfängersicht sinnvoll, solche Emails generell nicht zu öffnen, oder den Mailclient so zu konfigurieren, dass HTML-Mails als Quelltext dargestellt bzw. erst gar nicht geöffnet werden.

Gruß

gehaxelt

Texttutorials

« Teamspeak auf vServer einrichten Server absichern - Teil 4 »