OVH Community, votre nouvel espace communautaire.

piratage récurent


lxwfr
29/03/2015, 15h17
bon @SaTurNin, @Nowwhat, @sich: on a tous dit le strict minimum de sécurité basic.
Si kmchen ne prends pas attention !!!

SaTurNin
29/03/2015, 12h00
Moi j'ai une question complètement con et stupide :
Et la sécurité de ton pc ?¿

ou un pc ayant accès a ce serveur en particulier.
J'ai eu le souci a plusieurs reprise de site corrompus suite au "verolage" d'un pc windows.

Nowwhat
18/03/2015, 09h07
Je te demande quand même de réfléchir.

T'as dit qu'il s'agit "des sites Joomla que tu ne pourrais pas mettre à jour" (foutaise bien sûr, t’as pas envie, c’est tout ).
Sache que si tu ne vire (ou répare) pas ces sites, OVH risque FORT de te renvoyer de ton serveur (‘spam hack répétitif’ == peut être une cause de rupture de contrat, OVH n’aime pas les spammeurs ; Oles en a fait une affaire personnel).

Ton nouveau serveur aura d’office un OS + PHP trop moderne pour ton « Joomla 1 » et l’emmerdement ‘max’ commence : chercher un vieux PHP. Etc etc.

sich
17/03/2015, 22h46
t'as bien du spf, du dkim et du dmarc sur ton domaine ?
le spf mets le -all à la fin et pas ~all

Avec dmarc tu peux aussi dire de rejeter tout ce qui n'est pas conforme.

Après si le mail est envoyé directement depuis ton serveur c'est plus compliqué en effet.

Sich

kmchen
17/03/2015, 21h45
voici un spam:
root@ns1:~# postcat -q C9FB62ACA519
*** ENVELOPE RECORDS active/C9FB62ACA519 ***
message_size: 7073 249 1 0 7073
message_arrival_time: Tue Mar 17 20:39:35 2015
create_time: Tue Mar 17 20:39:36 2015
named_attribute: log_message_origin=local
named_attribute: trace_flags=0
sender:
original_recipient: gensinrode@hotmail.com
recipient: gensinrode@hotmail.com
*** MESSAGE CONTENTS active/C9FB62ACA519 ***
Received: by ns1.webologix.com (Postfix)
id C9FB62ACA519; Tue, 17 Mar 2015 20:39:35 +0100 (CET)
Date: Tue, 17 Mar 2015 20:39:35 +0100 (CET)
From: MAILER-DAEMON@ns1.webologix.com (Mail Delivery System)
Subject: Undelivered Mail Returned to Sender
To: gensinrode@hotmail.com
Auto-Submitted: auto-replied
MIME-Version: 1.0
Content-Type: multipart/report; report-type=delivery-status;
boundary="7A3F02AD3ECF.1426621175/ns1.webologix.com"
Content-Transfer-Encoding: 7bit
Message-Id: <20150317193935.C9FB62ACA519@ns1.webologix.com>

This is a MIME-encapsulated message.

--7A3F02AD3ECF.1426621175/ns1.webologix.com
Content-Description: Notification
Content-Type: text/plain; charset=us-ascii

This is the mail system at host ns1.webologix.com.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

The mail system

: host
mx-biz.mail.am0.yahoodns.net[98.139.171.245] said: 550 relaying denied for
(in reply to RCPT TO command)

: host mx4.hotmail.com[207.46.8.199] said: 550
Requested action not taken: mailbox unavailable (in reply to RCPT TO
command)

--7A3F02AD3ECF.1426621175/ns1.webologix.com
Content-Description: Delivery report
Content-Type: message/delivery-status

Reporting-MTA: dns; ns1.webologix.com
X-Postfix-Queue-ID: 7A3F02AD3ECF
X-Postfix-Sender: rfc822; gensinrode@hotmail.com
Arrival-Date: Fri, 13 Mar 2015 16:59:41 +0100 (CET)

Final-Recipient: rfc822; central.accounts@uicgroup.com
Original-Recipient: rfc822;central.accounts@uicgroup.com
Action: failed
Status: 5.0.0
Remote-MTA: dns; mx-biz.mail.am0.yahoodns.net
Diagnostic-Code: smtp; 550 relaying denied for

Final-Recipient: rfc822; centralpharmacy31@hotmail.com
Original-Recipient: rfc822;centralpharmacy31@hotmail.com
Action: failed
Status: 5.0.0
Remote-MTA: dns; mx4.hotmail.com
Diagnostic-Code: smtp; 550 Requested action not taken: mailbox unavailable

--7A3F02AD3ECF.1426621175/ns1.webologix.com
Content-Description: Undelivered Message
Content-Type: message/rfc822
Content-Transfer-Encoding: 7bit

Return-Path:
Received: from localhost (localhost.localdomain [127.0.0.1])
by ns1.webologix.com (Postfix) with ESMTP id 7A3F02AD3ECF;
Fri, 13 Mar 2015 16:59:41 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at ns1.webologix.com
Received: from ns1.webologix.com ([127.0.0.1])
by localhost (ns1.webologix.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id 2LTHLpdXxIIa; Fri, 13 Mar 2015 16:59:39 +0100 (CET)
Received: from User (unknown [204.188.195.31])
(Authenticated sender: webmaster@les-meilleurs-films.net)
by ns1.webologix.com (Postfix) with ESMTPA id 2DB382AC3DB7;
Fri, 13 Mar 2015 07:22:10 +0100 (CET)
Reply-To:
From: "Mr. Oosthuizen"
Subject: Re: Letter of Intent
Date: Thu, 12 Mar 2015 23:25:36 -0700
MIME-Version: 1.0
Content-Type: text/html;
charset="Windows-1251"
Content-Transfer-Encoding: 7bit
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
Message-Id: <20150313155941.7A3F02AD3ECF@ns1.webologix.com>






 


Attention:


 


I am  Mr. Oosthuizen of I M F Head Office.


 


Your email appeared among the beneficiaries, who will receive a


part-payment of your contractual sum of  8. 5 Million US Dollars and


has been approved already for months. You are requested to get back to


me for more direction and instruction on how to receive your


fund. However, we received an email from one Mrs. Virgie Brown who


told us that she is your next of kin and that you died in a car


accident last week. She has also submitted her account for us to


transfer the fund to her. We want to hear from you before we can make


the transfer to confirm if you are dead or not.


 


Please in confirmation that you are still alive, you are advised to


reconfirm the below  listed information to enable us facilitate an


immediate payment for you.


 


1 Your f ull names


2 Your present contact a ddress.


3 Your t elephone & Fax numbers.


4 Your O ccupations/age/sex.


5 Your Private E mail Address.


 


Once again, I apologize to you on behalf of I M F (International


Monetary Funds) for failure to pay your funds in time, which according


to records in the system had been long overdue.


 


Thanks,


Mr.  Oosthuizen.






--7A3F02AD3ECF.1426621175/ns1.webologix.com--
*** HEADER EXTRACTED active/C9FB62ACA519 ***
*** MESSAGE FILE END active/C9FB62ACA519 ***
:

D'après ce passage:
Received: from User (unknown [204.188.195.31])
(Authenticated sender: webmaster@les-meilleurs-films.net)
by ns1.webologix.com (Postfix) with ESMTPA id 2DB382AC3DB7;
Fri, 13 Mar 2015 07:22:10 +0100 (CET)
Reply-To:
dois-je en déduire que le pirate a obtenu les coordonnées l'un de mes mails et qu'il s'authentifie depuis l'extérieur l'extérieur ?
Comment réagir ?

lxwfr
13/03/2015, 01h08
Citation Envoyé par kmchen
Bonjour

J'ai un serveur qui est piraté de façon récurrente. Jusqu'à présent j'ai toujours retrouvé des fichiers php dans un des sites avec find /var/www/ -iname *.php -mtime 2 mais là je ne trouve rien et postfix est saturé de spams

Quelqu'un peut-il me donner une autre piste que l'écriture de scripts dans les sites ?

Système debian/wheezy postfix apache php. Je mets ma config postfix au cas où il y aurait un trou évident pour un spécialiste que je ne suis pas:
Code:
cat master.cf
#
# POSTFIX master.cf ks392200.kimsufi.com - Dec 2014
# Modified by KMC - Jan 2015
#
# kmc_rc*: smtp = client == mail receiving - IPV4
#87.98.160.188:smtp     inet    n       -       -       -       - smtpd
#       -o myhostname=ns1.webologix.com
#       -o smtp_helo_name=ns1.webologix.com
#       -o syslog_name=ns1.webologix.com
#       -o smtpd_tls_cert_file=/root/startssl/test-domaine.fr/ssl.crt
#       -o smtpd_tls_key_file=/root/startssl/test-domaine.fr/ssl-decrypted.key
#       -o smtpd_tls_CApath=/etc/ssl/certs
#kmc_acf
smtp      inet  n       -       -       -       -       smtpd

pickup    fifo  n       -       -       60      1       pickup
cleanup   unix  n       -       -       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
tlsmgr    unix  -       -       -       1000?   1       tlsmgr
rewrite   unix  -       -       -       -       -       trivial-rewrite
bounce    unix  -       -       -       -       0       bounce
defer     unix  -       -       -       -       0       bounce
trace     unix  -       -       -       -       0       bounce
verify    unix  -       -       -       -       1       verify
flush     unix  n       -       -       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap

# kmc_rc – smtp*: server == mail sending – ipv4
#webologix_com unix  -       -       n       -       -       smtp
#       -o smtp_bind_address6=0:0:0:0:0:ffff:5762:a0bc
#       -o smtp_bind_address=87.98.160.188
#       -o smtp_helo_name=ns1.webologix.com
#       -o syslog_name=webologix.com-transport
#       -o smtp_tls_CAfile=/root/startssl/sub.class1.server.sha2.ca.pem
#       -o smtp_tls_security_level=may
smtp      unix  -       -       -       -       -       smtp
        -o smtp_bind_address6=0:0:0:0:0:ffff:5762:a0bc
        -o smtp_bind_address=87.98.160.188
        -o smtp_helo_name=ns1.webologix.com

relay     unix  -       -       -       -       -       smtp
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       -       -       -       showq
error     unix  -       -       -       -       -       error
retry     unix  -       -       -       -       -       error
discard   unix  -       -       -       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       -       -       -       lmtp
anvil     unix  -       -       -       -       1       anvil
scache    unix  -       -       -       -       1       scache
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d vmail ${extension} ${recipient} ${user} ${nexthop} ${sender}
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail    unix  -       n       n       -       -       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  -       n       n       -       -       pipe
  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix  -       n       n       -       2       pipe
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman   unix  -       n       n       -       -       pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}

# ispconfig 3
submission inet n       -       -       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
smtps     inet  n       -       -       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}

amavis unix - - - - 2 smtp
        -o smtp_data_done_timeout=1200
        -o smtp_send_xforward_command=yes

#kmc_ac - Dkim signature
127.0.0.1:10025 inet n - - - - smtpd
        -o content_filter=
        -o local_recipient_maps=
        -o relay_recipient_maps=
        -o smtpd_restriction_classes=
        -o smtpd_client_restrictions=
        -o smtpd_helo_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o mynetworks=127.0.0.0/8
        -o strict_rfc821_envelopes=yes
        -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks


   cat main.cf
#
# POSTFIX main.cf ks392200.kimsufi.com - Dec 2014
# Modified by KMC - Jan 2015
#       smtpd_banner
#       myhostname
#       inet_interfaces
#       opendkim

smtpd_banner = $myhostname ESMTP $mail_name
biff = no
append_dot_mydomain = no
readme_directory = /usr/share/doc/postfix

# TLS parameters
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

myhostname = ns1.webologix.com

alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
myorigin = /etc/mailname
mydestination = localhost, localhost.localdomain
relayhost =
mynetworks = 127.0.0.0/8 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +

#kmc_ac- Pour limiter les interfaces où on accepte les connexions:
#inet_interfaces = all
inet_interfaces = 127.0.0.1, 87.98.160.188

html_directory = /usr/share/doc/postfix/html
virtual_alias_domains =
virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, proxy:mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /var/vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
inet_protocols = all
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf
smtpd_tls_security_level = may
transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:/etc/postfix/mysql-virtual_transports.cf
relay_domains = mysql:/etc/postfix/mysql-virtual_relaydomains.cf
relay_recipient_maps = mysql:/etc/postfix/mysql-virtual_relayrecipientmaps.cf
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks
smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf
smtpd_client_restrictions = check_client_access mysql:/etc/postfix/mysql-virtual_client.cf
smtpd_client_message_rate_limit = 100
maildrop_destination_concurrency_limit = 1
maildrop_destination_recipient_limit = 1
virtual_transport = dovecot
header_checks = regexp:/etc/postfix/header_checks
mime_header_checks = regexp:/etc/postfix/mime_header_checks
nested_header_checks = regexp:/etc/postfix/nested_header_checks
body_checks = regexp:/etc/postfix/body_checks
owner_request_special = no
smtp_tls_security_level = may
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_protocols = !SSLv2,!SSLv3
smtp_tls_protocols = !SSLv2,!SSLv3
dovecot_destination_recipient_limit = 1
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings

# kmc_ac opendkim
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
installe un antivirus sur ton serveur comme clamav puis scan (si tu la installer de zéro).
je remarque tes 3 sites


Creation site web (Joomla 1.0 obselète) http://www.webologix.com/administrator/
Codeur WEB (Joomla 1.5 obselète) http://www.php-web-service.net/administrator/
Extensions Joomla (Joomla 1.5 obselète) http://www.joomla-development.eu/administrator/

non sécurisé facile d'accès...

Ton serveur est-elle à jours?

d'après la page postfix, tu utilise ispconfig plein tuto sur ce panel gratuit pour t'aider

fritz2cat
12/03/2015, 13h35
Citation Envoyé par AnonymousCoward
Toujours est-il que ne pas écouter sur 127.0.0.1 sur le port 25 (ou 587 ou 465) ne résoudra rien car Postfix en local ne passe pas par les sockets. Cela passe par la commande sendmail qui fait appel à postdrop.

Et interdire l'usage de la fonction mail() se contourne. Il suffit de faire un bout de code qui appelle directement sendmail.

Le mieux à faire est de bloquer les connexions sortantes vers le port 25 est d'utiliser l'option qui va bien dans la conf de Postfix pour interdire le user www-data ou autre à soumettre des emails à Postfix.

--
AnonymousCoward
En fait il faut faire les deux, car à peu près tous les CMS peuvent être paramétrés pour envoyer en SMTP plutôt que par mail() ou /usr/lib/sendmail
Plutôt que d'arrêter d'écouter sur 127.0.0.1, modifier la ligne mynetworks et retirer 127.0.0.1.
Ainsi il y aura une trace dans les logs.

AnonymousCoward
11/03/2015, 18h59
C'est idiot mais j'avais répondu à cette question sur le forum kimsufi et mon message est en attente de modération depuis plusieurs jours. Merci le modo en vacances...

Toujours est-il que ne pas écouter sur 127.0.0.1 sur le port 25 (ou 587 ou 465) ne résoudra rien car Postfix en local ne passe pas par les sockets. Cela passe par la commande sendmail qui fait appel à postdrop.

Et interdire l'usage de la fonction mail() se contourne. Il suffit de faire un bout de code qui appelle directement sendmail.

Le mieux à faire est de bloquer les connexions sortantes vers le port 25 et d'utiliser l'option qui va bien dans la conf de Postfix pour interdire le user www-data ou autre à soumettre des emails à Postfix.

--
AnonymousCoward

Nowwhat
11/03/2015, 17h02
Citation Envoyé par kmchen
....
Ce domaine n'est sensé envoyer aucun mail. Comment pourais-je refuser de relayer ses mails au niveau postfix ?
Plusieurs pistes :
Utiliser pour cette domaine un php.ini dédié, et interdire l'utilisation de la fonction PHPmail() - paramétrer Joomla 1.0 pour qu'il utilse SMTP + authentification.
Rendre un max de répertoires : écriture - interdit - ou même, si le site ne propose pas d'upload ou autre auto-modification: interdire l'update ou écriture partout.

De plus: sache qu'envoyer des spams va donner à OVH le droit de couper carrément ta porte "25" vers les autres serveurs. Plus aucun mail ne sortira de ton serveur.

Par contre: garder un Joomla 1.0 "en vie" sur un site publique est presque "demander expressément de se faire emmerder un max ....."
L'erreur été de modeler une structure (CMS) pour qu'il n'accepte plus des mise à jour (qui peuvent détruire vos personnalisations).
Les CMS modernes acceptent aujourd'hui un niveau de personnalisation sans que vous devez modifier la super structure.

fritz2cat
11/03/2015, 16h30
Ne pas écouter sur 127.0.0.1 par exemple.

kmchen
11/03/2015, 13h36
Merci pour vos soutiens.
J'ai refait une maj du system (qui date à peine de trois mois). Je n'ai malheureusement gardé aucun spam pour l'analyser maintenant. Au prochain spam...;-)
Je soupçonne un site joomla 1.0 que je ne peux mettre à jour car ce serait un travail énorme et c'est un site personnel. Mais aucun script php n'a été touché ni ajouté. J'ai jusqu'à présent réussi à protéger ce site en interdisant l'écriture dans les dossiers du CMS et en interdisant l'execution de scripts dans les dossiers de données type image, tmp, etc...

En faisant un rsync --delete du site j'obtiens ces messages suspect sans que les fichiers indiqués existent:
rsync: mkstemp "/var/www/les-meilleurs-films.net/web/..buildpath.7PDT6Z" failed: Permission denied (13)
rsync: mkstemp "/var/www/les-meilleurs-films.net/web/..directory.YH2ULF" failed: Permission denied (13)
rsync: mkstemp "/var/www/les-meilleurs-films.net/web/.CHANGELOG.php.0hZWql" failed: Permission denied (13)
rsync: mkstemp "/var/www/les-meilleurs-films.net/web/.COPYRIGHT.php.BzQ050" failed: Permission denied (13)
rsync: mkstemp "/var/www/les-meilleurs-films.net/web/.INSTALL.php.9C74KG" failed: Permission denied (13)
rsync: mkstemp "/var/www/les-meilleurs-films.net/web/.LICENSE.php.gZO9pm" failed: Permission denied (13)
rsync: mkstemp "/var/www/les-meilleurs-films.net/web/.chmod777.y08e51" failed: Permission denied (13)
rsync: mkstemp "/var/www/les-meilleurs-films.net/web/.configuration.php-dist.k8KkKH" failed: Permission denied (13)
rsync: mkstemp "/var/www/les-meilleurs-films.net/web/.configuration.php.ks392200.jBNqpn" failed: Permission denied (13)
rsync: mkstemp "/var/www/les-meilleurs-films.net/web/.error.log.5gix42" failed: Permission denied (13)
rsync: mkstemp "/var/www/les-meilleurs-films.net/web/.globals.php.gT5DJI" failed: Permission denied (13)
rsync: mkstemp "/var/www/les-meilleurs-films.net/web/.images.jpeg.S6kLoo" failed: Permission denied (13)
rsync: mkstemp "/var/www/les-meilleurs-films.net/web/.index.php.emTS33" failed: Permission denied (13)
Existe-t-il un autre moyen d'envoyer des mails en masse vers le serveur smtp local que l'insertion de scripts php ?

Ce domaine n'est sensé envoyer aucun mail. Comment pourais-je refuser de relayer ses mails au niveau postfix ?

Rizz
09/03/2015, 21h05
J'ai un serveur qui est piraté de façon récurrente. Jusqu'à présent j'ai toujours retrouvé des fichiers php
Malheureusement retrouver des fichier PHP n'apporte aucune aide. Faut trouver la faille et la corriger.

AnonymousCoward
09/03/2015, 16h52
Citation Envoyé par captainadmin
...
Pour identifier le programme qui envoie des spam il faut prendre un ou les spam en question et regarder les infos X-PHP-Origin et X-Mailer
...
Si l'espace web est piraté, rien n'empêche le malandrin d'uploader un script PHP qui envoie des emails en contournant complètement les librairies phpMailer et SwiftMailer mais également la fonction mail() du PHP. Et dans ce cas, tu n'as pas la moindre entête.

La seule solution pour éviter le déluge de SPAM au moindre piratage est d'interdire les connexions TCP sortantes à destination du port 25 (les clients, eux, pourront toujours communiquer avec leurs serveurs de mails sur les ports 587 ou 465). Puis de mettre en place une protection anti-SPAM sur les emails sortant, installée sur le serveur mail local au serveur web ou sur un serveur de mail relais (smarthost).

Les connexions à destination du port 25 sont censées n'être que les connexions entre serveurs. Entre un client et un serveur, c'est normalement le port 587 (SMTP submission). Cette règle a justement été mis en place pour éviter aux serveurs web piratés de noyer leur monde sous le SPAM.

Pour une solution anti-SPAM sur les emails sortant, je ne connais rien de très pratique en open-source. On peut trouver des pistes en interrogeant le grand Google sur la "linux outbound SPAM detection".

--
AnonymousCoward

shirokoweb
08/03/2015, 21h47
Je suis une souris qui adore les fromages à trous

Nowwhat
08/03/2015, 21h15
Citation Envoyé par sich
Perso dans ce genre de situation je remonte un nouveau serveur, puis je transfert les données..
Parc e que la faille est dans l'IP? le disque dur, le RAM, ou même : Debian ?
Dans ce cas, des millions des serveurs sont hacké dès ce soir.

Le soucis va lui suivre, car il va déménager avec les ces scripts (sites, paramétrage).

Citation Envoyé par sich
Mais dans la mesure du possible je passe par une installe neuve des CMS....
J'ai comparé UN des mes sites WP (à jour !) que j'ai installé, ça fait deux années. Surprise: le copie sur mon serveur est la même que un WP que j"ai télécharge pour comparaison à partir de http://fr.wordpress.org/
Sauf que:
J'ai quelques plugins qui ne sont pas présent dans l'original
J'ai mon répertoire upload plein de sous répertoires et images (QUE de VRAI images)
La base des données contient plus des traces de paramétrage.
J'ai trouve quelques fichiers 'orphelin' mais ils sont listé et connu chez WP - j'ai pu le supprimer - ces fichiers sont sans danger (risque de faille).

Citation Envoyé par sich
Wordpress notamment est une vraie catastrophe pour les attaques... J'ai pas mal de clients qui ont eu des soucis avec celui là....
J'ai 3 sites WP depuis pas mal de temps - certains, des années.
C'est vrai, un vrai usine à gaz ....
Mais ce qui rassure est le dev en permanence par des centaines des milliers des gens - chaque faille est détecté, réparé.

Mais la vraie faille dans le concept de WP est de donner au gens d’installer des plugins (extension). Ce plugins, ils ne sont pas écrit par les pros, mais par des gens comme .... toi et moi - et pire: mon fils ( ). Et c'est là ou tout commence à foirer.
Il suffit de se rendre compte quand on regarde le stats de visites d'un site WP: des milliers des lignes qui démontre qu'un visiteur (un robo certainement) "pour voir" si t'as un plugin X installé qui est connu pour avoir la faille "Y". Si c'est le cas, un type va revenir pour exploiter cette faille, upload son fichier de contrôle (et modifier son date d'écriture, dernière modification :!) puis faire son salle boulot.

Se protéger est simple: n'installe JAMAIS un plugin si t'as pas compris comment il travaille, ce qu'il fait (il faut lire et comprendre le PHP !) Si ça ce n'est pas une option: n'utilise QUE des plugins (et thèmes) qui sont hyper bien suivi, connu, mise à jour régulièrement puis assume que tu utilise des lignes de code NON-WP donc sans garantie.

Il faut savoir que WP est pas mal pour le type qui cherche à publier de l'info pour son boulot, asso ou autre groupe des gens avec un passion identique.
Mais pour l'admin, c'est comme avant : avant d’utiliser des scripts des autres (== WP), il faut comprendre ce qui se passe.

Pour moi c'est RAZ depuis toujours WP (et pourtant je n’aimai pas ce CMS avant ... ).

sich
08/03/2015, 10h40
Perso dans ce genre de situation je remonte un nouveau serveur, puis je transfert les données.
Mais dans la mesure du possible je passe par une installe neuve des CMS....

Wordpress notamment est une vraie catastrophe pour les attaques... J'ai pas mal de clients qui ont eu des soucis avec celui là....

Bon courage en tout cas !

captainadmin
08/03/2015, 10h34
Bonjour,

Pour identifier le programme qui envoie des spam il faut prendre un ou les spam en question et regarder les infos X-PHP-Origin et X-Mailer

mailq #pour la liste des mails dans la queue
postcat -q 641608E1172 # le nombre correspond à l'identifiant du mail

Ensuite tu cherches les infos.
Un find sur le script donné par X-PHP-Origin devrait trouver l'origine.

Mais tu as toujours une faille de sécurité sur ton serveur, ce qui est plus important à voir.
Il faut tout mettre à jour, vérifier que le firewall est actif, vérifier si les éléments de sécurité de base sont présent comme fail2ban, logwatch, rkhunter et j'en oublie d'autres.

Bon courage
http://www.captainadmin.com

buddy
08/03/2015, 09h38
le serveur tout court est à jour ? (apt-get update && apt-get upgrade )
Tu es sur d'avoir correctement nettoyé l'infection la première fois ? Il ne reste pas un backdoor planqué ?

Tu utilises quel CMS ? quelle version ? çà ne serait pas un plug in de CMS qui est le coupable ?

madri2
08/03/2015, 02h50
tes cms sont à jour ?

kmchen
08/03/2015, 00h51
Bonjour

J'ai un serveur qui est piraté de façon récurrente. Jusqu'à présent j'ai toujours retrouvé des fichiers php dans un des sites avec find /var/www/ -iname *.php -mtime 2 mais là je ne trouve rien et postfix est saturé de spams

Quelqu'un peut-il me donner une autre piste que l'écriture de scripts dans les sites ?

Système debian/wheezy postfix apache php. Je mets ma config postfix au cas où il y aurait un trou évident pour un spécialiste que je ne suis pas:
Code:
cat master.cf
#
# POSTFIX master.cf ks392200.kimsufi.com - Dec 2014
# Modified by KMC - Jan 2015
#
# kmc_rc*: smtp = client == mail receiving - IPV4
#87.98.160.188:smtp     inet    n       -       -       -       - smtpd
#       -o myhostname=ns1.webologix.com
#       -o smtp_helo_name=ns1.webologix.com
#       -o syslog_name=ns1.webologix.com
#       -o smtpd_tls_cert_file=/root/startssl/test-domaine.fr/ssl.crt
#       -o smtpd_tls_key_file=/root/startssl/test-domaine.fr/ssl-decrypted.key
#       -o smtpd_tls_CApath=/etc/ssl/certs
#kmc_acf
smtp      inet  n       -       -       -       -       smtpd

pickup    fifo  n       -       -       60      1       pickup
cleanup   unix  n       -       -       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
tlsmgr    unix  -       -       -       1000?   1       tlsmgr
rewrite   unix  -       -       -       -       -       trivial-rewrite
bounce    unix  -       -       -       -       0       bounce
defer     unix  -       -       -       -       0       bounce
trace     unix  -       -       -       -       0       bounce
verify    unix  -       -       -       -       1       verify
flush     unix  n       -       -       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap

# kmc_rc – smtp*: server == mail sending – ipv4
#webologix_com unix  -       -       n       -       -       smtp
#       -o smtp_bind_address6=0:0:0:0:0:ffff:5762:a0bc
#       -o smtp_bind_address=87.98.160.188
#       -o smtp_helo_name=ns1.webologix.com
#       -o syslog_name=webologix.com-transport
#       -o smtp_tls_CAfile=/root/startssl/sub.class1.server.sha2.ca.pem
#       -o smtp_tls_security_level=may
smtp      unix  -       -       -       -       -       smtp
        -o smtp_bind_address6=0:0:0:0:0:ffff:5762:a0bc
        -o smtp_bind_address=87.98.160.188
        -o smtp_helo_name=ns1.webologix.com

relay     unix  -       -       -       -       -       smtp
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       -       -       -       showq
error     unix  -       -       -       -       -       error
retry     unix  -       -       -       -       -       error
discard   unix  -       -       -       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       -       -       -       lmtp
anvil     unix  -       -       -       -       1       anvil
scache    unix  -       -       -       -       1       scache
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d vmail ${extension} ${recipient} ${user} ${nexthop} ${sender}
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail    unix  -       n       n       -       -       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  -       n       n       -       -       pipe
  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix  -       n       n       -       2       pipe
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman   unix  -       n       n       -       -       pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}

# ispconfig 3
submission inet n       -       -       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
smtps     inet  n       -       -       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}

amavis unix - - - - 2 smtp
        -o smtp_data_done_timeout=1200
        -o smtp_send_xforward_command=yes

#kmc_ac - Dkim signature
127.0.0.1:10025 inet n - - - - smtpd
        -o content_filter=
        -o local_recipient_maps=
        -o relay_recipient_maps=
        -o smtpd_restriction_classes=
        -o smtpd_client_restrictions=
        -o smtpd_helo_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o mynetworks=127.0.0.0/8
        -o strict_rfc821_envelopes=yes
        -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks


   cat main.cf
#
# POSTFIX main.cf ks392200.kimsufi.com - Dec 2014
# Modified by KMC - Jan 2015
#       smtpd_banner
#       myhostname
#       inet_interfaces
#       opendkim

smtpd_banner = $myhostname ESMTP $mail_name
biff = no
append_dot_mydomain = no
readme_directory = /usr/share/doc/postfix

# TLS parameters
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

myhostname = ns1.webologix.com

alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
myorigin = /etc/mailname
mydestination = localhost, localhost.localdomain
relayhost =
mynetworks = 127.0.0.0/8 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +

#kmc_ac- Pour limiter les interfaces où on accepte les connexions:
#inet_interfaces = all
inet_interfaces = 127.0.0.1, 87.98.160.188

html_directory = /usr/share/doc/postfix/html
virtual_alias_domains =
virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, proxy:mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /var/vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
inet_protocols = all
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf
smtpd_tls_security_level = may
transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:/etc/postfix/mysql-virtual_transports.cf
relay_domains = mysql:/etc/postfix/mysql-virtual_relaydomains.cf
relay_recipient_maps = mysql:/etc/postfix/mysql-virtual_relayrecipientmaps.cf
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks
smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf
smtpd_client_restrictions = check_client_access mysql:/etc/postfix/mysql-virtual_client.cf
smtpd_client_message_rate_limit = 100
maildrop_destination_concurrency_limit = 1
maildrop_destination_recipient_limit = 1
virtual_transport = dovecot
header_checks = regexp:/etc/postfix/header_checks
mime_header_checks = regexp:/etc/postfix/mime_header_checks
nested_header_checks = regexp:/etc/postfix/nested_header_checks
body_checks = regexp:/etc/postfix/body_checks
owner_request_special = no
smtp_tls_security_level = may
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_protocols = !SSLv2,!SSLv3
smtp_tls_protocols = !SSLv2,!SSLv3
dovecot_destination_recipient_limit = 1
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings

# kmc_ac opendkim
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891