La mascotte BSD dessinée par Tatsumi Hosokawa
  Chuck's corner (intitulé du site)

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 Logo Google

  sur le site :
  
  sur BSD en général :
  

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

[ Drapeau anglais English version | Informations légales | Ours | Manifeste | Charte | Nous contacter | Commenter cette page ]
[ Anneau FreeBSD | Liste des sites | Aller à : 5 précédents - précédent - au hasard - suivant - 5 suivants ]