Sunteți pe pagina 1din 26

Jean-Franois Bouchaudy

Tsoft et Groupe Eyrolles, 2003,


ISBN 2-212-11369-2

tcpip_appareil

5/08/03, 16:10

security scanner
ACK, RST, SYN
SEQ, ICMP, FIN
URG, PUSH
Syslog

Objectifs
Savoir utiliser quelques outils daudit rseaux tels que nmap et SAINT.

Contenu
Laudit
nmap
SAINT
snort

References
Livres
Network Troubleshooting Tools, par J.D. Sloan.
Halte aux hackers, par S. McClure.

Tsoft/Eyrolles TCP/IP sous Linux

21-1

Module 21 : Laudit

L audit
n

Les outils dattaque


l

Les scanners de ports


nmap

Les simulateurs dintrusion


SAINT
nessus
ISS
CyberCop
Scanner

World Wide Digital Security


ISS
Networks Associtaes
Cisco

La dtection des attaques


snort
ippl

TSOFT - TCP/IP sous Linux

Module 21 : L audit - 21.2

Objectif : prsenter un panorama des outils daudit rseau.

Introduction
Comment tre sr que son rseau ne peut tre attaqu ?
Une des meilleures techniques pour le savoir est de se mettre la place du pirate et de
lattaquer soi-mme.
Une autre technique est dessayer de dtecter si on est attaqu ou si on a t attaqu.

Les outils dattaque


Les scanners de ports
Un scanner de port essaye de dcouvrir quels sont les ports ouverts dun ordinateur.
Le produit le plus connu dans cette catgorie est sans conteste nmap. Ce produit en
plus balaye tout un rseau et dtermine quels sont les ordinateurs qui le composent.

Les simulateurs dintrusion


Les simulateurs dintrusion sont des logiciels qui sont dabord des scanners de ports,
mais qui ensuite utilisent les ports dcouverts pour commencer une intrusion. Cest
souvent simplement la configuration et la manire dutiliser ces outils qui font la
diffrence entre un audit et un piratage.
Les outils libres
SAINT
Ce logiciel est simple dutilisation. Il est compos de modules Perl et est
accessible distance via une interface Web. Une version commerciale
plus complte existe.
nessus

21-2

Ce logiciel fonctionne sous linterface X-Window.

Tsoft/Eyrolles TCP/IP sous Linux

Module 21 : Laudit
Les outils commerciaux
CyberCop Ce logiciel est produit par Network Associates.
ISS

Internet Security Scanner est produit par la socit du mme nom,


ISS. Il est considr comme le leader en la matire.

Scanner

Le clbre logiciel de la socit Cisco.

La dtection des attaques


La dtection des attaques va tre permise travers ltude approfondie des journaux
des systmes dexploitation, des applications et des pare-feu.
En plus de ltude des logs, il y a des outils qui essayent de dtecter lutilisation des
scanners de ports qui sont le pralable toute attaque.
snort

Dtecte les attaques en temps rel. Prvient ladministrateur via Syslog.


Cest un outil en open source.

ippl

Gnre des messages pour Syslog concernant les messages ICMP reus,
les connexions TCP et les paquets UDP.

La suite du module
Le module se poursuit par ltude de nmap, de SAINT et snort. On a choisi ces
outils pour leur puissance mais galement pour leur simplicit demploi.

Rfrences
Internet
http://www.nessus.org
Le site officiel du logiciel Nessus.
http://pltplp.net/ippl/
Le logiciel ippl.
http://www.snort.org
Le site du logiciel snort.
http://www.iss.net
Le site de la socit ISS.
http://www.pgp.com/products/cybercop-scanner/default.asp
Le logiciel CyberCop.
http://www.wwdsi.com/saint/ Le site officiel du logiciel SAINT.
http://www.insecure.org/nmap/ Le logiciel nmap.

Livres
Network Troubleshooting Tools, par J.D. Sloan.
Building Secure Servers with Linux, par M.D. Bauer.
Dcrit notamment les techniques dintrusion et la commande snort.
Halte aux hackers, par S. McClure.
Prsente les techniques utilises par les pirates pour pirater un rseau. Donne
brivement les parades.

Tsoft/Eyrolles TCP/IP sous Linux

21-3

Module 21 : Laudit

nmap
n

Balayer les ports TCP


nmap venus

Balayer les ports UDP


nmap -sU venus

Balayer un rseau
nmap -sP 192.168.0.0/24
nmap -sP 192.168.*.*
nmap -sP 192.168.218.1,4,5,11-20

Balayer les protocoles IP


nmap -s0 192.168.218.10

Dterminer lOS
nmap -O 192.168.218.15

TSOFT - TCP/IP sous Linux

Module 21 : L audit - 21.3

Objectif : savoir utiliser de manire rudimentaire le scanner de ports nmap.

Introduction
Lapplication nmap, disponible sous licence GPL, est un outil qui possde plusieurs
fonctionnalits. Il sert principalement de scanner de ports, en franais un outil qui
balaye les ports rseaux et dtermine les applications rseaux actives. On peut
galement utiliser nmap pour dcouvrir les machines actives dun rseau (scanner IP)
et leur systme dexploitation.
Loutil nmap est trs puissant, on ne prsente ici que quelques options. Il faut tre
conscient quil peut tre utilis galement comme une arme par un pirate pour trouver
les failles dun systme ou dun pare-feu.

Syntaxe
nmap [type_d_analyse] [option ...] (hte | rseau)...

Les diffrents types danalyse


-sT

Balaye les ports TPC en utilisant la connexion TCP (le programme ralise une
dconnexion aussitt la connexion tablie). Cest le type danalyse par dfaut.

-sS

Balaye les ports TCP en utilisant lenvoi de paquets SYN (le programme
attend simplement le paquet ACK accusant rception du paquet SYN).

-sF, -sX, -sN


Balaye les ports TCP en essayant de passer les pare-feu.
-sF

21-4

Utilise un paquet FIN. Normalement un hte qui reoit un paquet FIN pour un
port TCP ferm doit rpondre par un paquet RST. Si le port est ouvert, le
paquet est ignor (RFC 793). Microsoft, sur ses systmes 95/NT, ne respecte
pas les RFCs.

Tsoft/Eyrolles TCP/IP sous Linux

Module 21 : Laudit
-sX

Utilise un paquet FIN avec les drapeaux URG et PUSH levs.

-sN

Utilise un paquet avec les diffrents drapeaux baisss.

-sP

Dtermine les htes actifs dun rseau. Par dfaut, en utilisant loption -PB.
Voir les options -PT, -PS, -PI, -PB un peu plus loin.

-sU

Balaye les ports UDP. Le programme envoie un paquet UDP de 0 octet. Il


attend en retour un message ICMP destination unreachable si le
port est ferm (RFC 768).

-s0

Balaye les protocoles IP. Le programme envoie un paquet adress aux


diffrents protocoles IP (OSPF, ...) et attend un message ICMP
destination unreachable si le protocole nest pas utilis. Les
systmes Microsoft, ne suivent gnralement pas les standards et ne rpondent
pas.

-sA

Balaye les ports TCP en utilisant des paquets ACK (avec des SEQ et ACK
alatoires). Le programme attend un paquet RST. Si le programme ne reoit
rien ou un message ICMP destination unreachable, les paquets
passent sans doute par lintermdiaire dun pare-feu.

-sR

Balaye les programmes RPC. Cette mthode est utilise en combinaison avec
une autre mthode danalyse (par exemple -sU ou -sT).

Les principales options


-P0

Ne pas utiliser le ping avant de balayer les ports.

-PT[<port>]

Balaye un rseau en utilisant des paquets TCP ACK. Le


programme attend des paquets RST. Par dfaut utilise le port 80.

-PS

Utilise un segment TPC SYN au lieu dun paquet TCP ACK. Le


programme attend des paquets RST ou SYN|ACK.

-PI

Utilise le vritable ping (ICMP echo request).

-PB

Cest le ping par dfaut. Il est quivalent -PT et -PI.

-O

Essaye de dterminer le systme dexploitation du systme cible.

-p <domaine>

Spcifie un domaine de port. Par dfaut, le programme balaye les


ports 1 1024, ainsi que les ports dcrits dans le fichier nmapservices. Exemples : -p 515, -p 10-16,25,515-600.

-F

Balaye uniquement les ports prsents dans le fichier nmapservices.

-n

Ne pas faire de reverse DNS.

-R

Effectuer systmatiquement le reverse DNS.

-v

Mode bavard.

-vv

Mode trs bavard.

-oN,-oX,-oG fic

Sortie dans un fichier. Loption -oN correspond une sortie


normale, -oX une sortie XML et -oG une sortie exploitable
par la commande grep.

-D <leure[, ...]>

Cette option spcifie une liste dadresses qui vont apparatre


comme des leurres par les systmes explors, ainsi que par les
pare-feu. Ladresse dorigine appartiendra une de ces adresses.

-S <adresse>

Fixe ladresse IP dorigine des paquets (spoofing).

Tsoft/Eyrolles TCP/IP sous Linux

21-5

Module 21 : Laudit
-T <temps>

Fixe la rapidit du balayage. Elle prend une des valeurs


suivantes : Paranoid, Sneaky, Polite, Normal, Agressive et
Insane.

--randomize_hosts Mlange les plages dadresses testes.


-f

Cette option demande que les paquets de balayage (SYN, FIN,


XMAS, NULL) utilisent des petits fragments.

-R

Effectue systmatiquement un reverse-DNS sur les adresses


testes.

-h

Affiche un cran daide.

Liste des htes et des rseaux


Les htes peuvent tre indiqus en utilisant leur nom rseau ou leur adresse IP. Les
rseaux sont spcifis par un couple adresseIP/netmask ou par lusage de jokers, de
listes et de domaines dans une adresse IP, par exemple : 192.168.218.0/24, 192.150160.*.*, 192.168.218.1,2,10,12-20.

Exemples
Lusage par dfaut : balayer les ports TCP
- On balaye les principaux ports TCP, ici dun hte.
# nmap pikachu
Starting nmap V. 2.54BETA34 ( www.insecure.org/nmap/ )
Interesting ports on pikachu.pokemon (192.168.218.1):
(The 1555 ports scanned but not shown below are in state: closed)
Port
State
Service
139/tcp
open
netbios-ssn
Nmap run completed -- 1 IP address (1 host up) scanned in 1 second

- Idem, mais on utilise loption v.


# nmap -v pikachu
Starting nmap V. 2.54BETA34 ( www.insecure.org/nmap/ )
No tcp,udp, or ICMP scantype specified, assuming vanilla tcp
connect() scan. Use -sP if you really don't want to portscan (and
just want to see what hosts are up).
Host pikachu.pokemon (192.168.218.1) appears to be up ... good.
Initiating Connect() Scan against pikachu.pokemon (192.168.218.1)
Adding open port 139/tcp
The Connect() Scan took 1 second to scan 1556 ports.
Interesting ports on pikachu.pokemon (192.168.218.1):
(The 1555 ports scanned but not shown below are in state: closed)
Port
State
Service
139/tcp
open
netbios-ssn
Nmap run completed -- 1 IP address (1 host up) scanned in 1 second

On balaye un rseau
- On balaye un rseau en utilisant les messages du ping et des paquets TCP ACK. Le
rseau est spcifi par un couple adresse_IP/netmask.

21-6

Tsoft/Eyrolles TCP/IP sous Linux

Module 21 : Laudit
# nmap -sP 192.168.218.0/24
Starting nmap V. 2.54BETA34 ( www.insecure.org/nmap/ )
Host pikachu.pokemon (192.168.218.1) appears to be up.
Host bulbizarre.pokemon (192.168.218.10) appears to be up.
Host (192.168.218.14) appears to be up.
Nmap run completed -- 256 IP addresses (3 hosts up) scanned in 4
seconds

- Idem, mais le rseau est spcifi en indiquant une liste de machines.


# nmap -sP 192.168.218.1,2,10,14,15
Starting nmap V. 2.54BETA34 ( www.insecure.org/nmap/ )
Host pikachu.pokemon (192.168.218.1) appears to be up.
Host bulbizarre.pokemon (192.168.218.10) appears to be up.
Host (192.168.218.14) appears to be up.
Nmap run completed -- 5 IP addresses (3 hosts up) scanned in 4
seconds

- On balaye le rseau, mais on utilise uniquement des paquets TCP ACK sur le port
80 sans utiliser le ping .
# nmap -sP -PT 192.168.218.1-20
Starting nmap V. 2.54BETA22 ( www.insecure.org/nmap/ )
Host pikachu.pokemon (192.168.218.1) appears to be up.
Host bulbizarre.pokemon (192.168.218.10) appears to be up.
Host salameche.pokemon (192.168.218.12) appears to be up.
Host psykokwak.pokemon (192.168.218.14) appears to be up.
Host dracaufeu.pokemon (192.168.218.15) appears to be up.
Host miaous.pokemon (192.168.218.16) appears to be up.
Host raichu.pokemon (192.168.218.17) appears to be up.
Host nidoran.pokemon (192.168.218.18) appears to be up.

On essaye de dterminer lOS


# nmap -O

192.168.218.1

Starting nmap V. 2.54BETA34 ( www.insecure.org/nmap/ )


Interesting ports on pikachu.pokemon (192.168.218.1):
(The 1555 ports scanned but not shown below are in state: closed)
Port
State
Service
139/tcp
open
netbios-ssn
Remote operating system guess: Windows NT4 / Win95 / Win98
Nmap run completed -- 1 IP address (1 host up) scanned in 2 seconds

On balaye les ports UDP


On balaye les ports UDP, ici du port 1 au port 10000.
# nmap -sU -p 1-10000 192.168.218.10
Starting nmap V. 2.54BETA34 ( www.insecure.org/nmap/ )
Interesting ports on bulbizarre.pokemon (192.168.218.10):
(The 9987 ports scanned but not shown below are in state: closed)
Port
State
Service

Tsoft/Eyrolles TCP/IP sous Linux

21-7

Module 21 : Laudit
37/udp
open
time
53/udp
open
domain
111/udp
open
sunrpc
137/udp
open
netbios-ns
138/udp
open
netbios-dgm
517/udp
open
talk
518/udp
open
ntalk
855/udp
open
unknown
858/udp
open
unknown
863/udp
open
unknown
1024/udp
open
unknown
1026/udp
open
unknown
2049/udp
open
nfs
Nmap run completed -- 1 IP address (1 host up) scanned in 12 seconds

On balaye les ports, on note les programmes RPC


- On balaye les ports TCP, on essaye de dterminer sils correspondent des
programmes RPC-ONC.
# nmap -sR -p 1-3000 192.168.218.10
Starting nmap V. 2.54BETA34 ( www.insecure.org/nmap/ )
Interesting ports on bulbizarre.pokemon (192.168.218.10):
(The 2981 ports scanned but not shown below are in state: closed)
Port
State
Service (RPC)
21/tcp
open
ftp
22/tcp
open
ssh
23/tcp
open
telnet
25/tcp
open
smtp
37/tcp
open
time
53/tcp
open
domain
79/tcp
open
finger
110/tcp
open
pop-3
111/tcp
open
sunrpc (rpcbind V2)
139/tcp
open
netbios-ssn
512/tcp
open
exec
513/tcp
open
login
514/tcp
open
shell
515/tcp
open
printer
857/tcp
open
(status V1)
860/tcp
open
(mountd V1-2)
865/tcp
open
(mountd V1-2)
901/tcp
open
samba-swat
2401/tcp
open
cvspserver
Nmap run completed -- 1 IP address (1 host up) scanned in 10 seconds

- Idem, mais on balaye les ports UDP.


# nmap -sU -sR -p 1-3000 192.168.218.10
Starting nmap V. 2.54BETA34 ( www.insecure.org/nmap/ )
Interesting ports on bulbizarre.pokemon (192.168.218.10):
(The 2987 ports scanned but not shown below are in state: closed)
Port
State
Service (RPC)
37/udp
open
time
53/udp
open
domain
111/udp
open
sunrpc (rpcbind V2)

21-8

Tsoft/Eyrolles TCP/IP sous Linux

Module 21 : Laudit
137/udp
138/udp
517/udp
518/udp
855/udp
858/udp
863/udp
1024/udp
1026/udp
2049/udp

open
open
open
open
open
open
open
open
open
open

netbios-ns
netbios-dgm
talk
ntalk
(status V1)
(mountd V1-2)
(mountd V1-2)
(nlockmgr V1-3)
unknown
nfs (RPC (Unknown Prog #))

Nmap run completed -- 1 IP address (1 host up) scanned in 16 seconds

Balayer les protocoles IP


# nmap -sO 192.168.218.10
Starting nmap V. 2.54BETA34 ( www.insecure.org/nmap/ )
Interesting protocols on bulbizarre.pokemon (192.168.218.10):
(The 251 protocols scanned but not shown below are in state: closed)
Protocol
State
Name
1
open
icmp
2
open
igmp
6
open
tcp
17
open
udp
Nmap run completed -- 1 IP address (1 host up) scanned in 4 seconds

Rfrences
Man
nmap(1)

Internet
http://www.insecure.org/nmap
Le site officiel de nmap.
http://www.insecure.org/nmap/nmap_documentation.html
La documentation de nmap.

Magazine
Linux Magazine Hors-Srie N13 : Nmap par la pratique

Livre
Network Troubleshooting, par J.D. Sloan.

Tsoft/Eyrolles TCP/IP sous Linux

21-9

Module 21 : Laudit

Saint
n

La vision client/serveur
On active le serveur. On y accde ensuite grce un navigateur pour
configurer lanalyse et tudier les rsultats.

La configuration de lanalyse
l

Slection de la cible (hte(s), rseau(x))

Niveau danalyse

La collecte des donnes

Lanalyse des rsultats


l

Par types de failles

Par catgories (services, OS, domaines, rseaux, htes)

Par relations de confiance

TSOFT - TCP/IP sous Linux

Module 21 : L audit - 21.4

Objectif : savoir utiliser de manire rudimentaire le simulateur dintrusion SAINT.

Introduction
Le logiciel SAINT (Security Administrators Integrated Network Tool) est un
simulateur dintrusion, on utilise galement le terme de scanner de scurit. Ce
type dapplication essaye danalyser un rseau et den trouver les failles. SAINT a t
cr par la socit World Wide Digital Security. Il constitue en fait une version
amliore du logiciel SATAN de Dan Farmer.
SAINT fonctionne comme un systme expert. On lui indique un ordinateur ou un
rseau cible. SAINT recherche les ports actifs du premier systme quil doit analyser
et effectue des tests sur ces ports (SAINT est donc, en autres, un scanner rseau et un
scanner de ports comme nmap). Les informations recueillies alimentent sa base de
connaissances. SAINT ralise alors de nouveaux tests qui eux-mmes grossissent la
base. SAINT examine ensuite les autres ordinateurs du rseau ainsi que les systmes
ajouts dans la base. Ainsi, de proche en proche, SAINT peut analyser tout le rseau et
trouver toutes ses failles.
SAINT fonctionne en mode texte ou avec linterface Web. Il est possible de lutiliser
distance.
Un des points trs intressants de SAINT est quil est extensible. En effet, on peut lui
ajouter un programme danalyse, le plus souvent en PERL, pour dtecter un nouveau
type de faille.

Utilisation lmentaire
Il y a plusieurs manires dutiliser Saint. La plus simple est dactiver un serveur sur le
systme Linux et ensuite de piloter le logiciel distance partir dun navigateur Web.
Cest la technique qui est dcrite dans ce paragraphe. On peut aussi donner les
instructions au logiciel par lintermdiaire des arguments de la ligne de commande ou
bien via un fichier de configuration.
21-10

Tsoft/Eyrolles TCP/IP sous Linux

Module 21 : Laudit

Figure N1 : La page daccueil de SAINT.

Activation de SAINT
1er exemple : utilisation locale
Dans lenvironnement graphique, partir dune fentre terminal, on active la
commande saint. Le logiciel active son tour dans une fentre graphique le
navigateur par dfaut. La page daccueil saffiche. Lutilisateur na pas besoin de
sauthentifier.
bulbizarre:~ #

saint

2me exemple : utilisation distance


On active le logiciel Saint sur le serveur et on le pilote partir dun navigateur situ
sur un poste distant. Le mode distant est demand par loption -r . Ladresse du
poste distant autoris se connecter au serveur Web Saint est introduite par loption
-h . Saint demande de saisir deux mots de passe. Le premier, associ lutilisateur
de nom admin , permet de tout faire : paramtrer les analyses et accder aux
donnes recueillies. Le deuxime, qui est optionnel, est associ au nom saint . Il
donne uniquement accs aux donnes recueillies.
Par dfaut, le serveur Saint se met lcoute du port TCP 1414. Il faut donc indiquer
au niveau du navigateur lURL http://adresse_du_serveur:1414 . La page de
connexion apparat (cf. fig. N1). Ensuite on se connecte soit sous le nom admin, soit
sous le nom saint.
bulbizarre:~/saint-3.4.10 # ./saint -r -h 192.168.218.1
Security Administrator's Integrated Network Tool
Portions copyright (C) 1998-2002 SAINT Corporation.
Portions copyright (C) 1995 by Dan Farmer and Wietse Venema.
SAINT is starting up...
Enter new password for "admin" or hit ENTER to leave as is
Password: XXXXX
Confirm Password: XXXXX
Enter new password for "saint" or hit ENTER to leave as is

Tsoft/Eyrolles TCP/IP sous Linux

21-11

Module 21 : Laudit
Password:
Starting SAINT server on port 1414
bulbizarre:~/saint-3.4.10 #

Configuration de lanalyse
Dans les pages Web de Saint, un menu sur le ct contient les principales actions
possibles. Le bouton Target Selection provoque laffichage du formulaire qui
donne accs la configuration de lanalyse.

Figure N2 : La configuration de lanalyse (1er cran).


Le formulaire dbute en demandant la cible de lanalyse. Ensuite, on saisit les autres
paramtres danalyse. Pour la plupart dentre eux, la valeur par dfaut est correcte. Ces
valeurs par dfaut sont elles-mmes paramtres par le fichier de configuration de
SAINT. Nous les dtaillerons dans le paragraphe concernant ce fichier.
La cible de lanalyse est spcifie par ladresse IP ou DNS dun lhte ou bien par une
liste dadresses de machines ou par ladresse dun rseau (exemple : 192.168.218). On
peut galement choisir un fichier (se trouvant dans le rpertoire racine de SAINT) qui
liste les cibles choisies.

La collecte des donnes


Le formulaire de configuration de lanalyse se termine par un bouton Start Scan
qui provoque la collecte des donnes, cest--dire lanalyse de lhte ou du rseau
slectionn. On voit se drouler cette analyse en temps rel. On peut suivre chacun des
tests effectus avec ses paramtres

21-12

Tsoft/Eyrolles TCP/IP sous Linux

Module 21 : Laudit

Figure N2bis : La configuration de lanalyse (2me cran).

.
Figure N3 : La collecte des donnes.

Lanalyse des rsultats


Les donnes collectes sont stockes dans un fichier. On peut trs bien les exploiter
ultrieurement. Ainsi, quand on active le logiciel SAINT, si on appuie sur le bouton
Data Analysis , on accde aux donnes rcoltes antrieurement.
Si la collecte des donnes vient juste de se terminer, on peut passer directement
lanalyse en suivant le lien hypertexte Continue with report and analysis .
Le premier menu qui saffiche prsente trois catgories daccs aux rsultats :
Tsoft/Eyrolles TCP/IP sous Linux

21-13

Module 21 : Laudit
Vulnerabilities . Les rsultats sont prsents en fonction du type de faille de
scurit.
Information . Les informations concernant les systmes et leurs failles de
scurit sont affiches en fonction du rseau ou de lhte que lon choisit.
Trust . Les htes sont classs en fonction du nombre de systmes quils ont en
relations de confiance.

Figure N4 : Formulaire de choix daccs aux rsultats.


Dans le cas o lon choisit dafficher les informations dun poste, les donnes
recueillies sont prsentes lintrieur de trois rubriques : Informations gnrales (le
type de lOS, ...), les services rseaux et les failles de scurit.

Figure N5 : Un exemple de rsultat.


21-14

Tsoft/Eyrolles TCP/IP sous Linux

Module 21 : Laudit
Les failles de scurit sont prsentes sous forme de lien hypertexte. Si on active un de
ces liens, on affiche une page dcrivant dans le dtail la faille et les mesures prendre
pour la corriger. Frquemment cette page rfrence dautres pages Internet pour un
complment dinformation.

Figure N6 : Information concernant une faille.

Larborescence de logiciel
bin/

Les programmes de tests de scurit.

config/

Les fichiers de configuration, principalement saint.cf.

html/

Les formulaires et la documentation de Saint.

results/

Les rsultats. Il y a un sous-rpertoire par analyse. Chaque


sous-rpertoire contient les fichiers suivants :
facts
La base des faits.
all-hosts
La liste des htes.
todo
Les actions accomplir.
cve
Les failles CVE.

rules/

Les rgles du systme expert.

status_file

Le journal des actions accomplies.

saint

La commande saint.

La configuration de SAINT
La configuration du logiciel SAINT est mmorise par dfaut dans le fichier
saint.cf, prsent dans le sous-rpertoire config du rpertoire dinstallation. Lors de
la configuration de lanalyse ou via la ligne de commande, on peut indiquer un fichier
diffrent de saint.cf.
On peut modifier directement le fichier de configuration, mais un minimum de
connaissances du langage Perl est ncessaire pour lexploiter compltement. Il est
Tsoft/Eyrolles TCP/IP sous Linux

21-15

Module 21 : Laudit
galement possible dutiliser linterface Web, via le bouton Config. Mgmt. qui
affiche un formulaire de mise jour du fichier de configuration. Les arguments de la
ligne de commande sont prioritaires sur le fichier de configuration et autorisent aussi
changer la configuration (cf. man saint(1)).

Le niveau dattaque
La premire section spcifie le niveau dattaque. Il prsente les niveaux suivants :
- Light : Lger
- Normal : Normal
- Heavy : Fort
- Heavy + : Trs fort
- Top 20 : Les failles les plus importantes (cf http://www.sans.org/top20.htm)
- Custom : Niveau cr par ladministrateur
Ce paramtre est trs important car il dcide des tests (probes) qui seront dclenchs
durant la phase de recueil des donnes.
Si lon veut modifier un niveau ou en crer un nouveau, on est oblig dditer le
fichier de configuration. Voici par exemple la section qui dcrit le niveau Light .
@light = (
dns.saint,
ostype.saint,
rpc.saint,
showmount.saint,
);
Les spcialistes Perl constateront que le niveau Light est en fait un tableau qui contient
le nom des tests (Probe) effectuer. Ces tests se trouvent dans le sous-rpertoire bin
de SAINT.

Nombre dessais pour deviner les mots de passe


Ce paramtre spcifie le nombre dessais que peut effectuer SAINT afin de deviner un
mot de passe. La valeur par dfaut est de 2 . La valeur 0 dsactive le module
qui devine les mots de passe. Il faut savoir que la plupart des systmes verrouillent un
compte aprs trois essais infructueux de saisie de mot de passe.

La valeur des minuteries et le choix de la minuterie


Les tests lancs par SAINT peuvent durer trs, trs longtemps. Il est indispensable de
les limiter dans le temps. SAINT possde trois minuteries :
- Slow : lente
- Medium : moyenne
- Fast : rapide
Ces minuteries sont rgles par dfaut aux valeurs respectives de 60, 20 et 10
secondes. On peut changer ces valeurs et choisir une des minuteries.
Certains tests utilisent une valeur spcifique de minuterie, par exemple le balayage des
ports TCP et UDP.
Quand SAINT dclenche un test, il dmarre une minuterie, et si le test nest pas
termin lorsque la minuterie sarrte, il envoie un signal au test. Par dfaut, cest le
signal 9 qui est envoy, on peut en choisir un autre.

Le multitche
Si lon dsire augmenter la vitesse danalyse dun rseau, il est possible deffectuer
plusieurs tests simultanment. Le paramtre Maximum Threads prcise ce nombre.

21-16

Tsoft/Eyrolles TCP/IP sous Linux

Module 21 : Laudit
Effectuer des tests dangereux
Certains tests sont dangereux pour les machines explores. Lutilisateur de SAINT
peut dcider de les activer ou non.

La proximit dexploration
Le paramtre Maximal proximity est un paramtre trs dangereux. Il faut tout
fait comprendre ses implications.
- La valeur 0 indique que lon analyse uniquement les machines que lon a
spcifies explicitement. Cest la valeur par dfaut. Cest galement la valeur
conseille !
- La valeur 1 indique que lon analyse galement les machines qui sont rfrences
par les machines analyses. Par exemple le serveur DNS du rseau.
- La valeur 2 indique que lon analyse aussi les machines rfrences par les
machines rfrences par les machines analyses (deux niveaux dindirection). Et
ainsi de suite.
Le paramtre Proximity descent essaye de diminuer la dangerosit du paramtre
prcdent. Il diminue le niveau de lattaque pour les machines analyses en
indirection.
Il est possible galement dindiquer si on tend lanalyse tout le rseau ou si lon se
limite uniquement aux cibles spcifies.

Les relations de confiance


Par dfaut, SAINT considre quil nexiste pas de relations de confiance entre le poste
o sexcute le programme et les postes analyss. Ces relations se manifestent par la
prsence du poste dans les fichiers .rhosts, hosts.equiv ou dans les systmes de fichiers
NFS exports.
On peut au contraire indiquer que le poste est en relations de confiance avec les postes
attaqus, ce qui modifie les tests effectus.

Les masques de sous-rseau


Durant ses tests, SAINT doit connatre le masque de sous-rseau et les adresses de
diffusion des rseaux attaqus. Par dfaut, les masques suivants sont utiliss :
255.255.255.0, 255.255.255.128 et 255.255.255.192. Si lon connat les valeurs
exactes des rseaux, on peut les entrer.

Ltendue du rseau analys, exclusions


On peut limiter ltendue du rseau analys en indiquant un dbut dadresse IP ou un
nom de domaine DNS, par exemple : 192.168. ou societe.fr.
Il est possible galement dindiquer des domaines que lon veut voir exclus du champ
danalyse.

Activation des tests gnraux (dns, icmp)


On peut choisir dutiliser ou non nslookup pour trouver le nom des postes analyss.
On peut choisir dutiliser ou non ping pour tester la prsence dun poste.
Dans le cas o on ne veut pas utiliser ping, on peut choisir les ports TCP tester
pour dterminer la prsence dun poste. Par dfaut, ce sont les ports 25, 53, 80, 139 et
143 qui sont utiliss.

Tsoft/Eyrolles TCP/IP sous Linux

21-17

Module 21 : Laudit
Attaque derrire un pare-feu
Si les postes analyss sont derrire un pare-feu (vis--vis du poste attaquant), il faut le
prciser.

Les autres paramtres


Les autres paramtres ne sont accessibles quen modifiant directement le fichier de
configuration. Ils permettent un paramtrage fin de certaines variables, notamment
celles utilises pour raliser des attaques derrire un pare-feu.

Rfrences
Man
saint(1)

La documentation en ligne
Quand on accde Saint en mode Web, le bouton Documentation donne
accs la documentation en ligne. Elle est trs complte.

Internet
http://www.saintcorporation.com/saint/
Le site officiel de Saint.
http://www.cve.mitre.org
CVE (les failles les plus courantes).
http://www.sans.org/top20/
Les vingt failles rseaux les plus importantes.

Livre
Protecting Networks with SATAN, par M. Freiss.

21-18

Tsoft/Eyrolles TCP/IP sous Linux

Module 21 : Laudit

Snort
n

Capture de paquets
l

Affiche les rsultats sur la sortie standard


snort -v

Affiche les donnes de la couche application et liaison


snort -v -d -e > capture 2>&1

Affiche les paquets provenant ou destins un hte


snort -v host 192.168.218.10

Mmoriser des captures


snort -l /var/log/snort
snort -l log -b # format tcpdump

Dtection dintrusion
snort -d -h 192.168.218.10/24 -c snort.conf

TSOFT - TCP/IP sous Linux

Module 21 : L audit - 21.5

Objectif : savoir utiliser de manire rudimentaire le dtecteur dintrusion snort.

Description
Le logiciel snort est un dtecteur dintrusion en Open Source. On peut lutiliser pour
dtecter une grande varit dattaques (scan de ports, buffer overflow, ...).
La dtection est paramtrable par des rgles qui prcisent le type de contenu attendu
dans les paquets dintrusion.
Ladministrateur est averti de plusieurs manires : grce un fichier alert, via le
service Syslog, ou via le service WinPopup.
snort est dabord un dtecteur dintrusion. On peut aussi lutiliser comme un
analyseur de protocoles similaire tcpdump.

Syntaxe
snort

[option...] [expression]

Lexpression prcise un filtre de capture de paquets. Il utilise la mme syntaxe que


tcpdump.
Voici les principales options :
-v

Liste tous les paquets reus sur la sortie standard.

-c fichier

Active snort en mode Dtection dintrusion . On donne en


paramtre le fichier de configuration des rgles de dtection. Par
dfaut, les alertes sont mmorises dans le fichier alert.

-s

Envoie les alertes Syslog.

-M hte

Envoie les alertes un hte en WinPopup. Il faut que le logiciel


Samba soit install.

Tsoft/Eyrolles TCP/IP sous Linux

21-19

Module 21 : Laudit
-D

Active snort en mode dmon.

-A mode

Spcifie le mode dalerte :


fast
Lalerte est indique par une seule ligne au format Syslog.
full
Lalerte est dcrite compltement.
none
Dsactive le mode alert.

-l rpertoire

Active le mode journalisation des paquets et spcifie le rpertoire o


sont stocks les alertes et les paquets capturs. Par dfaut, le rpertoire
/var/log/snort.

-b

Journalise les paquets au format binaire tcpdump.

-L fichier

Spcifie le nom du fichier qui mmorise les paquets. Par dfaut, il


sappelle snort-<date@heure>.log.

-N

Dsactive la journalisation des paquets.

-d

Visualise le contenu de la couche application.

-C

Affiche le contenu de la couche application en mode caractre.

-e

Visualise le dtail de la couche liaison.

-a

Affiche les paquets ARP.

-r fic

Lit un fichier au format tcpdump.

-i carte

Spcifie la carte rseau.

-h rseau

Spcifie le rseau local, par exemple : 192.168.1.0/24.

-n nb

Traite nb paquets et sarrte.

-q

Mode silencieux : naffiche pas les messages de dmarrage.

Exemples
Capture de paquets
On capture tous les paquets provenant ou destins au poste 192.168.218.10. On
redirige la sortie dans le fichier capture. On arrte snort par CTRL-C.
# snort -v host 192.168.218.10 > capture 2>&1
^C
# more capture
-*> Snort! <*Version 1.8.1-RELEASE (Build 74)
By Martin Roesch (roesch@sourcefire.com, www.snort.org)
====================================================================
Snort analyzed 2 out of 2 packets, dropping 0(0.000%) packets
Breakdown by protocol:
Action Stats:
TCP: 0
(0.000%)
ALERTS: 0
UDP: 0
(0.000%)
LOGGED: 0
ICMP: 2
(100.000%)
PASSED: 0
ARP: 0
(0.000%)
IPv6: 0
(0.000%)
IPX: 0
(0.000%)
OTHER: 0
(0.000%)
DISCARD: 0
(0.000%)
====================================================================

21-20

Tsoft/Eyrolles TCP/IP sous Linux

Module 21 : Laudit
Fragmentation Stats:
Fragmented IP Packets: 0
(0.000%)
Fragment Trackers: 0
Rebuilt IP Packets: 0
Frag elements used: 0
Discarded(incomplete): 0
Discarded(timeout): 0
Frag2 memory faults: 0
====================================================================
TCP Stream Reassembly Stats:
TCP Packets Used: 0
(0.000%)
Stream Trackers: 0
Stream flushes: 0
Segments used: 0
Stream4 Memory Faults: 0
====================================================================
Log directory =
--== Initializing Snort ==-Initializing Network Interface eth0
Decoding Ethernet on interface eth0
--== Initialization Complete ==-01/19-13:27:12.567657 192.168.218.1 -> 192.168.218.10
ICMP TTL:32 TOS:0x0 ID:27532 IpLen:20 DgmLen:60
Type:8 Code:0 ID:1
Seq:7 ECHO
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
01/19-13:27:12.567852 192.168.218.10 -> 192.168.218.1
ICMP TTL:255 TOS:0x0 ID:64782 IpLen:20 DgmLen:60
Type:0 Code:0 ID:1 Seq:7 ECHO REPLY
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
Snort received signal 2, exiting

Autres exemples
- On capture des paquets, on affiche les donnes de la couche liaison et de la couche
application.
# snort -v -d -e > capture 2>&1
# more capture
...
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
01/19-13:41:06.321304 0:40:5:49:FA:67 -> 0:50:BA:31:C9:EC type:0x800
len:0x3F
192.168.218.1:1244 -> 192.168.218.10:21 TCP TTL:32 TOS:0x0 ID:13967
IpLen:20 DgmLen:49 DF
***AP*** Seq: 0x9B83BA6 Ack: 0x2A625958 Win: 0x21E8 TcpLen: 20
55 53 45 52 20 6A 66 0D 0A
USER jf..
...

- On conserve les captures au format ASCII dans larborescence /var/log/snort/. Les


captures sont rparties dans des rpertoires, un par adresse IP.
# snort -l /var/log/snort

Tsoft/Eyrolles TCP/IP sous Linux

21-21

Module 21 : Laudit

- On conserve les captures au format binaire tcpdump.


# snort -l /var/log/snort -b host 192.168.218.1
# ls /var/log/snort
snort-0119@1349.log
# tcpdump -r 'snort-0119@1349.log'
13:49:10.345481 pikachu.pokemon.1090 > salameche.pokemon.telnet: .
ack 4134044713 win 8236 (DF)
...

Dtection dintrusion
- On active le mode Dtection dintrusion . On utilise le fichier de rgles contenu
dans le paquetage (/etc/snort/snort.conf). Les alertes sont mmorises
dans le fichier /var/log/alert. La commande tail -f
/var/log/alert permet de voir en temps rel le fichier. Le fichier
portscan.log donne le dtail du scanning de ports. Dans lexemple, on a
utilis le logiciel Saint pour simuler une intrusion.
# snort -d -h 192.168.218.0/24 -c /etc/snort/snort.conf
^C
# more /var/log/alert
[**] [100:1:1] spp_portscan: PORTSCAN DETECTED from 192.168.218.10
(THRESHOLD 4 connections exceeded in 1 seconds) [**]
01/19-13:59:31.095606
[**] [111:12:1] spp_stream4: NMAP FINGERPRINT (stateful) detection [**]
01/19-14:09:34.440780 192.168.218.10:51543 -> 192.168.218.12:22
TCP TTL:41 TOS:0x0 ID:22429 IpLen:20 DgmLen:60
***A**** Seq: 0x4B3C1C55 Ack: 0x0 Win: 0x800 TcpLen: 40
TCP Options (5) => WS: 10 NOP MSS: 265 TS: 1061109567 0 EOL
[**] [1:628:1] SCAN nmap TCP [**]
[Classification: Attempted Information Leak] [Priority: 3]
01/19-14:09:34.440944 192.168.218.10:51545 -> 192.168.218.12:25
TCP TTL:41 TOS:0x0 ID:27582 IpLen:20 DgmLen:60
***A**** Seq: 0x4B3C1C55 Ack: 0x0 Win: 0x800 TcpLen: 40
TCP Options (5) => WS: 10 NOP MSS: 265 TS: 1061109567 0 EOL
[Xref => http://www.whitehats.com/info/IDS28]
[**] [1:239:1] DDOS shaft handler to agent [**]
[Classification: Attempted Denial of Service] [Priority: 6]
01/19-13:59:31.090771 192.168.218.10:1406 -> 192.168.218.12:18753
UDP TTL:64 TOS:0x0 ID:51 IpLen:20 DgmLen:49
Len: 29
[Xref => http://www.whitehats.com/info/IDS255]
[**] [1:245:1] DDOS mstream handler ping to agent [**]
[Classification: Attempted Denial of Service] [Priority: 6]
01/19-13:59:31.090982 192.168.218.10:1406 -> 192.168.218.12:10498
UDP TTL:64 TOS:0x0 ID:53 IpLen:20 DgmLen:32
Len: 12
[Xref => http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2000-0138]
[**] [1:220:1] BACKDOOR HideSource backdoor attempt [**]

21-22

Tsoft/Eyrolles TCP/IP sous Linux

Module 21 : Laudit
01/19-14:10:37.186320 192.168.218.10:4431 -> 192.168.218.12:23
TCP TTL:64 TOS:0x0 ID:24359 IpLen:20 DgmLen:58 DF
***AP*** Seq: 0x99C975A3 Ack: 0x9F1CB791 Win: 0x7D78 TcpLen: 32
TCP Options (3) => NOP NOP TS: 334785546 43974158
[**] [1:358:1] FTP saint scan [**]
[Classification: Attempted Information Leak] [Priority: 3]
01/19-14:10:42.324375 192.168.218.10:4456 -> 192.168.218.12:21
TCP TTL:64 TOS:0x10 ID:24749 IpLen:20 DgmLen:66 DF
***AP*** Seq: 0x99ADE4FB Ack: 0xA0349FCD Win: 0xFE88 TcpLen: 32
TCP Options (3) => NOP NOP TS: 334786060 43974672
[Xref => http://www.whitehats.com/info/IDS330]
...
# more
Jan 19
Jan 19
Jan 19
Jan 19
Jan 19
Jan 19
Jan 19
Jan 19
Jan 19
Jan 19
Jan 19
Jan 19
...

portscan.log
13:59:30 192.168.218.10:3775 -> 192.168.218.12:65535 SYN ******S*
13:59:30 192.168.218.10:899 -> 192.168.218.12:111 SYN ******S*
13:59:31 192.168.218.10:1406 -> 192.168.218.12:27444 UDP
13:59:31 192.168.218.10:1406 -> 192.168.218.12:34555 UDP
13:59:31 192.168.218.10:1406 -> 192.168.218.12:18753 UDP
13:59:31 192.168.218.10:1406 -> 192.168.218.12:7983 UDP
13:59:31 192.168.218.10:1406 -> 192.168.218.12:10498 UDP
13:59:32 192.168.218.10:1406 -> 192.168.218.12:1 UDP
13:59:31 192.168.218.10:3776 -> 192.168.218.12:10008 SYN ******S*
13:59:31 192.168.218.10:3777 -> 192.168.218.12:12754 SYN ******S*
13:59:31 192.168.218.10:3778 -> 192.168.218.12:15104 SYN ******S*
13:59:31 192.168.218.10:3779 -> 192.168.218.12:16660 SYN ******S*

Rfrences
Man
snort(8), tcpdump(1)

Paquetage
La documentation du paquetage est trs complte. Le fichier README donne
une bonne vision densemble du produit et contient comme le man, la syntaxe. Le
fichier SnortUsersManual.pdf est le guide dutilisation du produit, il donne de
nombreux exemples.

Internet
http://www.snort.org
Le site officiel du logiciel Snort.
http://www.snort.org/snort_rules.html
Comment tablir de nouvelles rgles de dtection dintrusion.

Tsoft/Eyrolles TCP/IP sous Linux

21-23

Module 21 : Laudit

Atelier 1 : Introduction
Objectifs :
n

Savoir utiliser le logiciel scanner de


ports nmap

Savoir utiliser le logiciel SAINT de


simulation dintrusion

Dure : 15 minutes.

TSOFT - TCP/IP sous Linux

Module 21 : L audit - 21.6

Exercice n1
Balayez les ports TCP dun hte avec nmap.

Exercice n2
Balayez les ports TCP dun hte avec nmap, mais en prcisant la plage de ports 1000
3000.

Exercice n3
Balayez les ports UDP dun hte dans la plage 500 550 avec nmap.

Exercice n4
Dcouvrez les htes prsents sur le rseau (192.168.218.0/24 par exemple) avec
nmap

Exercice n5
Dcouvrez les protocoles IP dun hte avec nmap.

Exercice n6
Dcouvrez avec nmap les imprimantes rseaux prsentes sur le rseau
(192.168.218.0/24 par exemple).

21-24

Tsoft/Eyrolles TCP/IP sous Linux

Module 21 : Laudit

Exercice n7
En suivant lexemple du support, utilisez le logiciel SAINT pour analyser un hte.

Exercice n8
Durant lanalyse effectue par le logiciel SAINT dclenche dans lexercice
prcdent, dtectez cette attaque via le logiciel snort.

Tsoft/Eyrolles TCP/IP sous Linux

21-25

S-ar putea să vă placă și