The BSD mascot drawed by Tatsumi Hosokawa
  Chuck's corner (site title)

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 Google's logo

  on this site:
  
  on BSD contents:
  

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


  1. Le démon correspondant s'appelant named.
  2. La documentation de Bind propose la chaîne "surely you must be joking" :-)
  3. 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.
  4. La syntaxe est légèrement différente avec Bind version 9.x

[ French flag Version française | Legal information [FR] | About us [FR] | Manifesto [FR] | Privacy & usage charter [FR] | Contact us | Comments on this page ]
[ FreeBSD ring | Sites list | Go to: previous 5 - previous one - random pick - next one - next 5 ]