Accueil
Bienvenue !
Who's that Chuck ?
Articles
Investigation numérique
Virtual-to-Remote-Physical
Prométhée, intranet éduc.
Frenzy, mini CD live
Sécu. Open/Closed Source
Installer FreeBSD 5
Powered by Unknown !
FreeBSD / Nmap (1/2)
FreeBSD / Nmap (2/2)
telnetd
ftpd
Apache
Bind
Lukemftpd
OpenSSH
PHP
Qpopper
Sendmail
Sendmail / Smtpscan
Sendmail / Smtpmap
En cours d'élaboration :
Analyseurs d'empreintes
Logiciels
Portages
Projet HeV
Liens
Sites BSD en français
Liste systèmes BSD
Projets à l'honneur
Recherche
avec
|
Powered by Unknown !
Bind
Contrairement à la plupart des protocoles présentés dans cette série d'articles, celui utilisé pour le DNS ne divulgue pas spontanément d'informations sensibles.
Sa principale implémentation, Bind1, offre cependant une commande spécifique pour demander la version du serveur :
# nslookup -q=txt -class=CHAOS version.bind. 0
Server: herisson.maison
Address: 0.0.0.0
VERSION.BIND text = "8.3.2-T1B"
# dig @localhost version.bind chaos txt
; <<>> DiG 8.3 <<>> @localhost version.bind chaos txt
; (1 server found)
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUERY SECTION:
;; version.bind, type = TXT, class = CHAOS
;; ANSWER SECTION:
VERSION.BIND. 0S CHAOS TXT "8.3.2-T1B"
;; Total query time: 2 msec
;; FROM: herisson.maison to SERVER: localhost 127.0.0.1
;; WHEN: Wed Oct 30 14:28:59 2002
;; MSG SIZE sent: 30 rcvd: 64
|
Cette "fonctionnalité" n'étant pratiquement utilisée que par des personnes souhaitant croiser le numéro de version résultant avec la matrice des vulnérabilités de Bind, il est recommandé de configurer la réponse du serveur à l'aide de la directive "version"2 3:
# vi named.conf
[...]
options {
[...]
version "Unknown";
[...]
};
[...]
# killall -HUP named
|
Ce qui donne alors le résultat suivant :
# nslookup -q=txt -class=CHAOS version.bind. 0
Server: herisson.maison
Address: 0.0.0.0
VERSION.BIND text = "Unknown"
|
La solution la plus intéressante reste cependant d'interdire les requêtes de ce type, ce qui permet de les journaliser.
Il faut pour cela créer une zone spécifique :
# cat > /etc/named/bind.db
$TTL 1D
$ORIGIN bind.
@ 1D CHAOS SOA localhost. root.localhost. (
1
2H
1H
1W
1H )
CHAOS NS localhost.
^D
|
Puis demander à Bind de la charger4 :
# cat > /tmp/named.conf.supp
zone "bind" chaos {
type master;
file "bind.db";
allow-query { none; };
allow-transfer { none; };
};
^D
# cat /tmp/named.conf.supp >> /etc/named/named.conf
# rm /tmp/named.conf.supp
# killall -HUP named
|
Le serveur se comporte alors de la façon suivante :
# nslookup -q=txt -class=CHAOS version.bind. 0
Server: herisson.maison
Address: 0.0.0.0
*** herisson.maison can't find version.bind.: Query refused
|
Et journalise une chaîne du type suivant dans le fichier /var/log/messages :
Oct 30 23:30:53 herisson named[205]: denied query from [127.0.0.1].1115 for "version.bind" TXT/CHAOS
|
- Le démon correspondant s'appelant named.
- La documentation de Bind propose la chaîne "surely you must be joking" :-)
- Dans le temps, FreeBSD utilisait cette option pour masquer la version de Bind mais ça ne semble plus être le cas dans les dernières versions.
- La syntaxe est légèrement différente avec Bind version 9.x
|