Session Start: Sat May 31 20:52:06 2003 Session Ident: #netlessons * Now talking in #netlessons * Topic is ' 4-= [N]et [L]essons =- Welcome All -> Sécurité informatique et Intrusions réseau : Join Channel #question. ' * Set by Karl on Sat May 31 20:35:11 -Netlessons- 8 - Join #question Pour LE chan Discute Sur Les COurs Come on.. * Logging #netlessons to 'logs\#netlessons.netlessons.log' * Karl changes topic to ' 4-= [N]et [L]essons =- Welcome All -> Sécurité informatique et Intrusions réseau : Join Channel #question . ' <Karl> On y va <Arg0s> ok <Karl> (je la refais) <Karl> Bonsoir à tous ! <Karl> Avant de commencer le cours j’aimerais simplement dire des choses qui me tiennent à cœur : <Karl> D’abord, vous remerciez tous d’être venu aussi nombreux assister à un cours qui j’espère vous satisfera. <Karl> Mais au-delà de cette notion de cours, je voudrais aussi saluer le simple fait de cette réunion,
car certes il est toujours plus plaisant de se voir et de débattre dans une salle, de faire des conférences,
de tous nous rassembler mais malheuresement il est rare que tout le monde soit libre au même moment et
l’éloignement ne nous permet pas faire ce que l’on voudrait. <Karl> Aussi je voulais donc dire combien l’IHC et la Security-Corp sont heureux de voir que nous sommes
tous réunis si nombreux même si IRC n’est pas le meilleur endroit pour débattre, discuter, partager, échanger,
apprendre, nous pensons que c’est un pas en avant pour la scène française. <Karl> Rarement autant de personnes du milieu ne se sont réunis aussi nombreux, même si certains d’entre
nous peuvent encore se considérer comme newbie, c’est la soif d’apprendre qui vous à pousser à venir, voilà
déjà un premier point commun entre nous :) <Karl> Je voulais aussi remercier le réseau Idapnet et Flop (l’administrateur) tout particulièrement qui a passé
du temps à nous configuré un serveur dédié pour ce cours et j’espère pour les cours prochains sans obligation ni salaire. <Karl> Merci encore. <Karl> Voilà fini pour mon petit discours qui a du emmerder certains je le conçois. <Karl> En participant à ce cours nous pensons que vous avez un minimum de connaissances en protocoles réseau,
notion de paquets, OS Linux/Windows, etc… <Karl> Voici la page qui servira de support à ce cours : http://www.security-corp.org/cours/ , elle contient des
schémas, des explications nécessaires à la compréhension de ce cours. <Karl> Je voudrais aussi signaler avant toute remarque la dessus que le sujet est assez vaste, or vous remarquerez
que dans ce cours nous ne faisons que citer certaines techniques et nous étudions en profondeur d'autres techniques,
la raison est tout simplement que nous en voulons pas que ce cours dure une éternité par conséquent nous avons
décidé d'expliquer le plus important à nos yeux ou de choisir d'expliquer un exemple au hasard plutôt que de toujours <Karl> Nous signalons aussi que ce cours est une introduction théorique aux intrusions et que Samedi prochain
GaliaRept et moi-même parlerons de la partie pratique. <Karl> Nous allons donc pouvoir commencer ce cours. <Karl> Avant toute attaque un pirate doit d'abord connaître sa cible. Pour prévenir toute attaque une entreprise
doit dévoiler le moins possible les informations pouvant intéresser les pirates. <Karl> Dans la partie qui va suivre nous allons parler du traitement de l’informations à tous les niveaux, bien
entendu nous parlons ici d’informations jugées sensibles pour une entreprise. <Karl> Allons-y <Karl> I - Information disclosure <Karl> Commençons donc par les moyens que les pirates ou potentiels ennemis peuvent mettre en œuvre pour
récupérer certaines informations soit pour un espionnage ou préparer une intrusion (physique ou réseau). <Karl> 1 - Attacks/Threats <Karl> Nous allons voir deux méthodes de récupération d'informations, une dite "physique", l'autre dite "réseau". <Karl> 1.1 Trashing/Récolte d'informations (méthode physique) <Karl> Ne nous attardons pas sur ce point mais je tenais à signaler qu'il existe des méthodes plus "physique"
disons pour la récup d'informations <Karl> Le trashing : La fouille des poubelles de l'entreprise afin d'y trouver des documents contenant noms,
prénoms, téléphones, domain name, login/passwords etc.... <Karl> Contrairement à ce que l'on pourrait penser le trashing est extrêmement difficile et en devient presque un art. <Karl> Faire une enquête : Effectuer un whois, entrer dans l'entreprise pour repérer les lieux, les appeler par
téléphone pour obtenir le maximum d'informations avant de commencer une attaque etc... <Karl> Nous allons nous arrêter là pour la méthode physique car je pense que vous avez compris le principe,
plutôt nous concentrer sur autre chose. <Karl> Nous êtions à 1.1 Trashing/Récolte d'informations (méthode physique) passons à : <Karl> 1.2 - Fingerprinting (méthode réseau) <Karl> Voila la méthode (qui est en fait une appellation générale de plusieurs méthodes) qui consiste à récupérer
les infos sur une machine ou un network cible. <Karl> telles que : OS Versions, Network map, Login/password, Domain name, DNS, IP adresses etc... <Karl> Nous ne pouvons citer toutes les techniques de fingerprinting permettant de récolter des informations nous
avons donc choisi d'étudier un exemple : Sûrement le tool le plus connu pour le fingerprinting : nmap.
(Voir support figure 5 pour copie d'écran) <Karl> Nous allons donc étudier les principales fonction de nmap pour comprendre les techniques de
fingerprinting : (pas toutes) <Karl> Enumération et explications des fonctions : <Karl> Commençons par les fonctions scan : <Karl> Elles servent simplement à scanner une cible potentielle pour connaître les services tournant sur la machine
(potentielles portes d'entrée), les backdoors et les trojans susceptibles d'être présents (ce qui faciliterait l'intrusion). <Karl> * TCP Scanning (Voir support figure 1 pour rappel de la composition des entêtes TCP) <Karl> Voyons d'abord les scans TCP : <Karl> - connect() : (-sT) Il s'agit de la méthode la plus basique, l’attaquant émet un appel connect() à tous les ports
(surtout ceux qui sont plus intéressants) d’une machine. Si le port est ouvert la connexion est établie. <Karl> - SYN Scan (-sS) : La méthode SYN scan (aussi connu comme half-open) envoie un paquet SYN pour “ établir ”
une connexion et attend la réponse du serveur. <Karl> La demande de connexion met ses bits SYN à 1 et ACK à 0. Si la réponse du serveur est SYN + ACK on sait que
le port est ouvert par contre un RST indique que le port est fermé. <Karl> - Stealth scan : Les Stealth scans travaillent de telle façon que les outils d’audit ne le détectent pas. Il y a plusieurs
sortes de Stealth scan : <Karl> * FIN, Xmas Tree et Null scan (-sF -sX -sN): Il se peut que le SYN scan soit détecté par certains coupe-feu ou
logiciels, alors c’est ici qu’un FIN scan peut être utile. <Karl> Selon le RFC 793 le serveur doit répondre avec un RST si le port est fermé chaque fois qu’il reçoit un paquet FIN.
Cette attaque ne fonctionne pas pour les systèmes Windows. <Karl> * Fragmentation : Couper l’entête TCP en plusiers morceaux, ce qui rende la tache de detection <Karl> plus difficile pour un logiciel de filtrage de paquets. <Karl> * Slow scan : Attendre une periode de temps plus longue entre chaque paquet pour ne pas être <Karl> detecté. <Karl> Voilà pour les scans TCP. <Karl> Pour pouvoir scanner sans se faire detecter en général le pirate utlise une méthode que nous expliquerons en deux
mots dans la suite du cours l'usurpation d’adresse (Spoofing) : <Karl> Ici le but est la création de trames TCP IP en utilisant une adresse IP fausse pour se faire passer pour une autre
machine et pouvoir faire un balayage de ports disons "autorisé" puisque le pirate a falsifier son adresse pour que la
machine distante pense que le scan est réalisé par un hote autorisé. <Karl> Nous n'expliquerons pas les méthodes de spoofing <Karl> Maintenant au niveau UDP : <Karl> * UDP Scanning (-sU) (Voir support figure 2 pour rappel de la composition des entêtes UDP) <Karl> Pour trouver des ports UDP ouverts, l’attaquant effectue un envoie de paquets UDP vides. Si le port est fermé,
la plupart de systèmes d’exploitation envoient un message “ ICMP Port Unreachable ”. <Karl> Nous en resterons la pour l’UDP Scanning. Si vous avez des questions ou que vous voulez des explications
supplémentaires attendez la fin. <Karl> Voyons maintenant les différentes fonctions de detection d'OS (nous n'en expliquerons que deux) : <Karl> Le test FIN : La nous envoyons un paquet FIN (ou n'importe quel paquet sans flag ACK ou SYN) a un port ouvert
et attendons la réponse <Karl> Le comportement conforme à la RFC793 est de ne PAS répondre, mais en général Windows, BSDI, CISCO, HP/UX,
MVS et IRIX répondent par un RST. <Karl> Deuxieme méthode : <Karl> Echantillonnage TCP ISN : <Karl> Nous allons chercher les types de nombres de séquence initial (Initial Séquence Number) choisis par les
implémentations TCP quand ils répondent à une demande de connexion. <Karl> Ils peuvent être ranger dans plusieurs groupes comme le traditionnel 64K(beaucoup de vieux Unix), incréments
aléatoires (dernier Solaris, IRIX, FreeBSD, Digital UNIX, Cray, et beaucoup d'autres), vraiment aléatoires
(Linux 2.0.*, OpenVMS, derniers AIX, etc.) <Karl> Les systèmes Windows (et quelques autres) utilisent un modèle "dépendant du temps" ou l'ISN est incrémenté
d'un petit montant d'une manière périodique. <Karl> Il y a aussi d'autres fonctions comme : ident inversé, ICMP pings etc... <Karl> Mais nous ne nous attarderons pas sur ces fonctions, si vous voulez en savoir plus vous demanderez à la fin. <Karl> Beaucoup d'autres technique peuvent être mises en application dans un fingerprinting mais nous n'avons pas
le temps de toutes les expliquer. <Karl> Voila donc pour les techniques générales utilisées par nmap pour le fingerprinting. <Karl> Nous êtions à 1 - Attacks/Threats passons à la défense maintenant : <Karl> 2 - Protection/Prevention <Karl> Au niveau même du réseau pour ne pas laisser au pirates les moyens de faire une récolte d'informations
complete le firewall est sans doute la plus efficasse des protection, si il est bien configuré <Karl> (Voir support figure 3 et 4 pour les différents placements d'un firewall pour la protection d'un réseau local) <Karl> Nous ne parlerons ici que du firewall car certe l'IDS peut être utile en cas de fingerprinting (quoi que ?) mais
nous étudierons l'IDS plus tard. <Karl> Voyons une petite définition d'un firewall : <Karl> Un firewall, aussi appelé pare-feu ou garde-barrière, est un programme, ou un matériel, chargé de vous protéger
du monde extérieur et de certains programmes malveillants placés à votre insu sur votre ordinateur. <Karl> Placé entre vous et Internet, le firewall contrôle tout ce qui passe, et surtout tout ce qui ne doit pas passer
de l'un vers l'autre. <Karl> Pour windows, beaucoup de firewall logiciel personnel sont à votre disposition (Zone alarm, Tiny, LookNStop,
Norton, Private firewall, Sygate, WinRoute, BlackIce, Wingate, AT Guard etc....) <Karl> Je pourrais vous expliquer comment configurer un firewall windows client personnal version en général mais ca
ne servirai pas à grand chose puisque les options par défaut sont en général correctes <Karl> Pour ce qui est des firewall au niveau réseau (et non plus personnel), il y en a de deux types : <Karl> Firewall soft et Firewall appliance : le firewall soft est un firewall installé par l'utilisateur apres l'OS qui à beaucoup
de souplesse dans la configuration mais qui sera beaucoup moins rapide qu'un firewall appliance. <Karl> Un firewall appliance est plus rapide qu'un soft car il tourne sur du matériel hardware, mais il est moins souple
en configuration. <Karl> Pour ce qui est de leur configuration nous ne la verrons pas car la encore les options par défaut sont en
générale correct. <Karl> Maintenant passons au niveau de linux : <Karl> Tous les firewalls linux (exemples : IPCop, Astaro, etc...) sont basés sur Iptables, qu'est ce que iptables ? <Karl> IpTables est une solution complète de de netfiltering (noyau 2.4) remplaçant ipchains (noyau 2.2) tournant sous
le système GNU/Linux. IpTables permet de faire une quantité de choses autre que du firewalling (création de paquets,
filtrage de paquet basé sur tables de regles, etc...) mais nous en resterons à la base de son utilisation : <Karl> Description des tables : <Karl> Table NAT (Network Address Translation) : Table utilisée pour la translation d'adresse ou la translation de port. <Karl> Il a 2 types de chaînes# : PREROUTING qui permet de spécifier "à l'arrivée du firewall" et la chaîne POSTROUTING
qui permet de spécifier "à la sortie du firewall". Il existe 3 targets (ou cibles) : DNAT*, SNAT* et MASQUERADE <Karl> Table FILTER : C'est la table par défaut lorsque l'on en spécifie pas. <Karl> Cette table contient toutes les règles de filtrage, il existe 3 types de chaînes : FORWARD pour les paquets passant
par le firewall, INPUT pour les paquets entrant <Karl> et OUTPUT pour les paquets sortants. Les cibles disponibles sont : ACCEPT, DENY, DROP, REJECT °. <Karl> Table Mangle : C'est la table qui contient les règles pour la modification de paquets. <Karl> Voila maintenant une petite explication sur les bases de l'utilisatation de iptables (nous ne nous attarderons pas) : <Karl> Il faut d'abord vérifier que iptables est bien disponible (c'est-à-dire que le code nécessaire est disponible dans le noyau),
si tout va bien vous aurez le résultat suivant (en tant que root) : <Karl> # iptables -L <Karl> Chain INPUT (policy ACCEPT) <Karl> target prot opt source destination <Karl> Chain FORWARD (policy ACCEPT) <Karl> target prot opt source destination <Karl> Chain OUTPUT (policy ACCEPT) <Karl> target prot opt source destination <Karl> Et voici les commandes de bases pour iptables : <Karl> Créer une nouvelle chaine (-N). <Karl> Effacer une chaine vide (-X). <Karl> Changer la règle par défaut pour une chaine de départ (-P). <Karl> Lister les règles dans une chaine (-L). 5. Retirer les règles d'une chaine (-F). <Karl> Mettre a zero les compteurs de bits et de paquets d'une chaine (-Z). <Karl> Ajouter une nouvelle règle à la chaine (-A). <Karl> Insérer une nouvelle règle à une position dans la chaine (-I). <Karl> Remplacer une règle à une position dans la chaine (-R). <Karl> Supprimer une règle a une position dans la chaine (-D). <Karl> Supprimer la première règle qui convient dans une chaine (-D). <Karl> Voici deux trois éléments pour la configuration de filtrage des paquet : <Karl> * Insèrer les modules de suivi de connection (pas nécessaire si compilé dans le noyau). <Karl> # insmod ip_conntrack <Karl> # insmod ip_conntrack_ftp <Karl> * Créer une chaine qui bloque les nouvelles connections a part celles qui viennent de l'intérieur. <Karl> # iptables -N block <Karl> # iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT <Karl> # iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT <Karl> # iptables -A block -j DROP <Karl> * Sauter sur cette chaine a partir des chaines INPUT et FORWARD. <Karl> # iptables -A INPUT -j block <Karl> # iptables -A FORWARD -j block <Karl> Nous nous arreterons la pour iptables si vous avez des questions supplémentaires merci de les poser à la fin. <Karl> Nous avons donc vu les firewall au niveau de la protection réseau (Linux/Windows). <Karl> Rien ne sert de nous y attacher plus. <Karl> Maintenant voyons la protection au niveau interne à l'entreprise : <Karl> Destruction de tous les documents sensibles, poubelles internes etc... pour éviter tout trashing. <Karl> Systeme d'entrée surveiller et ne laisser aucune informations fuir de l'entreprise. <Karl> Voila dans cette premiere partie nous avons donc expliquer la gestion de l'informations au niveau attaque
et au niveau protection, si vous avez des questions c'est le <Karl> moment ou jamais. <Karl> --- PAUSE <Arg0s> vos question sur #question <Karl> --- PLAY <Karl> Désolé mais pour parler d'intrusions il faut bien parler de la prise d'information <Karl> II - Physical access <Karl> Dans cette deuxième partie, qui va être assez brève nous allons traiter des risques et des protections au
niveau des locaux de l'entreprise eux mêmes. <Karl> A - Attacks/Threats <Karl> Voila donc les types d'attaques qu'un pirate peut perpetrer : <Karl> Les attaques que l'ont peut exercer sont très vaste, tout ce que vous pouvez imaginer (un peu comme dans
un James Bond, Emphyrio :p ) : Casse de matériel, vol de disque dur, vol d'ordinateur, bombe, coupures de courant etc...
(Sans bien sur parler des catastrophes naturelles) <Karl> Enfin pas besoin de tout énuméré il faut juste savoir que tout cela est possible et que ça fait parti de la sécurité
d'un network. <Karl> N'oublions pas qu'un réseau et des serveurs peuvent contenir des informations et données vitales pour la survie
de l'entreprise, surtout s'il s'agit d'une entreprise de sécurité chargée de protéger d'autres systemes informatiques d'entreprise. <Karl> Voila nous êtions à A - Attacks/Threats passons à : <Karl> Pour contrer ce genre d'attaque, la protection doit être de taille, voici les dispositifs les plus
rudimentaires : Caméra de surveillance, gardes, systèmes de controles d'accés par badges, locaux protégés
pour accès uniquement aux personnes autorisées, exercices de sécurité pour prouver l'efficassité du système etc ... <Karl> Rien n'est trop pour protéger des informations confidentiels. <Karl> Bon je vous avez prévenu cette partie etait courte... Des questions ? <Karl> Dans les deux premieres parties nous avons vu comment un pirate peut s'y prendre pour ne serait ce que préparer
une intrusion réseau : une collecte d'informations sur le terrain, une collecte d'information sur le network, ensuite du vol
de données ou de matériels pour obtenir des logins/pass, pour mieux étudier la structure du réseau etc... <Karl> Nous avons aussi vu les techniques qui sont efficasses pour faire face à ce genre de préparations, passons donc
maintenant à ce qui peut apparaitre comme une intrusion a part entiere : <Karl> III - War dialing <Karl> La déja nous rentrons dans le vif du sujet, nous allons exposer en générale les différentes technique de War Dialing,
il s'agit de l'attaque sur les PABX (nous ne ferons que les PABX) <Karl> Pourquoi cette explication ? Tout simplement parce qu'una attaque de ce type est considérée comme une intrusion
réseau (seulement elle se fait par le téléphone et non par les lignes ethernet) <Karl> Un PABX (Private Automatic Branch Exchanger) est en fait un central telephonique qui gere les appels entrants est
sortants. Il gere le reseau interne aussi bien que le reseau externe. <Karl> A - Attacks/Threats <Karl> Au niveau attaque il faut savoir qu'il en existe plusieurs sortes, je n'en citerais que trois et n'en n'expliquerai qu'une seule : <Karl> - Intrusions dans une boite vocale : écouter les messages, soutirer des infos etc.... <Karl> - Appels gratuits, anonymes et social engineering ( ce que nous expliquerons) <Karl> - Intrusion réseau via remote access de l'entreprise <Karl> Les attaques des pirates sur les PABX pour faire un outdial se passent toujours (ou a peu pres) comme cela : <Karl> 1. Trouver un PABX. <Karl> 2. Comprendre de quel type de PABX il s'agit. <Karl> 3. Faire un outdial <Karl> 4. Exploitation du PABX. <Karl> D'abord pour trouver un PABX sur un numéro vert, il faut faire un scan manuel de tous les numéros possibles
(avec méthode pour avoir une chance d'en trouver un rapidement), il faut savoir que le numéro commencera toujours
par 0800. Et en général les chiffres d'après suivent une logique : <Karl> 0800 XAB XAB (exemple : 0800 450 450) <Karl> 0800 AB XC XC (exemple : 0800 70 40 40) <Karl> 0800 XA XC XB (exemple : 0800 41 46 44) <Karl> Lors d'un scan il faut retenir pour analyse (disons qu'il y a une probabilité pour que ce soit un PABX) les
numéros qui lors de l'appel répondent par : <Karl> - Un répondeur <Karl> - Une messagerie vocale <Karl> - Une demande de mot de passe <Karl> - Carrément rien <Karl> Bon une fois que l'on a une dizaine de numéros on peut commencer l'analyse pour comprendre de quel type
de PABX il s'agit. <Karl> Le plus courant pour reperer s'il s'agit d'un PABX est de presser la touche 0, si après l'avoir fait vous obtenez un
son continu c'est que c'est un PABX. <Karl> Si le 0 ne marche pas il faut essayer les touches essaye avec #, *, 9 ou 1, si vous obtenez le son continu c'est
bon, si rien d'autre ne marche essayez la suite 0*, si ca marche c'est que c'est un PABX Meridian. <Karl> Maintenant que l'on sait si c'est un PABX ou pas, il faut s'introduir sur le poste d'un employé, en général il faut
composé le numéro du poste (chaque employés a un poste ). <Karl> Pour trouver un numéro de poste valide il faut faire les chiffres un par un, si vous faires un mauvais chiffre ca
raccroche, noté bien les bons chiffres pour tester si vous pouvez faire un outdial car sur certains postes il est
impossible de faire un outdial. <Karl> Puis ensuite une fois sur un poste vous tombez sur le message vocal de l'employé qui vous demande de lui
laisser un message, mais vous ne voulez pas laisser de message alors vous pressez la touche 0 et la vous retombez
sur un son continu : <Karl> Il faut ensuite essayer les méthodes suivantes jusqu'a arriver a la bonne : <Karl> 00 + numero que l'on veut appelé <Karl> 1 + numero que l'on veut appelé <Karl> 11 + numero que l'on veut appelé <Karl> 9 + numero que l'on veut appelé <Karl> 99 + numero que l'on veut appelé <Karl> * + que l'on veut appelé * Karl salue l'arrivée de Sleem <Karl> 00 + numero que l'on veut appelé <Karl> 1 + numero que l'on veut appelé <Karl> 11 + numero que l'on veut appelé <Karl> 9 + numero que l'on veut appelé <Karl> 99 + numero que l'on veut appelé <Karl> * + que l'on veut appelé <Karl> Bon en général c'est pas si simple, c'est assez aléatoire d'ailleurs en fonction de la configuration du PABX,
mais bon je vous explique la théorie, vous pouvez tester avec patience d'autres moyens :) <Karl> Pour un PBX Meridian c'est autre chose, nous allons voir le cas du NT Meridian Mail (il s'agit d'une version
PC donc très peu configurable, par conséquent les options par défaut restent) <Karl> En général un PBX Meridian est plutot l'image d'un VMB en moins compliqué, vous arrivez, vous tomber sur
répondeur vous laissez votre message, et vous essayez les touches *,0 et # jusqu'à entendre le message : "Vous
avez obtenu un service automatise qui vous mettra en relation avec le numero compose. Veuillez entrer le nom ou
le numero de la personne desiree suivit de la touche #" <Karl> Il y a certain cas ou il est demander de rentrer un mot de passe, soit vous avez les patience d'essayer les mots
de passe les plus courant soit vous passez à un autre PABX. <Karl> Exploitation du PABX : Bien maintenant que vous savez faire un outdial, à vous d'en profiter pour appeler gratuitement <Karl> B - Protection/Prevention <Karl> Nous allons faire une toute petite partie défense : <Karl> Deux règles d'or : <Karl> - Une configuration des service la meilleur qui soit <Karl> - Choix des mots de pass intellignent <Karl> Et si possible avoir du matériel pas trop ancien car plus le matériel est ancin plus le pirate a eut le temps de
l'étudier et donc de savoir comment le pénétrer. <Karl> Nous nous arreterons la pour la partie War Dialing. <Karl> Je vous avouerai que mes connaissance en phreaking sont très minimes et que je ne pourrais pas dire grand
chose de plus. <Karl> Passons maintenant à la partie qui nous interresse le plus : <Karl> IV - Network intrusion <Karl> Pour le début de cette partie je laisse la parole à GaliRept : <GaLiaRePt> Tout d'abord bonsoir tout le monde <GaLiaRePt> :) <GaLiaRePt> Je n'ai pas la prétention de tout connaître sur les intrusions alors si je fais des fautes... prévenez moi après
le cours merci <GaLiaRePt> Avant-propos <GaLiaRePt> Tout au long de cette partie, nous allons voir quelques exemples d'intrusion sur un réseau. J'ai délibérément
décidé de séparer cette partie en deux sous partie distincte <GaLiaRePt> C'est-à-dire, que nous verrons deux aspects d'intrusion différents, entre autre l'intrusion sur une machine
de type Windows et ensuite sur une machine de type Linux/Unix. <GaLiaRePt> Mon but est donc de vous montrer quelles sont les techniques utilisées par les pirates afin de
compromettre un système d'information. <GaLiaRePt> Enfin, nous verrons quels sont les réflexes à avoir en cas d'intrusion sur un système d'information
quel qu'il soit. <GaLiaRePt> Intrusion d'un système Windows <GaLiaRePt> Afin de mieux comprendre comment le pirate procède, voici un schéma de l'architecture du réseau
Attaquant - Serveur Cible. <GaLiaRePt> Voir figure 6 : http://www.security-corp.org/cours/ <GaLiaRePt> Bon je ne vais pas revenir sur la définition d'un firewall <GaLiaRePt> Karl vous en a assez parlé tout à l'heure <GaLiaRePt> je vais donc juste ajouter que dans notre cas, le firewall matériel est placé entre Internet et le serveur
cible (ici un serveur Windows) <GaLiaRePt> Après avoir procédé à une récupération d'informations (vue précédemment avec Karl), l'attaquant est
en mesure de dresser un tableau ou figure l'ensemble des informations qu'il aura récolté. <GaLiaRePt> Ainsi, l'attaquant connaît les paramètres suivant : <GaLiaRePt> - Serveur Windows (prenons le cas le plus courant : Windows NT 4.0 Service pack 6a) <GaLiaRePt> - Serveur IIS 5.0 <GaLiaRePt> Le pirate passe donc ensuite à la phase d'identification des failles potentielles. Pour ce faire, il va se
rendre sur des sites tels que bugtraq (http://www.securityfocus.com/archive/1) et essayer de trouver les dernières
failles existantes sur ce système. <GaLiaRePt> Les failles pouvant être dans notre cas : <GaLiaRePt> - Déni de service (http://www.securityfocus.com/bid/4846) <GaLiaRePt> - In-Process Table Privelege Elevation (http://www.securityfocus.com/bid/3193) <GaLiaRePt> - .printer ISAPI Extension Buffer Overflow (http://www.securityfocus.com/bid/2674) <GaLiaRePt> - Multiple Invalid URL Request DoS (http://www.securityfocus.com/bid/2441) <GaLiaRePt> - Indexed Directory Disclosure (http://www.securityfocus.com/bid/1756) <GaLiaRePt> - "Translate: f" Source Disclosure (http://www.securityfocus.com/bid/1578) <GaLiaRePt> L'attaquant peut également avoir recours à des outils de scan afin de détecter la présence d'une ou
plusieurs failles connues sur le système. <GaLiaRePt> Cependant, il est évident qu'une telle méthode est bien moins discrète que la méthode précédente. <GaLiaRePt> Les outils de scan les plus couramment utilisés sont : <GaLiaRePt> - Nessus (http://www.nessus.org) <GaLiaRePt> - N-Stealth Scanner (http://www.nstalker.com) <GaLiaRePt> - Shadow Security Scanner (http://www.safety-lab.com) <GaLiaRePt> - SAINT (http://www.saintcorporation.com) <GaLiaRePt> L'attaquant peut également avoir certaines informations non encore divulgués au grand public par
l'intermédiaire de Channel IRC " underground " <GaLiaRePt> Passe ensuite la phase d'intrusion du système. :-) <GaLiaRePt> Cette phase s'effectue par l'exploitation des différentes failles que l'on aura mises en évidence. <GaLiaRePt> Les outils utilisés sont alors des " exploits ", ce sont des programmes qui comme leurs noms l'indiquent
exploitent des bugs aussi bien au niveau software que hardware. <GaLiaRePt> Ils existent de nombreux sites recensant les exploits, voici une liste non exhaustive des sites les plus
intéressant en la matière. <GaLiaRePt> http://www.securiteam.com/exploits/ <GaLiaRePt> http://www.security.nnov.ru/search/exploits.asp <GaLiaRePt> http://www.packetstorm.org <GaLiaRePt> Le but pour le pirate est alors de trouver le bon exploit afin de pénétrer le système. Il se peut que cet
exploit soit écrit par le pirate même et que la faille soit également trouvé par celui-ci. <GaLiaRePt> Après intrusion sur le système, le pirate à différente possibilité afin de le pérenniser <GaLiaRePt> Il peut entre autre : <GaLiaRePt> - Installer des chevaux de Troie <GaLiaRePt> - Ajouter un nouvel utilisateur (cmd net user <utilisateur> <motdepasse> /add (/domaine)) <GaLiaRePt> - Modifier le mot de passe des utilisateurs (cmd net user <utilisateur> <motdepasse>) <GaLiaRePt> Une fois la machine sous contrôle, le pirate peut s'en servir pour de diverse attaque vers le reste du réseau. <GaLiaRePt> Il peut par exemple mettre en place des attaque DDoS (Déni de Service Distribué) <GaLiaRePt> Je laisse la parole à mon collègue Karl, qui va vous détailler le principe des attaques DoS et DDoS. <Karl> :) <Karl> Alors qu'est ce que le Deni de Service : <Karl> Le Déni de Service communément appellé DoS (Denial Of Service) se caractérise par une intention délibérée de
l'attaquant de rendre inutilisable une cible par saturation de requêtes. Le but étant de noyer sous un flux d'informations
le serveur cible afin qu'elle ne puisse exercer ses fonctions. <Karl> Ces attaques sont en générales renduent possible par la mise en commun de plusieurs machines "piratées" à
cet effet. L'attaquant pourra alors par l'intermédiaire de plusieurs machines, lancer une attaque de masse sur une
cible : c'est le déni de service distribué. <Karl> Il y a plusieurs types d'attaque DoS <Karl> Nous ne ferons que les citer leur explication est ici : http://www.security-corp.org/index.php?ink=4-3-9 <Karl> - WinArp/Poink <Karl> - Smack / Bloop <Karl> - Snork <Karl> - NT inetinfo <Karl> - Tear Drop <Karl> Smurf Attack <Karl> voila pour les différents types de deni de service <Karl> l'adresse que je vous ai donner vous fournira toutes les informations supplémentaires que vous voulez savoir <Karl> Galia tu peux continuer... <GaLiaRePt> ok :) <GaLiaRePt> Après avoir vu comment un pirate peut s'introduire sur une machine de type Windows, nous allons voir
comment il peut s'introduire sur une machine de type Linux/Unix. <GaLiaRePt> Intrusion d'un système Linux/Unix <GaLiaRePt> Comme pour un système Windows, l'attaquant va essayer de déterminer si le système souffre d'une
faille ou d'une mauvaise configuration. <GaLiaRePt> Après avoir effectué les mêmes opérations que pour un système Windows (phase d'identification des
failles potentielles), celui-ci va effectué la phase d'intrusion sur le système. <GaLiaRePt> Imaginons que par défaut, le serveur Linux possède un serveur http et serveur FTP. <GaLiaRePt> Après avoir utiliser un exploit sur le serveur, l'attaquant va essayer d'obtenir un shell avec des
droits " superutilisateur ", une fois le shell obtenu, il est alors facile pour l'attaquant de créer des comptes privilégiés
par l'écriture directe dans les fichiers /etc/password et /etc/shadow ou encore plus simplement par la commande useradd. <GaLiaRePt> L'installation de rootkit est également à envisager… <GaLiaRePt> Un rootkit est un " ensemble d'exploits réunis afin d'avoir des chances maximales de piquer un compte
root (administrateur, i.e. avec lequel on peut faire n'importe quoi) sur une machine Unix "
(cf . http://www.linux-france.org/prj/jargonf/R/rootkit.html) <GaLiaRePt> Le plus célèbre des rootkits Linux est ADORE. Via un module, il vient s'ajouter dans le noyau afin d'y
ajouter ses propres fonctionnalités. Il peut alors cacher des fichiers, processus et permettre à quiconque de passer
des commandes en root. <GaLiaRePt> Vous trouverez plus de détails sur l'installation et l'utilisation du rootkit ADORE à l'adresse
suivante : http://www.hsc.fr/ressources/breves/adore.html <GaLiaRePt> A noter que des rootkit existent également sous Windows (Slanret, IERK, BackdoorALI, NT Rootkit,
HE4Hook, Hacker Defender). <GaLiaRePt> Après installations de tels logiciels, le pirate peut comme pour un système Windows pratiquer un DDoS
sur le reste du réseau. <GaLiaRePt> Je vais maintenant faire un petite parenthèse sur les MalWare <GaLiaRePt> Les MalWare sont des programmes qui constituent actuellement une menace sévère. L'utilisation
de tels programmes peut provoquer de graves dégâts sur les ordinateurs cibles. <GaLiaRePt> Il peut notamment s'agir des mécanismes suivants : <GaLiaRePt> - vers <GaLiaRePt> - virus <GaLiaRePt> - chevaux de Troie <GaLiaRePt> - contrôles ActiveX et applets Java malicieuses <GaLiaRePt> - bombes de messagerie (mailbomb) <GaLiaRePt> - List-Linking <GaLiaRePt> Nous avons vu qu'un pirate peut utiliser les virus afin de compromettre un système. Je laisse alors
la parole à Karl qui va vous expliquer leurs fonctionnements <Karl> Je ne vais pas vraiment expliquer le fonctionnement des virii <Karl> simplement faire une description des types connus <Karl> Un virus est un programme informatique ayant pour but initial de modifier (ou de détruire) un <Karl> système, et de profiter de ce système, de façon plus ou moins vicieuse. <Karl> Un virus est un script ou un code, son but est d'exécuter des actions qui sont interdites ou qui peuvent
nuir à la machine <Karl> infectée. <Karl> En général un virus se propage sur un network de deux facons, ou il créé ses propres services et les
utilises pour se propager ou il utilise les services existants (netbios, mail etc...) Mais un virus peut aussi se propager
en utlisant un exploit. <Karl> Il existe différents types de virus, les voici : <Karl> Les virus polymorphes <Karl> Ce sont sûrement les virus les plus dangereux, et les plus efficaces. Ils ont la particularité de se transmettre
et de se reproduire automatiquement, mais avant de se modifier eux-mêmes à chaque fois qu'ils se reproduisent,
ce qui rend leur traque très délicates. <Karl> Les macrovirus <Karl> Ce sont , pour la plupart, les célèbres virus utilisant la possibilité de créer des macros dansMicrosoft Office.
Ils s'exécutent lorsque qu'un certain document s'ouvrant <Karl> avec une logiciel de Microsoft Office s'ouvre. <Karl> Les virus immédiats <Karl> On peu dire que ce sont les virus, pour la plupart, créer par des débutants. <Karl> Ils consistent à détruire un maximum de ressources sur une machine en un minimum de temps. Ils peuvent
très dangereux comme complètement inoffensif (exemple : les virus batch ave la célèbre commande
format c: /q /u /autotest >> autoexec.bat) Lorsqu'ils sont programmés en VBS, ils causent généralement de plus
gros dégats que lorsque qu'ils sont en batch, le VBS analysant la configuration de système cible et sachant
donc ou attaquer, contrairement au <Karl> Les bootables <Karl> Dans cette même catégorie réside 2 types de virus. <Karl> Les bootables primaires : Ils infectent et s'installent sur votre système à la suite d'un email, d'un
téléchargement, etc. et s'exécutent dès que votre <Karl> machine redémarre, avant que votre systèmes d'exploitation se lance. Ces virus ont souvent le but
de détruire votre systèmes. <Karl> Les bootables secondaires : Il infectent votre systèmes de la même façon que les primaires, mais ne
s'exécutent pas avant votre OS lors du redémarrage de votre machine, il s'exécutent au démarrage de votre
système. Ce type de virus sont souvent apellé “ backdoor ”, et ont pour but d'ouvrir une futur porte pour le pirate. <Karl> Les espions <Karl> Ces virus sont majoritairement utilisés a des fins d'espionnage industriel. <Karl> Ils récoltent un maximum d'informations sur un système et l'envoi à l'auteur. <Karl> Les taupes <Karl> Tout les virus peuvent être “ furtifs ”, c'est une caractéristique qui empêche les méthodes protection (antivirus)
de les repérés, soit en se modifiant régulièrement, soit en changeant de place, soit en se faisant passer pour un service
normal (telnet.) <Karl> En bref il existe une quantité de virus différents donc une quantité de risque potentiel pour un réseau, inutil de dire
qu'un anti-virus pas à jour est comme s'il n'y avait pas d'anti-virus. <Karl> Voila donc pour les attaques <Karl> passons à la défense <Karl> au niveau intrusions <Karl> B - Protection/Prevention <GaLiaRePt> Test d'intrusion : <GaLiaRePt> Un test d'intrusion ? A quoi ça sert ? <GaLiaRePt> Le test d'intrusion est un des moyens permettant de mettre à l'épreuve la sécurité de votre système. <GaLiaRePt> Un système non " préparé " peut être facilement compromis par l'accumulation de failles souvent bénignes et
qui s'avèrent par la suite majeurs. <GaLiaRePt> C'est pourquoi un test d'intrusion est nécessaire afin de prévenir l'intrusion de véritable " pirate ". <GaLiaRePt> Le test d'intrusion n'est pas fais seulement au niveau des failles, en effet, la plus part du temps l'intrusion sur
un système est du l'exploitation des erreurs de configurations <GaLiaRePt> Une méconnaissance des systèmes de sécurité, le manque de temps ou de moyen des administrateurs ou
l'inexistence totale d'un système de sécurité est responsables de telles intrusions <GaLiaRePt> A l'issue d'un tel test, vous aurez identifié l'ensemble des faiblesses plus ou moins menaçantes de votre
système dans le but de les corriger avant qu'il ne soit trop tard. <GaLiaRePt> Le but final d'un test d'intrusion n'est donc pas l'intrusion même du système, mais plutôt la qualité des
recommandations et conseils qui peuvent en découler afin de se prémunir d'une attaque éventuelle <GaLiaRePt> Il existe 3 topologies de test d'intrusion : <GaLiaRePt> - Tests d'intrusion en aveugle <GaLiaRePt> - Tests d'intrusion depuis l'extérieur <GaLiaRePt> - Tests d'intrusion réguliers (autorisée) <GaLiaRePt> Ces différentes topologies seront détaillées lors d'un prochain cours qui sera comme je l'ai dis plusieurs
fois dédiés entièrement aux Test d'intrusion (avec de nombreux exemples) <GaLiaRePt> Voyons maintenant les IDS... <Karl> Voyons maintenant les IDS (que nous survolerons uniquement) : <Karl> Ces outils appelés IDS (Intrusion Detection System) sont des systèmes combinant logiciel et matériel, permettant
de détecter en temps réel les tentatives d'intrusion sur un réseau , de neutraliser ces attaques réseaux ou systèmes
et d'assurer ainsi la sécurité du réseau. <Karl> Les IDS ont pour but : <Karl> - La surveillance des réseaux et plus précisement du traffic de celui ci <Karl> - Le déploiement de mouchards (Sondes) afin d'observer l'ensemble des stations du réseau <Karl> - La centralisation des données <Karl> - L'automatisation des actions en fonctions des attaques <Karl> - La détection des attaques par une analyse complète du réseau <Karl> Nous pouvons comparer un IDS à un antivirus, en effet, celui ci est composé d'une table ou est référencé
l'ensemble des attaques connues avec leurs signatures. Le <Karl> réseau est donc sans cesse analysé et comparé avec la table. <Karl> Nombreuses tentatives ont été menées afin de créer un IDS "générique", ayant la capacité de détecter des
attaques inconnues de la table et mettre à jour celle-ci pour une plus grande efficacité. Cependant le développement
d'un tel système est complexe car celui ci détecte pour la plupart du temps que des fausses attaques. <Karl> Basée sur une architecture client/serveur, la détection d'intrusion fonctionne de la manière suivante : chaque
sonde est paramétrable depuis la console en mode sécurisé, on peut configurer chaque sonde afin de contrer différents
type d'attaque. On peut egalement définir 2 niveaux dans la détection d'intrusion, le niveau réseau (IDS) et le niveau
système (HDS). <Karl> Un IDS utilise deux méthodes différentes pour detecter une intrusion : <Karl> La premiere méthode consiste à "connaitre" le comportement "normal" d'un utilisateur (en fonction des droits
attribués par l'administrateur), et de surveillé cet utlisateur pour vérifier quil ne fait pas d'écart avec le comportement
normal.Un des avantages de cette méthode est qu'il est alors possible de détecter des attaques non connues. <Karl> La deuxième méthode consiste simplement à comparer l'activité du réseau avec une base de données contenant
la plupart des grands type d'attaque et dés que l'IDS trouve une similitude il sonne l'alerte. Le seul inconveniant
est que cette méthode demande un mise à jour régulière de la table, afin que les nouvelles attaques soient contrées. <Karl> Pour conclure nous pouvons dire que le domaine de la sécurité informatique est extremement vaste <Karl> aujourd'hui <Karl> nous n'avons fait que de la théorie <Karl> Samedi prochain nous vous proposons d'assiter donc à un cours de pratique <Karl> sur les intrusions réseau <Karl> voila j'espere que votre soiré n'a pas été trop mauvaise <Karl> et que vous avez appris des choses <Karl> même si le sujet etait trop vaste <Karl> et que mes c/p allaient tro vite <Karl> Samedi prochain nous vous proposons d'assiter donc à un cours de pratique <Karl> sur les intrusions réseau <Karl> voila j'espere que votre soiré n'a pas été trop mauvaise --- FIN