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
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
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 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 <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.
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 ::