Dans ce cours on va répondre à la question « comment font les pirates pour avoir accès au réseau d'une entreprise ». Au début ils ne savent rien sur l'entreprise c'est donc pour cette raison que qu’il commence par une recherche d'informations publiques. Pour suivre ce cours, je vous conseille de vous mètre dans la peau d'un Black Hat. Prenez comme exemple votre site web, une entreprise prise au hasard dans l'annuaire (tout en restant non intrusive et en gardant un cap d'investigation passif)
L'objectif de cette reconnaissance est de trouver :
La liste des serveurs DNS
La liste des éventuelles adresses IP attaqué
Les informations de contact mail et téléphone
Les adresses postales
La base Whois est une base de registres internet normalisé par la RFC 3912. Le whois sont des services proposés gratuitement en ligne et qui permettent d'obtenir des informations sur un nom de domaine particulier, une adresse IP, sur un serveur DNS.
Grâce à cette base, il est possible de trouver :
Nom de domaine
Registrar (organisme s’occupant de la gestion de nom de domaine)
URL du serveur Whois de ce registrar
URL du site du registrar
Serveurs DNS (dans la base Internic)
Date de dernière modification
Adresse du propriétaire du nom de domaine
Adresse de l’administrateur du nom de domaine
Adresse du contact technique du nom de domaine
Date de modification, création, et expiration du nom de domaine
Serveurs DNS (dans la base du registrar)
Pour obtenir les informations données par le whois, vous pouvez utiliser la commande whois de Kali Linux, ou vous pouvez aussi aller sur des sites proposant une base de données de recensement des noms de domaines internet comme http://www.whois.net . à titre d’exemple on va prendre le whois de hadopi.fr, mais ne soyez pas triste, c'est qu'un exemple, on ne va pas hacker hadopi.fr.
root@kali:~# whois hadopi.fr
domain: hadopi.fr
status: ACTIVE
hold: NO
holder-c: H3617-FRNIC
admin-c: H3617-FRNIC
tech-c: OVH5-FRNIC
zone-c: NFC1-FRNIC
nsl-id: NSL35236-FRNIC
registrar: OVH
anniversary: 08/11
created: 13/02/2008
last-update: 08/11/2011
source: FRNIC
ns-list: NSL35236-FRNIC
nserver: dns16.ovh.net
nserver: ns16.ovh.net
source: FRNIC
registrar: OVH
type: Isp Option 1
address: 2 Rue Kellermann
address: ROUBAIX
country: FR
phone: +33 8 99 70 17 61
fax-no: +33 3 20 20 09 58
e-mail: support@ovh.net
website: http://www.ovh.com
anonymous: NO
registered: 21/10/1999
source: FRNIC
nic-hdl: OVH5-FRNIC
type: ROLE
contact: OVH NET
address: OVH
address: 140, quai du Sartel
address: 59100 Roubaix
country: FR
phone: +33 8 99 70 17 61
e-mail: tech@ovh.net
trouble: Information: http://www.ovh.fr
trouble: Questions: mailto:tech@ovh.net
trouble: Spam: mailto:abuse@ovh.net
admin-c: OK217-FRNIC
tech-c: OK217-FRNIC
notify: tech@ovh.net
registrar: OVH
changed: 11/10/2006 tech@ovh.net
anonymous: NO
obsoleted: NO
source: FRNIC
nic-hdl: H3617-FRNIC
type: ORGANIZATION
contact: HADOPI
address: HADOPI
address: 4, rue du Texel
address: 75014 Paris
country: FR
phone: +33 1 42 18 39 50
e-mail: domaines@hadopi.fr
registrar: OVH
changed: 08/11/2011 nic@nic.fr
anonymous: NO
obsoleted: NO
source: FRNIC
Le résultat sera toujours différent en fonction du type de propriétaire de l'adresse IP ou du nom de domaines. Celons l'adresse IP ou un nom de domaine, les informations importantes qui faudra prendre en compte seront différentes.
L'adresse IP ou un nom de domaine peut soit appartenir à un FAI, une organisation, ou un particulier, toutes les informations sont importants néanmoins ne se valent pas celons les types de propriétaire.
Pour une adresse IP qui appartient à un FAI on portera notre attention sur :
La plage d'adresses IP utilisé par le FAI, c'est toujours mieux qu'avec 4 milliards de possibilités.
Le nom du FAI et le type de technologie utilisé pour la plage d'IP (ADSL ou câble)
La distribution des adresses IP, pool dynamique ou IP Fixe.
Le pays du FAI
La route et le netmask
Pour une adresse IP ou un nom de domaine qui appartient à une organisation (entreprise) on portera notre attention sur :
Les adresse IP
Les noms d'hôtes des serveurs DNS (Domaine Nom System) de la société;
Les informations de contact comme l'adresse et le téléphone de l'entreprise.
Pour un nom de domaine qui appartient à un particulier on portera notre attention sur :
Les Adresse IP
Les noms d'hôtes des serveurs DNS (Domaine Name System) de la société,
Information de contact de la personne comme l'adresse et le téléphone
Le nom du propriétaire du nom de domaine
Le nom du responsable technique, le propriétaire ou un professionnel.
La commande host
Durant une recherche d'informations il sera fréquent de ne pas avoir des adresses IP mais des noms d'hôtes. Dans les systèmes Unix et Linux comme Kali, il existe la commande host qui traduire les noms d'hôtes en adresse IP en tapant par exemple :
root@kali:~#:~# host hadopi.fr
hadopi.fr has address 46.255.180.7
hadopi.fr mail is handled by 1 mx.hadopi.fr.
root@kali:~#:~# host dns16.ovh.net
dns16.ovh.net has address 213.251.188.135
dns16.ovh.net has IPv6 address 2001:41d0:1:4a87::1
root@kali:~# host ns16.ovh.net
ns16.ovh.net has address 213.251.128.135
ns16.ovh.net has IPv6 address 2001:41d0:1:1987::1
En utilisant la commande avec l'option -a on aura des informations plus précises sur le nom de domaine.
root@kali:~#: host -a hadopi.fr
;; QUESTION SECTION:
;hadopi.fr. IN ANY
;; ANSWER SECTION:
hadopi.fr. 3600 IN TXT "google-site-verification=mFZ-iiJZFin0MGZzSO0tTNPScf58aFWX3PGhmwq-_6o"
hadopi.fr. 3600 IN A 46.255.180.7
hadopi.fr. 3600 IN MX 1 mx.hadopi.fr.
hadopi.fr. 3600 IN SOA dns16.ovh.net. tech.ovh.net. 2013070100 86400 3600 3600000 86400
hadopi.fr. 3600 IN NS ns16.ovh.net.
hadopi.fr. 3600 IN NS dns16.ovh.net.
Vous pouvez avoir le manuel de la commande host en tapant man host, dans Kali Linux il est un Anglais, vous trouverait sa traduction sur cette page.
Extraire les informations du DNS avec nslookup ou dig
Maintenant que nous avons une réussis à obtenir avec plus ou moins de succès une liste de contact mais sur tous de DNS, on va pouvoir essayer de faire une liste plausible d'adresse IP à attaquer. N'oubliez pas que notre principale objective est de trouver une liste de cible possible d'adresse IP à attaquer.
Les DNS sont parmi des cibles de premier ordre pour les pirates, et ces toute a fait normal car c'est un point central d'un réseau puisqu’ils font la conversion des noms de domaines en adresse IP. Comme vous l'avez compris nous avons déjà les noms de domaines, donc idéal pour trouver des IP. Mais attention à ne pas faire n'importe quoi, si le propriétaire du nom de domaine n'appartient pas à la cible mais par exemple à un sous-traitant comme un hébergeur alors qui sera à votre avis la cible ?
La commande nslookup
nslookup va nous permettre d'interroger les serveurs DNS pour connaitre les hôtes enregistrait sur le réseau de la cible. Par la suite on pourra connaitre l’adresse l'IP avec la commande host. nslookup un programme qui fonctionne en terminale sous les trois principaux O. S, Il aura juste quelques différences selon les versions ou le système d'exploitation.
Lancer le programme en tapant du terminal pour opérer en mode interactif.
nslookup
Pour avoir des informations taper le nom de domaine
> hadopi.fr
Non-authoritative answer:
Name:hadopi.fr
Address: 46.255.180.7
Si nous voulons des informations générales, Il est possible de modifier le mode d’interrogation de la commande nslookup gr à la clause set, il nous suffit de fixer le type à any :
> set type=any
> hadopi.fr
Non-authoritative answer:
hadopi.fr text = "google-site-verification=mFZ-iiJZFin0MGZzSO0tTNPScf58aFWX3PGhmwq-_6o"
Name: hadopi.fr
Address: 46.255.180.7
hadopi.fr mail exchanger = 1 mx.hadopi.fr.
hadopi.fr
origin = dns16.ovh.net
mail addr = tech.ovh.net
serial = 2013070100
refresh = 86400
retry = 3600
expire = 3600000
minimum = 86400
hadopi.fr nameserver = dns16.ovh.net.
hadopi.fr nameserver = ns16.ovh.net.
Si vous avez un œil “il averti ou déjà gérer un site vous avez sans doute déjà remarqué la première ligne, à première vu il semblerait que le site hadopi.fr à un compte Google, ce qui ouvre vers une autre piste.
Si nous voulons d’information plus précise, nous pouvons utiliser d'autres options.
set type=mx permet de recueillir les informations concernant le ou les serveurs de messagerie d'un domaine.
set type=ns permet de recueillir les informations concernant le serveur de noms associé au domaine
set type=a permet de recueillir les informations concernant un hôte du réseau. Il s’agit du mode d’interrogation par défaut.
set type=soa permet d’afficher les informations du champ SOA (Start Of Authority).
set type=cname permet d’afficher les informations concernant les alias.
set type=hinfo permet, lorsque ces données sont renseignées, d’afficher les informations concernant le matériel et le système d’exploitation de l’hôte.
A première vue on dirait que cette recherche n'a pas été très fructueuse, le nom de domaine hadopi.fr est héberger chez un prestataire (ovh) et non dans sur le réseau du propriétaire. Mais si on regarde de plus près on peut voir de le site hadopi.fr à son propre serveur de messagerie, ce qui peut être une cible potentielle pour un pirate. On peut maintenant se servir de host pour connaitre l'adresse IP associer à son hôte.
host mx.hadopi.fr
mx.hadopi.fr has address 213.215.11.66
La commande dig
dig est un programme en ligne de commande de débogage de serveurs DNS. Il signifie Domain Information Groper, littéralement Chercheur d’Information sur les Domaines. Il permet d’interroger le serveur DNS de son choix.
Par exemple, voici comment demander les enregistrements DNS pour le nom hadopi.fr
root@kali:~# dig hadopi.fr
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> hadopi.fr
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4399
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;hadopi.fr. IN A
; ANSWER SECTION:
hadopi.fr. 3600 IN A 46.255.180.7
On peut faire la même chose avec une adresse IP
dig @ip_cible
Dig permet d’interroger les champs MX, A, CNAME, TXT, …
MX : serveurs de mails
A : configuration de l’IP associé à un domaine
AAAA: configuration de l’IPv6 associé à un domaine
CNAME : configuration d’un IP par l’intermédiaire d’un autre nom de domaine
TXT : divers
NS: les serveurs DNS primaires
Voici quelque syntaxe de commande :
dig MX hadopi.fr
dig TXT hadopi.fr
dig CNAME hodopi.fr
dig NS hodopi.fr
Vous pouvez aussi afficher toutes les information avec avec l’opion ANY
root@kali:~#:~# dig hadopi.fr ANY
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> hadopi.fr ANY
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29511
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;hadopi.fr. IN ANY
;; ANSWER SECTION:
hadopi.fr. 3600 IN TXT "google-site-verification=mFZ-iiJZFin0MGZzSO0tTNPScf58aFWX3PGhmwq-_6o"
hadopi.fr. 3600 IN A 46.255.180.7
hadopi.fr. 3600 IN MX 1 mx.hadopi.fr.
hadopi.fr. 3600 IN SOA dns16.ovh.net. tech.ovh.net. 2013070100 86400 3600 3600000 86400
hadopi.fr. 3600 IN NS dns16.ovh.net.
hadopi.fr. 3600 IN NS ns16.ovh.net.
Les transfères de zone DNS
Comme vous le savez, les serveurs DNS mettent en correspondance les adresse IP et le nom d'hôte. Pour des raisons de sécurité redondante sur les grands réseaux, on déploie plusieurs DNS, ainsi le DNS maître envoie toutes les correspondances des hôtes et adresse IP au DNS esclave. Pour que la synchronisation des DNS soit assurée on utilise un mécanisme de partage des informations : le transféré de zone, appeler également AXFR. Normalement un administrateur avisé ne permettra pas un transfère de zone depuis l'extérieur mais dans le cas contraire nous obtiendrons une liste des hôtes et adresse IP fournis par le serveur DNS associé au domaine ciblé. Avec dig, on peut très facilement essayer de faire un transfère de zone avec la commande suivante :
root@kali:~#: dig NS @dns16.ovh.net hadopi.fr AXFR
;; Warning, extra type option<
<<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> NS @dns16.ovh.net hadopi.fr AXFR
; (2 servers found)
;; global options: +cmd
; Transfer failed.
Connaissant la popularité d’hadopi et l’appartenance de l’organisation, il n’est pas étonnant que le transfère de zone soit interdit mais ce n’est pas toujours le cas. Les interactions avec dig sont très vastes le programme est très complet, voir plus que nslookup. En cas d’un premier refus il ne faut pas se décourager car il y a de nombreuses méthodes pour faire des transfère de zone, rien n’est standardisé, il faut sans cesse essayer, jusqu’à trouver la faille.
Sur ces DNS on va trouver ce que l'on appelle les zones de transfert. Une zone de transfert est un fichier texte qui indique sur quelle IP le domaine exemple.com pointera. Ceci étant établit, passons a l’attaque en elle même :
On prendra ici un domaine au hasard "caramail.com".
Donc… Dans un premier temps, cherchons les deux dns secondaires pour ce domaine. Avec la commande Whois, lancez une recherche sur le nom de domaine de notre cible (caramail.com dans cet exemple). Bien sur vous serez signalé que ce domaine est déjà réservé.
Voici le résultat :
Domain Name: CARAMAIL.COM
Registrar: NETWORK SOLUTIONS, INC.
Whois Server: whois.networksolutions.com
Referral URL: http://www.networksolutions.com
Name Server: NS.CARAMAIL.COM
Name Server: DNS.SPRAY.SE
Name Server: DNS1-1.LYCOS.DE
Status: ACTIVE
Updated Date: 03-sep-2002
Creation Date: 25-aug-1997
Expiration Date: 24-aug-2006
Ou alors, selon le moteur Whois que vous utilisez :
Registrant:
Schaming, Christophe (CARAMAIL-DOM)
Lycos France
79, rue de Monceau
Paris, IDF 75008
FR
Domain Name: CARAMAIL.COM
Administrative Contact, Technical Contact:
Schaming, Christophe (SC1291) cs@caramail.fr
Lycos France
79, rue de Monceau
Paris, IDF 75008
FR
(33) 1 56 59 45 45 fax: (33) 1 70 91 25 01
Record expires on 24-Aug-2006.
Record created on 25-Aug-1997.
Database last updated on 21-Dec-2003 11:30:53 EST.
Domain servers in listed order:
NS.CARAMAIL.COM 213.193.13.2
DNS.SPRAY.SE 212.78.192.254
DNS1-1.LYCOS.DE 213.193.20.11
Ce qui nous interresse est les Name Server (NS). Il y en a un !
NS.CARAMAIL.COM 213.193.13.2
On doit en obtenir un maximum. Relancons Whois plus particulierement sur celui-ci.
NS.CARAMAIL.COM 213.193.13.2
NS3.CARAMAIL.COM 213.193.13.4
NEWWWW.CARAMAIL.COM 213.193.12.10
NS2.CARAMAIL.COM 213.193.13.3
On remarque tout de suite un NS, un NS2, un NS3… avec des IP de la forme : 213.193.13.(NSx +1)
Well, il y a fort a parier que Caramail étant un gros poisson, il ait plus de 3 servers DNS dans la zone de transfert. Et ceux-ci seraient ils dans la plage indiquée ?...
Afin de collecter un max d’informations, scannons cette plage. Surprise, pas mal de résultats et la confirmation que celle-ci est attribuée a Caramail… Mon ???? a couper que la zone de transfert se trouve la dedans !
Consultons alors le base de données des allocations Ip du RIPE NCC sur cette plage de domaine 213.193, voici ce que nous apprenons :
Easynet Belgium:
20030218 81.188/16 ALLOCATED PA
19990712 212.100.160/19 ALLOCATED PA
20000523 213.193.128/18 ALLOCATED PA
Elle appartient donc a EasyNet Belgique. Continuons. Lançons donc la première étape du transfert, la demande de la zone de transfert complete (FULL QUERY). Pour cela, une fenetre DOS et la commande "nslookup"
Vous devez vous retrouver face a un prompte ">"
taper :
">server 213.193.13.2"
(ip du 1er dns de caramail.com) ceci va associer à cette ip toutes les commandes qui suivront dans le nslookup.
Ensuite nous allons rentrer la commande du transfert de zone :
">ls -d caramail.com"
Comme il fallait s’y attendre, ce ne sont quand meme pas des charlots chez caramail, et nous obtenons un refus :
*** Impossible de fournir la liste du domaine caramail.com : Query refused
Pas de panique. Ce dns est juste ( !) patché contre le transfert. Mais comme nous sommes TRÈS motivé, alors testons l’autre :
">server 213.193.13.4"
">ls -d caramail.com"
Encore un patch… Ce n’est pas grave. Courage ! encore un (NEWWWW.CARAMAIL.COM 213.193.12.10)
">server 213.193.12.10"
">ls -d caramail.com"
*** Impossible de fournir la liste du domaine caramail.com : Unspecified error
Alors le dernier : NS2.CARAMAIL.COM 213.193.13.3
">server 213.193.13.3"
">ls -d caramail.com"
Et voila ! Ca marche ! La zone de transfert apparait devant nous... et elle est énorme ! Comme on le voit, le dernier serveur n’était pas patché. Encore un exemple de la motivation du hacker, il faut sans cesse essayer, jusqu'à trouver la faille, il y en a toujours une...
Cette liste devrait ressembler a ceci :
www A 213.193.13.10
www9 A 213.193.13.19
carajeux A 195.68.62.165
Ceci veut dire que l'adresse www.caramail.com pointera vers 213.193.13.10
Que l'adresse www9.caramail.com pointera sur 213.193.13.19
que l'adresse carajeux.caramail.com pointera sur 195.68.62.165
Et ainsi de suite... il y en a environs 400, alors faites couler un café, ça risque d’être long !
Grace a la liste, on peut rechercher la machine la plus faible pour ainsi rentrer sur le réseau. La manœuvre sera d’exploiter une faille bien précise que je détaillerai dans les prochain cours qui comme ça seront une suite logique.
En conclusion
Alors que pouvons-nous faire des informations trouver comment l’adresse Ip du serveur, à vrai dire, tous et rien. Dans un premier temps on pourrai par exemple (c’est vraiment à titre d’exemple) faire un scan avec par Nmap pour trouver la version du système, par la suite on pourrait voir s’il y a un exploit public à exploiter. Une fois dans le serveur de messagerie un pirate pourrait lire les e mails voir trouver d’autre adresse IP en lisant les en tête des emails.
Comment ce protéger ?
Pour stopper une post-exploitation facile pour un pirate il convient de prendre au moins ces précautions :
Protéger vos informations personnelles dans le Whois.
Bloquez-les transferts de zone depuis l’extérieur
Changer ces ports par défaut (serveur de messagerie)
Mettre à jour régulièrement les systèmes pour empêcher les exploits.
Mettre de mots de passe compliquer