PRECEDENT SUITE… |
En préambule, il convient de garder à l’esprit deux remarques :
La résultante de ces deux affirmations indique qu’il y aura toujours des failles dans les systèmes d’informations. Les protocoles, les systèmes d’exploitations (TOUS), les interfaces, sont autant d’ensembles de procédures et/ou de logiciels. Ils ont tous leurs propres limites et défaillances, et il ne peut en être autrement ; et ce, dans le passé, comme dans le présent et dans l’avenir. La seule réelle protection contre cet état de faits est d’être perpétuellement en alerte, et, pourquoi pas, de se mettre un peu dans la situation d’un attaquant. Comme dans une partie d’échec : c’est en se mettant à la place de l’autre que l’on a les meilleures chances de gagner la partie. Entrons maintenant dans le vif du sujet.
C’est la technique qui consiste à tester des mots de passes en série. C’est, comme son nom l’indique, brutal, et sans grand intérêt. Il suffit de limiter le nombre d’essais de mot de passe pour y remédier.
Il s’agit ici d’exploiter (c’est pourquoi on surnomme ce type d’action des « exploits ») des failles de sécurité dans la conception des logiciels tournant sur les serveurs. Les trois quart du temps, se sont donc les applications serveurs qui sont visées. La plus connue est le Buffer Overflow ( buffer = espace dans la mémoire + overflow = dépassement ) Le but est de réinscrire le RET pour le modifier par un autre qui pointera sur une autre adresse désirée. Toutes méthodes d’overflow reposent sur ce concept! Schema : buffer intact: [buffer][RET] taille: 10 8 buffer après overflow: [buffer2] [buffer] = l’espace mémoire [RET] = l’adresse qui va pointer sur la prochaine fonction (qui suit celle du remplissage du buffer) [buffer2] = Après le buffer overflow, nous écrivons sur le RET , puisqu’il y a 18 caractères dans le buffer. Nous pouvons alors mettre n’importe quelle adresse qui sera contenu sur les 8 derniers octets. De multiples autres failles existent telles que:
Imaginons qu’un snprintf va sur un “open, system,…” ; il suffi d’effacer tout pour réinscrire le buffer!
Cette liste est, évidemment, non exhaustive et en perpétuelle évolution.
La configuration par défaut d’un système étant sa première faiblesse, il suffit que l’administrateur s’en désintéresse, pour qu’un pirate l’utilise. Le pirate connaîtra le système employé via SNMP, puis exploitera les failles non solutionnées. Pour exemple, le nuke est la technique qui consiste à envoyer un certain type de paquet aux OS Windows (jusqu’à XP) afin de perturber leur fonctionnement. Tout système a ses propres failles ; c’est pourquoi le pirate commencera toujours son attaque par s’informer sur le système utilisé. Nous verrons, dans le chapitre suivant, les différentes manières de procéder.
Là, on entre dans le domaine des « linguites » distingués. Ils parlent l’assembleur couramment. Les virus sont de petits programmes destinés à provoquer de plus ou moins graves problèmes dans un ordinateur. Cette définition intègre les virus polymorphes, les troyens, les trojans (autre dénomination), les worms, etc… Bref, il s’agit d’une merde du genre Alien qu’il faut détruire à tout prix, et le plus vite possible, avant qu’elle ne fasse les ravages prévus. Les parades ne se conçoivent qu’en assembleur (langage machine). Donc, à moins d’aimer faire une addition en une page de ligne de code, il veut mieux se munir d’un bon antivirus. Il en existe même de gratuits tel AVG, qui est très efficace.
En Javascript, un pirate peut, par exemple, se faire expédier, en automatique, votre adresse e-mail. En Vbscript, il peut utiliser l’ActiveX Wscript.Shell afin de modifier, créer, supprimer une clé de votre base de registre. Plus « drôle » encore, il peut créer un fichier de commande batch. C’est pourquoi, il est vivement conseillé de désactiver l’exécution de Scripts (Javascripts et Vbscripts) ainsi que celle des ActiveX. Exemple : ECRIRE DANS LA BASE DE REGISTRE EN VBSCRIPT : <html> <body> <script Language=”VBScript”> Set WshShell = CreateObject(“WScript.Shell”) WshShell.RegWrite “HKEY_LOCAL_MACHINE\toto\With\Name”, “c’est une blague” </script> </body> </html>
Lorsqu’un nom de domaine est enregistrer sur Internet, bon nombre d’informations peuvent être retrouvées grâce, notamment, aux bases des prestataires de service (Internic, NetworksSolution, etc) et sont consultables sur des sites tels que http://allwhois.com, http://whois.net, http://www.betterwhois.com). On saura ainsi si l’entreprise visée possède une plage d’IP spécifique, les adresses et noms de serveur DNS, et d’autres informations plus spécifiques à l’entreprise.
L’empreinte de pile est la façon la plus radicale de faire pour résoudre le problème de l’identification de l’OS d’une manière unique.
L’utilitaire client TelNet permet de connaître assez facilement le système d’exploitation utilisé. Il suffit de lancer une exécution telle que : telnet [IP] [PORT] pour récupérer la bannière qui aidera à déterminer quel système d’exploitation tourne sur le serveur. Il n’y a aucun intérêt à s’embarquer dans les complexités de la prise d’empreinte de pile si la machine annonce d’une manière aussi flagrante et précise quel OS tourne. Nous verrons en détail d’autres méthodes de prise d’empreinte système (Finger Printing) dans le chapitre suivant.
Nmap (dont nous allons détailler le mécanisme dans le chapitre suivant) n’est pas le premier programme de reconnaissance d’OS a utiliser l’identification TCP/IP. Le Spoofer IRC de Johan incluait des techniques très rudimentaires d’identification depuis la version 3. Il essaye de placer la machine dans les classes “Linux”, “4.4BSD”, “Win95”, ou “Unknown” en utilisant quelques tests simples sur les flags TCP. Un autre programme de ce type est Checkos. Les techniques d’identifications sont exactement les mêmes que dans SIRC. Checkos ajoute la vérification de la bannière Telnet, qui est utile mais qui possède des inconvénients limitatifs.
A l’intersection entre le renseignement de système distant, le scannage de port et le sniffing, se trouve l’excellent outil Nautilus NetRanger, efficace et rapide (www.nautidigital.com). |
PRECEDENT SUITE… |