PrésentationAvertissement | Sara ( Présentation  , installation , Utilisation) |  NmapPrésentation, Installation   ,  SyntaxeQuelques exemples   , Le front end nmap   )   |  Nessus ( PrésentationInstallation   , Utilisation)  ]

Dernière modification 25.03.05

Auditer la sécurité de son réseau

Sécurité


Présentation

Le but de cette page est de vous présenter  trois outils qui vous permettront de tester la sécurisation des machines de votre réseau, ils vous révéleront vos trous de sécurité et vous avertiront des problèmes potentiels, à partir de là libre à vous de "boucher" les trous en question et d'upgrader certains programmes présentant quelques déficiences de sécurité. Ces outils procèdent en scannant votre machine, en testant tous les ports ouverts notamment et en testant un grand nombre de trous de sécurité connus.
Les outils présentés sont SARA qui est dérivé du célèbre SATAN qui n'a pas été maintenu depuis un certain temps, nmap qui est un puissant "scanneur" et nessus basé entre autres sur nmap mais avec en plus une interface particulièrement conviviale. Des trois outils c'est le dernier que je juge le plus puissant et de surcroît facile d'utilisation.
[Retour haut de la page ]

AVERTISSEMENT

Je vous déconseille évidemment fortement de tenter de scanner une machine ne vous appartenant pas se trouvant sur le net, le scan sera considéré comme une attaque, vous vous exposez à des problèmes en proportion avec la machine visitée, mais bon je vous aurais prévenu.
 
 
 
[Retour haut de la page ]

Sara

Présentation

En 1995 est apparu un outil d'administration pour tester la sécurité d'un réseau, avec le nom évocateur de SATAN (Security Administrator Tool for Analyzing Networks). Il avait la particularité d'être Open Source, il est très vite devenu un standard et fut à la base d'une pléthore d'outils équivalents. Le problème est que maintenant SATAN commence fortement à dater, ça fait un paquet de temps qu'il n'a pas été remis à niveau, en d'autres termes, il est actuellement complètement dépassé. En conséquence une boîte (Advanced Research Corporation) commença le développement d'un outil similaire au goût du jour, ainsi naquit SARA (Security Auditor Research Assistant), comme SATAN , SARA est Open Source.
A noter qu'il existe une version commerciale de SARA, appelée SARA-PRO. A noter encore qu'un des auteurs de SARA est aussi à l'origine de SAINT, un autre SATAN-like.
 
[Retour haut de la page ]

Installation

On peut récupérer l'archive de SARA à savoir sara-6.0.1.tgz à l'URL www-arc.com/sara , qu'on décompressera en tapant :

tar xvfz sara-6.0.1.tgz

Après décompression, vous allez récupérer un répertoire sara-6.0.1. Vous devez avoir préalablement installé le package tcsh. Puis dans le répertoire ainsi obtenu, il suffit de taper successivement :

./configure 


Puis en tant que root

make

Lors de la compil, il peut se plaindre de l'absence de certaines commandes, mais ce n'est pas bien grave.

Looking for all the commands now...

AEEEIIII...!!!  can't find mail
 

AEEEIIII...!!!  can't find tftp
 

AEEEIIII...!!!  can't find ypcat
 

AEEEIIII...!!!  can't find finger
 

AEEEIIII...!!!  can't find rusers
 

AEEEIIII...!!!  can't find ypwhich
 

AEEEIIII...!!!  can't find rlogin
 

AEEEIIII...!!!  can't find rsh

Si tout à la fin vous obtenez

Now building CVE database

Now building FIFOs for SSS
chgrp: nom de groupe invalide `nobody'

C'est que vous ne disposez pas du groupe nobody mais d'un groupe nogroup dans ce cas éditer le fichier ./sara-6.0.1/reconfig et au lieu de

system(`chgrp $web_owner $sara_in`);

vous mettez

system(`chgrp nogroup $sara_in`);

Retapez make puis

make install

Voilà ce que ça donne

rm: ne peut enlever `/usr/local/sara/*': No such file or directory
make: *** [install] Erreur 1

Dans le fichiere Makefile à la ligne 51 je supprime

@rm -r $(PREFIX)/sara/*

Et je retape make install il va créer un répertoire /usr/local/sara.


[Retour haut de la page ]

Utilisation

En tant que root il suffit de taper

/usr/local/sara/sara

NOTE: Si vous disposez de nmap (voir le chapitre suivant), vous pouvez rajouter l'option -n pour lui indiquer, le scan sera d'autant meilleur.

Et là surprise, c'est le browser par défaut qui se lance. Pour mozilla, il y a une chose à modifier dans les Préférences pour que ça puisse marche,  aller dans le menu:
 
 
Edition -> Préférences -> Navigateur-> Applications -> dans la liste choisir Perl Program (au besoin créer un Nouveau Type)-> puis en final Edition, modifiez les champs tels qu'indiqués sur le screenshot à droite.

Pour Konqueror, il n'y a rien à faire. Voilà maintenant dans le browser vous avez la page d'accueil de Sara


A noter que la partie Documents/CVE est très bien fournie ainsi que la section Troubleshouting se présentant sous forme de FAQ.

La première étape est de sélectionner la cible à analyser. on clique donc sur Target Selection, vous devez alors saisir:

Primary target selection: choix de la cible

Vous pouvez choisir une machine particulière (target host), un sous réseau complet (network), ou une plage d'adresse (range), la syntaxe est la suivante :

- un hôte simple hote.local.com
- plusieurs hôtes: hote1.local.com hote2.local.com
- un sous réseau: 192.168.13.0/24
- une plage d'adresse: 192.168.0.55-192.168.0.98

Scanning level selection  choix du niveau de scan

Les choix sont :

- Light : léger (pour que la machine cible ne se rende pas compte)
- Normal : peut être détecté et inscrit dans les fichiers de log de la cible
- Heavy : lourd, des messages d'erreurs peuvent apparaître sur les consoles système de la cible
- Extreme : extrême, ça peut planter
- Custom : personnalisé (seulement scan SMB (samba), Web, Mail, Telnet, FTP)
- Custom : personnalisé (seulement scan TCP)
- Custom : personnalisé (seulement un scan de test)

Firewall Support utilisation d'un firewall

Est ce que la cible se trouve derrière un firewall ?

On a le choix entre oui et non

 Pour l'exercice, je choisis une machine sous Mandrake avec un scanning heavy qui n'est pas derrière un firewall mais sur mon réseau local.

Voilà maintenant on a un bouton start the scan, et c'est parti, là ça peut prendre un certain temps, voilà le résultat final sur la machine obelix.armoric.bz dans une page du navigateur.

Data collection in progress...

Adding a primary target
Add-primary: obelix.breizland.bz
Add-target: obelix.breizland.bz prox 0
policy: obelix.breizland.bz prox 0 level 2
Check-pulse: obelix.breizland.bz
==> running bin/timeout 180 bin/fping obelix.breizland.bz
process_targets: probe obelix.breizland.bz...
Prox: 0
AL  : 2
Add-todo: obelix.breizland.bz|dns.sara|
Add-todo: obelix.breizland.bz|rpc.sara|
Add-todo: obelix.breizland.bz|finger.sara|
Add-todo: obelix.breizland.bz|ddosscan.sara|
Add-todo: obelix.breizland.bz|hosttype.sara|
Add-todo: obelix.breizland.bz|tcpscan.sara
1-1525,1527-5404,5406-5899,5901-7099,7101-8887,8889-9999,12345,16600,20034,27374,27665,31337,31785,65000|
Add-todo: obelix.breizland.bz|udpscan.sara
1-1760,1763-2050,31335,31337,27444,32767-33500|
==> running bin/timeout 20 bin/ddosscan.sara  obelix.breizland.bz
==> running bin/timeout 180 bin/udpscan.sara
1-1760,1763-2050,31335,31337,27444,32767-33500  obelix.breizland.bz
Add-fact: obelix.breizland.bz|#|a|x||||offers #
Add-fact: obelix.breizland.bz|echo|a|x||||offers echo
Add-fact: obelix.breizland.bz|bootps|a|x||||offers bootps
Add-fact: obelix.breizland.bz|sunrpc|a|x||||offers sunrpc
Add-fact: obelix.breizland.bz|netbios-ns|a|x||||offers netbios-ns
Add-fact: obelix.breizland.bz|netbios-dgm|a|x||||offers netbios-dgm
==> running bin/timeout 20 bin/finger.sara  obelix.breizland.bz
Add-fact: obelix.breizland.bz|finger.sara|u|||||program timed out
==> running bin/timeout 20 bin/rpc.sara  obelix.breizland.bz
Add-fact: obelix.breizland.bz|nfs|a|x||||runs NFS
Add-fact: obelix.breizland.bz|mountd|a|x||||runs NFS
Add-fact: obelix.breizland.bz|statd|a|x||||runs statd
==> running bin/timeout 20 bin/dns.sara  obelix.breizland.bz
==> running bin/timeout 180 bin/hosttype.sara  obelix.breizland.bz
==> running bin/timeout 180 bin/tcpscan.sara
1-1525,1527-5404,5406-5899,5901-7099,7101-8887,8889-9999,12345,16600,20034,27374,27665,31337,31785,65000
 obelix.breizland.bz
Add-fact: obelix.breizland.bz|ipp|a||||HTTP/1.0 400 Bad Request\r\nDate: Sat, 10 Mar 2001 09:01:04 GMT\r\nServer: CUPS/1.1\r\nContent-Type: text/html\r\nContent-Length: 101\r\n\r\n
Bad Request
Bad Request\n|offers ipp
Add-fact: obelix.breizland.bz|masqdialer|a||||READY\n|offers masqdialer
Add-fact: obelix.breizland.bz|tproxy|a|||||offers tproxy
Add-fact: obelix.breizland.bz|nntp|a||||200 Leafnode NNTP Daemon, version 1.9.18
running at obelix.breizland.bz\r\n|offers nntp
Add-fact: obelix.breizland.bz|blackjack|a|||||offers blackjack
Add-fact: obelix.breizland.bz|smtp|a||||220 rennes-1-a7-21-114.dial.proxad.net
ESMTP Sendmail 8.11.0/8.11.0/Olivier Hoarau-992911; Sat, 10 Mar 2001 10:01:11 +0100\r\n221 2.0.0 rennes-1-a7-21-114.dial.proxad.net closing connection\r\n|offers smtp
Add-fact: obelix.breizland.bz|submission|a||||220 rennes-1-a7-21-114.dial.proxad.net ESMTP Sendmail 8.11.0/8.11.0/Olivier
Hoarau-992911; Sat, 10 Mar 2001 10:01:11 +0100\r\n221 2.0.0
rennes-1-a7-21-114.dial.proxad.net closing connection\r\n|offers submission
Add-fact: obelix.breizland.bz|telnet|a||||Welcome to
obelix.breizland.bz\r\nLinux
Mandrake release 7.2 (Odyssey) for i586\r\nKernel 2.2.17-21mdk on an
i686\r\nQUIT\r\n\r\n|offers telnet
Add-fact: obelix.breizland.bz|ftp|a|||||offers ftp
Add-fact: obelix.breizland.bz|ssh|a|||||offers ssh
Add-fact: obelix.breizland.bz|http|a|||||offers http
Add-fact: obelix.breizland.bz|meregister|a|||||offers meregister
Add-fact: obelix.breizland.bz|pop3|a|||||offers pop3
Add-fact: obelix.breizland.bz|sunrpc|a|||||offers sunrpc
Add-fact: obelix.breizland.bz|1024:TCP|a|||||offers 1024:TCP
Add-fact: obelix.breizland.bz|1026:TCP|a|||||offers 1026:TCP
Add-fact: obelix.breizland.bz|netbios-ssn|a|||||offers netbios-ssn
Add-fact: obelix.breizland.bz|http-alt|a||||HTTP/1.0 500 WWWOFFLE Server
Error\r\nServer: WWWOFFLE/2.6a\r\nDate: Sat, 10 Mar 2001 09:01:16 GMT\r\nContent-type: text/html\r\n\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n
                                                           \nWWWOFFLE - World Wide Web Offline Explorer\n
\n\n

\n\n\n\n
                                                          WWWOFFLE - Erreur du Serveur \n\n
                                                      \nLe serveur WWWOFFLE a rencontré une erreur fatale :\n
                                                                 \nCannot parse the HTTP request\n
                                                  \nLe programme ne peut pas continuer à traiter cette requête.\n
\n\n
\nCeci est une erreur interne du serveur WWWOFFLE. Si elle persiste\nbien que
le serveur soit correctement configuré et qu'il n'y ait pas\nd'autre problème sur l'ordinateur, alors signalez la (en\nanglais) à l'auteur de WWWOFFLE.\n\n<\n\n\n\n

\n\n
                                                           \nWWWOFFLE - [Page d'Accueil?FAQ] - WWWOFFLE\n
\n\n\n\n\n\n\n|offers http-alt
Add-fact: obelix.breizland.bz|X-0|a|||||offers X-0
Waiting for all processes to complete
Add-todo: obelix.breizland.bz|smb.sara|
Add-todo: obelix.breizland.bz|depends.sara|statd
Add-todo: obelix.breizland.bz|http.sara|http
Add-todo: obelix.breizland.bz|sample.sara.ext|http
Add-todo: obelix.breizland.bz|http.sara|http-alt
Add-todo: obelix.breizland.bz|sample.sara.ext|http-alt
Add-fact: obelix.breizland.bz|http-alt|a|||||offers http:http-alt
Add-todo: obelix.breizland.bz|depends.sara|nfs
Add-fact: obelix.breizland.bz|nfs|a|g||||runs NFS
Add-todo: obelix.breizland.bz|sendmail.sara|
Add-todo: obelix.breizland.bz|relay.sara|
Add-todo: obelix.breizland.bz|login.sara|-u root
Add-todo: obelix.breizland.bz|login.sara|-u guest
Add-todo: obelix.breizland.bz|depends.sara|telnet
Add-todo: obelix.breizland.bz|showmount.sara|
Add-todo: obelix.breizland.bz|nfs-chk.sara|-t 10
Add-fact: obelix.breizland.bz|mountd|a|g||||runs NFS
Add-todo: obelix.breizland.bz|ssh.sara|
Add-todo: obelix.breizland.bz|ftp.sara|
Add-todo: obelix.breizland.bz|xhost.sara|-d obelix.breizland.bz:0
Add-fact: obelix.breizland.bz|ipp|a|||||offers http:ipp
Add-todo: obelix.breizland.bz|http.sara|ipp
Add-todo: obelix.breizland.bz|sample.sara.ext|ipp
Add-fact: obelix.breizland.bz|http-alt|a|||||offers http
==> running bin/timeout 45 bin/login.sara -u root obelix.breizland.bz
Add-fact: obelix.breizland.bz|telnet|a|g||||
==> running bin/timeout 45 bin/login.sara -u guest obelix.breizland.bz
==> running bin/timeout 180 bin/http.sara ipp obelix.breizland.bz
Add-fact: obelix.breizland.bz|ipp|a|g||||offers http
==> running bin/timeout 700 bin/smb.sara  obelix.breizland.bz
Add-fact:
obelix.breizland.bz|netbios-ssn|a|zwoi|ANY@obelix.breizland.bz|ANY@obelix.breizland.bz|netbios
over the internet|Is your Netbios secure
==> running bin/timeout 20 bin/xhost.sara -d obelix.breizland.bz:0
obelix.breizland.bz
==> running bin/timeout 20 bin/ftp.sara  obelix.breizland.bz
Add-fact: obelix.breizland.bz|ftp||||||offers ftp
==> running bin/timeout 20 bin/showmount.sara  obelix.breizland.bz
Add-fact: obelix.breizland.bz|showmount|a|||||Not running showmount or other
error
==> running bin/timeout 20 bin/depends.sara telnet obelix.breizland.bz
==> running bin/timeout 180 bin/http.sara http-alt obelix.breizland.bz
Add-fact: obelix.breizland.bz|http-alt|a|g||||offers http
==> running bin/timeout 20 bin/sample.sara.ext http-alt obelix.breizland.bz
==> running bin/timeout 20 bin/depends.sara statd obelix.breizland.bz
Add-fact: obelix.breizland.bz|statd|a|rcio|ANY@ANY|ANY@ANY|rpc statd access|rpc.statd on Linux is vulnerable if not patched
==> running bin/timeout 20 bin/sendmail.sara  obelix.breizland.bz
Add-fact: obelix.breizland.bz|smtp|a|zcio|ANY@ANY|ANY@ANY|sendmail version|sendmail VRFY command may provide hacker information
Add-fact: obelix.breizland.bz|smtp|a|zcio|ANY@ANY|ANY@ANY|sendmail version|sendmail EXPN command may provide hacker information
==> running bin/timeout 120 bin/nfs-chk.sara -t 10 obelix.breizland.bz
==> running bin/timeout 20 bin/sample.sara.ext http obelix.breizland.bz
==> running bin/timeout 700 bin/relay.sara  obelix.breizland.bz
Add-fact:
obelix.breizland.bz|smtp|a|ycio|ANY@obelix.breizland.bz|ANY@obelix.breizland.bz|SMTP may be a mail relay|Probable smtp relay (spam)
==> running bin/timeout 180 bin/http.sara http obelix.breizland.bz
Add-fact: obelix.breizland.bz|http|a|g||||offers http
==> running bin/timeout 20 bin/depends.sara nfs obelix.breizland.bz
Add-fact: obelix.breizland.bz|nfsd|a|zcio|ANY@ANY|ANY@ANY|mountd vulnerabilities|nfsd version may be vulnerable to buffer overflow
==> running bin/timeout 20 bin/ssh.sara  obelix.breizland.bz
Add-fact: obelix.breizland.bz|ssh|a|g||||offers ssh
==> running bin/timeout 20 bin/sample.sara.ext ipp obelix.breizland.bz
Waiting for all processes to complete

Data collection completed (1 host(s) visited).

Back to the SARA start page | Continue with report and analysis | View primary target results

ATTENTION  Le scan peut provoquer le blocage de certains services de la machine cible.

Si vous choisissez View primary target results,  vous obtiendrez un truc du style:

General host information:

            Host type: unknown type
            NFS server
            NIS server
            NNTP (Usenet news) server
            SSH server
            Telnet server
            WWW server
            Subnet 192.168.13
            Scanning level: heavy
            Last scan: Fri Mar 10 19:01:23 2001

Vulnerability information:

            Is your Netbios secure
            sendmail EXPN command may provide hacker information
            sendmail VRFY command may provide hacker information
            rpc.statd on Linux is vulnerable if not patched
           Probable smtp relay (spam)
           SMTP may be a mail relay
           nfsd version may be vulnerable to buffer overflow

Vous constatez qu'il y a des liens un peu partout qui vous donne plus d'info.

Si par contre vous choisissez  "Continue with report and analysis ", vous aurez alors le menu suivant:

Table of contents

Vulnerabilities

By Approximate Danger Level
By Type of Vulnerability
By Vulnerability Count

Host Information

By Class of Service
By System Type
By Internet Domain
By Subnet
By Host Name

Trust

Trusted Hosts
Trusting Hosts

Reporting

SARA Pro Reporter

Chaque catégorie étant un lien vers un autre page avec davantages de détails et d'informations sur chaque vulnérabilité. Je ne vous les présenterai pas de manière exhaustive, car ça part vraiment dans tous les sens.
 

[Retour haut de la page ]

Nmap

Présentation

Nmap est un puissant outil qui permet de scanner les ports, il a pour but de tester la sécurisation des postes de vos réseau, vous devez vous en servir uniquement pour votre réseau, si vous tentez de scanner quelqu'un d'autres sur le réseau internet, sachez que ce sera considéré comme une attaque, c'est donc à vos risques et périls...
Pour info  nmap se trouve maintenant intégré dans la mandrake, je vous présenterai  l'installation avec le tarball avec la dernière version stable 3.48, l'installation avec les rpm de la Mandrake se réduit à sa plus simple expression. L'utilisation de nmap que vous l'ayez installé avec le rpm ou avec le tarball reste la même.
 
 
 
[Retour haut de la page ]

Installation avec le tarball

Vous pouvez trouver nmap sur le site www.insecure.org/nmap La dernière version stable est la 3.48 qu'on peut récupérer sous forme de tarball.
Attention de ne pas installer nmap si vous disposez déjà de la version Mandrake, pour le savoir:

rpm -qa | grep -i nmap

Si vous obtenez

nmap-3.XX-Xmdk
nmap-frontend-3.XX-Xmdk

On va supprimer ces deux packages.

rpm -e nmap-3.XX-Xmdk
rpm -e nmap-frontend-3.XX-Xmdk

Pour décompresser le tarball rien de plus simple.

tar xvfj nmap-3.81.tar.bz2

Cela va créer dans le répertoire courant un répertoire nmap-3.81. Au préalable vous veillerez à installer si ce n'est déjà fait sur votre Mandrake  les packages suivants: byacc, glib-devel, gtk+-devel, flex et libpcap

Puis la commande classique:

./configure

Tapez maintenant

make

Puis en tant que root

make install

Cela va installer les exécutables nmap et nmapfe sous /usr/local/bin, et d'autres fichiers sous /usr/local/share/nmap, si ça ne vous convient pas, vous pouvez changer les chemins en tapant configure avec les arguments qui vont bien (./configure --help pour la syntaxe).
 
 
 

[Retour haut de la page ]

Syntaxe

La syntaxe est classique:

nmap [options éventuelles] cible

Les options principales sont:

   -sT scanning des ports TCP ouverts, on ouvre une connexion sur tous les ports ouverts, toutes les connexion sont visibles sur la machine cible (dans les fichiers de log notamment),
   -sS scanning des ports TCP, on envoit un message SYN pour dire qu'on va ouvrir une connexion TCP puis on attend la réponse, après réponse on sait que le port est ouvert, l'avantage de cette option est que l'action n'est pas logué par la cible,
   -sF,-sX,-sN Stealth FIN, Xmas, ou Null scan (marche que sous UNIX) scan des ports plus discrets (voir man nmap pour plus de détails)
   -sP équivalent à ping, pour voir si la cible est "alive", ne fait pas de scan,
   -sU scanning des ports UDP ouverts (plutôt lent),
   -b <ftp_relay_host> ftp "bounce attack" port scan, en gros ça exploite un trou de sécurité sur certain proxy, je vous en dirais pas plus (voir le man).

D'autres options intéressantes (liste non exhaustive):

   -O permet de connaître sur quel OS tourne la cible (fingerprinting en anglais),
   -p <range> syntaxe pour avoir un ensemble de ports à scanner, exemple :
        -p 23 on va regarder que le port 23
         -p 20-30,63000-va scanner les ports de 20 à 30 et supérieur à 63000 (jusqu'à 65535 en fait)
         par défaut il scrute uniquement de 1 à 1024 plus les ports se trouvant dans/etc/services ,
   -F  scan rapide, scanne uniquement les ports contenus dans  /etc/services,
   -I permet d'avoir plus d'info sur les ports TCP ouverts, notamment le proprio,
   -o <logfile> log le résultat dans le fichier <logfile>,
   -v Verbose, mode verbeux (recommandé),
   -h help, pour avoir la liste complète des options,
   -V pour avoir uniquement le numéro de version, pas la peine de rentrer de cible,
   -e <devicename>, avec ça on peut spécifier une interface particulière pour envoyer les paquets (eth0, ppp0,etc.).

Maintenant la cible peut être identifié par son nom sur internet ou son adresse IP. On peut désigner un ensemble d'adresse aussi, ou des sous-masques de réseau particulier. Par exemple  domaine.org/24 ou 192.88.209.5/24, 192.88.209.0-255 ou bien encore '128.88.209.*'.
 
 
 

[Retour haut de la page ]

Quelques exemples

L'utilisation la plus simple est celle-ci:

nmap -v tosh

Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2005-03-18 21:50 CET
Warning: File ./nmap-services exists, but Nmap is using /usr/local/share/nmap/nmap-services for security and consistency reasons.  set NMAPDIR=. to give priority to files in your local directory (may affect the other data files too).
Initiating SYN Stealth Scan against tosh.kervao.fr (192.168.1.10) [1663 ports] at 21:50
Discovered open port 25/tcp on 192.168.1.10
Discovered open port 587/tcp on 192.168.1.10
Discovered open port 725/tcp on 192.168.1.10
Discovered open port 111/tcp on 192.168.1.10
Discovered open port 6000/tcp on 192.168.1.10
Discovered open port 110/tcp on 192.168.1.10
The SYN Stealth Scan took 2.19s to scan 1663 total ports.
Host tosh.kervao.fr (192.168.1.10) appears to be up ... good.
Interesting ports on tosh.kervao.fr (192.168.1.10):
(The 1657 ports scanned but not shown below are in state: closed)
PORT     STATE SERVICE
25/tcp   open  smtp
110/tcp  open  pop3
111/tcp  open  rpcbind
587/tcp  open  submission
725/tcp  open  unknown
6000/tcp open  X11
MAC Address: XX:XX:XX:XX:XX:XX (Netgear)

Nmap finished: 1 IP address (1 host up) scanned in 2.498 seconds
               Raw packets sent: 1705 (68.2KB) | Rcvd: 1667 (76.7KB)

La commande suivante va permettre de scanner tous les ports TCP réservés :

nmap -sS -O tosh

Warning: File ./nmap-os-fingerprints exists, but Nmap is using /usr/local/share/nmap/nmap-os-fingerprints for security and consistency reasons.  set NMAPDIR=. to give priority to files in your local directory (may affect the other data files too).

Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2005-03-18 21:52 CET
Interesting ports on tosh.kervao.fr (192.168.1.10):
(The 1657 ports scanned but not shown below are in state: closed)
PORT     STATE SERVICE
25/tcp   open  smtp
110/tcp  open  pop3
111/tcp  open  rpcbind
587/tcp  open  submission
725/tcp  open  unknown
6000/tcp open  X11
MAC Address: 00:09:5B:E7:67:87 (Netgear)
Device type: general purpose
Running: Linux 2.4.X|2.5.X|2.6.X
OS details: Linux 2.4.18 - 2.6.7
Uptime 0.098 days (since Fri Mar 18 19:30:40 2005)

Nmap finished: 1 IP address (1 host up) scanned in 5.247 seconds

Maintenant on va tester si sshd, DNS, pop3d, imapd (ports respectifs 22, 53, 110 et 143) tournent sur le système et si le port 4564 est utilisé:

nmap -sX -p 22,53,110,143,4564 tosh

Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2005-03-18 21:53 CET
Warning: File ./nmap-mac-prefixes exists, but Nmap is using /usr/local/share/nmap/nmap-mac-prefixes for security and consistency reasons.  set NMAPDIR=. to give priority to files in your local directory (may affect the other data files too).
Interesting ports on tosh.kervao.fr (192.168.1.10):
PORT     STATE         SERVICE
22/tcp   closed        ssh
53/tcp   closed        domain
110/tcp  open|filtered pop3
143/tcp  closed        imap
4564/tcp closed        unknown
MAC Address: XX:XX:XX:XX:XX:XX (Netgear)

Nmap finished: 1 IP address (1 host up) scanned in 1.495 seconds

On constate qu'il n'y a que le serveur POP3 qui marche sur la machine.
 
 
 

[Retour haut de la page ]

Le front end de nmap

En tant que root, il suffit de lancer nmapfe, voici ce que ça donne:


Vous voyez qu'il devient très simple d'utiliser nmap.
 

[Retour haut de la page ]

Nessus

Présentation

Nessus est un outil qui permet de tester la sécurisation des postes de votre réseau, il se base entre autres sur nmap que vous devez avoir installé préalablement, mais en plus de tester vos ports, il va scruter les composants logiciels de votre machine, pour déterminer les trous de sécurité et vous avertir sur certaines faiblesses.
Nessus est constitué d'une partie serveur et cliente, les deux peuvent très bien fonctionner sur la même machine.
 
 
[Retour haut de la page ]

Installation

Tout d'abord vous devez vous procurez les packages de nessus que vous trouverez à l'URL suivante www.nessus.org. Dézippez l'un après l'autre les packages dans un même répertoire

tar xvfz nessus-core-2.2.4.tar.gz
tar xvfz nessus-libraries-2.2.4.tar.gz
tar xvfz nessus-plugins-2.2.4.tar.gz
tar xvfz libnasl-2.2.4.tar.gz

Cela va donner les répertoires nessus-core, nessus-libraries, nessus-plugins et libnasl. Il faut d'abord installer le package byacc et bison, puis dans le répertoire nessus-libraries on tape

./configure

Un message vous indique de taper uninstall-nessus si vous voulez effacer une ancienne installation de nessus, on tape maintenant :

make

on passe en root puis on tape

make install

Les librairies sont installées sous /usr/local/lib, maintenant vous devez rajouter ce chemin dans /etc/ld.so.conf et tapez

ldconfig

Pour la suite des opérations les répertoires /usr/local/bin et  /usr/local/sbin doivent être dans votre PATH (env | grep PATH pour vérifier) si ce n'est pas le cas, dans le fichier .bashrc de votre homedirectory rajoutez :

PATH=$PATH:/usr/local/bin:/usr/local/sbin
export PATH

Et relancez un shell pour prendre en compte la modif (ou alors source ~/.bashrc). Dans le répertoire libnasl, on tape :

./configure

Puis

make

Et enfin en tant que root

make install

suivi de

ldconfig

On tape les mêmes commandes (./configure, make et en tant que root make install) dans l'ordre dans le répertoire nessus-core puis nessus-plugins. Le daemon nessusd est installé sous /usr/local/sbin, les fichiers nécessaires sous /usr/local/lib/nessus

Maintenant on va créer un utilisateur lambda pour pouvoir utiliser nessus. En tant que root on tape :

nessus-adduser

Voilà les commentaires

Add a new nessusd user
----------------------
 

Login : lambda

Méthode d'authentification (mot de passe ou certificat), je choisis la méthode par défaut password (pass),

Authentication (pass/cert) [pass] : pass

Mot de passe (en clair),

Login password :
Login password (again) :

A ce niveau on peut créer des critères pour limiter lambda dans ses actions de scan, faire un man nessus-adduser pour plus de détail

User rules
----------
nessusd has a rules system which allows you to restrict the hosts
that lambda 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)

On tape CTRL-D pour stopper la saisie, par défaut les règles peuvent être vides s'il y en a pas.

On récapitule

Login             : lamba
Password          : ***********
DN                :
Rules             :
 
 

Is that ok ? (y/n) [y]
user added.

Pour  lancer le serveur on doit préalablement créer les certificats d'authentification, tapez en tant que root

nessus-mkcert

Vous pouvez taper enter à chaque ligne, si vous voulez aller vite

-------------------------------------------------------------------------------
                        Creation of the Nessus SSL Certificate
-------------------------------------------------------------------------------

This script will now ask you the relevant information to create the SSL
certificate of Nessus. Note that this information will *NOT* be sent to
anybody (everything stays local), but anyone with the ability to connect to your
Nessus daemon will be able to retrieve this information.


CA certificate life time in days [1460]:1460

Server certificate life time in days [365]:365
Your country (two letter code) [FR]:FR
Your state or province name [none]:none
Your location (e.g. town) [Paris]: Papeete
Your organization [Nessus Users United]: Tahiti Connection

Congratulations. Your server certificate was properly created.

/usr/local/etc/nessus/nessusd.conf updated

The following files were created :

. Certification authority :
   Certificate = /usr/local/com/nessus/CA/cacert.pem
   Private key = /usr/local/var/nessus/CA/cakey.pem

. Nessus Server :
    Certificate = /usr/local/com/nessus/CA/servercert.pem
    Private key = /usr/local/var/nessus/CA/serverkey.pem

Press [ENTER] to exit

Ce ne sera plus nécessaire de taper cette commande par la suite. Maintenant on tape

nessusd &

A noter que j'ai eu anciennement l'erreur suivante

Access rights problem with /usr/local/var/nessus/nessusd.messages (File has path segment with wrong owner)-- aborting[

Cela venait du fait que le répertoire /usr/local/var appartenait à mysql Il faut qu'il appartienne à root
 
 

[Retour haut de la page ]

Utilisation

En supposant que le daemon nessusd est lancé, il suffit en tant qu'utilisateur quelconque de taper nessus pour lancer le client.
 
La fenêtre suivante (à droite) apparaît, vous devez saisir le nom de la machine où tourne le serveur, si la machine et le client tourne sur la même machine, vous pouvez laisser localhost. Laissez le port par défaut, c'est celui utilisé par nessusd
Vous devez au niveau du champ Login saisir l'utilisateur nessus que vous avez créé auparavant (lambda dans notre cas). Saisissez le mot de passe dans le champ Password.
Maintenant vous pouvez vous connecter au serveur en appuyant sur le bouton Log in. Vous voyez alors que le champ du bouton Log in se change en Log out, c'est bon vous êtes connecté.





La fenêtre à droite apparaît, on clique OK. Une autre fenêtre affiche le certificat, on doit l'accepter ou non.
Une autre fenêtre nous indique que les plugins qui peuvent planter un service ou un hôte distant ont été désactivés. Il faut les réactiver pour avoir un scan exhaustif.




Une fois connecté dans le champ plugins, vous verrez la liste des points à vérifier (liste du haut), la liste du bas contenant les détails du point sélectionné dans celle du haut, vous pouvez éventuellement invalider certains points à vérifier. A noter que vous avez des infos  fort riches quand vous cliquez sur un élément dans la liste du bas.
Par défaut tout est sélectionné. Sur le site de nessus, vous pouvez trouver d'autres plugins au gré de la découverte de nouveaux trous de sécurité, on vous explique aussi comment les installer, ou éventuellement carrément en créer d'autres tout seul dans son coin.
Dans l'onglet Credentials, vous pouvez saisir des informations de connexion SSH (facultatif).
Dans l'onglet Scan options, vous avez encore d'autres options pour la vérification, j'ai rajouté l'utilisation de nmap.
Dans l'onglet Prefs, vous pouvez saisir d'autres informations, notamment un nom d'utilisateur valide et son mot de passe si votre machine est aussi serveur POP ou SMB (samba).
Dans l'onglet User, vous devez indiquer l'adresse email de la personne destinataire du rapport (root@locahost par défaut).
L'onglet KB permet de tout sauvegarder ou non dans une base de données.






Dans l'onglet Target Selection, vous devez indiquer la machine cible dont on va auditer la sécurité en rentrant son adresse IP, éventuellement si vous voulez auditer toutes les machines du réseau 192.168.13.X, saisissez comme dans le screenshot 192.168.13.0/24.





Voilà, on peut lancer maintenant le scan en appuyant sur le bouton "Start the scan", une fenêtre apparaît avec une barre d'avancament. Le scan peut être relativement long, ça dépend évidemment de la puissance de votre machine, du coup soyez patient et ne l'interrompez pas même s'il parait bloqué.



Une fois le scan terminé, une fenêtre "Report" apparaît avec le détail des trous de sécurité et des warnings, vous pouvez éventuellement sauvegarder le rapport au format désiré (html, txt, latex, ....) (bouton du milieu en bas). On a même une option de sauvegarde en html avec des graphes.
On voit ici que j'ai un trou de sécurité pour PHP, je dois passer à la version 4.2.2.

 
[Retour page d'accueil FUNIX] [Retour haut de la page ]