Vous êtes sur la page 1sur 13

Nessus : loutil daudit de services rseau

Description :
Nessus est un outil de scurit informatique. Il signale les faiblesses potentielles ou avres
sur les machines testes. Ceci inclut entre autres :
Les services vulnrables des attaques permettant :
la prise de contrle de la machine
l'accs des informations sensibles (lecture de fichiers confidentiels par
exemple)
des dnis de service...
Les services jugs faibles (on suggre par exemple de remplacer Telnet par SSH)
Les dnis de service contre la pile TCP/IP
Les mots de passe par dfaut, quelques mots de passe communs, et l'absence de mots
de passe sur certains comptes systmes. Nessus peut aussi appeler le programme
externe Hydra pour attaquer les mots de passe l'aide d'un dictionnaire.
Nessus est galement capable de :
dtecter une version d'un service, sans utiliser la bannire d'accueil que l'on peut
spcifier pour un service, mais en tudiant son comportement.

Principe de Fonctionnement :
Nessus dtecte les machines vivantes sur un rseau, balaie les ports ouverts, identifie les
services actifs, leurs versions, puis tente diverses attaques.
Nessus utilise des logiciels tiers sils sont disponibles :
Le scanner de port Nmap qui fournit des fonctionnalits avances dans le domaine du
balayage de port ;
Le logiciel Nitko ou Whisker qui permet de faire des tests et des attaques spcifiques
sur les serveurs Web
enfin loutil Hydra cit plus haut qui fournit des attaques brute-force pour des
services tels que Telnet, IMAP
Le fait que Nessus utilise des logiciels tiers tient du principe quil nest pas ncessaire
dimplmenter de nouveau ce qui existe dj et rpond parfaitement aux besoins.
Nessus est bas sur une architecture client / serveur qui permet de multiples
Configurations ; il se divise donc en deux parties :
nessusd qui est un daemon excutant les requtes ainsi que la communication avec la
cible, et
nessus, une application client qui rcupre les donnes et affiche le rsultat.
Le dmon de Nessus est plac lextrieur du rseau de lentreprise sur Internet (WAN) afin
deffectuer des sries de tests externes.
Le client lui est lintrieur du rseau. Il permet de contrler le serveur et de configurer le
serveur qui effectue lattaque proprement dite de la machine cible. Il est ainsi possible davoir
une vision claire des services effectivement vulnrables partir dInternet.

Nessus intgre dimportantes bases de connaissances relatives aux services proposs sur
divers systmes dexploitation, aux failles de vulnrabilit et aux rsolutions des problmes
cres par la prsence des failles de vulnrabilit. La base de donnes a lavantage dtre
largement volutive grce au systme de plug-in.
En effet, chaque test de scurit se prsente sous forme dun plug-in extrieur. Les plug-in
correspondant aux failles de scurit les plus rcentes sont disponibles sur Internet. Nous en
dnombrons plus de 2000 ce jour. Ces plug-in, sur un systme dexploitation de type
Linux, sont placs dans le rpertoire ddi /usr/lib/nessus/plugin/. Dans linterface cliente, il
est possible de choisir les plug-in que nous voulons prendre en compte.
Le principe de fonctionnement de Nessus se rsume comme suit :
1. Le client Nessus se connecte et sidentifie.
2. Le client et le serveur schangent leurs certificats afin de crypter les donnes et que
le serveur authentifie le client. Les certificats sont des fichiers chiffrs qui permettent
dauthentifier les diffrents intervenants lors de transactions sur Internet.
3. Le serveur informe le client des diffrents tests et options disponibles.
4. Le client envoie les diffrents paramtrages au serveur.
5. Le serveur Nessus effectue un balayage de la cible laide des diffrents scanners de
port sa disposition. Le scanner de port employ peut tre Nmap.
6. La ralisation du scan.
7. Les informations rcoltes lors du scan sont enregistres dans la base de donnes.
8. Le serveur Nessus effectue les tests correspondant aux donnes recueillies lors du
balayage des ports. Par exemple si le port 23 est ouvert, les tests correspondant
Telnet sont lancs.
9. Les plug-in de tests analysent la cible en se reposant sur la base de donnes.
10. Les plug-in enregistrent les informations relatives aux tests dans la base de donnes.
11. Toutes les informations sont envoyes au serveur Nessus lors de lexcution des tests.
12. Les informations rcoltes ainsi que leurs analyses sont mises la disposition de
lutilisateur.
Nous pouvons obtenir la reprsentation schmatique suivante :

Mise en uvre :
Lutilisation de Nessus peut se faire sur diffrents systmes dexploitation tel que : les
diffrentes versions de Windows et de nombreuses dclinaison dUnix telles que Linux,
FreeBSD, etc.
Ici nous utilisons une distribution LINUX : DEBIAN

I.

Details de lInstallation :

Installation de la partie serveur sur la machine distante :

On procde une installation en ligne de commande :


$ sudo apt-get install nessusd
Congratulations. Your server certificate was properly created.
/etc/nessus/nessusd.conf updated
The following files were created :
. Certification authority :
Certificate = /var/lib/nessus/CA/cacert.pem
Private key = /var/lib/nessus/private/CA/cakey.pem
. Nessus Server :
Certificate = /var/lib/nessus/CA/servercert.pem
Private key = /var/lib/nessus/private/CA/serverkey.pem
#

Ensuite on cre un compte nessus :


$ sudo nessus-adduser
Using /var/tmp as a temporary file holder
Add a new nessusd user
----------------------

Login : l-laforet
Authentication (pass/cert) [pass] :
Login password :
Login password (again) :
User rules
---------nessusd has a rules system which allows you to restrict the hosts
that l-laforet has the right to test. For instance, you may want
him to be able to scan his own host only.
Please see the nessus-adduser(8) man page for the rules syntax
Enter the rules for this user, and hit ctrl-D once you are done :
(the user can have an empty rules set)
192.168.1.0/24
default deny

Login
: test
Password
: ******
DN
:
Rules
:
192.168.1.0/24
default deny
Is that ok ? (y/n) [y]
user added.
#

Ici, nous avons spcifi que notre utilisateur l-laforet est seulement en
mesure d'accder au rseau 192.168.1.0/24.

Installation du client :

# apt-get install nessus


Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
libatk1.0-0 libgd-gif1 libgtk2.0-0 libgtk2.0-bin libgtk2.0-common
libnessus2 libpango1.0-0 libpango1.0-common libtiff4
Suggested packages:
ttf-kochi-gothic ttf-kochi-mincho ttf-thryomanes ttf-baekmuk
ttf-arphic-gbsn00lp ttf-arphic-bsmi00lp ttf-arphic-gkai00mp
ttf-arphic-bkai00mp nessusd
Recommended packages:
libatk1.0-data hicolor-icon-theme x-ttcidfont-conf
The following NEW packages will be installed:
libatk1.0-0 libgd-gif1 libgtk2.0-0 libgtk2.0-bin libgtk2.0-common
libnessus2 libpango1.0-0 libpango1.0-common libtiff4 nessus
0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.
Need to get 6323kB of archives.
After unpacking 18.8MB of additional disk space will be used.
Do you want to continue? [Y/n] Y

II.

Configuration :
1. Configuration du serveur :
Pour vrifier la configuration, par dfaut ici, du serveur nessusd, nous pouvons utiliser la
commande nessusd -s :
$ sudo nessusd -s
plugins_folder = /var/lib/nessus/plugins
email = root
max_hosts = 255
max_checks = 15
logfile = /var/log/nessus/nessusd.messages
log_whole_attack = yes
log_plugins_name_at_load = no
dumpfile = /var/lib/nessus/nessusd.dump
rules = /etc/nessus/nessusd.rules
users = /etc/nessus/nessusd.users
per_user_base = /var/lib/nessus/users
cgi_path = /cgi-bin
optimize_test = yes
checks_read_timeout = 15
delay_between_tests = 1
test_file = /etc/passwd
port_range = 1-15000
ping_hosts = yes
reverse_lookup = no

host_expansion = dns;ip
subnet_class = C
scan_level = normal
outside_firewall = no
plugin_upload = no
language = english
peks_username = nessusd
peks_keylen = 1024
peks_keyfile = /etc/nessus/nessusd.private-keys
peks_usrkeys = /etc/nessus/nessusd.user-keys
peks_pwdfail = 5
track_iothreads = yes
cookie_logpipe = /etc/nessus/nessusd.logpipe
cookie_logpipe_suptmo = 2
cert_file = /var/lib/nessus/CA/servercert.pem
key_file = /var/lib/nessus/private/CA/serverkey.pem
ca_file = /var/lib/nessus/CA/cacert.pem
config_file = /etc/nessus/nessusd.conf
$

La configuration du serveur s'effectue par le fichier /etc/nessus/nessusd.conf.


Nous lanons le serveur par la commande suivante :
$ sudo nessusd -D
Loading the plugins... 1530 (out of 2063)
-----------------------------------------------------------You are running a version of Nessus which is not configured
to receive a full plugin feed. As a result, your security
audits might produce incomplete results.
To obtain a full plugin feed, you need to register your
Nessus scanner at the following URL :
http://www.nessus.org/register/
-----------------------------------------------------------All plugins loaded
$

Ici le chargement des plugins s'effectue en premier. Ces plugins chargs permettront au client
de slectionner les diffrents types d'attaques.
On regarde si le processus est bien lanc :
$ ps aux | grep nessus root
4864 0.0 1.2 7324 4704 ?
nessusd: waiting for incoming connections
$

Ss 21:49 0:00 \

2. Configuration des tests de scurit :


On lance l'application sur la machine cliente par la commande suivante:
$ sudo nessus

On obtient alors linterface ci-dessous :

Nessusd host : permet de dfinir le serveur Nessus et de sy connecter


Plug-ins : il est possible ici de choisir la liste des plug-in que nous
excuterons lors de la dtection des vulnrabilits.
Prefs : cet onglet permet dindiquer des informations complmentaires
Nessus, que des pirates sont susceptibles davoir en leur possession. Cela peut
tre par exemple le nom et le mot de passe correspondant un compte de type
FTP, SMB, IMAP etc. La connaissance de ces informations
complmentaires peut permettre Nessus de dtecter davantage de
vulnrabilits et rendre ainsi le scan plus complet.
Scan options : cest ici que nous indiquons la plage de ports que nous
souhaitons scanner. Il est galement possible dactiver loption safe checks
pour viter de faire tomber le serveur cibl. Il est galement possible dactiver
ou de dsactiver de nombreuses autres options : le nombre dordinateurs
tester en mme temps, choix des scanners de port utilis

Target selection : nous effectuons le choix de la ou les machines vises. Nous


pouvons spcifier une adresse IP ou une plage dadresse IP. La notion CIDR
est supporte.
User : permet de spcifier des rgles pour, par exemple, exclure une adresse
IP sur laquelle nous ne dsirons pas effectuer de tests.

Configuration des plugins : Il est possible de choisir quels plug-in on dsire lancer
au moyen de cet cran. En cliquant sur le nom dun plug-in, une fentre expliquant ce
que fait le plug-in saffiche.

Configuration des options de scan : Ici, nous spcifions les options gnrales du
scan. Cet onglet permet d'ajuster la plage des ports que l'on souhaite scanner. C'est
aussi ici que nous positionnons l'option Safe check, qui, comme son nom l'indique,
permet de limiter les risques lors du scan.
Cette option propose par Nessus permet de limiter les risques lors d'un scan. En effet,
le principe d'un scan est d'interagir avec les quipements du rseau. Cependant,

certains des types de scan utiliss ne respectent par les RFC. Cela a pour effet de
rendre instable certains de ces quipements. Il est donc recommand de limiter les
types de scans sur des quipements en production.

Configuration de la porte des tests : Il est possible dindiquer la cible de diverses


faons. On peut utiliser :
une simple adresse IP
une plage dadresse IP.
Ici nous prenons la classe C entire.

Activation de la base de connaissance : Grand intrt de ce logiciel, la base de


connaissance permet de rendre intelligente l'application. Lors d'un scan d'un rseau
entier, ce dernier, rencontrant lments ou services identiques, ne va perdre son temps
reproduire ses tests. Cette base contenant les ports et services ouvert peut galement
tre sauvegarde, pour effectuer un comparatif par exemple avec un futur scan d'une
mme partie d'un rseau.

Autres configurations :
Dautre configurations sont disponibles, notamment celles relatives aux rgles (Prefs)
permettant aux utilisateurs de limiter leurs tests. Il est possible par exemple dexclure une
adresse IP que lon ne veut pas tester.

III.

Test :

Une fois toutes les configurations effectues on peut alors procder aux diffrents tests
laide de la touche Start the scan visible sur linterface ci-dessus.
Aprs excutions des tests on obtient les rsultats dans linterface ci-dessous :

Interprtation des tests :

Le rapport gnr par Nessus permet de slectionner chaque machine du rseau dtct. Pour
chaque machine, il fait remonter les services l'coute sur le rseau. Pour chaque service il
effectue un rapport sur la scurit mise en place. Il fournit des conseils forts utiles, et, fait
prendre conscience d'un rel risque en terme de scurit sil y en a lors du dploiement d'un
service quelconque.
En rsum on a :
Une premire zone permet de slectionner un sous rseau qui vient dtre
test ; ici on a un seul sous-rseau.
Une seconde zone permet de choisir un ordinateur ou un serveur au moyen de
son adresse IP.
Une troisime zone indique les ports qui ont t dcouverts avec une indication
du niveau de gravit maximale associ chaque port.

Exemple de rsultats pour un port:

Warning found on port echo (7/tcp)


The 'echo' port is open. This port is
not of any use nowadays, and may be a source of problems,
since it can be used along with other ports to perform a denial

of service. You should really disable this service.


Risk factor : Low
Solution : comment out 'echo' in /etc/inetd.conf
CVE : CVE-1999-0103
Nessus ID : 10061
Information found on port echo (7/tcp)
An echo server is running on this port
Nessus ID : 10330
On remarque que Nessus retourne le dtail de ses recherches, on peut lister tous les ports et
ainsi voir quel est le trou de scurit. Dans lexemple on est devant un risque de Dos, en plus
comble du luxe il nous propose une solution ce qui savre trs pratique.
Il est noter que les informations ainsi obtenues sont exportables sous divers formats. Nous
pouvons citer par exemple les formats : ASCII text, LaTeX, HTML ou Spiffy HTML,
cest--dire des documents HTML qui comportent des graphiques et des graphes.

Conclusion :
En rsum nous pouvons dire que:
Nessus est un analyseur de scurit de machine et rseau. Il permet de dtecter un
grand nombre de vulnrabilits sur les systmes les plus connus. Nessus est bas sur le
scanner Nmap, dont il intgre l'ensemble des fonctionnalits. Il y ajoute cependant un
grand nombre de connaissances.
Sa particularit premire est qu'il fonctionne en mode client / serveur. Le client permet
de configurer le serveur qui effectue une attaque de la machine vise.

Nessus donne trois types dindications qui sont les suivantes :


Trou de scurit : indique les failles de vulnrabilits prsentent
Alerte de scurit : indique des failles qui peuvent devenir des trous de scurit
Message de scurit : donne la possibilit un attaquant de fournir des
informations sur le poste.

Depuis la version 3, le code est propritaire mais le logiciel reste gratuit sauf pour une
exploitation en entreprise (1200 dollars par an). Un fork de Nessus 2, OpenVAS, est
lui disponible sous licence GPL (libre).

Nessus est adapt pour les entreprises de petite et moyenne taille (entreprises de moins
de 1000 machines). Les limites de son utilisation apparaissent avec des rseaux de
tailles importantes. En effet, dans le cas des tests raliss sur un petit rseau de trois
postes qui ne propose pas normment de services, les rapports daudit atteignaient
jusqu' 16 pages. Dans un vritable rseau dentreprise, o le nombre de machines
prsentes sur le rseau peut dpasser le millier, la question de lexploitation
convenable des rsultats obtenus se pose. Des rapports volumineux peuvent vite
devenir inexploitables.

Documentation :
http://www.nessus.org.