E-Mail Header

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
Karl
User
Beiträge: 252
Registriert: Freitag 29. Juni 2007, 17:49

Hey,
Ich studiere zur Zeit Informatik und in einer Vorlesung (IT-Sicherheit) wurde uns ein wenig etwas über E-Mail Header erzählt. So 3-4 Minuten.
In der Übung haben wir jetzt eine Aufgabe, die einen E-Mail Header zeigt und die Aufgabe lautet,

1. den intendierten Empfänger rauszufinden (was denke ich recht einfach ist)
2. Den originären Sender zu ermitteln
3. zu beschreiben, wie die E-Mail versendet wurde
4. den Kommunikationsverlauf skizzieren
5. Auffälligkeiten rauszufinden.

Leider wurde uns in den 3-4 Minuten nur erklärt, dass es sowas wie einen Header gibt, in dem Informationen der verschiedenen Stationen sind, die die E-Mail durchläuft, und dass man dort oft Hinweise für eine gefakete Mail findet etc.
Wenigstens wusste ich, was ein Domain Name System ist, sonst hätte ich denke ich noch weniger von dem ganzen verstanden, anscheinend wird hier viel Wissen vorausgesetzt.
Ich jedenfalls kann keinen E-Mail Header wie ein Buch lesen, sondern versteh auch nach dem 20. mal fast nichts davon - auch wenn mir die Bedeutung einiger Befehle wie "Received" dank Internet (und Englischkenntnissen) natürlich klar ist. Trotzdem befähigt mich das nicht, dort irgendetwas auffallendes zu bemerken.

Wikipedia bringt mich nicht viel weiter und das 100seitige rfc Dokument würde mich wahrscheinlich auch nicht so viel weiter bringen, da es letztlich nur beschreibt, was laut Protokoll eigentlich geschehen sollte, aber keine typischen Merkmale für eine Manipulation o.Ä nennt.

Ich denke mal der ein oder andere kennt sich hier vermutlich mit sowas aus, oder?
Mir würde es auch schon reichen, wenn mir nur jemand sagen könnte, wo bzw wie man überhaupt etwas erkennen kann. Für mich ist da nur eine Aneinanderreihung von verschiedenen Datenblöcken, von denen ich eine grobe Ahnung habe, was sie bedeuten, aber inhaltlich sind für mich dort nur irgendwelchen Domainnamen/IP-Adressen, mit denen ich nichts anfangen kann.

Ich kann eben nirgends ansetzen ... Und bescheuerterweise sind die Übungen der Vorlesung nicht dazu da, sowas dort zu lernen, sondern wir müssen die Aufgaben vorher bearbeitet haben, aber über das bescheuerte System dieser Übung hab ich mich schon anderenortes zu genüge aufgeregt :)

Da ich zu dumm bin, um den Text ordentlich formatiert aus einem PDF-Dokument zu kopieren, hier mal ein Screenshot:
http://s1.directupload.net/file/d/3051/s4okjfy9_jpg.htm

Das einzige, was ich bisher rausgefunden habe, ist dass die Received-Blöcke von unten nach oben gelesen werden müssen (timestamps) und dass in Zeile 19 eine E-Mail Adresse vorkommt, die sonst nirgends steht (andreas.kasten at uni-koblenz.de). Könnte also sein, dass das der eigentliche Absender ist oder so. Aber nun ja, wie gesagt, ich werde nicht ganz schlau aus dem ganzen, außer den offensichtlichen Zeilen wie "To, CC, From, ...." etc.

Wäre nett, wenn mir einer einen Tipp geben könnte :)

Edit: In Zeile 23 hab ich rausgefunden, dass der Domain-Name nicht zur IP passt (oder täusche ich mich?) und in Zeile 24 wird das Datum total anders angegeben.
Vermutlich ist dann die erste (unterste) Received-Zeile manipuliert, richtig?
Kann man da sonst noch was rauslesen? Macht zB das angegebene Protokoll "HTTP" Sinn? Kann das als E-Mail Protokoll herhalten?
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Karl hat geschrieben:Edit: In Zeile 23 hab ich rausgefunden, dass der Domain-Name nicht zur IP passt (oder täusche ich mich?)
Da täuscht du dich, die haben intern nochmals ne andere Namensauflösung (drum auch .lan).
und in Zeile 24 wird das Datum total anders angegeben.
Das ist egal.
Kann man da sonst noch was rauslesen? Macht zB das angegebene Protokoll "HTTP" Sinn? Kann das als E-Mail Protokoll herhalten?
Das hat nix mit E-mail Protokoll zu tun, web.de teilt dir damit imo nur mit, dass dieses Mail über deren Webinterface verschickt wurde bzw über irgendeine HTTP API.

EDIT:// Von den Mailheadern scheint es so als wäre via SMTP andreas.karsten@… als empfänger gesetzt. Das to im mail selbst geht an yahoo adressen. Das widerspricht eigentlich wieder dem "with HTTP", wobei das so oder so nicht aussagekräftig ist weil web.de jede Freiheit hat und auch "with COFFEE" in den Header schreiben könnte.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

@Karl:
Seitens der Spezifikation durchaus mehr festgeklopft, als Deine Ausführungen vermuten lassen. Schau Dir mal rfc5322 (Mail) und die dort verwiesenen Passagen von rfc5321 (SMTP) an, einige Deiner "Zufallsfunde" sind klar geregelt. Ob sich Wald-und-Wiesen-Mailer XY daran hält, ist natürlich eine andere Frage.
BlackJack

Hier noch mal der Text als Text, dank OCR :-):

Code: Alles auswählen

Return-Path: <mabecker84@web.de>
Received: from lmtpproxyd (imap1murder.uni-koblenz.de  [141.26.64.21])
  by imap3 (Cyrus v2.4.16) with LMTPA;
  Wed, 10 Oct 2012 16:54:41 +0200
X-Sieve: CMU Sieve 2.4
Received: from localhost (localhost  [127.0.0.1])
  by deliver.uni-koblenz.de (Postfix) with ESMTP id 333E0D2313;
  Wed, 10 Oct 2012 16:54:41 +0200 (CEST)
Received: from deliver.uni-koblenz.de (deliver.uni-koblenz.de [141.26.64.15])
  by imap1murder (Cyrus v2.4.16) with LMTPA;
  Wed, 10 Oct 2012 16:54:41 +0200
X-Virus-Scanned: amavisd-new at uni-koblenz.de
Received: from deliver.uni-koblenz.de ([127.0.0.1])
  by localhost (deliver.uni-koblenz.de [127.0.0.1]) (amavisd-new, port 10024)
  with ESMTP id lMKln1zG-A3t; Wed, 10 Oct 2012 16:54:40 +0200 (CEST)
X-CHKRCPT: Envelopesender noch mabecker84@web.de
Received: from mout.web.de (mout.web.de [212.227.15.3])
  by deliver.uni-koblenz.de (Postfix) with ESMTP id 82635D2312
  for <andreas.kasten@uni-koblenz.de>; Wed, 10 Oct 2012 16:54:40 +0200 (CEST)
Received: from 3capp-webde-bs24.server.lan ([172.19.170.24]) by
  mriweb.server.lan (mriweb002) with ESMTPA (Nemesis) id
  OLr6k9-1Tquz72p07-OOeVFH; Wed, 10 Oct 2012 17:54:38 +0200
Received: from [141.26.71.84] by 3capp-webde-bs24.server.lan with HTTP; Wed
  Oct 10 16:54:38 CEST 2012                                                  
MIME-Version: 1.0
Message-ID: <trinity-46139c13-221a-47aa-9cd5-3a85cb992668-1349880878626@3capp-webde-bs24>
From: "Matthias Becker" <mabecker84@web.de>
To: huangs29@yahoo.com
Cc: peterniemaier@yahoo.de
Subject: Tolles Video!
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Date: Wed, 10 Oct 2012 16:54:38 +0200 (CEST)

Hey,
Karl
User
Beiträge: 252
Registriert: Freitag 29. Juni 2007, 17:49

@jerch: Wie du sagst, dann weiß ich immer noch nicht, ob es eine unbedeutende Abwandlung eines bestimmten Clients ist, ob es irgendein Hinweis auf einen Angriff ist und wenn ja, in welche Richtung das ganze geht.

@BlackJack stimmt, auf OCR hätte ich auch kommen können :) Dachte mir bei dem Bild aber gleichzeitig auch, dass es dann wenigstens niemand im Internet findet, aber ist ja eigentlich eh egal.

@apollo13: Danke, direkt meine Hoffnungen, etwas gefunden zu haben, wieder zerstört :D
Dass das mit andreas.kasten@.. etwas merkwürdig ist, hab ich ja auch schon festgestellt. Die Adresse wird sonst nirgends benutzt, außer dort im Header. Aber leider kann ich eben auch nicht daraus lesen, ob das jetzt der richtige Absender oder Empfänger oder sonstwas ist, oder nicht :)
und was meinst du damit, dass es dem "with HTTP" widerspricht?
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Karl hat geschrieben:Dass das mit andreas.kasten@.. etwas merkwürdig ist, hab ich ja auch schon festgestellt. Die Adresse wird sonst nirgends benutzt, außer dort im Header. Aber leider kann ich eben auch nicht daraus lesen, ob das jetzt der richtige Absender oder Empfänger oder sonstwas ist, oder nicht :)
Überleg dir folgendes (Deine Hausaufgaben musst du schon selber machen ;)): Ist andreas.karsten@… ein Empfänger oder Sender (das sollte klar zu beantworten sein). Im Mail hast du From/To Header, sobald du dich entschieden hast, dass andreas einer der beiden ist kannst du diese vergleichen. Was kannst du aus diesem Vergleich schließen
Und was meinst du damit, dass es dem "with HTTP" widerspricht?
"with HTTP" könnte heißen (ich kenne die Web.de Server dafür allerdings zu wenig), dass das Mail über Webmail verschickt wurde, Webmail erlaubt dir aber normalerweise so gut wie keine Manipulationen am Mail selbst, dafür brauchst du schon selbst SMTP… Ich würde mich aber nicht auf "with HTTP" aufhängen, der Header ist wie gesagt mehr oder weniger Freitext.

Was du definitiv verstehen solltest. Welche Relation andreas.kasten zu den FROM/TO Headern im E-Mail hat und was es heißt dass diese unterschiedlich sind. Ein kurzer Blick ins SMTP RFC könnte da vlt behilflich sein (Oder mal selbst ein Mail via SMTP via telnet verschicken).
BlackJack

@Karl: Ich würde vielleicht mit Punkt 4 der Aufgabenstellung anfangen und den Weg der Mail, beziehungsweise den Weg den die Informationen uns glauben machen wollen, beschreiben. Fang mit dem E-Mail-Client beziehungsweise Rechner an dem die Mail zum ersten Versand erstellt wurde an. Wann hat der die Mail (angeblich) verschickt und welche Header stammen ganz bestimmt von dort.

Und dann arbeitest Du Dich Station für Station durch. Nummer, Uhrzeit, welche Informationen stecken in den Daten, welche kann man daraus ableiten (z.B. kann man IPs und Programmnamen nachschlagen), gibt es Auffälligkeiten?, wenn ja: mögliche Erklärungen. Dann kannst Du Dir das ganze noch einmal anschauen und überlegen und die Informationen jedes Schritts im Kontext der anderen betrachte. Sind die konsistent? Wenn nein, wo ist der Bruch? Wenn es gefälschte Einträge gibt, wo fangen die wahrscheinlich an?

Im Extremfall könnte man ja sagen die komplette Mail ist gefälscht und wurde überhaupt nie versendet oder empfangen. :-)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Bei E-Mail kann man sich auf die Header eh nur bedingt verlassen, dafür gibt es ja jetzt auch SPF (um anzugeben von welchen Mailservern eine Mail von dieser Domain kommen darf, so kann zum Beispiel @uni-koblenz.de ja auch gültige Mails von 1und1 schicken, wenn sie denken dass das sinnvoll ist) und DKIM (um zu bestätigen, dass der Server der die Mail abgeschickt hat, auch berechtigt war, für diese Domains Mails zu senden).

Gmail nutzt etwa beides, ist aber gestern soger in den Nachrichten gewesen weil die Schlüssel die da verwendet wurden nicht ausreichend fälschungssicher waren.

Im Extremfall ist die Mail auch erdacht, wer schickt denn bitte Youtube-Links an E-Mail-Adressen die so sehr nach Scam ausschauen wie huangs29@yahoo.com? ;)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Hmm, SPF ist aber per Definition broken was forwards angeht und DKIM nutzen afaik wenige.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

apollo13 hat geschrieben:DKIM nutzen afaik wenige.
Gmail und Yahoo etwa, das sind ja schon relativ viele, womöglich auch Live/MSN/Hotmail/wiedasgeradeheißt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten