ATTENTION :

Ce travail montre certaines techniques de base pouvant être utilisés pour commettre des

actes illégaux. Ceci est jugé utile dans le cadre du cours pour permettre de mieux connaître les

attaques pouvant être faites sur les systèmes qu'on tente de protéger. Un système de sécurité basé

sur l'ignorance  des gens  n'est pas un bon système, donc  le fait  de  montrer les techniques de

hacking ne réduit pas la sécurité. J'encourage les gens à tester ces attaques sur des systèmes qu'ils

possèdent, pour la formation, et non de manière illégale. 

BUT 

Le but  de ce TP est  de vous familiariser  avec  les m thodes  d’exploitation des  failles  logicielles  ainsi

qu’avec  les  m canismes  d’identification d’usager  par  mots de passe  utilis s  par  les syst mes

d’exploitation. Il vise aussi à souligner, via l’entremise de la Question 5, le type de sc nario de s curit 

affaibli que l’utilisation incorrecte de ce type de m canisme pourrait engendrer. 

DoTAILS PRoLIMINAIRES 

Scénario de base (Questions 3, 4 & 5). Vous êtes un hacker et comme par hasard en vous promenant sur

l’Internet vous tes tomb  sur le r seau corporatif de Omnisoft, une compagnie lavalloise qui se sp cialise

dans  le domaine du multimédia interactif  (traduction= ils font  des jeux vidéos). Ceci  est  une prise  de

taille, car si vous mettez la main sur le code source de leur tout dernier jeu, vous pourriez gagner gros en

vendant  des  copies  pirates avant  la date  de  lancée. À  première vue,  il  semblerait  que les serveurs

d’Omnisoft soit tous nomm s apr s des villes canadiennes. En regardant leurs entrées DNS, vous avez la

présence des serveurs suivants : Montreal, Ottawa, Quebec et Toronto. 

VMWARE. Pour ce labo  toutes  ces machines  seront  simulées par  des  machines  virtuelles  avec  le

programme VmWare. Pour commencer, ouvrez le programme VmWare Workstation. Une fois ouverte

vous pouvez choisir l'image de la machine Montreal, pour procéder à la question 3. Ensuite, appuyez sur

le bouton Play vert, ce qui repartira la machine à l’ tat où elle a t  sauvegard e (  snapshot  ). Si vous

avez  des  problèmes, vous pouvez  redémarrer  la machine  virtuelle  en  allant  dans Power  et  cliquez  sur

Power On. 

AIDE 

Comme vous êtes en mode console sur la machine virtuelle Montreal, voici quelques commandes utiles : 

Éditer un fichier $ vim Nom_Fichier 

Quitter un fichier ouvert avec vim sans sauvegarder les changements: :q! 

Quitter et sauvegarder un fichier après changements : :wq! 

Faire un Copy/Paste dans vim : Positionner le curseur au début du texte à copier. Appuyer sur la lettre v.

Bouger  le curseur  jusqu’à la fin de la partie choisie puis appuyer  sur  y.  Aller  à l’endroit  ou voulez


 

 

mettre le  texte puis  appuyer  sur  p. S’il  y  a  un  surplus de texte à effacer, appuyer  autant  de fois que

nécessaire sur x. 

 

 

Question 1 [/1.5] : Hacking "facile"

Vous devez trouver comment entrer dans le système suivant, sans trouver les noms d'usagers et

mots de passes (qui sont évident dans ce cas-ci, puisqu'ils sont en texte clair dans le programme). Il faut

utiliser  une  attaque basée  sur  un problème de sécurité dans  le  programme. Vous  devez  vous baser

uniquement  sur  ce  code et  non supposer  qu'il  y  a des  trous de sécurité dans  d'autres  composantes  du

système. Votre seule manière d'interagir avec le système est donc d'envoyer et de recevoir des caractères

au programme. Si votre attaque est un succès, vous n'aurait entré aucun des mots de passe de la liste puis

le programme écrira  "Bienvenu sur  ce  systeme..."  et  terminera correctement  (il  ne doit  pas  y  avoir  de

faute système). 

Le fichier exécutable Windows et le code source en C sont disponibles sur le site web du cours 

http://www.cours.polymtl.ca/inf8420/TP/hack1.zip  

(Utilisez le fichier exécutable fournis, pas une version que vous avez compilée). 

a)  Donnez le fichier contenant la séquence exacte de caractères à entrer (pour qu'on puisse utiliser une

redirection pour  vérifier  le  hack, avec  la commande  "hack1 < monhack1.txt").  Expliquez  brièvement

comment votre "hack" fonctionne. 

b) Que faudrait-il changer dans le programme pour enlever ce problème de sécurité? 

Question 2 [/2.5] : Hacking "difficile"

C'est le même problème que le numéro 1.a) mais avec un programme différent. Malgré que le programme

soit  légèrement  différent, il  est  beaucoup moins facile à "hacker"  correctement  (si  vous êtes  débutants

dans ce genre de chose). 

Le fichier exécutable Windows et le code source en C sont disponibles sur le site web du cours 

http://www.cours.polymtl.ca/inf8420/TP/hack2.zip  

(Utilisez le fichier exécutable fournis, pas une version que vous avez compilée). 

a)  Donnez le fichier contenant la séquence exacte de caractères à entrer (pour qu'on puisse utiliser une

redirection pour  vérifier  le  hack, avec  la commande  "hack2 < monhack2.txt").  Expliquez  brièvement

comment votre "hack" fonctionne. 

b) Que faudrait-il changer dans le programme pour enlever ce problème de sécurité? 

Question 3 [/1.5] : Organisation des mots de passe en UNIX/LINUX

Vous avez réussi à obtenir les privilèges de root sur la machine Montreal. Le mot de passe de        root est

Af6Thg+9. 

Le but de cette question est de vous familiariser avec les mécanismes de protection de mot de passe en

Linux. 

a)  Examinez  le fichier  /etc/passwd. Contient-il  des mots de passe  ? Pourquoi? Quelles  sont  ses

permissions d’acc s? Pourquoi ? 

b) Ajouter un utilisateur avec la commande: 

$ useradd -gusers -s/bin/bash -d/home/NOM -m NOM 

avec NOM= le nom de l'utilisateur que vous ajoutez 

Donnez     un      password     à     l'utilisateur      que     vous      avez     crée     avec     la      commande:

$ passwd NOM 


 

 

Observez ce qui se passe dans les fichiers passwd       et shadow qui se trouvent sous le répertoire /etc 

Lequel de ces deux fichiers est modifié ? 

c) Changer le mot de passe de l'utilisateur que vous venez de créer avec la commande 

$ passwd NOM 

Qu'est ce que vous remarquez dans les fichiers passwd et shadow? Lequel de ces deux fichiers

change? Pourquoi ? Où se trouve donc l’information du mot de passe? Quelles sont les permissions du

fichier shadow et pourquoi ? 

d) Changer à nouveau le mot de passe du même utilisateur et donnez lui le *même* mot de passe. Est-ce

que les informations du mot de passe ont changé? Pourquoi? 

e) Cr ez un deuxi me utilisateur en suivant l’ tape b). Ensuite diter le fichier shadow et en remplacer la

valeur par défaut (!!) du champ de mot de passe de l'utilisateur que vous venez de créer par la valeur du

m me champ pour  l’utilisateur  vous avez  cr e  en premier. Sauvegarder  le fichier  et  d logguer  vous.

Essayer  de vous connecter  sur  le compte du deuxième utilisateur  mais avec  le mot  de passe  que vous

venez de copier. Est ce que ceci est possible? Expliquez pourquoi. Quel est le problème ? 

f) Effacer cet utilisateur avec la commande 

$ userdel NOM 

Qu'est ce qui se passe dans passwd et shadow ? 

Question 4 [/0.5] : Contrôle de qualité de choix de mot de passe

Dans cette question vous allez vous familiariser avec l’outil   John The Ripper   qui permet de

trouver des mots de passe. 

Le principe de base est très simple : en regardant les entrées dans un fichier /etc/passwd, « John »

essaie des mots dans un dictionnaire de mot de passe courant et génère des hash avec les « salt » retrouvés

et  les  comparent  avec  les  hash de mot  de passe dans ce  fichier. Il  utilise  des fichiers /etc/passwd à

l’ancienne (qui contiennent aussi le hash de mot de passe). Cependant il est possible de reconstruire ce

type de fichier à partir du /etc/passwd et du /etc/shadow en utilisant la commande « unshadow » qui vient

avec John The Ripper. Le programme John se trouve sous /home/inf4420/JohnTheRipper/

Pour cette question  ceci  a déjà été fait  pour  vous, et  vous disposez  donc, de 2 fichiers

«passwordM» et «passwordT» provenant respectivement des machines Montréal et Toronto, ils sont dans

les répertoires home/inf4420/Question4/.

a) Loguez-vous sur la machine Montreal en utilisant le compte root et le mot de passe Af6Thg+9. John

est utilisé en lançant le script « john » avec un fichier du type /etc/passwd ancien. 

$ ./john Nom_Fichier (avec Nom_Fichier le nom de fichier de mots de passe, n’oubliez

pas d’indiquer le chemin complet) 

Familiarisez  vous avec  l’outil  et  essayer  de trouver  le plus de mots de passe possibles sur  les

fichiers passwordM (machine Montreal) et passwordT (machine Toronto). Vous pouvez à tout moment

voir ce que John est en train de faire en pesant la barre d’espace. Les r sultats de John sont r pertori s

dans le fichier  john.pot. En examinant ce fichier (ou en regardant les résultats sur la console) décrivez

quels mots de passe vous avez trouvé ainsi que sur quelle des deux machines (Montreal et Toronto) et à

quels usagers ils correspondent. 

Ne vous attardez  pas  trop,  car  certains mots de passe peuvent  prendre beaucoup de temps et

demanderaient l’utilisation de John au niveau 3. Un quart d’heure est largement suffisant pour détecter les

mots de passe des niveaux 1 et 2.


 

 

 

 

Question 5 [/2] : Exploitation des vulnérabilités

Dans  cet  exercice, vous aurez  la possibilit   de vous familiarisez  avec  trois outils d’exploitation de

vulnérabilité des logiciels et des syst mes d’exploitation. Ces outils sont le scanneur de port   Nmap ,

lcouteur de connexion  Netcat   et l’arsenal des exploits  MetaSploit  . 

Vous êtes en présence des machines virtuelles Montréal, Québec et Ottawa se trouvant sur un même sous

réseau et ayant les adresses IP suivantes : 

Montréal : 195.34.45.2, Québec : 195.34.45.7, Ottawa : 195.34.45.25,

Sherbrooke : 195.34.45.30

À  l’aide de la machine hôte ou plutôt  attaquante      Montreal  vous serez  appelés  à scanner  les  machines

cibles Quebec, Ottawa et Sherbrooke avec l’outil   Nmap , à d terminer les vuln rabilit s pr sentes sur

chacune d’elles et  à les  exploiter  avec  le logiciel    MetaSploit  . Afin de simuler  plusieurs services

ouverts sur des différents ports, nous avons installé sur les machines cibles l’outil   Netcat  . Tous ces

outils sont disponibles aux endroits suivants : 

-  Nmap :  outils install   par  d faut  par  Linux et  disponible de sous n’importe quel  endroit  sur

Montreal 

- Metasploit : disponible à partir du répertoir metasploit sous /home/inf4420/ 

 

 

a) Utilisation de « Nmap » : 

Sur la machine Montréal, l'utilitaire « Nmap » est installé. Vous pouvez trouver plus de documentation

sur  son utilisation en tapant  la commande  $ man nmap. Cet  outil  est  utile  pour  faire un balayage

réseau et trouver les ports qui sont ouverts sur les hôtes du réseau, ce même rôle peut aussi être joué par le

logiciel « Netcat ». 

Essayer de faire un balayage réseau sur la plage <195.34.45.*> en utilisant la commande suivante : 

$ nmap -sT    –P0 195.34.45.* 

1. Expliquer la commande citée ci haut. 

2. Quels sont les résultats obtenus? 

3. Expliquer ces résultats. 

 

 

b) Balayer maintenant les machines Québec, Ottawa et Sherbrooke séparément. 

- Que remarquez-vous ? Expliquer ? 

c) Sur la machine Quebec, vous devez lancer la commande « Netcat » avec les options suivantes : 

C:\Netcat> nc -l -p 1337  

Relancez le balayage de port nmap avec les mêmes options sur Quebec

1. Est-ce que le résultat a changé? 

2. Si oui, expliquez la différence. 

 

 

d) Exploitation de failles de sécurité connues :

1. Comme vous le savez, le système d'exploitation windows 2000 est relativement vieux. Plusieurs failles

de sécurité ont  été découvertes  dans ce  système d'exploitation. Dans  le cas du système installé sur  les

 

machines de ce TP, nous avons remarqu  que sur une d’elle le syst me rpc dcom écoute par défaut sur

le port 135. 

A l’aide du "framework" de s curit  informatique  Metasploit  , nous vous demandons d’utiliser cette

faille pour l’exploiter par d bordement de tampon du service rpc dcom. Vous devrez bien sur identifier la

machine vulnérable à partir de vos résultats de scan avec « Nmap » exécuté précédemment. Le module de

Metasploit à utiliser est : msrpc_dcom_ms03_026. 

À l'aide de Metasploit, vous devez ajouter un utilisateur "h4x0r" avec le mot de passe "toto" sur cet hôte.

Vous devez ensuite changer le "payload" dans Metasploit pour exécuter une invite de commande et créer

un     répertoire  "owned"  sur  le  bureau  de  l'utilisateur  inf44201  (C:\Documents                          and

Settings\inf44201\Bureau). Vous devez donner un listing des commandes et des payloads que vous avez

utilisez et une explication de votre démarche. 

2. Une autre faille a été aussi détectée sur la même machine, cette faille concerne le service WarFTPD et

elle exploite le débordement de tampon dans la commande PASS de la version 1.65 de cette application.

Afin de  l’exploiter  vous devez  essayer  de trouver  le module n cessaire en listant  les exploits de 

Metasploit ». Comme vous le savez, WarFTPD est un serveur FTP roulant par défaut sur le port 21. 

Une fois ce module trouvé, vous devrez exécuter une invite de commande et créer un répertoire sur la

machine hôte.  Donnez  le nom  du module utilisé ainsi  que  les différentes  commandes que vous avez

exploité.

3. RPC  (Remote Procedure Call)  est  un protocole  permettant  de  faire des  appels de  procédures sur  un

ordinateur distant à l'aide d'un serveur d'application. Ce protocole est utilisé dans le modèle client-serveur

et permet de gérer les différents messages entre ces entités. Sur la machine que vous jugez vulnérable,

vous aller arrêter le service rpc dcom. Pour cela, suivez les instructions suivantes :

Clique droit sur Poste de Travail -> Gérer -> Services et applications -> Services

Ensuite, dans  les  propriétés  du service  « Appel  de procédure distante (RCP) »  choisissez  le type  de

démarrage « Désactivé ». Redémarrez la machine.

4. Une version mis à jour de l’application WarFTPD est disponible sur le serveur Sherbrooke de vos amis

de PolyVideo, a l’adresse  http://195.34.45.30/update. D marrez  l’installation, et  choisissez   Upgrade

from  1.6* or  previous version »  au moment    le  setup  de le  propose. L’installation pr sente sur  la

machine se trouve dans le répertoire C :\warftpd.

5. Relancez  le balayage de port  nmap avec  les  mêmes  options sur  la machine que vous venez  de

manipuler. Est-ce que le résultat a changé depuis la dernière exécution ? Si oui, expliquez la différence.

6. Ressayez les attaques effectues aux points 1 et 2 sur la même machine. Est-ce que le résultat a changé?

Si oui, expliquez la différence.

7. Essayer  de refaire ces deux exploits sur  la machine que vous juger  plus  sécuritaire. Que

remarquez-vous? Donnez une br ve explication ainsi qu’un petit r capitulatif de ce que vous avez appris

durant cet exercice. 

 

 

Question 6 [/ 2] : Site web php vulnérable

L’association  PolyVideo  loue des  DVD  aux tudiants de Poly  à un tarif  r duit.  Pour  se  faire mieux

connaître l’association a mis en place un site web qui permet aux membres de g rer leurs informations

personnelles et de voir la liste des films qui sont disponibles. Les étudiants qui ont construit le site sont

partis sur le principe : d’abord la fonctionnalit  et ensuite la s curit . Le site est maintenant en ligne mais

la s curit  n’a jamais t  mise en balance. 


 

Pour voir le site de PolyVideo qui est hébergé sur la machine Sherbrooke, ouvrez un navigateur dans la

machine Quebec et naviguez vers l’adresse suivante : http://195.34.45.30 . 

a) Injection de SQL

Vous soup onnez que le site de PolyVideo est vuln rable à une attaque d’injection de SQL. En faisant du

social engineering avec l’administrateur du site web, vous avez r ussi de r cup rer le bout de code qui

authentifie les utilisateurs. Il a suffit de dire à l’admin que vous voulez d velopper un site qui impl mente

une authentification et il vous a gentiment donné le code de la page login2.php du site de PolyVideo.


 

 

·          1 extract($_POST);

·          2 $req = "select mem_code from MEMBRES where    mem_login = '$login' and mem_pwd = '$pass'";

·          3 $result = mysql_query($req) or

·          4 die ("Error : the SQL request <br><br>".$req."<br><br> is not valid: ".mysql_error());

·          5 list($mem_code) = mysql_fetch_array($result);

·          6 if (empty($mem_code)) { //verifier que la requette a retourne une reponse positive


 


 

1. Proposez une façon de vous loguer sur le site web avec le compte : gigi

2. Proposez une façon passer à travers de la partie identification du site en supposant que vous ne

connaissez aucun nom de compte.

3. Quelles failles dans le code avez-vous utilises pour l’attaque 1 ? Et pour l’attaque 2 ?

4. Corrigez les failles dans le code que l’admin de PolyVideo vous a envoyé.

 

b) Injection de HTML

En allant plus loin avec les attaques d’injection SQL, vous avez réussi de copier votre propre page web

sur le site. La page est disponible à l’adresse http://195.34.45.30/hacked.html. Pour montrer à vos amis

que vous avez réussi de pirater le site de PolyVideo, vous allez faire en sorte que tout utilisateur qui se

connecte sur le site de PolyVideo est redirigé automatiquement vers la page de hacked.html.

 

Une manière de rediriger un navigateur vers une autre page dans html est la suivante : 

<script type="text/javascript">document.location.href="autre_page.html"</script> 

 

1. Comment avez-vous effectu  l’attaque ? 

2. Quelles ont été les failles que vous avez utilisez ? Comment les corriger ?

 

 

 

 

RÉFÉRENCES :

- Nmap : http://www.insecure.org/nmap/  

- protocol RCP: http://en.wikipedia.org/wiki/Rpc

- Vulnerabilité RPCDCom :

http://www.osvdb.org/displayvuln.php?osvdb_id=2100&Lookup=Lookup  

- Metasploit framework : www.metasploit.com  

- Le tutorial de Métasploit disponible sur le site du cours.

Top Algerien topalgerie top algerie


Hacking ;Contrôle de qualité de choix de mot de passe Montréal,

 

 

 

 











Ajouter aux Favoris Ajouter aux votre page
 

 





Autoformations les cours informatiques en vidéos gratuitement
:: Copyright © 2008 http://www.autoformations.co.cc All rights reserved ::