Ça donnait ça ( sans la moindre /obfuscation/ )
https://vincent-bonnefille.fr/index_hacked.html
Un message s'affiche alors sur la page d'accueil de mon site principale
(non encore auto-hébergé) ::
Dont un script est chargé sur le disque dur de :
http://mxian.wapgem.com
Un fichier .htaccess intégré au dossier contenant le logiciel intrusif indique :
#Coded By Sole Sad & Invisible
lescgi-script
sont en .alfa
le tout profite d'une failleeval()
et à vrai dire je pige pas tout.
La page hackée avec un index.html
de remplacement indiquait d'aller voir les logs...
Check The Security Of Your System Please
Ce que j'ai fais, l'activité accrue sur un dossier spécifique (et son formulaire) m'ont permis de trouver la faille facilement...
Formulaires : portes ouvertes
Un formulaire, ces petites boites blanches qui attendent du texte de la part du visiteur.visiteuse (bot/humain.e) permet d'envoyer et d’fexécuter du code sur le serveur directement (qui est un ordinateur capable de lancer.activer.exécuter des programmes et donc d'ajouter/supprimer/éditer des fichiers en fonctions des droits/permissions qui sont accordées).
C'est par là que le code a été exécuté.
Hack : usage détourné
Au lieu d'envoyer une image via cette page dédiée, du code non "escapé" a été exécuté. ( "escape", ça veut dire "faire sortir, échapper". Échapper du code ça consiste à convertir les caractères spéciaux qui servent à écrire du code, en autre chose : des caractères inoffensifs : à faire qu'ils s'affichent seulement, comme {ces} caractères, des lettres, des signes non interprétés comme "faisant quelque chose".
( -\:\?()\/... sont {là} escaped . \<> aussi, sinon ils seraient "lus"interprétés par le navigateur comme contenant du code à exécuter ) #langage_progra
: Des caractères qui servent à écrire du code exécutable { c'est à dire qui par son langage produit des effets } en caractères qui ne contiennent pas d'ordres de commandement sur la machine.
Là le langage final interprété dans le code ajouté à mon site semble écrit du Python ...
Se faire cambrioler
Le sentiment est toujours le même suite à un "viol de propriété" ou de domaine... on fouille les dossiers, on cherche les traces de la présence et on se sent pas très bien... mais on apprend.
Et le fait que tout soit explicite, transparent, invitant à regarder le #log sonne comme un avertissement. L'acte d'un.d'une White_hat ?En vrai je les remercie. Ca m'a mis la faille sous le nez et j'ai fais un peu de ménage.
Une faille de débutant
En cause de cette faille, une mauvaise gestion des permissions de fichiers (en 777)
oui ... j'avoue... et un formulaire mal sécurisé permettant l'envoi du code malveillant, son installation (avant une possible activité.usage malfaisant)
L'intrusion, le point d'entrée, à été trouvé (et exploité) à l'intérieur d'une page web accessible. Elle faisait parti d'un projet que je n'ai pas maintenu (et sécurisé comme il faut à l'époque).
Un bout de code, des pages obsolètes pour moi, oubliées sur un coin de serveur... Or, même inactif.inutilisé, un espace reste un espace : l'automatisation de recherche de failles se soucis peu des affectes et volontés : les moyens sont les moyens.
C'est moi dans ma tête qui y cherche du sens, une conspiration, un geste personnel. Un contexte explicatif... ( et j'en ai trouvé un : )
Sys.admin, un métier (pas le mien)
FunFact ... qui ne peut être tout à fait une coïncidence... je passais aujourd'hui un entretient pour des formations de Sys Admin... c'était tout à fait de circonstance.
Le Quiz que j'ai passé m'a donné une note honorable mais j'ai bien compris que je n'avais pas les qualifications d'informaticien BAC+2.
On y parlait adresses IP
, Masques de sous-réseau
, machines virtuelles
...
en citant beaucoup Windows (8.1)
comme référence/environnement...
Les termes du Quiz que j'ai recherché :
Hyperviseur 2012 / VHDX / VHD
SCVMM
GPO Starter
DCPROMO
Fôret Active Directory
Serveur AD DS
NTFS / SATA 3
Base SAM
FTP / TFTP
Couches OSI
...
Coucou
Après l'exposition avec le CAG+
j'ai trouvé un bug sur ma version web :)
sur le #projet_perso #chat_chouquette
Et ce bug : c'est moi
j'avais modifié une fonction de base
ca faisait que quand je modifiais mon code (page index.php) rien n'était pris en compte au chargement de la dite page ( par mon #navigateur_browser et autres visiteurs )
J'ai d'abord crié au complot
Puis au cache de mon navigateur de se vider
À mon hébergeur et serveur FTP de réagir...
J'ai cherché.
...
Et puis j'ai trouvé.
En indiquant l'adresse complete du projet avec index.php dans l'URL (adresse web) ça marchait.
sans je retombais sur une chouquette malade, des bugs
ET cela peu importe le chouquette (le sous dossier de projet)
RSI / Solidaires / Darknets
Toutes ces pages me renvoyaient le même bug ...
...
C'est comme ca que j'ai compris...
Comme cela que je me suis rapellé que par soucis de gain de temps...
J'avais demandé au serveur d'agir tout autrement que comme il devrait par défaut
Que plutôt que de charger le fichier "index" il en charge un autre...
et cela pour tous les sous-dossiers...
...
cut, détail, explications
...
Bref
à faire simple on finit par tout compliquer...
surtout quand on ne documente pas son code.
Suite du log ::
J'ai fini ma journée à mettre à jour le system d'upload de fichiers
(de mes chouquettes) (j'ai pas fini) (maintenant si)
(j'ai décentralisé les pages d'upload/admin pour n'en avoir qu'une à modifier)
(j'ai par contre laissé les chouquettes.index charger leur index.par_défaut)
Ajouts
Restitution des dossiers (par défaut)
Appel des dossier par parameters (?folder=....)
( Finalement non ... pose problème pour une arborescence avec sous-dossiers )
( = choisi un mix' utilisant #htaccess
/dossier/ > index du dossier ... normal
/up.php (fichier vide) > upload.php (centralisé.core) )
Ajout d'un "switch" entre les dossiers listés
Ajout d'une fonction de "lock" sur certains dossiers
MàJ des chemins (changés en centralisant le fichier.index.admin)
Demo
https://vincent-bonnefille.fr/chat-chouquette/RSI/fichiers/01_MOVE_others/up.php
BONUS
Sur ces questions de design/fonction par défaut...
je conseille ce super article (et super site) qui questionne l'usage et de création collective au sujet de l'interface #ftp .. #<3 #! #proto #technique_article
@Etienne_Cliquet
http://003.directory/2001_Esthetique-par-Defaut/ walla #@aR
<- #.dead --> https://web.archive.org/web/20220706050032/http://003.directory/2001_Esthetique-par-Defaut/
A motivé l'écriture de ce petit log/retour d'expérience perso...