Structure d'une attaque, part II

Par 4n9e le 24-09-2004



Deuxième partie de cette suite d'articles, qui présente quelques théories sur le passage au travers d'eventuels firewalls



Apres la phase de collecte d'information sur la cible vue dans le sujet precedent ( Structure d'une attaque, part I ) Nous allons aborder dans une deuxieme partie l'analyse plus particulère de la cible, a commencer par la presenaace quasi-systematique ou du moins a prevoir de machines proxies ou firewall entre le systeme cible et le reseau. :


Sommaire :
I. Notions fondamentales et rappels
II. Vulnérabilité des firewalls : tunneling et modifications de paquets
III. Conclusion



I. Etape 1 : Ouverture du programme sur une machine connectée au réseau


Avant d'aller plus loin il est necessaire d'apporter quelques precisions quant a la notion de Firewall.
Typiquement, il s'agit d'un systeme, machine ou logiciel placé entre entre la machine principale ou le reseau local et l Internet.
Ses regles de fonctionnement, sens de filtrage du traffic et type de connections autorises sont fixées par l'administrateur securite du systeme a proteger.
Il peut s'agir d'un programme software , c'est le cas le plus connu chez les particuliers, par exemple ZoneAlarm. Cependant dans le genre de cible que nous etudions dans cette suite d.articles, il s'agira plus vraissemblablement de machines dédiées surveillant le traffic par filtrage des paquets, ou de routeurs configurés afin de ne pas laisser passer certains paquets.
On connaît par exemple une de leurs fonctions qui consite a verrifier la validité du format des paquets afin de prévfenir les attaques par flood ou nuke.

Le principe de fonctionnement de ces firewall est basé sur l'identification des paquets, donc revenons un instant sur les paquets.
Les données transportées sont au format Ip, Internet Protocole, et sont découpés en paquets plus petits afin d'etre acheminés vers la machine de destination identifiés par leur adresse ip d'origine, puis reconstitués. On distingue alors plusieurs sortes de paquets : les paquets ICMP envoyés par les commandes Ping, Tracert/ Traceroute, IPX dans le cas des jeux en réseau, et surtout UDP et TCP pour les communications évoluées.
Chaque port est ainsi fait pour utiliser un certain type bien precis de paquet.
Les paquets UDP contiennent l'adresse Ip de l'emetteur, celle du destinataire, le port de depart et celui d'arrivée, puis les données.
Les paquet TCP ont eux les memes infos, mais en plus un identifiant de séquence et un numero de flag.
C'est ce numero de sequence qui rend ces TCP stables et fiables, et qui fait qu'il s'agit des paquets les plus utilisés sur le Net par rapport à UDP.

Le travail du Firewall consiste donc a verrifier pour tout traffic, la permission en fonction des ports, des adresses Ip, de leur type et de leur taille.


II. Vulnérabilité des firewalls : tunneling et modifications de paquets


Cependant, les machines proxies et Firewall attendent deux choses pour laisser passer le traffic : soit qu'il vienne du Web (port 80 protocole http) et/ ou que les paquets soient attendus par une machine se trouvant DERRIERE eux, ce qui revient a dire que ces paquets ont l'air d'etre attendus, initiés par une communication précedente.

Voyons ce dernier cas : Vous voulez entrez dans une boite de nuit, mais le videur refuse. Présentez vous en ayant l'air de discuter avec quelqu'un d'important a l'interrieur en vous excusant de votre retard, comme si vous etiez attendus. Dans l'idée, c'est ca.
Dans la pratique, le principe est d'utiliser un programme qui vous permet de formater ses propres paquets avec un flag ACK systematiquement, ce qui fera croire que ces paquets viennent d'une communication precedemment initiée donc autorisée. Pour cela on changera le port source des paquets pour le port 80, ce qui simulera une communication depuis le web.
Retrouvez cet article sur le forum, avec les liens vers ce genre d'outils.
Il y aurait beaucoup a dire sur les failles de Firewall, mais on s'enfoncerait dans le sujet, deja vaste !

La deuxieme voie pour transpercer le Firewall que nous allons voir ici est celle du Tunneling.

Le principe du tunneling est de faire transiter des paquets d'un protocole bien precis par un port qui normalement utilise un autre protocole. C'est le principe de l'attaquant caché dans une brouette de foin qui rentre dans le château.

Il existe donc plusieurs sortes de tunnels, par exemple ICMP qui acheminera des paquets dans le protocole ICMP normalement reserve au Ping donc bien moins filtres et loggés que les paquets TCP¨. On a aussi du tunneling Ftp, et meme par mail !
Ce que nous allons viser ici est le tunneling http etant donné que quasiment tout reseau accepte les connections en http vers les serveurs Web. Dans ce cas ce sont des paquets TCP que nous feront transiter. Et avec cette technique, c'est imparable. De nombreux produits commerciaux destinés aux entreprises passent par cette voie.

Le principe reste comme pour les troyens d'injecter un server sur la cible, et de le piloter avec le client. Mais a la difference du troyen, on utilise une technique indetectable car on ne fera que detourner des services de leur usage normal .

Pour vous convaincre de la puissance de ce principe , allez sur https://www.totalrc.net/totalrc/index.html

et suivez les quatres étapes apres avoir telecharge la version 1.20 du soft. Mettez vos protections au maximum, vous verrez' (ce soft n'est pas la version « hacker » mais une version commerciale, c'est juste pour vous montrez le principe. )


III. Conclusion


Dans cette phase, nous avons vu deux principes permettant de s'affranchir du probleme des firewalls afin de créer une connexion avec la cible dans le but de lancer l'attaque proprement dite'
L'étape sous-jacente est implicitement la découverte de cette protection, ce qui implique un ensemble de techniques de scan et de prise d'empreinte qui sera abordé dans la suite.

4N9e pour FutureZone, 2004