[Hacking] Quelques astuces permettant la prise de contrôle d’un site !
Salut à tous,
Voici un petit article fourre tout et fourre rien :)
Un article sans grosse prétention qui vous montrera quelques techniques, et apportera certains éclaircissements sur la manière de procéder d'un pirate.
Les sites qui permettent des téléchargements en spécifiant des chemins de fichier dans l'url ?
C'est une cible de choix, une cible privilégiée ...
Nombreux sont les sites qui mettent à disposition des liens sans le moindre contrôle de sécurité (par simplicité), pour 2/3 pdf ... sauf que lorsque le chemin vers le fichier est en clair, il est tout à fait possible de le remplacer par un autre chemin, afin de récupérer des fichiers contenant des données sensibles ...
Des accès à la base de données d'hôtels par exemple :
Ils sont extrêmement faciles à trouver via quelques "Google Dorks" (requête maléfique de google conférant des pouvoirs magiques à celui qui les utilisent) :
filtype:php path pdf download
Se protéger ?
N'utilisez jamais de lien en clair comme ça, plusieurs solutions alternatives :
- Stockez les chemins des fichiers que vous souhaitez mettre en téléchargement en base de données, et n'utiliser en paramètre d'url que l'id de celui-ci.
Vous aurez l'avantage de choisir qui peut télécharger quoi. - Chiffrez les chemins de vos fichiers dans l'url (et par chiffrement je m'entends, on évite de faire un simple base64 ;) ).
Les sites qui se protègent derrière des firewalls applicatifs, mais dont on peut accéder aux fichiers à distance ?
Certains serveurs se cachent derrière ce que l'on appelle des firewalls applicatifs, ce sont en quelque sorte des serveurs intermédiaires, des relais qui empêchent un accès direct.
Ainsi, les gens ne voient jamais l'adresse IP réelle d'un site, mais uniquement celle de la machine intermédiaire, dont le rôle est d'en assurer la protection.
Sauf que lorsque l'on peut consulter les fichiers d'une machine à distance, comme dans la faille décrite précédemment, il est tout à fait possible de consulter le fichier :
/etc/hosts
Ce fichier permet de mettre un nom (ou plusieurs) sur une adresse IP.
La plupart des serveurs
Une fois que vous disposez de la véritable adresse IP d'un serveur, il vous est alors possible de faire des tas de choses ...
PhpMyAdmin ?
Un outil qui permet de gérer la base de données.
Car si vous avez la possibilité de lire les fichiers d'un serveur distant, il ne vous faudra pas bien longtemps pour trouver les identifiants.
9 fois sur 10 (lorsque la configuration est laissée par défaut) vous accéderez à phpmyadmin de la manière suivante "{domain/ip}/phpmyadmin"
Ex : 33.24.65.187/phpmyadmin
Scanner de port :
Il existe des milliers de vulnérabilités, et il n'existe pas de solution universelle pour prendre le contrôle d'une machine.
Si vous avez l'adresse IP réel d'une machine, il existe des scanners de port tels que "nmap", qui vous permettront de savoir ce qui est ouvert sur cette machine, et donc potentiellement par là où vous pourrez entrer (SMTP, SSH, TELNET, ...)
Se protéger ?
Comme toujours, il suffit de faire l'inventaire de ce qui tourne sur votre machine.
Et de suivre le cycle de vie des "logiciels" installés sur celle-ci.
Cela vous permettra de les mettre à jour rapidement lorsque des vulnérabilités sont trouvées.
Pensez également à éviter de laisser les configurations par défaut ...
Les CMS à jour, mais avec des "modifications manuelles"
La sécurité informatique mes amis, est vraiment l'épine que le 21ème siècle s'est enfoncé profondément dans le pied ..
Il faut donc y penser lorsque l'on se met à exposer des choses dans le monde du "tout connecté".
Un site internet par exemple, fait en quelques minutes à l'aide d'un cms ... WordPress par exemple.
Mais forcément il y a toujours un dev, pour vouloir ajouter sa petite customisation ...
C'est souvent la porte d'entrée des pirates ... l'intervention humaine ...
Et l'on se retrouve alors avec des WordPress dans leurs dernières versions ...
Ici une 4.7 avec des injections sql !
Lorsque l'on a accès à la base de données d'un CMS par le biais d'une injection SQL.
On peut très facilement accéder aux identifiants de connexion de celui-ci ...
Ceux-ci peuvent être (et seront probablement) cryptés ...
Seulement toujours dans la logique "CMS", il suffit d'aller sur le formulaire de connexion ...
Et de faire comme si vous aviez perdu votre mot de passe ... via l'injection SQL vous connaissez l'adresse email et le nom de chaque utilisateur.
Il est donc facile d'entrer le nom d'un utilisateur ou l'email de celui-ci.
Le CMS enverra alors à l'utilisateur concerné un lien pour changer son mot de passe ....
99% de chance que celui-ci ne se souciera pas du mail ...
Sauf que dans ce lien, il y a un code ... un code également stocké en base de données ....
Celui-ci est temporaire et permet à celui qui le détient, de changer le mot de passe ...
Tient mais au fait ... vous avez l'accès à la base de données non ?
Concernant WordPress voici un petit tuto qui fonctionnera sur les précédentes versions de WordPress :
http://www.flippercode.com/how-to-hack-wordpress-site-using-sql-injection/
Se protéger ?
Intéressez-vous à la sécurité, personne n'est parfait, et il n'y a pas de meilleurs ou de moins bon, il n'y a que des personnes qui sont conscientes des enjeux, et qui se donnent pour éviter que des incidents arrivent ... il existe des tas de "bonnes pratiques" pour éviter les injections sql ... toujours aussi présentes, pensez-y lorsque vous développerez.
Conclusion
Malgré les attaques à répétions chaque mois, chaque année.
Il continue à affluer des systèmes non sécurisés ...
Parfois des petites boîtes qui un jour deviendront grosses.
C'est donc dès le début qu'il faut penser à la sécurité, et l'implémenter petit à petit.
Il y a le parti des personnes qui se positionnent en protecteur, ceux en attaquant, et les observateurs ... pour ma part je me considère plutôt comme un observateur ^^
Et le pire c’est que la plupart des administrateurs de sites ne se rendent pas compte que leurs sites sont vérolés et utilisés comme proxy pour des attaques dos ou ransomwares…
Très intéressant en tout cas :)
Sympa cet article :)
Globalement je connaissais déjà tout, mais le tip pour les WP customs m’a surpris : il y a donc des developpeurs lambda qui se sentent obligé d’y faire une modif afin de dire « ouais euh….moi, tu vois j’ai modifié WordPress » x)
Bref…toujours le même plaisir à te lire, porte toi bien ;)
@+
Salut Dyrk ! Toujours aussi intéressant tes articles !
Petite question c’est une faute de frappe d’avoir mis « filtype: » ou c’est une vrai commande de google ?
filetype: fonctionne aussi ;)
Tu as raison c’est une erreur de frappe, mais Google gère « filtype » aussi ^^