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.