Amazon.de-Spam

Anfang Juni 2020 hat sich mal wieder eine Mail in ein Postfach verirrt, welches zeigt, dass selbst große Firmen ihre Systeme nicht immer konsequent konfiguriert haben. Das Absender gefälscht werden und teilweise mit Vertipper-Domains gearbeitet wird, ist ja schon bekannt. Hier hingegen ist ein Beispiel einer Phishing-Mail, die aber keinen Link auf eine Phishing-Seite enthalten sondern eine HTML-Datei als Anlage.

Die Malware Mail

Der in Outlook eingebaute Spamfilter hat in diesem Fall in dem Postfach erkannt und schon in den Junk-E-Mail-Ordner gelegt. Damit sind auch Anlagen und jegliche Skripte erst einmal blockiert

Die hätte ich natürlich eh nicht angeschaut und schon gar nicht ausgeführt. Interessanter fand ich, dass hier eine "amazon.de"-Adresse als Absender verwendet wird. Allerdings hat Amazon einen SPF-Eintrag hinterlegt, der das eigentlich verhindern sollte.

C:\>nslookup -q=TXT amazon.de

amazon.de       text =        "spf2.0/pra include:amazon.com -all"
amazon.de       text =        "v=spf1 include:amazon.com -all"


C:>nslookup -q=TXT amazon.com
amazon.com text = "v=spf1 include:spf1.amazon.com include:spf2.amazon.com include:amazonses.com -all"

C:\>nslookup -q=TXT spf1.amazon.com

spf1.amazon.com text =   "v=spf1 ip4:207.171.160.0/19 ip4:87.238.80.0/21 ip4:72.21.192.0/19 ip4:194.154.193.192/27 ip4:194.7.41.152/28 ip4:212.123.28.40/32 ip4:203.81.17.0/24 ip4:178.236.10.128/26 -all"
spf1.amazon.com text =   "spf2.0/pra ip4:207.171.160.0/19 ip4:87.238.80.0/21 ip4:72.21.192.0/19 ip4:194.154.193.192/27 ip4:194.7.41.152/28 ip4:212.123.28.40/32 ip4:203.81.17.0/24 ip4:178.236.10.128/26 -all"

C:\>nslookup -q=TXT spf2.amazon.com
spf2.amazon.com text =   "v=spf1 ip4:176.32.105.0/24 ip4:176.32.127.0/24 ip4:106.50.16.0/28 ip4:205.251.233.32/32 ip4:205.251.233.36/32 ip4:72.21.217.142/32 ip4:52.95.48.152/29 ip4:52.95.49.88/29 -all"
spf2.amazon.com text =   "spf2.0/pra ip4:176.32.105.0/24 ip4:176.32.127.0/24 ip4:106.50.16.0/28 ip4:205.251.233.32/32 ip4:205.251.233.36/32 ip4:72.21.217.142/32 ip4:52.95.48.152/29 ip4:52.95.49.88/29 -all"

Amazon hat aber absichtlich überall ein "-all" angefügt.

Sogar eine DMARC-Policy hat Amazon veröffentlicht.

C:\>nslookup -q=TXT _dmarc.amazon.de

Nicht autorisierende Antwort:
_dmarc.amazon.de  text = "v=DMARC1; p=quarantine; pct=100; rua=mailto:dmarc-reports@bounces.amazon.com; ruf=mailto:dmarc-reports@bounces.amazon.com"

Leider nutzt hier Amazon nicht die "reject" policy sondern nur die Einstellung "quarantine". Das finde ich schon etwas bedenklich, denn damit werden Mails von falschen Absendern nicht gleich abgelehnt sondern der Zielserver soll diese Mail annehmen aber in die Quarantäne legen. Insofern hat sich mein Provider korrekt verhalten.

Header - Stationen

Aber ich habe dennoch noch mal in den Header geschaut. (Hier aufgeteilt)

Received: from hostingl.fibersunucu.com.tr ([188.132.179.90]) by
 mx.kundenserver.de (mxeue009 [212.227.15.41]) with ESMTPS (Nemesis) id
 1MuCHV-1ioNj00TQD-00uZsy for <frank@carius.de.de>; Tue, 09 Jun 2020 07:48:15
 +0200
Received: from [109.197.82.130] (port=57160 helo=User)
   by hostingl.fibersunucu.com.tr with esmtpa (Exim 4.93)
   (envelope-from <do-not-reply@amazon.de>)
   id 1jiX7A-0001xy-7T; Tue, 09 Jun 2020 08:48:00 +0300

Hier findet sich erst einmal die IP-Adresse des einliefernden Server [188.132.179.90] hostingl.fibersunucu.com.tr. Wenn der Relayhost fibersunucu.com.tr nicht gefälscht ist, dann dürfte die IP-Adresse 109.197.82.130 das einliefernde System sein. Diese Adresse ist aber im Rumänien. (https://myip.ms/view/ip_addresses/1841648128/109.197.82.0_109.197.82.255)

Header - DKIM

Interessant ist aber auch die DKIM-Signatur.

Return-Path: <do-not-reply@amazon.de>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=merteks.com
   ; s=default; h=Content-Type:MIME-Version:Date:Subject:From:Sender:Reply-To:
   Message-ID:To:Cc:Content-Transfer-Encoding:Content-ID:Content-Description:
   Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:
   In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
   List-Post:List-Owner:List-Archive;
   bh=CgaaplKgEM/6E/Y2sAknAvg8bHoaAEetRVbBG8m5oZU=; b=aNvvHsSKw3RN/0mNVHldmpDYWh
...
   StdvOLjw==;
From: "Amazon Services Europe"<do-not-reply@amazon.de>
Subject: Rechnung uber Ihre Verkaeufergebuehren bei Amazon.de [6/2020]
Date: Tue, 9 Jun 2020 07:48:03 +0200
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary="----=_NextPart_000_001E_01C2A9A6.0DB1BCF4"

Die Angaben hinter "d=" beschreiben eine sehr lange Liste von Feldern, die einbezogen werden soll. Aber über die Server von "s=default" und "d=merteks.com" und "q=dnd/txt" lässt sich der Selector ermitteln und per DNS abfragen:

C:\>nslookup -q=TXT default._domainkey.merteks.com

default._domainkey.merteks.com  text =
        "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxMPVdMObmDQlo1dqVR2+/R/8Zqh"
        "xFjDRPZxDsML6UO5oKBoh1kJcFaFnPDVTSz8JRBFSuS2nGiq04pjIDowMZouSxxpz2F1q+MSr58vhrWMVw4fnjvCP"
        "+mIjYf49M4J9ffO6kSPJd15e3Jp9DnU5pTuz9WXEqJvG84UvQFKS09kW0SiASUQSxZZ/aezT3LYlecc19BJE072OP"
        "nUxPOq8AWp7DUdMJdQmLi91W9pL+tZzyFNDxgTUIdO6/6VlhNGpXVHa7Pu7f5m2kHKiAvfF921omDLp2k/SQC0okj"
        "sFmSVg9+b5MOhk7Ua0mG3BpkIuJ7uf2uFqgmtEnVJ914fdjQIDAQAB;"

Wenn ich das richtig verstehe, dann hat jemand, der dein privaten Key für den Domainkey von "merteks.com" hat, eine Mail als "do-not-reply@amazon.de" geschrieben und damit signiert. Diese Mail hat er dann über das Relay von hostingl.fibersunucu.com.tr gesendet, welches die Mail an meinen Provider zugestellt hat.

Im weiteren Header sehen Sie dann auch die Ursache:

X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - hostingl.fibersunucu.com.tr
X-AntiAbuse: Original Domain - carius.de
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - amazon.de
X-Get-Message-Sender-Via: hostingl.fibersunucu.com.tr: authenticated_id: info@merteks.com
X-Authenticated-Sender: hostingl.fibersunucu.com.tr: info@merteks.com
Envelope-To: <frank@carius.de.de>
X-Spam-Flag: YES

Der "X-Authenticated-Sender" ist wohl das Postfach "info@merteks.com" beim Provider, dessen Zugangsdaten der Spammer missbraucht.

Was ist falsch?

Bei diesem Beispiel sind gleich mehrere Dinge schief gelaufen.

  • Amazon.de weicht die SPF-Einstellung "-all" durch die DMARC-Konfiguration "p=quarantine" wieder auf
    Nur so kann die Mail von einer falschen IP-Adresse dennoch bei meinem Provider eingeliefert werden. Sie wird dort bei korrekter Konfiguration in die Quarantäne verschoben und mir so nicht angezeigt. Aber besser wäre es die Mail direkt abzulehnen, da dann entweder der einliefernde Mailserver "hostingl.fibersunucu.com.tr" plötzlich ganz viele NDRs erzeugen müsste und damit das dem Hoster hoffentlich auffällt.
  • Absenderprüfung des Hosters
    Viel schlimmer ist aber die Tatsache, dass der Hoster hostingl.fibersunucu.com.tr die Mail mit einer Absenderdomäne akzeptiert, die sicher nicht zu dem authentifizierten Benutzer gehört. Und dann auch noch diese Mail versendet, obwohl er für die Domain gar nicht legitimiert ist. Hier sollte hostingl.fibersunucu.com.tr sehr schnell ihren Mailserver besser konfigurieren.
  • Gekapertes Konto
    Wie der Spammer nun an die Zugangsdaten von info@merteks.com gekommen ist, kann ich nicht sagen. Vermutlich ein Trojaner oder eine Malware, die sich Outlook Express (?) bedient? Vermutlich hat der Angreifer eine Mail mit aktiven Skripten an die Adresse gesendet und Outlook Express führt eventuell die Skripte direkt aus. Es gibt Gründe, warum man nicht die ältesten Produkte nutzen solle. Thunderbird wäre ein alternativer Client, wenn man mit Windows Mail nicht warm wird.

Bei diesem Fall liefern also alle drei Partien keine Glanzleistung ab. Hoffentlich lernen Sie daraus. Das Beispiel zeigt aber auch gut, das DKIM kein Spamschutz ist sondern einfach nur bestätigt, dass die Mail nicht verändert wurde und der erste Server (oder Client) eine gültige Signatur angebracht hat. Wenn der Provider aber schlampt und die missbrauchte Absenderdomäne eine strengen Richtlinien zur Abwehr vorgeben, dann kann der Zielempfänger die Mail nicht ablehnen. In dem Fall ist eine Quarantäne nicht schädlich, da es eh eine unerwünschte Mail ist, die ein Server auch nach einiger Zeit automatisch löschen könnte. Der Angreifer hätte aber auch jede andere Absenderdomain oder eine Vertipper-Domain nutzen können. Eine gültige DKIM-Signatur ist also kein Bonus bei einer Mail. Nur eine ungültige DKIM-Signatur könnte die Zustellung unterbinden. Wenn denn DMARC passend konfiguriert ist.

Legitime Mail von Amazon.de

Zwei Tage später kam wieder eine Mail von Amazon bei mir an, die aber nicht in der Quarantäne gelandet ist. Ich habe mir die natürlich auch angeschaut:

Insbesondere der Header ist hier interessant. Es gibt nur einen "Received"-Header, der die Einlieferung durch Amazon an mein Postfach beschreibt. Die einliefernde IP-Adresse war die 54.240.0.234.

Received: from a0-234.smtp-out.eu-west-1.amazonses.com ([54.240.0.234]) by
 mx.kundenserver.de (mxeue009 [212.227.15.41]) with ESMTPS (Nemesis) id
 1MGRav-1jiWyZ4617-00GwnN for <xxxxx@carius.de>; Thu, 11 Jun 2020 14:02:14
 +0200

Es gibt sogar zwei DKIM Signaturen, die beide den gleichen Hash-Wert ("bh=") haben aber von unterschiedlichen Systemen ausgestellt wurden.

DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple;
   s=pf45mlguzlm6rchr6eh24nhslq6ptrzx; d=amazon.de; t=1591876934;
   h=From:To:Message-ID:Subject:MIME-Version:Content-Type:Date;
   bh=QvAE0B2oQUJKbzqyLVMmMH8jP0I1IgQSQLM1ObsexQ0=;
   b=M2jSMrOe567jtGMLViAcFuqQKq3SjaZw6sv+258fXvUQCEney2qYVtA6Ao9X7Q9+
   +UiuvZ/cr3DZbGgFgtMrdBbGIUO8PjYRB186gOzgse0OkzVrJ8W/Y9Lugn2XAfGE9Nw
   4Ng7wUe9CGIFUDWp+xkObkXhqDY8e/oiTRHCC+OI=
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple;
   s=shh3fegwg5fppqsuzphvschd53n6ihuv; d=amazonses.com; t=1591876934;
   h=From:To:Message-ID:Subject:MIME-Version:Content-Type:Date:Feedback-ID;
   bh=QvAE0B2oQUJKbzqyLVMmMH8jP0I1IgQSQLM1ObsexQ0=;
   b=z3HTouoRp+zIFjHNLzQeRe8ZAiG6ntiayJm0y8LDmekLsiMmnwwXK65cl7O4oGBB
   2oHHY8tLn4nNi39iDDl81DdvGRpVA+9R9TC9HV6rBfvrq7u3Wz6qHzhmTXVJGPmfa5c
   izSJJpnA5i3IFrcHpO6FxpPWgSpqXqsR4fztHoWM=

Der Rest sind dann wieder die normalen Header über Absender, Betreff etc.

From: "Amazon.de PartnerNet" <promotion5@amazon.de>
To: xxxx@carius.de
Message-ID: <xxxx-xxxx-xx-xx-xx-xxxx-xxxx@eu-west-1.amazonses.com>
Subject: Neu im PartnerNet: Ideen-Hub
MIME-Version: 1.0
Content-Type: multipart/alternative; 
	boundary="----=_Part_22374088_459730267.1591876934600"
X-AMAZON-MAIL-RELAY-TYPE: notification
Bounces-to: xxxx-xxxx@bounces.amazon.de
X-AMAZON-METADATA: CA=xxxx-CU=xxxx
X-Original-MessageID: <urn.rtn.msg.xxx@xxx.rtn-eu-mktng-c42xl1c-04234fff.eu-west-1.amazon.com>
Date: Thu, 11 Jun 2020 12:02:14 +0000
X-SES-Outgoing: 2020.06.11-54.240.0.234
Feedback-ID: 1.eu-west-1.kjoQSiqb8G+xxxx=:AmazonSES
Envelope-To: <xxxxx@carius.de>

Die SPF-Prüfung und die DKIM-Prüfung passt und daher wurde die Mail auch sauber zugestellt. Leider fehlen im Header entsprechend ""lesbare" Informationszeilen des Providers IONOS, wie er die SPF/DKIM/DMARC-Auswertungen durchgeführt hat. Es gibt nur einen kryptischen Blob

In dem Fall funktioniert alles wie gehabt aber ich wäre ein "p=reject" statt des "p=quarantine" in der DMARC-Richtlinie besser.

Weitere Links