PROJET AUTOBLOG


Le blog de Seboss666

Site original : Le blog de Seboss666

⇐ retour index

Causons un peu de santé (la mienne en l’occurrence)

samedi 18 novembre 2017 à 10:30

À force de me demander si « c’est pas trop grave » quand j’évoque mon opération prochaine, on va faire une petite mise au point pour éviter d’avoir à en reparler. Surtout que c’est pas sorcier, c’est pas « grave », c’est juste chiant et ça traîne depuis trop longtemps.

Je vais me faire opérer pour réparer une hernie inguinale. Pour la faire courte, un bout de mon intestin a quitté l’abdomen via le canal inguinal, élargi lors de mon activité de magasinier et de maçon (un parcours chaotique vous en conviendrez), et cohabite maintenant depuis quelques années avec un de mes testicules. Comme d’habitude, Wikipédia vous en dira plus si tant est que vous comprenez tout ce que dit l’article.

C’est sexy n’est-ce pas ? Je vous épargne les photos, de toute façon, il vous suffira de vous rendre sur votre moteur de recherche favori pour voir la joie que ça représente. Mais je risque quoi avec ça ? Principalement, une occlusion intestinale, avec à la clé la mort dans les six heures. Et ma mère est déjà passée par là (prise en charge à temps, fort heureusement), donc je sais que c’est moyen. Sinon, parfois le morceau d’intestin s’enflamme un peu et c’est douloureux, les pires « crises » me bloquant complètement pendant quelques secondes à quelques minutes, à ne plus pouvoir tenir debout. Mais c’est devenu extrêmement rare, surtout depuis que je ne suis plus travailleur manuel (dans le sens où je dois produire un effort physique significatif). Dernier désagrément, un transit intestinal parfois contrarié. Je vous l’ai dit que c’était sexy ?

Et on a l’avantage, en France, d’avoir les compétences et les infrastructures pour que l’opération se déroule dans de bonnes conditions. Jugez donc : ça se passera en ambulatoire, ce qui veut dire que je rentre le matin (tôt), je me fais opérer (une bonne heure d’après le chirurgien), et si le soir il n’y a rien de particulier à signaler, je rentre chez moi (enfin en l’occurrence, chez ma maman), avec deux semaines d’arrêt maladie, et une semaine de bas de contention pour limiter un risque de phlébite. Restera ensuite une attente de deux mois avant de pouvoir vraiment réexploiter pleinement mon corps. Évidemment le risque zéro n’existe pas, mais c’est un sujet assez maîtrisé, et je vais être pris en charge par un chirurgien pas mal expérimenté.

Le plus débile finalement, et qui est lié à différentes expériences personnelles que je ne vais pas étaler aujourd’hui parce que ce n’est pas une séance de psychologie, c’est que j’ai mis presque une dizaine d’années à me décider à me faire opérer. Une première étape d’un plan plus général pour me délester de quelques kilos en trop qui commencent non seulement à peser salement sur mes chevilles et mes genoux, mais également sur ma tension, et donc mon cœur. À 35 ans c’est un peu con, surtout quand je repense au niveau d’activités que j’avais en sortie de lycée.

Bref, une fois réparé, je vais pouvoir rebouger un peu, et pourquoi pas enfin me servir de mon sabre laser pour pratiquer à la Sport Saber League de France. En plus c’est drôle ça fait SSL.

APT vs Windows Update, oui mais…

vendredi 17 novembre 2017 à 18:30

Je viens de voir que j’ai pas mal de retard sur le blog, il est vrai que ces derniers temps beaucoup de boulot de fond ou hors monde numérique donc le blog passe après. En attendant la finalisation de quelques articles un peu plus étoffés, j’aimerai apporter mon éclairage à cet article du blog de Tesla comparant les mises à jour apt Debian contre Windows. Parce qu’on ne peut pas commenter, et qu’il y a deux trois trucs à rappeler.

NB : pour les plus casses-couilles qui me penseraient vendus à Debian, la remarque vaut aussi bien pour APT que pour YUM/RPM, Pacman, et même Gentoo/emerge. Pratiquement tous les systèmes de packaging sous Linux en fait.

Il y a une différence fondamentale dans la construction des systèmes Debian et Windows : le premier est entièrement construit à partir des paquets qui sont fournis sur les dépôts, alors que Microsoft construit son image direct à partir des sources pour ensuite ne proposer que des patches.

Le mot patch est important : en fait, à chaque mise à jour d’un composant, sous Debian vous récupérez l’intégralité de ce composant comme si vous l’installiez pour la première fois. Seule votre configuration est conservée. Et ce quand bien même la mise à jour ne concerne, sous le capot, qu’une partie des fichiers du paquet en question. Microsoft, au contraire, ne va proposer au travers d’une mise à jour que le strict nécessaire à la mise à jour d’un de ses morceaux. La conséquence c’est que parfois ils font du patch de patch, donc vous devez effectivement enchaîner les mises à jour et parfois les redémarrages pour pouvoir arriver à un système à jour, ce qui est, je suis d’accord, infiniment frustrant et pénible.

La cause profonde sera difficile à corriger : sous Windows, et même si ce n’est pas toujours parfait, il y a un fort contrôle d’intégrité des fichiers de base du système, qui interdit toute modification à chaud. Ce qui impose un redémarrage pour appliquer les modifications et les tables de contrôle avant le chargement des composants à jour. Un mécanisme qui n’est pas présent par défaut sous Debian et dérivés.

Il y a un cependant un gros inconvénient aux paquets complets : la consommation de bande passante. Pour être sous Manjaro, petite fille d’ArchLinux, les mises à jour qui se produisent toutes les semaines voire tous les 15 jours pèsent en moyenne 300 à 400 Mo. En dehors des mauvais mois Microsoft vous impose une centaine de Mo le deuxième mardi de chaque mois, un peu plus certes si vous mangez cher avec Office. Si vous êtes contraint de survivre sur connexion 3g/4g, avec un forfait data particulièrement contraint vu les usages récents, c’est pas la joie (me souviens avoir mangé 4Go en une heure sur les 5 mensuels que contenait mon forfait d’alors–c’était il y a un peu plus d’un an). Et tout le monde n’a pas encore de fibre optique au niveau résidentiel, en particulier les structures disposant d’une dizaine de machines au minimum comme les écoles (bisou Cyrille, courage pour les salles infos).

D’ailleurs, ce comportement du « package complet » se retrouve sous Windows pour d’autres couches que l’OS. Les « g@merz » savent combien pèsent les nouveaux drivers de cartes graphiques de nos jours qui sont obligatoires ou presque à chaque sortie de nouveau jeu : celui pour ma carte graphique sous Windows 7 me coûtera quasiment 400Mo. Les utilisateurs de Libre office qui suivent les mises à jour se mangent 200Mo à chaque release. Et je pourrais certainement trouver masse d’autres exemples.

Mais je confirme que c’est plaisant, quand on réinstalle, de gagner un temps fou sous Linux en ayant qu’une seule passe à faire, surtout qu’elle peut être lancée en même temps, et donc on a pas l’impression d’être interrompu avant de pouvoir réellement utiliser son ordinateur. Mais à moins de passer ses journées à faire et refaire des installations, c’est un avantage qui ne se voit pas souvent.

Reste le fait qu’on installe tous ses logiciels sous Linux via le même gestionnaire de paquets, là où Windows Update est réservé aux mises à jour (il porte finalement très bien son nom). Pour le reste il faut se taper le Windows Store et donc se faire espionner par Microsoft et ses partenaires publicitaires (car ça demande un compte Microsoft, comme si nous étions sur mobile). Ou continuer à gérer ses logiciels à la main comme un grand, même si des solutions comme WAPT ou Chocolatey commencent à émerger. Elle est pas belle l’informatique « de bureau Windows » de 2017 ?

Gogs : mettre en place un miroir vers GitHub

jeudi 9 novembre 2017 à 18:30

Pour ceux qui ne connaissent pas, Gogs est un service Git auto-hébergé pour gérer vos dépôts de codes. J’avais tenté l’installation du très puissant Gitlab mais ce dernier consomme beaucoup trop de ressources pour qu’il reste un candidat sur mon micro-serveur. Après avoir un peu souffert à l’installation (je détaille pas mais je l’ai cherché), j’ai commencé réellement à bosser avec récemment. Et pour certains des dépôts, je souhaite qu’il soient recopiés sur GitHub, si possible automatiquement. Et c’est assez facile à mettre en place en fait.

Rapide contexte

Gogs est écrit en langage go. Son installation et sa configuration se veulent simplifiées, mais j’ai complexifié le truc « exprès » pour m’exercer un peu sur Postgresql. Il est même possible de l’installer via Docker, et il n’est pas impossible que je déporte mon installation actuelle ou que je la refasse pour basculer sur le cluster Swarm que j’essaie désespérément de monter.

La spécificité c’est donc qu’il est auto-hébergé, nécessairement privé. Mais j’ai également un compte GitHub, et si on pouvait faire en sorte de pousser automatiquement sur GitHub quand on pousse sur Gogs, c’est cool. Sans avoir besoin de la puissance de l’option intégration continue d’un Gitlab beaucoup trop lourd pour mes besoins persos, on a quand même les hooks, qui sont une fonctionnalité de Git.

Quelques étapes simples

En premier lieu, configurer l’accès SSH entre l’instance Gogs et Github. Pour ça, on se connecte sur gogs, et on bascule sur l’utilisateur git qui est celui utilisé par le logiciel. Il faut ensuite se créer une clé SSH, pour ma part je n’ai pas configuré de passphrase :

git@gogs:~/.ssh$ man ssh-keygen 
git@gogs:~/.ssh$ ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/git/.ssh/id_ed25519): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/git/.ssh/id_ed25519.
Your public key has been saved in /home/git/.ssh/id_ed25519.pub.
The key fingerprint is:
4d:d5:cb:a4:9f:0a:93:1b:13:9c:d3:8d:23:3e:a6:11 git@gogs
The key's randomart image is:
+--[ED25519 256]--+
|            ..   |
|           .  o  |
|         ..o * . |
|        Eo* = +  |
|        So.= o . |
|        . X   o  |
|         + B .   |
|        . . .    |
|                 |
+-----------------+
git@gogs:~/.ssh$ cat id_ed25519.pub 
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBeo5HVJCBAggpcSh9RPgUMgg0710etf21sNChjllJyf git@gogs

On ajoute ensuite cette clé sur son compte GitHub via l’interface web :

Tant qu’on est sur GitHub, profitons-en pour créer un dépôt vide, avec le nom qu’un veut. Par feignantise, j’ai utilisé le même que celui du dépôt privé. Attention, il faut absolument qu’il soit vide de tout, il ne faut donc pas sélectionner de licence ou de README.md dans le formulaire de création, sinon techniquement il y aura déjà un commit et ça sera l’enfer pour l’exploiter.

On teste maintenant la connexion depuis Gogs :

git@gogs:~/.ssh$ ssh git@github.com
The authenticity of host 'github.com (192.30.253.112)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.253.112' (RSA) to the list of known hosts.
PTY allocation request failed on channel 0
Hi seboss666! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

Parfait. Rendons-nous maintenant sur l’interface web de Gogs pour y configurer un hook. Pour cela, il faut sélectionner l’un de vos dépôts, se rendre dans les paramètres de ce dépôt, il y a un menu Git hooks :

Il faut modifier le post-receive, qui est vide pour l’instant, et ajouter les lignes suivantes :

#!/bin/bash
git push --mirror git@github.com:seboss666/misc-scripts.git

On enregistre, et… c’est tout. Lors de votre prochain push sur le dépôt, il va ensuite automatiquement renvoyer les modifications sur GitHub :

[seboss666@seboss666-ltp ~/dev/misc-scripts (master) ]$ git push origin master
Décompte des objets: 3, fait.
Delta compression using up to 4 threads.
Compression des objets: 100% (3/3), fait.
Écriture des objets: 100% (3/3), 403 bytes | 403.00 KiB/s, fait.
Total 3 (delta 1), reused 0 (delta 0)
remote: Warning: Permanently added the RSA host key for IP address '192.30.253.113' to the list of known hosts.
remote: To git@github.com:seboss666/misc-scripts.git
remote:  * [new branch]      master -> master
To ssh://gogs.seboss666.ovh/Seboss666/misc-scripts
   f2d9016..47ef107  master -> master

Voilà, maintenant, je vais pouvoir reprendre petit à petit les différentes broutilles que j’ai pu vous balancer au fil des années sur le blog et les ajouter là-dedans. En passant, l’utilisation via mon rebond SSH fonctionne très bien pour taper sur mon instance Gogs 🙂

PS : J’indique qu’il ne faut pas ajouter la licence sur le dépôt créé sur GitHub, je l’avais fait sur Gogs, et GitHub a détecté le fichier et affiche correctement la licence sur la page du dépôt 😉

Quelques liens en vrac et en français, 24° édition

mardi 7 novembre 2017 à 18:30

Encore plein d’articles intéressants sur différents domaines, du technique, de l’un peu moins technique, et même un peu de politique, sale évidemment, c’est la norme semble-t-il cette année…

BOINC, systemd et priorité des processus sous Linux

L’arrivée de systemd et de l’exploitation des cgroups pour l’ordonnancement des processus au sein du noyau linux a eu un effet de bord relativement inattendu sur la gestion et l’utilisation du « nice ». Paul nous présente donc comment s’en sortir avec l’exemple du service BOINC (calcul scientifique partagé).

Le piratage d’Equifax

Equifax est une société qui fait de la notation de crédit : ils collectent des données sur des personnes poru évaluer leur capacité à rembourser un emprunt. Et donc la collecte est importante, très intrusive, pour pouvoir dresser le profil le plus précis possible. Hors, comme il est de plus en plus courant, Equifax a fait l’object d’une attaque qui a conduit à une énorme fuite de données personnelles, de celles qui permettent d’usurper quantité d’identités, avec les conséquences désastreuses que l’on sait pour les personnes touchées. Et leur comportement face à cette crise est plus que douteux à bien des niveaux.

De l’état du marché du développement

C’est une réalité, les logiciels et les algorithmes sont amenés à prendre de plus en plus de place dans notre vie quotidienne, encore plus qu’actuellement, et nos dirigés pensent qu’il est nécessaire de « produire » plus de codeurs. Mais le problème est-il vraiment dans les cursus ? Pas nécessairement si l’on en croit Jean-Baptiste Dusseaut d’Arpinum, qui dresse un portrait peu glorieux du marché, et des entreprises notamment française dans le domaine du développement logiciel.

Wget derrière un SSO

On a beau vous rabâcher que les cookies c’est le mal, j’ai déjà eu l’occasion de m’exprimer sur leur réelle utilité technique. Mais quand vous avez besoin de faire des tests via wget (ou curl) avec un session connectée, c’est compliqué, à moins de pouvoir récupérer un cookie déjà enregistré et valide pour votre application. Et c’est Genma qui vous présente la manipulation, même si l’extension proposée ne sera plus exploitable avec Firefox 57 (j’ai collé ma petite contribution en commentaire 😉 ).

Le paradoxe de Monty Hall (…disponible également en version « pigeon »)

Monty Hall était un présentateur de télévision dans les années 60 (et j’ai découvert que ça a duré bien plus longtemps que ça) qui présentait un jeu dont la phase finale, relativement simple, plaçait le candidat face à trois portes, avec un cadeau derrière l’une d’entre elles, le but consistant à sélectionner la bonne porte. Le plus étrange avec ce jeu, c’est que les pigeons semblent plus enclins à découvrir la meilleure façon de gagner que nous. Je sais que pour la première fois de l’histoire le QI moyen a légèrement baissé, mais tout de même, c’est cocasse 🙂

Vos clés (physiques) ne sont pas en sécurité sur Internet

Vous pensez que votre domicile, votre valise, votre carte bleue, sont en sécurité dans le monde « physique » ? Que nenni, grâce à la magie des réseaux sociaux et à un étalage immodéré de notre vie privée sur ceux-ci, il est possible de récupérer quantité d’informations permettant ainsi d’accéder à ce que vous pensiez en sécurité. Petit florilège à partager aux personnes ayant donc une très mauvaise hygiène.

L’UE a dissimulé un rapport montrant que le piratage n’a pas d’effet négatif sur la vente de contenu protégé

Si on voulait encore une preuve de la collusion des élus même au niveau européen avec les lobbies d’industries culturelles, la voilà : un rapport de 360000€ sur l’étude de l’impact du piratage de contenus sur leurs ventes qui n’aboutit pas aux conclusions qui plaisent aux ayant-tous-les-droits, enterré par les commanditaires. Fort heureusement, il reste quelques irréductibles comme l’incontournable Julia Reda du Parti Pirate pour bien remettre le nez dans leur merde à ces corrompus (parce que là c’est pas possible que ça soit une erreur).

Infiltration : Ne pas mettre à jour son blog… et c’est le drame

On ne le dira jamais assez : si vous basez votre site sur un gestionnaire de contenus (Content Management System dans la langue de Taylor Swift), il faut le tenir à jour, aussi bien la base que les différents plugins et thèmes, et ça vaut aussi si d’aventure vous développez du code custom dessus.

Quelles conséquences si jamais vous négligez cette situation ? Eh bien, j’aurai pu moi-même faire un article, mais finalement, c’est déjà très bien fait par des gens dont c’est le métier en plus. Une chose à retenir : si votre site est détourné à des fins malveillantes, c’est d’abord vers vous qu’on va se retourner et emmerder comme pas possible. Demandez à ceux dont le serveur a été saisi en début d’année suite à l’attaque Wannacry sous prétexte que celui-ci communiquait via Tor.

Tour d’horizon sur HTTPS et les en-têtes de sécurité

Le mouvement de chiffrement des communications web est définitivement engagé, et il est plus qu’improbable qu’on reviendra en arrière étant donné qu’il faut maintenant se protéger de nos propres gouvernements y compris pour les communications les plus simples. Mais si la partie cryptographique est une base solide, il est facile d’oublier qu’on peut faire plein de choses sympa pour améliorer l’expérience et le niveau de sécurité via de simples entêtes HTTP. Pourquoi s’en priver dès lors ?

10 mythes sur la vie privée sur Internet

Vous pensez que votre vie privée est à l’abri sur Internet, ainsi que votre anonymat ? Pas de bol, il va falloir réviser votre jugement, et c’est une bonne base de passer par cet article très simple mais pas simpliste, en donnant des pistes simples pour démonter chaque mythe.

Guide d’autodéfense numérique : deuxième parution papier

Le guide d’autodéfense numérique est avant tout publié en ligne. C’est l’étape suivante après avoir mis en pratique des mesures d’hygiène numérique, et que l’on veut aller encore plus loin dans la préservation de nos activités en ligne. La version papier a son intérêt : on risque moins d’être surveillé en la lisant qu’en lisant la version en ligne. Comme d’habitude, vous n’avez pas nécessairement besoin de mettre la totalité des propositions en pratique. Tous les détails sur le site de linuxfr.

Super Logout

Ce site n’est pas français, mais bon, c’est pas grave, il est intéressant. Il permet d’appeler d’une seule traite la plupart des pages de déconnexion de dizaines de sites en ligne, principalement des services en ligne américains.

CTF Quaoar : la démonstration de l’utilité des bonnes pratiques de sécurité

dimanche 5 novembre 2017 à 10:30

Quand on dit qu’il faut éviter les mots de passe par défaut, de suivre les mises à jour de sécurité d’un système (en l’occurrence ici le moteur de blog), ce ne sont pas des paroles en l’air. Et pour vous prouver ça, j’ai décidé de me pencher sur un exemple de challenge disponible sur le site vulnhub.com, qui propose une machine virtuelle prête à l’emploi à attaquer. Et j’annonce tout de suite, pour les moins techniciens, ne fuyez pas trop vite, je vais essayer d’expliquer au plus simple chaque étape.

En fait, c’est par le biais du Journal du Hacker que j’ai découvert ce challenge, simple au demeurant comme on va le voir. J’ai commencé à regarder la vidéo, et dès que j’ai vu qu’il y avait un WordPress, ça a fait tilt dans ma tête creuse, j’ai arrêté la vidéo et je me suis dit que j’allais m’y attaquer moi aussi. Après tout, WordPress est probablement le moteur de sites web le plus utilisé à l’heure actuelle, il est donc nécessaire de vous rappeler à quoi vous vous exposez en l’exploitant de travers, et moi de m’exercer un peu pour l’année prochaine et la prochaine Nuit du Hack (encore que le niveau est assez bas ici apparemment). Et donc, un petit CTF, c’est à dire un Catch The Flag, à savoir que des « drapeaux » sont cachés sur le système à attaquer qu’il faut découvrir pour marquer des points.

Rappel d’usage : il est strictement interdit par la loi de procéder à ce type de manipulation sur un système qui ne vous appartient pas.

Bon, reprenons depuis le début : on télécharge la VM, on l’importe dans Virtualbox, et on la démarre. Pour ceux qui sont déjà un peu perdus, la machine virtuelle simule un équipement distant sur la même machine physique. Car pour rappel, techniquement un serveur sur lequel se trouve un site web n’est finalement à la base que la même chose que votre PC, juste adapté (pas besoin d’écran, par exemple). Virtualbox vous permet donc de démarrer plusieurs systèmes, et dans le cas présent je vais en avoir deux : la cible, et une instance Kali, une distribution Linux spécialisée justement pour les tests de sécurité.

Tout ce qu’on sait en démarrant la machine cible, c’est son adresse IP : ici, c’est 192.168.1.4. On va donc commencer par faire un scan de ports, pour savoir sous quel angle on peut attaquer la machine. Un port, dans le domaine des communications informatiques, peut être vu comme une porte sur une maison, un point d’entrée pour communiquer avec un service : quand votre navigateur vous affiche un site, il demande la page au serveur via le protocole (langage) HTTP sur le port 80; plusieurs ports sont normalisés de la sorte, je ne vais pas faire un listing complet et en plus, en théorie, pour n’importe quel service on peut techniquement changer le port par défaut.

Ici, plusieurs informations différentes, on voit donc du SSH, pour interagir en ligne de commande à distance avec la machine, du HTTP, pour servir des pages web, du DNS, pour jouer aux pages jaunes, et du mail (IMAP, POP et SMTP). Chacun de ces éléments peut être attaqué pour diverses raisons, ici on cherche à prendre le contrôle de la machine, et donc obtenir un accès avec le plus de privilèges possibles. Le serveur web est probablement le plus simple à exploiter, commençons donc par vérifier ce qu’il nous dit.

On a donc une image, qui nous dit de cliquer sur le lien pour savoir quoi faire, et ça aboutit à une deuxième image tout aussi inspirée. Dans le cadres de challenges comme celui-ci, il se peut qu’un des drapeaux à retrouver se cache au sein de l’image, une technique qu’on appelle la stéganographie, mais je vais laisser ça de côté dans l’immédiat, on y reviendra si besoin d’indice qui seraient cachés. Il n’y a donc que peu d’informations pour le moment. Tentons certaines choses, du style /phpmyadmin, et la page d’erreur « 404 » nous donne un peu plus d’informations :

Apache/2.2.22 (Ubuntu) Server at 192.168.1.4 Port 80

Le système semble être une Ubuntu avec un serveur web Apache 2.2.22, ce qui nous indique une Ubuntu 12.04. Comme d’habitude, je ne sais pas encore si ça va nous servir mais le fait est que plus on obtient d’informations, plus on saura comment s’attaquer au système. En effet, les mises à jour de sécurité ont cessé sur cette version et en cas de besoin, on pourra consulter les vulnérabilités non corrigées. Si PHP est installé via les paquets d’origine, il sera en 5.3, ce qui est particulièrement vieux et donc faillible également. Donc vous le voyez, on a déjà, sans même être allé très loin, obtenu suffisamment d’information pour trouver quantité de vecteurs d’attaques potentiels. Et tout à ça la main.

Un fichier qu’on va souvent trouver sur un serveur web est le fichier robots.txt. Il est utilisé dans le cadre du référencement d’un site lors du passage des robots d’indexation de Google&co, pour indiquer les endroits autorisés et interdits pour le référencement. Et tiens, quelle surprise, apparemment il y a un /wordpress/ :

On remarquera la petite blague sur les hackers 🙂

Bingo ! En tout cas, ça ressemble à un WordPress, le thème par défaut date de 2014, ce qui peut laisser présager une version non maintenue à jour. Je pourrais chercher pas mal de choses à la main, mais je vais me concentrer sur un outil particulièrement pratique qui s’appelle WPscan (que j’avais présenté dans un de mes rares usages de Docker sur Manjaro, que j’ai même arrêté de pratiquer après la dernière réinstallation à la perte du SSD). Cet outil va nous permettre de récupérer quelques informations intéressantes :

Et pour certaines de ces entrées, un recensement des vulnérabilités connues. Et là, c’est champagne : le wordpress est dépassé, les rares plugins présents sont vulnérables, et on voit un utilisateur « admin » qui est l’un des identifiants les plus présents sur ce type de solution, au point qu’on devrait pendre les utilisateurs qui le laissent trainer. Pourquoi ? parce que le mot de passe probablement le plus utilisé pour aller avec, c’est admin. La preuve ?

Voilà, j’ai donc déjà le contrôle quasi complet du WordPress. Pas encore suffisant pour moi, mais déjà, ça permet de lancer à peu près ce qu’on veut avec l’utilisateur qui est associé au PHP qui tourne derrière (www-data si PHP est en module, c’est pratiquement assuré), et modifier à peu près ce qu’on veut sur le site, pour intégrer plein de choses dégueulasses qui permettront soit d’exfiltrer les données du site, et donc potentiellement des visiteurs/utilisateurs, leur faire miner de la monnaie électronique de manière cachée (coucou Pirate Bay), transformer le site en boutique de produits contrefaits… Les possibilités sont tellement nombreuses que je ne préfère pas trop m’étendre sur le sujet, en plus j’oublierais des trucs.

Ici on va commencer par s’ajouter un webshell, c’est à dire s’ajouter un mécanisme de ligne de commandes au travers du site, ce qui nous permettra d’effectuer plus d’opérations que par la base de WordPress. Plusieurs possibilités, aussi bien sur les méthodes d’injection, que sur le shell à utiliser. J’ai opté pour ws0shell, que je colle sur le site en passant par l’éditeur de thème :

Voilà, je peux donc maintenant parcourir tous les fichiers du WordPress, et je vais naturellement me tourner vers le fichier de configuration, qui contient les identifiants à la base de données. Et là, deuxième mauvaise pratique : le compte utilisé pour accéder à la base de données, qui contient donc tous les secrets du WordPress, c’est le compte root, autrement dit l’administrateur de la base de données, qui a donc accès à bien plus que la base du wordpress, à savoir tous les autres sites installés sur la même machine. Eh ben vous savez quoi ? J’ai tenté ce couple login/mot de passe pour me connecter via SSH :

Boum. Me voilà administrateur de la machine, et j’en ai donc le contrôle total, à pouvoir installer de quoi y rester même si le propriétaire s’en rend compte et colmate ses brèches, et pouvoir faire mes affaires à son insu. Et tout ça, sans être un expert en sécurité ou en « piratage ». Une fois que j’avais terminé moi-même, j’ai lu quelques articles sur ce challenge : parmi les plugins installés, il y en a un qui permet d’inclure n’importe quel fichier du système et donc de l’afficher (ce qui ne devrait pas être permis), et on peut tenter de passer par le shell injecté pour lancer un exploit d’élévation de privilèges, à cause du manque de mises à jour de la machine. Comme quoi, il y avait la voie facile et au moins une autre possibilité pour détourner cette machine de son usage premier.

Donc, récapitulons un peu, pour comprendre quels sont les erreurs qu’il ne faut pas reproduire :

Bien, maintenant pourquoi je rabâche encore sur le sujet de la sécurité ? Pour les personnes les moins aguerries et qui ont eu du mal à suivre jusqu’ici, il est facile de se retrouver face à un service à l’apparence propre qui est plus que discutable si on regarde l’envers du décor. Il est donc impératif de ne pas être trop confiant et le meilleur moyen si on veut tout de même utiliser ce service, c’est de disposer d’un mot de passe unique qui évitera que plusieurs de vos services se fassent trouer et donc vos données avec.

Pour parler un peu plus de technique, le monde merveilleux voudrait qu’on soit tous bons et que toutes les mises à jour soit appliquées en permanence dès que c’est disponible, la réalité est que souvent, et c’est une grosse erreur, un site web même basé sur WordPress est livré en mode « one-shot », sans suivi de sécurité, à la façon d’une affiche de publicité statique. Pire, quand de lourds développements ont été effectués, ils le sont généralement par rapport à une version de PHP bien précise, une version de WordPress bien précise, et occasionnellement, la mise à jour d’un de ces deux acteurs casse des choses, et réparer coûte de l’argent, de l’argent que certains ne sont pas prêts à payer, jusqu’à ce que ce prix soit payé par les clients, via les comptes utilisateurs volés ainsi que les données qui sont associées.

Et si la démonstration que j’ai faite là a pris à peine 20 minutes à la main, les sites web sur la planète entière sont en permanence scannés par des robots et d’autres sites infectés pour tenter d’intégrer les machines à des réseaux de zombies qui seront ensuite exploitées à la demande par des réseaux criminels, pour pas mal de choses comme du déni de service, du bruteforce, et autres joyeusetés. Alors prenez le temps de mettre en place quelques bonnes pratiques (du style celles de cet article, à propos de WordPress), ça vous coûtera beaucoup moins cher plus tard.