CHIENGA ARNAULD © 2010
|
![]() |
|||||
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 ,
l’ couteur 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
Settingsinf44201Bureau). 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 où 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
".$req." 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 : 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 Ajouter aux Favoris Ajouter aux votre page Acceuil | Forum| Contactez-Nous | Annace |Chat| Music |Radios|Sockets |Protocoles|Windows NT Langage C |Langage C++ | Assembleur | Java | Perl |Pascal/delphi | Visual basic|MERISE | SQL| JDBC| ODBC ASP|CGI |HTML |DHTML |XML|Javascript |JSP |PHP|Servlets |VBScript |WAP |UNIX |Linux |MacOS|Windows 9x Assemblage-PC |Modèle relationnel|Histoire-PC|Fonctionnement-PC|photo pour rire|MS-Dos|Architecture-PC Flash MX |Word-2003|Power Point|Excel|Langage C|Langage Java|Visual Basic|La base XP | programming Physique Arabic partie I|Programation en arabe|Physique Français|Internet| Sécurité Informatique HTML |Agebre en Français|Math Français partie I|Physique Arabic partie II| الطرق العددية Electricité| Math Français partie II|Math en Arabic|Agebre en Arabic| الأعداد العقدية Tous les cours informatiques en vidéos |Droit Informatique |logiciels Tous les cours physiques en vidéos |Microsoft office Cours math en vidéos | Msn en ligne TV Live Autoformations les cours informatiques en vidéos gratuitement :: Copyright © 2008 http://www.autoformations.co.cc All rights reserved :: |
![]() |