NewbieContest

Divers => Hacking => Discussion démarrée par: Jordiaz Valayan le 22 Février 2012 à 18:55:55



Titre: [Résolu] Problème de sécurité sur mon site : conseils
Posté par: Jordiaz Valayan le 22 Février 2012 à 18:55:55
Bonjour à tou(te)s.

J'ai récemment eu la désagréable surprise de voir un de mes sites hackés. (Gentillement, juste un texte effacé et deux ajouts pour marquer le passage du hackeur).
Conscient donc que ce site avait des problèmes de sécurité, j'ai donc cherché à comprendre comment il s'y était pris.

Tout d'abord le hackeur est dr.Skain, si il y en a qui connaissent...

Ma page permettant d'accéder à l'administration s'appelle admin.php, ma table stockant les utilisateurs s'appelle user avec les champs id / login / password. Jusque là, je lui ai bien facilité le travail.
Toutes les données passant dans ma requête d'identification sont "sécurisées" avec la fonction mysql_real_escape_string. Le mot de passe est en md5.
Je n'ai aucun upload de fichier possible à partir du front office.

Je ne pense pas à une injection SQL, car dans la base de donnée, la première entrée de la table user avait été modifée par le hackeur.
Le hic, c'est que je n'ai aucune requête dans mon site qui modifie cette table. La seule opération qui se fait dessus est l'identification, donc juste une consultation.

Si vous avez des idées sur la méthode utilisée et sur les développement à faire pour éviter que cela ne se reproduise, je vous en serais très reconnaissant ;)

Merci d'avance.


Titre: Re : Problème de sécurité sur mon site : conseils
Posté par: _o_ le 22 Février 2012 à 20:33:34
Tout d'abord le hackeur est

Ou prétend être. Le but peut aussi être la désinformation.

Pour ce qui est de ton problème, il ne faut pas hésiter à faire un peu de out-of-the-box :
- comment est gérée la session dans les pages ? J'ai encore vu récemment des redirections vers le login en javascript. C'est pratique, on coupe javascript et y'a plus d'authentification.
- peut-être une attaque par dictionnaire sur l'authentification ?
- as-tu une page d'admin de la base style phpmyadmin ? Est-il à jour, facile à trouver ? L'authentification forte ?
- stockes-tu autre chose dans ta base, qui serait un vecteur d'injection ? La langue ? Le user-agent ? etc.

Difficile d'en dire plus sans voir le site en question, en tout cas.


Titre: Re : Problème de sécurité sur mon site : conseils
Posté par: Jordiaz Valayan le 22 Février 2012 à 20:42:59
Bonsoir, et merci pour ta réponse.

Le site est ***.

C'est un site d'information pour une petite commune, qui n'est pas censée drainer beaucoup de trafic. Il faut vraiment en avoir envie pour tomber dessus.

Je vais essayer de répondre à tes questions du mieux possible :

Citation
- comment est gérée la session dans les pages ?

Lorsque le formulaire d'identification est soumis, je fais une requête mysql pour vérifier que le couple login / mot de passe correspond. Si oui, j'affecte une valeur à une variable $_SESSION. Cette variable me permet de déterminer si l'utilisateur qui navigue sur les pages d'admin est identifié ou pas.

Citation
- peut-être une attaque par dictionnaire sur l'authentification ?
C'est possible, mais dans ce cas, comment a-t-il modifié la table user alors qu'il n'y a aucun moyen de le faire sur le site ? Il faut forcément passer par la base de donnée.

Citation
- as-tu une page d'admin de la base style phpmyadmin ? Est-il à jour, facile à trouver ? L'authentification forte ?
Il y a l'interface de gestion du serveur mis en place par l'hébergeur. Il est à jour et pas facile à trouver. Le mot de passe permettant d'y accéder est composé de chiffres et de lettres majuscules minuscules qui ne forment pas de mot (genre Uf21sTD5x)

Citation
- stockes-tu autre chose dans ta base, qui serait un vecteur d'injection ? La langue ? Le user-agent ? etc.
Non, la seule injection dans ma base que je fais à partir du front office est une inscription à la newsletter : 3 champs textes, nom / prénom / email. Il n'y avait pas de modification dans cette base.
Toutes mes autres tables concernent le contenu du site (texte, titre, image en gros).


Titre: Re : Problème de sécurité sur mon site : conseils
Posté par: _o_ le 22 Février 2012 à 22:38:00
Je n'ai pas le temps de trop regarder, mais je constate que c'est un serveur mutualisé. C'est peut-être donc un autre site qui est le vecteur d'attaque, auquel cas le pirate aurait compromis entièrement le serveur.


Titre: Re : Problème de sécurité sur mon site : conseils
Posté par: sirk390 le 23 Février 2012 à 00:24:52
As-tu regardé les logs HTTP du serveur au moment du hack?
Ca devrait permettre d'en savoir déja un peu plus.


Titre: Re : Re : Problème de sécurité sur mon site : conseils
Posté par: the lsd le 23 Février 2012 à 00:53:02
As-tu regardé les logs HTTP du serveur au moment du hack?
Ca devrait permettre d'en savoir déja un peu plus.

Les logs http ? Sur un serveur mutualisé ? J'y crois pas trop perso.

L'idée de _o_ est très probable. La version de php est à jour sur le serveur ? Et Apache ? Et l'OS ?

Enjoy

The lsd


Titre: Re : Problème de sécurité sur mon site : conseils
Posté par: Jordiaz Valayan le 23 Février 2012 à 12:37:45
Bonjour à vous et merci de vous pencher sur mon problème.

Concernant les logs, le peu de log auquel j'ai accès ne m'a pas révélé d’incohérence, (log ftp et messages d'erreurs).

La version de PHP est le 5, Apache je n'en suis pas sur donc je ne dirai pas de bêtises. L'Os est Linux.

En regardant les stats, je vois qu'il a galéré a trouver la page d'administration. Dans les pages demandées qui ont un répondu un code 404, on trouve par exemple :

/administrator/account.asp
/db/scripts/setup.php
/user.php
/authuser.asp
/bb-admin/login.php

etc...


Titre: Re : Re : Problème de sécurité sur mon site : conseils
Posté par: _o_ le 23 Février 2012 à 14:00:23
En regardant les stats, je vois qu'il a galéré a trouver la page d'administration.

Ou pas. Vu la liste, il a probablement utilisé un scanner d'URL courantes.


Titre: Re : Problème de sécurité sur mon site : conseils
Posté par: Jordiaz Valayan le 23 Février 2012 à 14:39:33
Oui mais dans tous les cas, c'est ça qui m'échappe :

- Il a modifié une entrée dans la table user. La seule manière de la faire étant de modifier directement la base de données. (Base qui a un login / mot de passe différent de "root" / "")
- Pourquoi chercher la page d'administration si il a réussi à accéder à la base...



Titre: Re : Problème de sécurité sur mon site : conseils
Posté par: wait le 23 Février 2012 à 15:08:58
Salut,

Bon j'annonce directe, je n'ai pas assez de connaissance pour t'apporter une réponse digne de ce nom, et les "grands" ici seront là pour t'aider. Mais j'ai pensé à un truc, peut être bête ... Mais sur la page admin.php, un brute force est largement possible non ? Car il est possible de valider autant de fois qu'on veut, sans qu'il est de captcha à la suite, ou truc du genre.

Peut-être post inutile, ou alors j'espère avoir apporté ne serait-ce qu'un peu d'aide  :?

Bon courage en tout cas.

w8!


Titre: Re : Re : Problème de sécurité sur mon site : conseils
Posté par: _o_ le 23 Février 2012 à 15:15:11
- Il a modifié une entrée dans la table user. La seule manière de la faire étant de modifier directement la base de données. (Base qui a un login / mot de passe différent de "root" / "")

C'est un mutualisé. Si le monsieur a la main sur le serveur, il a la main sur toutes les bases de données qui y sont hébergées. Dur d'y voir clair sans connaitre l'architecture du serveur, et la séparation entre les clients.

Citation
- Pourquoi chercher la page d'administration si il a réussi à accéder à la base...

C'est probablement l'inverse qui s'est produit. Et encore, pour cela il faut faire l'hypothèse que le pirate qui a scanné et celui qui a modifié la BDD sont une seule et même personne, ce qui n'est pas garanti non plus.


Titre: Re : Re : Problème de sécurité sur mon site : conseils
Posté par: Jordiaz Valayan le 23 Février 2012 à 17:23:20

sur la page admin.php, un brute force est largement possible non ?

Oui, le bruteforce est possible, et les mots de passes n'étaient pas extrêmement complexes (je les ai changés au cas où). Il aurait peut être pu dans ce cas modifier la table user en utilisant les fonctions d'upload image / pdf. Je ne mets en sécurité sur l'upload qu'un test sur l'extension du fichier, mais il me semble avoir vu une épreuve ici qui démontrait que ce n'était pas suffisant ;)

Oui, c'est une possibilité.


Titre: Re : Problème de sécurité sur mon site : conseils
Posté par: CommComm le 23 Février 2012 à 18:54:11
Je te mets un mot en privé. On accède à des choses sympathiques en deux minutes.


Titre: Re : Problème de sécurité sur mon site : conseils
Posté par: Jordiaz Valayan le 23 Février 2012 à 19:28:05
Merci CommComm, en effet, c'était très sympathique...


Titre: Re : Problème de sécurité sur mon site : conseils
Posté par: CommComm le 23 Février 2012 à 19:38:17
C'est bon. J'ai l'admin du site. En douceur et sans bruteforce :)
Je t'ai remis un mp, bien sûr.

Quand je passe à Mellé, je m'arrête pour me faire offrir une bière :)


Titre: Re : Problème de sécurité sur mon site : conseils
Posté par: Jordiaz Valayan le 23 Février 2012 à 19:49:29
Merci encore CommComm.

Donc petite explication :

... [J'ai viré le topo car avec ce que tu indiques on peut encore prendre la main. Et il y a peut-être d'autres moyens, donc silence...]

Affaire bouclée.

Merci à vous tous pour votre aide et votre réactivité. J'ai corrigé du mieux que j'ai pu la faille ... [même chose].

Quand je passe à Mellé, je m'arrête pour me faire offrir une bière :)

Pas de soucis ;) Même deux


Titre: Re : Re : Problème de sécurité sur mon site : conseils
Posté par: the lsd le 23 Février 2012 à 19:50:56
Bonsoir, et merci pour ta réponse.

Le site est /* moderated par the lsd : en fait, il vaut mieux éviter, on sait jamais !*/.

C'est un site d'information pour une petite commune, qui n'est pas censée drainer beaucoup de trafic. Il faut vraiment en avoir envie pour tomber dessus.

Je vais essayer de répondre à tes questions du mieux possible :

Citation
- comment est gérée la session dans les pages ?

Lorsque le formulaire d'identification est soumis, je fais une requête mysql pour vérifier que le couple login / mot de passe correspond. Si oui, j'affecte une valeur à une variable $_SESSION. Cette variable me permet de déterminer si l'utilisateur qui navigue sur les pages d'admin est identifié ou pas.

Citation
- peut-être une attaque par dictionnaire sur l'authentification ?
C'est possible, mais dans ce cas, comment a-t-il modifié la table user alors qu'il n'y a aucun moyen de le faire sur le site ? Il faut forcément passer par la base de donnée.

Citation
- as-tu une page d'admin de la base style phpmyadmin ? Est-il à jour, facile à trouver ? L'authentification forte ?
Il y a l'interface de gestion du serveur mis en place par l'hébergeur. Il est à jour et pas facile à trouver. Le mot de passe permettant d'y accéder est composé de chiffres et de lettres majuscules minuscules qui ne forment pas de mot (genre Uf21sTD5x)

Citation
- stockes-tu autre chose dans ta base, qui serait un vecteur d'injection ? La langue ? Le user-agent ? etc.
Non, la seule injection dans ma base que je fais à partir du front office est une inscription à la newsletter : 3 champs textes, nom / prénom / email. Il n'y avait pas de modification dans cette base.
Toutes mes autres tables concernent le contenu du site (texte, titre, image en gros).