Le service Tor – Entre anonymat et hébergement

Nous allons voir aujourd’hui le fonctionnement de Tor, de l’anonymisation jusqu’à l’hébergement de services dans le réseau décentralisé.

La théorie :

le principe de base du réseau Tor est l’anonymisation et la protection de l’identité de l’utilisateur. Pour se faire, plutôt que d’aller du point A (votre machine) au point B (le site Web que vous souhaitez visiter) de façon directe (comme sur le Web classique), l’utilisation de Tor va permettre de passer successivement à travers plusieurs machines et serveurs afin de brouiller les pistes. En effet, les propriétaires des sites que vous visitez, votre fournisseur d’accès à Internet, les administrateurs réseaux de votre entreprise et les propriétaires des serveurs de noms (DNS) peuvent espionner votre trafic internet et connaître vos habitudes ainsi que les sites que vous consultez régulièrement. Ajoutez à cela les points d’accès WiFi auquels vous vous connectez chez vos amis ou dans les boutiques commerçantes, votre vie privée peut vite devenir publique et peut même dans certains cas (point d’accès gratuit dans les magasins et boutiques), devenir une manière de connaître vos habitudes de consommation, vos envies, et va par la suite devenir des données à valeur marchande pour lesdites boutiques.

L’une des meilleures solutions pour se protéger de ce genre de pratique est l’utilisation systématique de serveurs VPN. Le principal souci de cette solution est que vous devez obligatoirement connaître et faire confiance aux propriétaires de ces serveurs VPN car tout votre trafic Web va passer par ces serveurs. A l’instar de HideMyAss qui balance régulièrement ses utilisateurs aux autorités, beaucoup d’entités ont des obligations au niveau des organes de régulation et d’écoute des gouvernements ce qui rend leur utilisation totalement inutile.

C’est pourquoi on va opter pour la solution Tor. Contrairement au VPN où votre trafic va partir de votre machine A, traverser et sortir sur le serveur VPN C et atteindre le site Web B, le réseau Tor va permettre de découper votre trafic Internet en plusieurs connexions anonymes et sera envoyé à travers n serveurs, rendant ainsi le traçage de l’utilisateur final (vous) quasiment impossible.

En plus de vous protéger de toutes les entités qui souhaitent vous espionner, vous pourrez également accéder au Darknet. Il s’agit d’un réseau équivalent au réseau Internet classique sauf qu’il est inaccessible avec un navigateur Internet standard, tout du moins, pas sans configuration. A l’instar des sites avec un TLD (Top Level Domain) en .com, .net ou .fr, les sites Web du Darknet se termine avec l’extension .onion.

La pratique :

Pour commencer à utiliser le réseau Tor, plusieurs options s’offrent à nous. La version simple est le téléchargement du navigateur préconfiguré nommé Tor Browser, qui est un dérivé de Firefox et dont vous trouverez le lien ici.

Vous lancez l’exécutable sous Windows, et une fois l’installation terminée, ce Firefox modifié va démarrer et vous pourrez constater, en visitant n’importe quel site permettant d’afficher votre IP publique comme www.mon-ip.com, que votre IP est celle d’un des noeuds de sortie du réseau Tor. Vous pourrez désormais en lançant Tor Browser, visitez le Net de façon anonyme et parcourir les sites du Darknet en .onion, dont vous trouverez une liste non-exaustive ici.

La version avancée est réalisable sous Windows, mais nous allons aborder cette procédure sur une Debian. Pour commencer, on installe les prérequis :

apt-get update

apt-get install tor -y

Une fois fait, on lance le service si ce n’est pas déjà fait :

service tor start

Par défaut, le service Tor utilise le port 9050 sur l’interface localhost de votre machine, ce qui va nous permettre de connecter nos applications sur ce port de type Socks.

Dès que le service est lancé, on peut vérifier son fonctionnement avec la commande :

lsof -i :9050

ce qui devrait retourner :

~ # lsof -i :9050
 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
 tor 845 debian-tor 6u IPv4 18355 0t0 TCP localhost:9050 (LISTEN)

Pour commencer à surfer sur le réseau Tor, on va lancer notre navigateur préféré, Palemoon pour ma part.

Une fois fait, nous allons dans les paramètres réseau de celui-ci et le configurer de la manière suivante :

dans paramètres > avancé > réseau > paramètres > cliquez sur configuration manuelle du proxy et remplissez uniquement la ligne Hôte SOCKS avec les paramètres suivants :

Hôte SOCKS : 127.0.0.1
Port: 9050

Cliquez sur Valider, lancez un nouvel onglet en mode Incognito, et vérifiez votre IP publique. Vous êtes désormais sur le Darknet.

Cas d’utilisation avancé :

Maintenant que votre service Tor est configuré et lancé sur le port localhost:9050, on peut désormais router n’importe quelle application qui ne supporte pas nativement le routage vers un proxy Socks vers le Darknet. Certaines applications supportent nativement l’utilisation d’un proxy Socks mais pas toutes.

A titre d’exemple, nous allons tenter de scanner un hôte avec Nmap. En lisant le manuel de Nmap, je me suis aperçu que celui-ci supportait l’utilisation de proxy Socks mais nous allons voir les deux cas de figures.

Dans le cas où l’application supporte les proxy Socks :

nmap -v -p 80,443 example.net --proxy 127.0.0.1:9050 --proxy-type socks5

Dans le cas où l’application ne supporte pas nantivement le Socks, on installe une application intermédiaire qui va s’occuper de router le trafic pour nous, j’ai nommé proxychains.

Le principe est celui-ci :

nmap > proxychains > darknet > site web

Pour utiliser cette méthode, on installe proxychains et on le configure :

apt-get install -y proxychains

Puis on modifie le fichier de configuration de proxychains :

nano /etc/proxychains.conf

Et on ajoute en fin de fichier :

socks5 127.0.0.1 9050

Proxychains est prêt. Pour router le trafic de Nmap à travers proxychains, on lance la commande suivante :

proxychains nmap -v -p 80 example.net

Vous pourrez constater que toutes les requêtes sont routées lorsque proxychains affiche ceci :

~ # proxychains nmap -v -p 80 93.184.216.34
 ProxyChains-3.1 (http://proxychains.sf.net)

Starting Nmap 7.40 ( https://nmap.org ) at 2018-03-23 14:23 CET
 |DNS-request| example.net
 |S-chain|-<>-127.0.0.1:9050-<><>-4.2.2.2:53-<--timeout
 <--timeout
 |S-chain|-<>-127.0.0.1:9050-<><>-4.2.2.2:53-<--timeout
 |S-chain|-<>-127.0.0.1:9050-<><>-4.2.2.2:53-<--timeout
 |DNS-response|: example.net does not exist
 |DNS-request| example.net
 |S-chain|-<>-127.0.0.1:9050-<><>-4.2.2.2:53-<--timeout
 |S-chain|-<>-127.0.0.1:9050-<><>-4.2.2.2:53-<--timeout
 |S-chain|-<>-127.0.0.1:9050-<><>-4.2.2.2:53-<><>-OK
 |DNS-response|: example.net does not exist
 Failed to resolve "example.net".
 Initiating Ping Scan at 14:24
 Scanning 93.184.216.34 [4 ports]
 Completed Ping Scan at 14:24, 0.22s elapsed (1 total hosts)
 Initiating Parallel DNS resolution of 1 host. at 14:24
 Completed Parallel DNS resolution of 1 host. at 14:24, 0.07s elapsed
 Initiating SYN Stealth Scan at 14:24
 Scanning 93.184.216.34 [1 port]
 Discovered open port 80/tcp on 93.184.216.34
 Completed SYN Stealth Scan at 14:24, 0.22s elapsed (1 total ports)
 Nmap scan report for 93.184.216.34
 Host is up (0.14s latency).
 PORT STATE SERVICE
 80/tcp open http

Read data files from: /usr/bin/../share/nmap
 Nmap done: 1 IP address (1 host up) scanned in 87.74 seconds
 Raw packets sent: 5 (196B) | Rcvd: 2 (72B)

Les points importants et les failles à surveiller :

Le navigateur Tor Browser comporte des failles de sécurité comme tout logiciel.

L’utilisation de proxychains avec des logiciels réseau peut dans certains cas, déclencher une fuite DNS (DNS leak), quoi pourrait nuire à votre anonymat. Malgré que votre trafic Web passe à travers Tor, la résolution des noms de ce sites ne passera pas par Tor, et les requêtes DNS iront directement vers les serveurs DNS. Les propriétaires de ces serveurs pourront donc savoir avec exactitude quel site vous avez demandé, à quelle heure et depuis quelle adresse IP.

Tor Hidden Service:

Le dernier cas que nous allons aborder est l’hébergement de service sur le Darknet. Cette technique va permettre d’héberger vos serveurs chez vous et de pointer un domaine en .onion sur ces services. A titre d’exemple, nous allons héberger un site Web basique sur le Darknet. Pour ce faire :

apt-get install tor apache2 -y

Nous allons configurer Tor pour activer le hidden service en modifiant le fichier de configuration :

nano /etc/tor/torrc

Ajoutez les lignes suivantes :

HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:80

Enregistrez le fichier et redémarrez le service Tor :

service tor restart

Il nous faut maintenant récupérer l’adresse en .onion qui va être attribué à votre site. Pour ce faire, nous allons regarder le contenu du fichier /var/lib/tor/hidden_service/hostname :

cat /var/lib/tor/hidden_service/hostname

Cette adresse sera celle qui servira à accéder à votre site depuis le Darknet. Notez-le pour vous permettre de tester le fonctionnement de votre site une fois fini.

Maintenant on configure le fichier ports.conf d’apache2 pour limiter la surface d’écoute du serveur Web et éviter les fuites de trafic en dehors de Tor, qui pourraient dé-anonymiser votre serveur ainsi que vos clients.

nano /etc/apache2/ports.conf

Puis on change la ligne :

Listen 80

en

Listen 127.0.0.1:80

Redémarrez votre serveur Web, puis ouvrez un nouveau terminal et surveiller votre fichier de configuration et votre trafic sur le port 80

tail -F /var/log/apache2/access.log
tcpdump port 80

Maintenant, utilisez une des techniques citées plus haut pour accéder au Darknet, et allez visiter votre site en utilisant l’adresse trouvée dans le fichier /var/lib/tor/hidden_site/hostname.

Vous pourrez constater sur votre journal /var/log/apache2/access.log et/ou sur votre sortie de tcpdump que le site est accessible.

En outre, vous pouvez héberger n’importe quel service sur un hidden service Tor.

N’hésitez pas à commenter si vous souhaitez des éclaircissements  ou des détails supplémentaires sur cette procédure.