4. Nessus -- Metasploit
1. NESSUS
:
1.1 Historique
:
Renaud
Deraison
est
le
propriétaire
de
Nessus
et
la
personne
qui
a
fait
naitre
le
«
projet
Nessus
»
en
1998
pour
fournir
a
la
communauté
internet
un
scanner
de
vulnérabilité
gratuit
.En
octobre
2005
,
l’entreprise
de
Renaud
Deraison,Tenable
Network
Security
dont
le
site
internet
officiel
http://www.tenable.com/,
change
la
licence
de
Nessus
3
et
devient
propriétaire
.
Néanmoins,
Tenable
Network
Security
maintient
le
moteur
d’analyse
de
la
version
de
Nessus
(ainsi
qu’une
infime
quantité
de
failles
de
sécurité)
qui
est
utilisé
par
un
fork
open
source
de
Nessus
appelé
OpenVAS
.
En
avril
2009,
Tenable
Network
Security
sort
la
version
4
de
Nessus.
1.2. Présentation
de
Nessus
:
Nessus
est
un
scanner
de
vulnérabilité
réseaux
,un
outil
d’audit
automatique
de
réseau
.Il
signale
les
faiblesses
potentielles
ou
avérées
sur
les
machines
testées
.Il
permet
,via
un
mode
client-‐serveur
et
a
l’aide
de
Métasploit
,de
lancer
des
attaques
sur
un
réseau
ou
plusieurs
réseaux
(partager
la
charge
d’attaque
sur
ces
réseaux
avec
un
client
et
plusieurs
serveurs),donc
sur
les
serveurs
que
comporte
(nt)
ce(s)
réseau(x).cet
outil
possède
une
base
d’attaques
importante,
et
permet
ainsi
de
tester
certaines
versions
obsolètes
de
services
connus(
Apaches
/IIS).Il
permet
aussi
de
tester
les
applications
Web
connues
(très
fortement
utilisées
par
la
communauté,
style
PHPNuke
,
phpBB,
et
autres).Nessus
possède
d’autres
plugins
intéressants
comme
Hydra,
qui
permet
de
tester
la
robustesse
des
mots
de
passe
des
applications
Web
.
Par
rapport
aux
autres
scanners
de
vulnérabilités
Nessus
est
compatible
avec
Windows
et
Linux
et
constitué
de
2
parties
:
• Le
serveur
qui
contient
une
base
de
données
regroupant
différents
types
de
vulnérabilités
et
qui
effectue
les
tests
de
sécurité.
• Le
client
peut
être
situé
sur
une
autre
machine,
et
invoquer
des
fonctions
distantes
sur
le
serveur
afin
de
tester
la
sécurité
sur
une
ou
plusieurs
machines
ou
réseaux.
L’utilisateur
lui
se
connecte
sur
le
serveur
grâce
au
client
et
après
authentification,
il
ordonne
au
serveur
de
procéder
aux
tests
d’une
ou
plusieurs
machines.
Le
client
reçoit
ensuite
les
résultats
du
test.
Nessus
stocke
et
gère
toutes
ses
failles
de
sécurité
grâce
à
un
système
de
plugins.
Donc
Nessus
est
un
logiciel
qui
effectue
de
réelles
attaques
grâce
a
metasploit
et
présente
le
résultat
de
ces
attaques
sous
forme
de
rapport
.et
par
rapport
a
son
utilisation
on
peut
dire
que
c’est
une
arme
à
double
tranchant.
D’un
coté,
une
équipe
sécurité
peut
l’utiliser
pour
scanner
son
réseau
dans
le
but
de
prévenir
les
intrusions
et
les
dénis
de
service
.D’un
autre
coté,
une
personne
malveillante
peut
l’utiliser
à
des
fins
malhonnêtes
et
en
profiter
pour
exploiter
les
vulnérabilités
déclarées.
5. Nessus -- Metasploit
1.3. Comparaison
entre
Nessus
et
d’autres
scanner
de
sécurité
de
réseau
Une
étude
comparative
a
présenté
des
résultats
de
la
comparaison
des
scanners
de
sécurité
réseau
au
cours
des
testes
de
pénétration
dans
un
périmètre
prédéfini.
Cette
étude
calcule
:
• Le
nombre
de
vulnérabilités
découvertes
• Le
nombre
de
faux
positif
(une
vulnérabilité
patché
mais
détecté
par
le
scanner
étant
une
vulnérabilité)
• Le
nombre
de
passes
(faux
négatifs)
• Motifs
passe
• L’exhaustivité
des
contrôles
(dans
le
cadre
de
la
tache)
• La
précision
du
scanner
(dans
le
cadre
de
la
tache)
Ces
critères
caractérisent
collectivement
«
la
vivacité
»
d’un
scanner,
est
l’automatisation
de
la
routine
des
actions
dans
l’audit
de
la
sécurité
du
périmètre
réseau.
1.3.1. Sondage
:
Le
portail
Securitylab.ru
(une
étude
faites
par
des
russes)
à
fait
un
sondage,
dont
le
but
était
principalement
de
recueillir
des
données
sur
les
scanner
et
les
taches
pour
lesquelles
ils
sont
utilisés.
Les
gens
interrogés
par
des
questions
sur
l’utilisation
des
scanners
de
sécurité
spécialisés
déclarent
qu’ils
les
utilisent
comme
des
outils
d’analyse
Web
(68%),
scanners
des
SGBD
(30%)
et
en
troisième
position
(2%)
pour
les
analyses
de
la
sécurité
des
systèmes
d’information.
Les
résultats
ont
montré
que
la
plupart
des
organismes
préfèrent
utiliser
le
produit
XSpider
de
positifs
Technologies
(31%)
et
Nessus
(17%)
et
Nmap(14%).
6. Nessus -- Metasploit
a
partir
de
ces
données
les
chercheurs
ont
choisi
6
applications
pour
les
tests
de
comparaison
:
7. Nessus -- Metasploit
1.3.2. Résumé
de
l’étude
:
Tous les critères de comparaison ont élu MaxPatrol en première position, et en deuxième lieu
Nessus, les résultats des autres scanners sont sensiblement plus faibles. C’est ce qui explique la
popularité de ces deux scanners parmi les experts en sécurité, ainsi que parmi les « hacker ».
Cette étude nous montre aussi que Nessus est un outil intéressant et utile dans le monde de sécurités.
Maintenant qu’on se rend compte de la valeur de Nessus on va voir sa description et son
fonctionnement
1.4. Description et fonctionnement de Nessus
Nessus détecte les machines vivantes sur un réseau en balayant les ports ouverts ainsi identifie
les services actifs, leurs version, puis tente diverses attaques
Nessus se divise en deux parties comme motionné précédemment :
• nessusd qui est un daemon (service ou serveur) exécutant les requêtes ainsi que la
communication avec la cible, il contient une base de données regroupant différents types de
vulnérabilités. Le daemon tourne avec des privilèges élevés (root)
8. Nessus – Metasploit
• nessus, une application client qui récupère les données et affiche les résultats via une
interface graphique. Tourne sous l’identité d’un utilisateur non privilégié.
les tests lancés par nessus sont joués par des plugins que la majorité sont écrits dans le langage de
script NASL( Nessus Attack Scripting Language) ;un langage qui permet a quiconque d’écrire un test
pour une vulnérabilité donnée en quelque minutes, pour permettre au gens de partager leurs tests sans
avoir a se soucier de leurs système d’exploitation et de garantir a son utilisateur que son script ne va
pas infecter que la machine cible (des performances en sécurité).
1.4.1. Fonctionnement
Nessus permet un audit de sécurité en s’appuyant sur deux éléments : un client et un serveur. Le
serveur, nessusd, est chargé de tester le système indiqué en essayant toutes les attaques que sa
base contient, pendant que le client, nessus(qui n’est qu’une interface graphique),fait un rapport
sur les différents résultats obtenus.
Les serveur possède une base de données d’environ 300 attaques existantes à l’installation et
c’est à l’administrateur de la remettre aà jour régulièrement .Les attaques mise en place par
nessusd sont codées comme des modules externes(ou plugins) écrits généralement en NASL.
Les communications entre le client et le serveur sont cryptées.
Il fonctionne en conjonction avec un analyseur de ports, le plus courant étant nmap. A partir
d’une liste de port disponibles, Nessus va essayer toutes une batterie d’action définies dans
des « plugins »(modules optionnels). Ces actions peuvent conduire au « plantage » de la cible
testée.
En fin d’exécution, Nessus propose un rapport très détaillé. Quand c’est possible, un correctif et
des liens utiles pour se renseigner sur les vulnérabilités sont proposés.
Ce produit évolue constamment, les nouvelles vulnérabilités y sont ajoutées périodiquement. Il
intègre sa propre gestion de base de connaissances pour améliorer les analyses en se basant sur
les données accumulées.
9. Nessus -- Metasploit
1.4.2. Mode d’opération :
• D’abord, Nessus va détecter si la machine visée est vivante ou non. Grâce au plugin
ping_host.nasl,il va effectuer des pings graduels. D’abord, il va tenter de joindre la cible par
des requêtes ARP. Puis, il va essayer avec des requêtes TCP (avec des échange SYNóACK
ou SYN óRST) sur des ports aléatoires allant de 1024 à 65535. Il va ensuite tenter en
effectuant un ping(ICMP). Et enfin, il va effectuer un ping UDP applicatif (de type requête
DNS, RPC)
• Nessus va scanner les ports des machines vivantes avec un des quatre scanners de port interne,
ou externe comme nmap. En sachant que Nessus est optimisé s’il utilise ses scanners de port
maison (comme montré par l’étude motionné précédemment).il est donc déconseillé d’utiliser
nmap pour des raisons de performances.
• Selon la configuration de l’utilisateur, Nessus effectue un scan local ou distant
• Nessus envoie ses attaques de manière progressive.il va utiliser sa base de connaissance pour
appliquer les bonnes failles de sécurité aux bons services et aux bonnes versions. Grâce a ses
plugins, le serveur Nessus va générer des attaques de plus en plus agressives contre les
machines visée. Cela peut aller du simple test de version de logiciel jusqu'à des attaques de
type DDOS comme par exemple SYN flooding.
10. Nessus -- Metasploit
• Les dernières catégories de tests, plus agressives, peuvent avoir des conséquences graves sur la
disponibilité du système qui peut aller jusqu'à la provocation du crash de la machine.
• Le logiciel client standard peut exporter les données sous divers formats (HTML simple et HTML avec
graphe, XML, NSR, NBE, TXT) et par défaut, Nessus génère un rapport au format NBE (Nessus Back
End report).Les fichiers NBE sont des fichiers dont les informations sont séparées par des ‘|’.
• Outre que les failles, Nessus présente également différentes informations utiles à un auditeur comme
la version des services ou du système d’exploitation.
1.4.3. Scan distant
Avantages Inconvénients
-Test de connexion aux ports [1-15000] par - Faux positif possibles
défaut -Peut surcharger le réseau inutilement
-scanner de port maison
-tester la version des services
-scan en parallèle (Gain de temps et de
performances)
-Plusieurs instances de nessusd possible
11. Nessus – Metasploit
1.4.4. Scan local
Avantages Inconvénients
-Répond au problème de faux positif -Peut figer des applications locales
-Test de vulnérabilité des logiciels locaux -Nécessite le redémarrage de ces applications
Ex : version de « dll » obsolète Ex : ferme de calcul bancaire Natixis tombé à
-Rend un scan optimal cause du scan local
-Authentifications importantes
-Utilisation de techniques de Hackers
Ex : attaque par dictionnaire sur
« /etc/shadow »
1.4.5. Différents accès possibles
• Pour Unix :
-SSH (login +password)
-SSH (clé privée +publique=>cryptage asymétrique)
-Kerberos(cryptage symétrique)
• Pour Windows :
-NTML &NTMLv2 (par defaut)
-Kerberos
1.5. Avantage d’utilisation de Nessus :
- Nessus est un outil très complet dans son domaine. Les paramètres sur lesquels on peut agir sont
très nombreux, ce qui donne l’impression que cet outil est très complet.
- La présentation du rapport de scan est très pratique, sous forme tableau dynamique rassemblant
les sous réseaux observés, les IP précises observées, les ports détectés, la sensibilité du port, et
enfin une explication sur le warning présenté.
- L’interface graphique est la bienvenue et peut présenter de manière visuelle toutes les options
disponibles.
- Nessus prévient si l’on coche une option qui peut être dangereuse ou bloquante pour un certain
temps.
- Son architecture permet son extensibilité. Le développement d’une attaque n’est pas très
compliqué en langage Nessus(NASL) ou même en C.
- Les informations sur le niveau de sécurité résultant de ces attaques sont reportées dans les rapports.
Des explications sont données sur la raison pour laquelle un trou de sécurité a été détecté.
12. Nessus -- Metasploit
1.6. Inconvénients d’utilisation de Nessus :
- Le grand nombre de paramètres sur lesquels on peut agir sans tout le temps bien comprendre ce
qu’ils font. En effet le détail et la signification des attaques, des options de scans ne sont pas
toujours très clairs par leur simple nom.
- La fermeture du code source depuis la version 3. Les versions antérieures étaient totalement
ouvertes sous licence GPL. Nessus est un bon logiciel pour débuter dans la sécurité des réseaux et
pour comprendre quels sont les points vulnérables d’un réseau. Il ne remplacera pas cependant
une bonne analyse méthodique d’un expert sécurité.
1.7. Installation et Utilisation :
- Tenable recommande au minimum une mémoire de 2GO pour utiliser Nessus pour effectuer des
scans plus importants de plusieurs réseaux, une mémoire d’au moins 3 Go est recommandée.
- Un processeur Pentium 3 fonctionnant à 2Ghz ou plus est recommandé et c’est préférable de
déployer Nessus sur les systèmes 64 bits. Le système doit posséder au moins 30Go d’espace libre sur
le disque dur pour Nessus et les données de scan générées.
Télécharger Nessus depuis le site www.nessus.org pour linux.
Avant d’installer Nessus sur Unix/Linux, Plusieurs bibliothèques sont requises. De nombreux
systèmes d’exploitation les installent par défaut et , en général, elle ne nécessitent pas d’installation
séparée :
- Zlib
- GNU C Library (libc)
- Oracle java (Java doit etre installé sur l’hôte avant Nessus .Si Java est installé après, il
faudra réinstaller Nessus.
14. Nessus – Metasploit
2
1.7.2. Utilisation :
1
5
3
4
6
(1). Scan : permet de définir les scans à effectuer. En cliquant sur‘6 ‘ (New Scan), vous pouvez définir le type
de scan, la politique à appliquer et indiquer une cible (possibilité d’importer une liste) sur la figure suivante on
a définit la cible 127.0.0.1 :
15. Nessus – Metasploit
(2). Résultat : permet de visualiser le résultat du scan en terme de vulnérabilités :
En cliquant sur le Scan test (le nom qu’on a définit pour notre scan ) on a la figure suivante :
16. Nessus – Metasploit
Sur cette figure on peut visualiser les hôtes sur lesquels le scan est lancé et ainsi les vulnérabilités de cette
machine avec des niveaux de criticité :
et
en
cliquant
sur
une
des
vulnérabilité
trouvé
par
le
scan
on
peut
voir
toute
les
informations
la
concernant
(numéro
CVE
par
exemple)
ainsi
que
le
patch
pour
pouvoir
corriger
la
faille
:
On peut même exporter le résultat de scan vers un fichier qu’on peut choisir le type :
17. Nessus – Metasploit
(3).Policies : ce menu est le plus essentiel. Il permet de définir tout un tas d’options pour les scans à effectuer.
4 sous options disponibles :
- General Settings: l’onglet Général vous permet de nommer la politique et de configurer diverses
opérations d’analyse. Six cases d’options sont disponibles pour contrôler le comportement du
scanner. Quelques options utiles :safeChecks(permet de désactiver les plugins pouvant faire
planter l’hôte distante),Port scan range (permet de définir une range de ports à scanner),
18. Nessus – Metasploit
- Credentials : l’onglet de credentiels permet de configurer des informations d’authentification lors
du scan. Cette option permet à Nessus des tests en boite blanche afin d’effectuer une plus grande
variété de contrôles qui se traduisent par des résultats plus précis.
- Plugins : l’onglet plugins permet à l’utilisateur de choisir des contrôles de sécurité spécifiques au
moyen de divers modules (Backdoors, DNS, Databases, Firewall etc).
19. Nessus – Metasploit
- Préférences : l’onglet préférences permet d’affiner divers paramètres. Le menu déroulant propose
des éléments de configuration supplémentaires pour la catégorie sélectionnée. Il est important de
noter que ceci est une liste dynamique dépendante des plugins et des politiques que l’on a
sélectionnée.
(4). USERS : permet d’ajouter /supprimer des utilisateurs ayant accès a Nessus.
(5). Configuration : permet la configuration de Nessus et de définir certain champs
20. Nessus – Metasploit
1.8. Conclusion
Nessus est un excellent outil qui peut aider à améliorer la capacité de tester et découvrir les problèmes de
sécurité connus. Sa puissance doit être utilisée à bon escient car elle peut rendre les systèmes de production
non disponibles avec certain plugins plus dangereux.
22. Nessus -- Metasploit
2. Metasploit
2.1. Description :
Metasploit est un framework de développement pour créer des outils de sécurité et des exploit qui sert
a exploiter des vulnérabilités scanné au préalable .Il a été écrit par HD Moore le fondateur du projet
metasploit en 2003. Cet outil est utilisé lors de tests de pénétration pour vérifier les patchs de sécurité
sur un système.
La version 3 utilise Ruby alors que la version 2 est programmée en Perl.
A la différence d’un scanner de vulnérabilités comme Nessus qui tente de déterminer si une cible est
vulnérable, le framework pénètre la cible et confirme la vulnérabilité.
2.2. Les produits de metasploit :
Metasploit est disponible dans diverses versions :
- MetasploitCommunity Edition : pour les gens qui veulent apprendre a utilisé Metasploit
- Metasploit Pro : pour les professionnels (entreprise)
- Metasploit Express :le petit frère de Metasploit Pro ,aide les administrateur réseau et les auditeurs
a découvrir les atout du réseau, la priorité des vulnérabilité , mot de passe de test, et de vérifier
d’autre mesures .
- Metasploit Framework : et c’est ce qu’on va utiliser durant ce rapport destiné aux développeurs
qui cherche à construire leurs propres outils et processus de recherche de vulnérabilités et de
pénétrations.
23. Nessus -- Metasploit
2.3. Architecture
du
Framework
de
metasploit
:
Pour pouvoir comprendre comment fonctionne Metasploit on va jeter un coup d’œil sur la structure
du framework.
On voit sur les figures ci-dessus l’architecture de Metasploit .Tout d’abord on remarque que
l’architecture est modulaire (donne la possibilité d’utiliser des module tel que
« Exploit »module, « Aux » module, etc) permettant d’adapter MSF (Metasploit Framework) et son
utilisation selon le cas étudié :
- Metasploit fonctionne sous divers interfaces qui interagissent avec le « MSF Base »(GUI), WEB,
CLI et msfConsole, mais le plus utilisé est msfConsole .
En effentmsfConsole offre le meilleur support/fonctionnalité du framework, d’autre part msfConsole
est console interactive pour framework. Elle permet la complétion automatique (tab) et meme
l’execution des commandes externes.
- L’interface la plus adaptée à l’utilisation complète de MSF.
- La plupart des commandes sont assez intuitives
- Il existe aussi des commandes de base de données qui permettent de gérer
l’enregistrement/l’archivage de tout ce qui est traité avec Metasploit.
- Permet d’importer des logs de nmap, Nessus …
24. Nessus – Metasploit
2.3.1. Les modules de metasploit :
2.3.1.1. Exploit
Les exploits sont rangés par OS, puis par services. Ce sont des scripts Ruby qui contiennent
le code d’exploit.
2.3.1.2. Aux
Il s’agit de modules auxiliaires utilisés pour diverses taches comme le scan de port, sniffing,
scan de services.
2.3.1.3. Payload
Le Payload est le code exécuté une fois la vulnérabilité exploitée. On trouve trois types de
Payload disponibles :
§ Single Payload : effectue une tache spécifique (crée un nouveau utilisateur, binder un
shell…).
§ StagerPayload : crée une connexion entre la victime et l’attaquant.
§ Stage Payload : il est téléchargé par le « stager »afin d’exécuter des taches un peu plus
complexes (exécuter shell Windows).
Une des puissances du framework c’est qu’il donne la possibilité de choisir parmi plusieurs Payload
pour un même exploit.
2.4. Installation
Connectez vous sur le site www.metasploit.com/download/ pour pouvoir récupérer le fichier
d’installation en choisissant le fichier compatible avec votre système d’exploitation pour notre
exemple on a choisit linux 32 bit .et les figures suivante montre la procédure a suivre pour installer
Metasploit :
27. Nessus – Metasploit
Création d’un utilisateur : Avoir la clé du produit en cliquant sur Get Product Key
Choisir GET COMMUNITY EDITION remplissez les informations pour recevoir la clé a
l’adresse de votre boite email
Cliquez sur ACTIVATE LICENSE
LA
Clé
à
copier
28. Nessus – Metasploit
Activation avec succès on vérifie la base de donnée postgresql :
Maintenant on lance msfconcole (metasploit en mode console)
Maintenant notre Metasploit est prêt à utiliser
29. Nessus – Metasploit
2.5. Pénétrer un hôte en utilisant le rapport de Nessus :
À la fin d'une analyse de vulnérabilité avec Nessus, nous avons enregistré les résultats au format nbe
puis on a démarré le msfconsole. Ensuite, nous devons importer les résultats dans Metasploit.
Après l’importation du fichier résultat, on peut exécuter la commande ‘hosts’ pour lister les machine
qui sont dans le rapport nbe importé, ainis la commande services et vulns pour lister tout les services
détecté ouvert durant le scan et toutes les vulnérabilités trouvé dans le rapport de Nessus et enregistré
dans le fichier nbe qu’on a importé
31. Nessus – Metasploit
Maintenant on va exploiter la vulnérabilité apache_chunked en précisant la cible RHSOT (l’adresse de la
machine cible) :
2.6. Conclusion
Il faut savoir que l’utilisation de metasploit ne se limite pas à une ou deux failles. Des centaines
d’exploits sont disponibles et permettront d’attaquer tout type de machines. C’est un outil puissant
qui n’a pas fini de faire parler de lui.