Home
Welcome!
Who's that Chuck? [FR]
Articles
Computer forensics [FR]
Virtual-to-Remote Physical [FR]
Promethee, educ. intranet [FR]
Frenzy, live mini CD [FR]
Open/Closed source sec. [FR]
Installing FreeBSD 5 [FR]
Powered by Unknown! [FR]
FreeBSD / Nmap (1/2) [FR]
FreeBSD / Nmap (2/2) [FR]
telnetd [FR]
ftpd [FR]
Apache [FR]
Bind [FR]
Lukemftpd [FR]
OpenSSH [FR]
PHP [FR]
Qpopper [FR]
Sendmail [FR]
Sendmail / Smtpscan [FR]
Sendmail / Smtpmap [FR]
Work in progress:
Fingerprints analyzers [FR]
Software
Ports [FR]
HeV project
Links
BSD sites in french [FR]
BSD systems list [FR]
Projects of the month [FR]
Search
with
|
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
|