PHP Fakemailer leicht gemacht

Der erste April ist leider schon vorbei aber klar ist: E-Mails mit falschen Absenderadressen (also Fake Mails) zu schicken ist ein weit verbreiteter Scherz. Eine ähnliche Technik wird verwendet um sogenannte Phishing Mails zu versenden und Empfänger in die Irre zu führen.
Kein Wunder wenn die Technik dahinter so einfach ist, zumindest wenn man keine hohen Ansprüche an die gefälschte Mail setzt. Mit etwas Know-How lassen sich solche Mails entlarven.
Wir wollen uns heute das Grundgerüst eines Fakemailers ansehen.

Ihr braucht dazu erstmal eine PHP-fähige Plattform. Das ist also ein Webserver oder eine lokale Webserverinstallation wie XAMPP.

Der Fakemailer selbst besteht aus 2 Dateien. Da ich Aussehen und PHP Code aus Übersichtsgründen trenne wird eine .html Datei das Design des Formulars bestimmen und eine .php Datei kümmert sich um das Verarbeiten und Versenden der Daten. Man könnte Formular und PHP Code auch in 1 Datei packen, zusammen mit integrierten CSS Styles, aber etwas Stil muss sein!

Hier der Inhalt meiner .html Datei:

<html>
<form action="phpfake.php" method="post">
<table border="0">
<tbody>
<tr>
<td>Empfänger (Mail) :</td>
<td><input name="to" type="text" size="90" /></td>
</tr>
<tr>
<td>Von (Mail) :</td>
<td><input name="from" type="text" size="90" /></td>
</tr>
<tr>
<td>Von (Name) :</td>
<td><input name="name" type="text" size="90" /></td>
</tr>
<tr>
<td>Betreff :</td>
<td><input name="subject" type="text" size="90" /></td>
</tr>
<tr>
<td>Nachricht :</td>
<td><textarea cols="70" rows="10" name="message"></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Send" /></td>
</tr>
</tbody></table>
</form>
</html>

So sieht es aus:

Absolut keine Muster-.html aber es geht ja nur darum, dass ihr schnell zum Ziel kommt, anpassen und optimieren kann jeder für sich.

Die erste Zeile schickt die ausgefüllten Formulardaten an folgenden PHP Code:

<?php
$to=$_POST['to'];
$from=$_POST['from'];
$name=$_POST['name'];
$absender = $name.' <'.$from.'>';
$headers .= 'From:' . $absender . "\n";
$headers .= 'Reply-To:' . $from . "\n";
$subject=$_POST['subject'];
$message=$_POST['message'];

$ret=mail($to, stripslashes($subject), stripslashes($message), $headers);
if($ret==true) {
echo "<br /> Mail sent Successfully";
} else {
echo "<br /> Unable to Send mail";
}
?>

Die mail(); Funktion aus Zeile 11 erledigt den Mailversand.
stripslashes(); ermöglicht einfache Backslashes in eurem Mailbetreff und -text.

Die Dateien einfach auf den besagten Server laden, die .html aufrufen, ausfüllen und auf den Senden Button klicken.
Das Ergebnis ist beunruhigend überzeugend, der einfache Header gibt keine Hinweise auf einen gefälschten Absender preis.

Nur der erweiterte Header gibt Aufschluss von wem diese Mail wirklich kommt:

Received: from dd11438.kasserver.com (dd11438.kasserver.com [85.13.133.243])
by mx.kundenserver.de (node=mxeu3) with ESMTP (Nemesis)
id 0MV5j7-1O1Mvp1aSj-00YTu9 for hannes.schurig@online.de; Thu, 08 Apr 2010 21:26:04 +0200
Received: by dd11438.kasserver.com (Postfix, from userid 1086)
id 20A6B56E0C9; Thu, 8 Apr 2010 21:26:04 +0200 (CEST)

Aber clever eingesetzt ist ein Schrecken der Zielperson garantiert.
Einfach, huh!?

26 Kommentare

  1. Schönes Ding Hannes! Gab es nicht mal einen E-Mail-Client in dem man den „Absender“ manipulieren konnte? Ich glaube es war ein Add On für Thunderbird welches dann nicht mehr pupliziert werden durfte. Kennst du in der Richtung was???

    Viele Grüße und vielen Dank!

  2. @ Alex: das Prinzip ist genau das gleiche wie die Manipulation des Absenders. Es wird ja nur verändert, was dir dein E-Mail-Client anzeigt. Falls du mehr zu dem Thema lesen möchtest, dann ist hier eine sehr gute Seite:
    http://th-h.de/faq/headerfaq.php

    @ Hannes: ich hab noch einmal nachgeschaut. Es war damals der „Header Tools Extension“ für Thunderbird.
    Link:
    https://addons.mozilla.org/de/thunderbird/addon/875
    Der wird aber nicht mehr angeboten. Leider…..

  3. @Fränk: Die Extension in der Version 0.7.1 ist aktuell aber wie du sagst dient sie zum Editieren von empfangenen Nachrichten, alles inter von Thunderbird. Sobald eine Nachricht raus geht werden die Header korrekt aktualisiert.

    Aber ich kam da auf ne Idee. Beim Firefox gibt es ein Add-on, dass die Header Daten eines Seitenaufrufs vor dem Absenden ändern konnte. Live HTTP Headers glaube hieß die Erweiterung.
    Bin ich also auf eine Seite, aktiviere das Add-on, klicke einen Link und dann werden zuerst alle Daten des Linkklicks aufgelistet bevor die Aktion wirklich ausgeführt wird. So konnte man bestimmte POST Werte ändern blabla. Auf jeden Fall wäre solch eine Erweiterung für Thunderbird nötig und ich kann mir vorstellen, dass es sowas eigentlich geben müsste.
    Problem ist nur, alle abgeschickten Mails müssen ja erst am Mailserver vorbei und dieser müsste die manipulierten Header erkennen. Schließlich lässt doch kein Mailserver eine Mail von einer Absenderadresse durch, die er nicht kennt.
    Bei PHP Mail geht das natürlich, da muss die versendete Mail ja keine weiteren Kontrollen mehr durchwandern.

    Ich bleib an der Sache dran, wenn sich Langeweile findet.

  4. Das wirft eine Frage auf.
    Ist es machbar, dass der Empfänger obwohl er einen falschen Absender und eine falsche Reply-adresse sieht an eine zuvor bestimmte Adresse antwortet.

    Sprich:
    Falsche email von Timo als Lisa, an Peter
    Peter antwortet Lisa, aber in wirklichkeit nur wieder Timo

    Somit kann man, wenn machbar das Spiel ein wenig weiter treiben.

    Möglich?

  5. Klingt als wenn du damit Sachen vorhast, die ich grundsätzlich nicht befürworte.
    Aber zum Thema:
    Du kannst nur die Adresse hinter Reply-To: ändern, damit die Mail nicht an die Fakemail sondern an dich zurückgeht. Diese Mailadresse sieht der Empfänger allerdings nach dem Klick auf „Antworten“ als Empfängeradresse.

  6. Hallo Herr Hannes Schurig

    Ich habe im Dezember 2013 versucht sie über Ihr Kontaktformular zu kontaktieren.
    Sie haben mir bisher noch nicht geantwortet!
    Deshalb hier mein erneuter Kontaktversuch.
    Bei mir funktioniert ihr Skript überhaupt nicht, ich brauche dringend Hilfe um es zum laufen zu bringen.
    Ich habe beide Skripte jeweils in eine HTML und eine PHP Datei umgewandelt, diese beiden Dateien habe ich Dann auf meinen Webspace hochgeladen.
    Wenn ich auf senden klicke bekomme ich nur eine leere Seite, ansonsten passiert nichts.
    Es wird auch nichts versendet.

    Ich vermute in ihren Skripten ist irgendwo ein Fehler.
    Ich bitte Sie Herr Schurig mir zu antworten

  7. Wenn es so einfach ist warum gibt es dann WELTWEIT gerade mal 2-3 Seiten wo man solche e-mails verschicken kann ? Ein Video Tutorial Schritt für Schritt wäre geil damit es wirklich jeder aufsetzen kann auch ohne Programierkenntnisse. Dasselbe gilt für ALLE Leaks und Bugs.

  8. Weil es illegal ist, E-Mails mit einer fremden nicht-eigenen Identität zu versenden. Vorsätzlich verschickte Mails dieser Art fallen dann unter den Begriff Mail-Spoofing. Wenn man bekannte Namen oder Personen des öffentlichen Interesses dabei „imitiert“, könnte man sogar von Identitätsdiebstahl sprechen.
    Insgesamt jedoch verboten.
    Dieser Artikel sollte nur die grundsätzliche technische Realisierung eines Webmailers zeigen, nichts Weiterführendes. Wer mit diesen absoluten Grundlagen der Websprachen PHP & Co. nichts anfangen kann, sollte sowieso die Finger von diesen Dingen lassen.
    Aus diesem Grund gibt es auch kein Video-Tutorial – das nötige Grundwissen wird vorausgesetzt.

  9. What have you been up to? I am fascinated about covid19. Can you talk about it? If the same thread is opened please redirect my post :). Thanks :).

    PS: I don’t know any people with covid and you? rambo 😀

Schreibe einen Kommentar