Mon serveur est détourné pour du spam !!!

  • Auteur de la discussion Auteur de la discussion rudddy
  • Date de début Date de début
WRInaute passionné
Bonjour,

j'ai vu récemment à de plusieurs reprises que mon IP est considéré comme spam par plusieurs fai, dont hotmail.fr, wanadoo et orange.

J'ai reçu un retour de mail en erreur :

j'ai regardé le message d'origine : ce n'est pas moi qui 'avait envoyé : c'était un spam (medHelp) et j'ai analysé les entêtes de ce mail :

Return-Path: <>
Delivered-To: 1-webmaster@monmail.fr
Received: (qmail 2038 invoked from network); 28 Mar 2008 18:12:55 +0100
Received: from mx.mailprotect.be (217.19.237.57)
by nsXXXXX.ovh.net.84.101.00.in-addr.arpa with SMTP; 28 Mar 2008 18:12:55 +0100
Received: by mx.mailprotect.be (Postfix)
id EC1B74A0151; Fri, 28 Mar 2008 18:09:59 +0100 (CET)
Date: Fri, 28 Mar 2008 18:09:59 +0100 (CET)
From: MAILER-DAEMON@mx.mailprotect.be (Mail Delivery System)
Subject: Undelivered Mail Returned to Sender
To: webmaster@monmail.fr
Auto-Submitted: auto-replied
MIME-Version: 1.0
Content-Type: multipart/report; report-type=delivery-status;
boundary="5A1B64A021D.1206724199/mx.mailprotect.be"
Message-Id: <20080328170959.EC1B74A0151@mx.mailprotect.be>

et apparemment le spammeur a utilisé mon serveur pour faire son envoi !!!!

comment bloquer cela ???


Merci de votre aide !!
 
WRInaute passionné
finstreet a dit:
bon courage pour sécuriser tes formulaires :)

oui c'est vrai que j'ai un formulaire de contact sur mon site et je recois en ce moment une fois par jour une demande de spam avec des url ds mes champs de formulaire.

1- comment se protéger de cela ?
2- les spammeurs passent par là pour envoyer leur pourriel ?
 
WRInaute passionné
Hello,

les causes les plus fréquentes :
- détournement d'un formulaire de contact sur un des sites
- serveur de mail en "open relay"
- "hack de la machine" pour faire tourner un outil dédié au spam

Maintenant es tu certain que le mail en question soit bien passé par ta machine ?

Edit : pour les formulaires de contact, c'est un grand classique. Il suffit d'interdire les retours chariot dans les différents champs (From / To / Sujet généralement) et c'est réglé.
 
WRInaute passionné
Bool a dit:
Hello,

les causes les plus fréquentes :
- détournement d'un formulaire de contact sur un des sites
- serveur de mail en "open relay"
- "hack de la machine" pour faire tourner un outil dédié au spam

Maintenant es tu certain que le mail en question soit bien passé par ta machine ?

oui suivant l'entête de ce mail : il comprend mon nom de sreveur : nsXXXX.ovh.net !!!

comment vérifier les 3 points que tu as précisés ???
 
Nouveau WRInaute
- serveur de mail en "open relay"
Le plus simple : vérifier que le serveur demande bien une authentification avant de donnée la possibilité d'envoyé un mail. (vous pouvez facilement tester ça avec un telnet addresse_du_serveur 25).

Ensuite, si il demande une authentification, regarder quelles utilisateurs ont le droits d'envoyer des mails (sous linux, à parts root et les logins d'utilisateurs, il faudrait tous les bloquer .... et en particulier l'utilisateurs nobody ... ).

- "hack de la machine" pour faire tourner un outil dédié au spam
Si la machine a été piraté, jeter un coup d'oeil dans les logs (/var/logs/)
(en espérant que la hacker ne c'est pas amusé à supprimer ses traces ^^).
Des logiciels peuvent analyser automatiquement les logs
Executer des logiciels du genre chkrootkit pour linux, qui permettent de savoir si un SK est passé par là ...

- détournement d'un formulaire de contact sur un des sites
Il y avait une faille dans php, qui permettait d'utiliser le champs de sujet, pour changer d'adresse de destination ... peut être faire une mise à jour.
Sinon, faire un preg_match("#^(.*)(to|from|cc|cci)(.*): (.*)$#i",$var) sur l'ensemble des champs (j'ai pas testé ma regexp, mais ça devrait être un truc du genre :p)
 
WRInaute passionné
voila réponse du support : vous en pensez quoi ?

Bonjour,

Si vous avez eu une personne se servant de votre serveur dédié générer du spam donc certainement l'ip n'est plus blanche. Par contre vérifiez bien que vous n'avez pas autoriser d'autre domaine a pouvoir utiliser le serveur de mail de votre machine. Ensuite je vous invite a vérifier votre serveur dédié pour controler votre site et vos scripts .

Je reste à votre disposition pour tout renseignement complémentaire.

Cordialement,Kenny
 
WRInaute passionné
Bool a dit:
pour les formulaires de contact, c'est un grand classique. Il suffit d'interdire les retours chariot dans les différents champs (From / To / Sujet généralement) et c'est réglé.

comment on l'interdit ? à la saisie en js ou à la validation en php ?

Merci
 
WRInaute passionné
en PHP évidement ! le JS n'est pas interprété par les robots, et même s'il l'était il serait très facilement contourné.

Sinon la réponse du support est un truc bateau, même réponse que les nôtres en gros. C'est peut être même une réponse "pré formatée" :P
 
WRInaute passionné
Bool a dit:
en PHP évidement ! le JS n'est pas interprété par les robots, et même s'il l'était il serait très facilement contourné.
en fait, je viens de changer j'avais un vieux script avec :
Code:
extract($_POST,EXTR_OVERWRITE);
c'est aps beau ej sais mais j'ai récupéré toutes les variables une par une !!!
sinon comment bloquer le retour chariot en php ? en expression régulière, strpos, trim ??
et quels sont les codes de retour chariot ?
Merci

Bool a dit:
Sinon la réponse du support est un truc bateau, même réponse que les nôtres en gros. C'est peut être même une réponse "pré formatée" :P
:? [/quote]
 
WRInaute passionné
deathwish a dit:
Si la machine a été piraté, jeter un coup d'oeil dans les logs (/var/logs/)
(en espérant que la hacker ne c'est pas amusé à supprimer ses traces ^^).

ou la la j'ai des logs très bizarres :

87.118.64.163 - - [31/Mar/2008:00:05:32 +0200] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 299 "-" "-"
161.53.64.111 - - [31/Mar/2008:00:44:50 +0200] "GET /phpmyadmin/main.php HTTP/1.0" 404 296 "-" "-"
161.53.64.111 - - [31/Mar/2008:00:44:50 +0200] "GET /db/main.php HTTP/1.0" 404 288 "-" "-"
161.53.64.111 - - [31/Mar/2008:00:44:50 +0200] "GET /PMA/main.php HTTP/1.0" 404 289 "-" "-"
87.118.64.163 - - [31/Mar/2008:00:53:22 +0200] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 299 "-" "-"
64.182.121.85 - - [31/Mar/2008:04:02:40 +0200] "GET /thisdoesnotexistahaha.php HTTP/1.1" 404 302 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"
64.182.121.85 - - [31/Mar/2008:04:02:41 +0200] "GET /vhcs2/lostpw.php HTTP/1.1" 404 293 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"
64.182.121.85 - - [31/Mar/2008:04:02:41 +0200] "GET /vhcs2/tools/filemanager/login.php HTTP/1.1" 404 310 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"
213.186.41.69 - - [31/Mar/2008:09:26:02 +0200] "GET /phpmyadmin/main.php HTTP/1.0" 404 296 "-" "-"
213.186.41.69 - - [31/Mar/2008:09:26:03 +0200] "GET /PhpMyAdmin/main.php HTTP/1.0" 404 296 "-" "-"
213.186.41.69 - - [31/Mar/2008:09:26:03 +0200] "GET /PMA/main.php HTTP/1.0" 404 289 "-" "-"
 
WRInaute passionné
Avec un simple truc du genre par exemple :
Code:
$x = str_replace( array( "\r", "\n" ), '', $x );
 
WRInaute passionné
non c'est "classique" : un robot scrupte ton site à la recherche de failles... tant qu'il n'en trouve pas, pas vraiment de soucis.
 
WRInaute passionné
Bool a dit:
non c'est "classique" : un robot scrupte ton site à la recherche de failles... tant qu'il n'en trouve pas, pas vraiment de soucis.

ok mais le jour où i len trouve je suis fini ... :x

sinon tu sais comment bloquer mon serveur smtp à d'autres IP afin qu'ils n'utilisent plus mon serveur ?
 
WRInaute passionné
Oui c'est comme tout : si tu laisses traîner une faille, y a des chances pour qu'elle soit rapidement trouvée et exploitée.
Là le robot en question cherche visiblement des outils spécifiques : PMA et VHCS.

Pour tester l'open relay, il y a plein d'outils sur le net : https://www.google.fr/search?hl=fr&q=ope ... ogle&meta=

Après coté configuration, ça va dépendre du MTA utilisé (Qmail, Postfix, Exim, Sendmail, etc).
 
WRInaute passionné
Bool a dit:
Oui c'est comme tout : si tu laisses traîner une faille, y a des chances pour qu'elle soit rapidement trouvée et exploitée.
Là le robot en question cherche visiblement des outils spécifiques : PMA et VHCS.

Pour tester l'open relay, il y a plein d'outils sur le net : https://www.google.fr/search?hl=fr&q=ope ... ogle&meta=

Après coté configuration, ça va dépendre du MTA utilisé (Qmail, Postfix, Exim, Sendmail, etc).

je suis en qmail
 
WRInaute passionné
Je ne pourrais donc pas te répondre... mais ça t'empêche pas de faire le test avant de bousiller inutilement la configuration (surtout avec un qmail :P).
 
WRInaute passionné
Bool a dit:
Je ne pourrais donc pas te répondre... mais ça t'empêche pas de faire le test avant de bousiller inutilement la configuration (surtout avec un qmail :P).

j'ai testé mais il me mets can't connect to port 25 (idem qd je fais un telnet de mon pc !!!)

merci de ton aide
 
WRInaute passionné
Bah si tu n'as même pas de serveur SMTP sur ta machine, je ne vois pas où est le soucis...
 
WRInaute passionné
Bool a dit:
Bah si tu n'as même pas de serveur SMTP sur ta machine, je ne vois pas où est le soucis...

alors comment partent mes mails sans serveur smtp ?

voici une entête de mail que j'envoie de mon CRM :
Code:
Received: (qmail 26312 invoked from network); 31 Mar 2008 14:50:46 +0200
Received: from nsXXXX.ovh.net (HELO ns.domaine.fr) (IP.121.IP.117)
 
WRInaute passionné
Le serveur SMTP ne te sert qu'à la réception. Pour l'envoi c'est un "client" SMTP.
Le MTA sait généralement faire les deux, mais ce n'est pas pour autant la même chose.

En SSH fait un netstat -lnp afin de voir les ports ouverts. Tu verras bien si tu as vraiment un serveur SMTP écoutant sur le port 25.
 
WRInaute passionné
Bool a dit:
Le serveur SMTP ne te sert qu'à la réception. Pour l'envoi c'est un "client" SMTP.
Le MTA sait généralement faire les deux, mais ce n'est pas pour autant la même chose.

En SSH fait un netstat -lnp afin de voir les ports ouverts. Tu verras bien si tu as vraiment un serveur SMTP écoutant sur le port 25.
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2410/xinetd
 
WRInaute passionné
rofl... il doit donc y avoir une grosse temporisation, ce qui fait que les outils classiques passent leur chemin.

Regarde éventuellement dans les logs du serveur de mail pour voir si quelqu'un s'en sert de l'extérieur, mais s'il met vraiment des plombes à répondre (cf timeout telnet), y a peu de chance que ce soit le cas.

Sinon essaye d'autres test open-relay ; certains auront peut être un timeout plus élevé.
 
WRInaute passionné
Bool a dit:
Avec un simple truc du genre par exemple :
Code:
$x = str_replace( array( "\r", "\n" ), '', $x );

malheureusement, ça ne suffit pas !!!

j'ai même adapté le script suivant mais ça passe quand même encore à travers.


Code:
if (!preg_match($regex_mail, $_POST['xxx']) ||
			preg_match($regex_head, $_POST['yyy']) ||
			preg_match($regex_head, $_POST['ttt']) ||
			preg_match($regex_head, $_POST['eee']) ||
			preg_match($regex_head, $_POST['zzz']) ||
			preg_match('/http/i', $_POST['yyy']) ||
			preg_match('/http/i', $_POST['ttt']) ||
			preg_match('/http/i', $_POST['eee']) ||
			preg_match('/http/i', $_POST['zzz'])
			)
		header('location: http://www.domaine.tld/index.php');

en fait j'ai remarqué, que les spammeurs entrent leurs urls dans mes champs, donc j'ai mis :

Code:
preg_match('/http/i', $_POST['yyy'])
pour bloquer si un des champ contient http mais apparemment ca ne marche pas ...

qqn peut-il m'aider sur la syntaxe svp ?

merci
 
WRInaute passionné
Euh.... j'utilise avec succès la méthode du str_replace() depuis des années. La "faille", ils ne peuvent pas l'inventer : tu as forcément un soucis dans ton code.
 
WRInaute passionné
Bool a dit:
Euh.... j'utilise avec succès la méthode du str_replace() depuis des années. La "faille", ils ne peuvent pas l'inventer : tu as forcément un soucis dans ton code.

tu peux m'aider alors stp ?

voici mon code :

Code:
if($_POST['ACTION'] == 'validation') {
/* Expression régulière permettant de vérifier si le format d'une adresse e-mail est correct */
$regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
    
/* Expression régulière permettant de vérifier qu'aucune en-tête n'est inséré dans nos champs */
$regex_head = '/[\n\r]/';

	/* On vérifie qu'il n'y a aucun header dans les champs */
	if (!preg_match($regex_mail, $_POST['xxx']) ||
			preg_match($regex_head, $_POST['yyy']) ||
			preg_match($regex_head, $_POST['zzz']) ||
			preg_match($regex_head, $_POST['eee']) ||
			preg_match($regex_head, $_POST['fff']) ||
			preg_match('/http/i', $_POST['yyy']) ||
			preg_match('/http/i', $_POST['zzz']) ||
			preg_match('/http/i', $_POST['eee']) ||
			preg_match('/http/i', $_POST['fff'])
			)
		header('location: http://www.domaine.tld/index.php');

tu vois une faille ?

merci de ton aide
 
WRInaute passionné
Fais voir le tout, qu'on vérifie le bon déroulement du script...
Du genre après ton "Location: xxx" tu as bien mis un exit ?
 
WRInaute passionné
Oui et oui ;)
Sans le "exit" se script continue son execution... donc ta redirection ne sert à rien.
 
WRInaute passionné
Bool a dit:
Oui et oui ;)
Sans le "exit" se script continue son execution... donc ta redirection ne sert à rien.

je viens de le faire j'ai fais un test et ca marche nickel

t'es une bombe !!!
(en espérant que ca va les calmer ...)
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut