News... | Hack-Acad | Downloads | Web-Projekte | Kontakt
HACKACAD - Simple Mail Transfer Protocol (fake email)

SMTP ist die Abkürzung für Simple Mail Transfer Protocol.

Es wird verwendet um eine E-Mail zu verschicken, d.h. bei allen E-Mail Anbietern bzw. Applikationen (wie z.B. Outlook) läuft das versenden über dieses Protokol. Immer wieder wird dort SMTP bzw. POP3 auftauchen. Wenn also nun jeder Dienstleister darauf zu greift müsste man den SMTP Server doch eigentlich finden können, oder?

Na klar,... hierzu öffne man die DOS/Kommandozeile (Start->Ausführen->cmd).

Als Beispiel suchen wir den Mailserver der Hotmail Adressen. Der Befehl hierfür lautet:
  nslookup -querytype=mx hotmail.com
  

Als Antwort wird allerlei ausgespuckt. Wichtig für uns ist hier der Eintrag mx1.hotmail.com, bzw. mx2.hotmail.com, mx3.hotmail.com und mx4.hotmail.com! Somit wissen wir das bei Hotmail vermutlich 4 Mailserver den Emailversand regeln. Um ein wenig Gefühl für die Ergebnisse zu bekommen suchen wir nun nach gmx.de Emailadressen:
  nslookup -querytype=mx gmx.de
  

Diesmal sind es zwei Einträge: mx0.gmx.de und mx0.gmx.net. Nun gut, dies sind bekannte E-Mail Provider, doch was wenn wir spezifisch über eine "Firma" Mail verschicken wollen. Zum Beispiel wissen wir nur das http://www.bka.de/ existiert (und dort die Email Adresse info@bka.de). Um den Server zu finden geben wir auf Kommandoebene folgendes ein:
  nslookup -querytype=mx bka.de
  

Die Auswertung ergibt... mail.sczn.de sowie secondary.sczn.de und secondary.netuse.de ! Der Befehl ist also einfach anpassbar auf sämtliche URLs bzw. Email Adressen. Doch wie gehts nun weiter, wie verbindet man sich mit dem Server?

Ganz einfach,... weiterhin auf Kommandoebene versucht man einfach eine Telnet Verbindung zum Server:
  telnet mx3.hotmail.com 25
  

Was soll die 25 bedeuten? Das ist der SMTP Port...
Sofern die Verbindung funktioniert erscheint folgende Meldung:


Diese Meldung ist von Mailserver zu Mailserver unterschiedlich, gleicht aber in der vorangehenden Nummer 220. Nun da sich der Server gemeldet hat stellen wir uns vor:
  helo from hotmail.com
  

Ob wir uns nun als hotmail.com oder bka.de ausgeben ist egal, selbst wenn es die Domäne nicht wirklich gibt wird es zunächst gut gehen.


Hier bemerken wir die Nummer 250, welche wir uns als "OK" merken (da diese später beim Programmierbeispiel wichtig wird). Ebenso sehen wir das offensichtlich unsere momentane IP gespeichert wurde, d.h. man mache keinen Unfug von zu Hause ;-).
Der nächste Schritt ist die Eingabe der Absender E-Mail Adresse:
  mail from: dave@hotmail.com
  

Die Wahrscheinlichkeit das irgendein Dave sich registriert hat ist extrem hoch und siehe da:


Der Absender ist akzeptiert. Bestens. Also weiter zum "Opfer":
  rcpt to: dave@hotmail.com
  

In diesem Fall lassen wir Dave eine Nachricht an sich selbst schicken. Das Kürzel rcpt steht für ReCiPienT.


Neben der Absender- und Zieladresse fehlt nun nur noch der Inhalt. Dieser wird mit folgenden Befehl eingeleitet:
  data
  

Das Schlüsselwort "Data" leitet nun den Nachrichtentext ein. Per subject: kann der Betreff eingeben werden. Es können beliebige Zeilen eingegeben werden. Zu beachten ist nur das ein einzelnder Punkt (.), die Texteingabe als beendet markiert. D.h. nach der Beispielzeile "go buy some" folgt nach dem Zeilenumbruch der Punkt zum beenden.


Anschliessend wird die E-Mail "in Auftrag" gegeben, d.h. sie gliedert sich zur Abarbeitung also zum Versand ein. Und wird, wenn vorhergegangene Nachricht versendet wurden, selbst verschickt.


Wunderbar, mit einem QUIT beendet man den Vorgang sauber:



Anmerkung: Man kann dieses Beispiel nun mit diversen Angaben testen. Einige Provider erlauben zum Beispiel nur das verschicken innerhalb Ihrer Domäne, d.h. würde man die Zieladresse auf larry@microsoft.com ändern so geht eine Fehlermeldung 501 Invalid Address ein. Einige Provider lassen diesen Zugriff von aussen erst gar nicht zu, bzw. sichern sich mit einer Benutzerauthentifizierung ab. Wenn wir also vorgeben das wir dave@hotmail.com sind, so werden wir aufgefordert auch sein Passwort einzugeben.

Bei den meisten Anbieter kann man sich einfach mit Sinnlosen Angaben ein Konto zu legen und schauen ob man die gefakete Mail sich selbst zustellen kann. Im Zweifelsfall also lieber mal testen bevor es in einer Applikation eingebaut wird.

Hier ein Quellcode Bespiel...