# DNS — Domain Name System

### 🧭 Introduction

Le **Domain Name System (DNS)** agit comme le GPS de l'internet, traduisant des noms de domaines lisibles par l'homme (ex. `www.example.com`) en adresses IP compréhensibles par les machines (ex. `192.0.2.1`). Sans DNS, naviguer sur le web reviendrait à devoir mémoriser et utiliser des adresses IP pour chaque site.

### ⚙️ Comment fonctionne DNS ?

#### 🔄 Processus de résolution DNS

1. **Demande initiale (Query)** : Votre navigateur demande l'adresse IP de `www.example.com`.
2. **DNS Resolver (FAI ou public)** : Cherche dans son cache.
3. **Serveur Racine** : Oriente vers le serveur TLD (ex. `.com`).
4. **Serveur TLD** : Oriente vers le serveur de noms autoritaire.
5. **Serveur Autoritaire** : Fournit l'adresse IP.
6. **Connexion** : Le navigateur se connecte à l'adresse IP retournée.

> 🔁 C'est un véritable relais d'informations entre plusieurs serveurs DNS pour aboutir à une réponse fiable et rapide.

### 🗂️ Le fichier hosts

* Fichier local de résolution DNS manuelle.
* Emplacement :
  * Windows : `C:\Windows\System32\drivers\etc\hosts`
  * Linux/macOS : `/etc/hosts`
* Exemple :

```txt
127.0.0.1       localhost
192.168.1.10    dev.local
0.0.0.0         unwanted-site.com
```

> Utilisé pour le développement local, le blocage de sites ou les tests.

### 🧩 Concepts clés de DNS

| Concept             | Description                            | Exemple                |
| ------------------- | -------------------------------------- | ---------------------- |
| Nom de Domaine      | Nom lisible d'un site web              | `www.example.com`      |
| Adresse IP          | Adresse numérique unique               | `192.0.2.1`            |
| Resolver            | Serveur qui fait la résolution         | `8.8.8.8` (Google DNS) |
| Serveur Racine      | Départ du DNS tree                     | `a.root-servers.net`   |
| Serveur TLD         | Gère les domaines comme `.com`, `.org` | `com.` via Verisign    |
| Serveur Autoritaire | Détient les enregistrements réels      | `ns1.example.com`      |

### 📜 Enregistrements DNS (DNS Records)

| Type  | Nom complet           | Description                                           | Exemple                                          |
| ----- | --------------------- | ----------------------------------------------------- | ------------------------------------------------ |
| A     | Address Record        | Associe un nom à une adresse IPv4                     | `www IN A 192.0.2.1`                             |
| AAAA  | IPv6 Address Record   | Associe un nom à une adresse IPv6                     | `www IN AAAA 2001:db8::1`                        |
| CNAME | Canonical Name Record | Alias d'un autre nom                                  | `blog IN CNAME webserver.example.net.`           |
| MX    | Mail Exchange Record  | Définit les serveurs d'emails pour le domaine         | `example.com IN MX 10 mail.example.com.`         |
| NS    | Name Server Record    | Définit les serveurs DNS autoritaires pour le domaine | `example.com IN NS ns1.example.com.`             |
| TXT   | Text Record           | Contient du texte libre (vérification, SPF, etc.)     | `example.com IN TXT "v=spf1 mx -all"`            |
| SOA   | Start of Authority    | Définit les infos d'administration de la zone         | `SOA ns1.example.com. admin.example.com.`        |
| SRV   | Service Record        | Définit hôte/port pour des services spécifiques       | `_sip._udp IN SRV 10 5 5060 sip.example.com`     |
| PTR   | Pointer Record        | Reverse DNS : IP vers nom                             | `1.2.0.192.in-addr.arpa IN PTR www.example.com.` |

### 🧠 Pourquoi DNS est utile en Web Recon ?

* **Identifier des actifs** : Sous-domaines, serveurs de mail, anciens CNAME, etc.
* **Cartographier l'infrastructure** : Trouver les prestataires, serveurs internes, etc.
* **Surveiller les changements** : Nouveaux sous-domaines, modifs suspectes (ex: `vpn.example.com`, `1password=...` dans un TXT record).

> DNS offre des points d'accès précieux et souvent discrets pour un pentester.

### 📁 Exemple de zone DNS

```zone
$TTL 3600
@       IN SOA   ns1.example.com. admin.example.com. (
                2024060401 ; Serial
                3600       ; Refresh
                900        ; Retry
                604800     ; Expire
                86400 )    ; Minimum TTL
@       IN NS    ns1.example.com.
@       IN NS    ns2.example.com.
@       IN MX 10 mail.example.com.
www     IN A     192.0.2.1
mail    IN A     198.51.100.1
ftp     IN CNAME www.example.com.
```

***
