Post

VM OSINT : le guide ultime

VM OSINT : le guide ultime

logo

Vous menez vos enquêtes OSINT directement sur votre machine professionnelle ou pire, personnelle ? Arrêtez tout et lisez ce guide !

Introduction

J’ai récemment lu le guide attaché au livre OSINT Techniques de Michael Bazzell concernant les machines virtuelles. J’ai ainsi entrepris de créer ma propre VM dans le but de mener mes investigations OSINT, avec des modifications et ajouts personnels. En voici la documentation !

Pour l’ensemble de l’article, on se référera à “l’auteur” pour Michael Bazzell et “le livre” pour OSINT Techniques: The Ultimate Virtual Machine.

Ce guide se veut volontairement non-exhaustif, en particulier en ce qui concerne la partie mise en pratique (par là, j’entends ne pas fournir une liste de commande toute prête ou de script qui installe tout sans effort). En voici les motivations :

  • Ne pas plagier le livre de l’auteur.
    Reprendre l’ensemble des commandes et explications du livre constituerait un plagiat. Je préfère extraire les outils et concepts les plus intéressant, avec des ajouts personnels. Cet article est donc davantage d’une introduction au sujet et une liste d’outils (toolbox) qu’un guide complet et prêt à l’emploi. Si vous voulez un guide “prêt à l’emploi”, je vous invite à acquérir le livre OSINT Techniques, qui est très complet.
  • Obsolescence rapide dans le domaine.
    D’une version à l’autre, les procédures d’installation peuvent changer. Les outils eux-mêmes évoluent : certains changent complètement, d’autres ne sont plus maintenus.
  • Apprentissage.
    En vous attelant à mettre en place votre propre machine virtuelle, vous apprendrez à la configurer et à l’utiliser. Vous serez ainsi plus à même de la modifier et de l’adapter à vos besoins. Cela vous fera également progresser en administration Linux !

Pourquoi une machine virtuelle ?

Si vous effectuez des recherches OSINT sur des sujets sensibles, vous devez absolument utiliser une machine virtuelle. Voici pourquoi :

  • Isolation (sécurité).
    Tout au long de vos investigations, vous allez visiter divers sites et visualiser/parcourir différents médias. Cela augmente d’autant plus vos probabilités de tomber sur un malware !
    • Empreinte numérique.
      En utilisant une VM différente par enquête, vous réduisez votre empreinte numérique (certains identifiants de matériel virtuel, par exemple l’adresse MAC, peuvent être changés à chaque clonage).
  • Modulable, clonable.
    Vous pouvez utiliser une VM par sujet d’enquête, et la cloner pour chaque nouvelle investigation. Cela vous permet de ne pas mélanger les données et de ne pas risquer de compromettre une enquête en cours. Il est également possible de créer des snapshots pour garder un état à un instant T.
  • Traçabilité simplifiée.
    Un témoignage de l’auteur illustre parfaitement ce point :

    Au cours de ma dernière année de travail pour le gouvernement, j’ai témoigné au procès d’une personne qui transportait des mineurs dans plusieurs États pour qu’ils soient abusés s**uellement par des délinquants qui payaient pour cela. La défense a demandé au juge de lui accorder un accès complet à l’ordinateur que j’ai utilisé pour l’enquête afin d’examiner mon travail. Puisque j’ai mené toute l’enquête dans une machine virtuelle, j’ai convaincu le juge que la défense ne devait recevoir qu’une copie de la machine virtuelle et non une copie de mon ordinateur entier, qui avait été utilisé pour d’autres affaires. Il a été beaucoup plus facile de remettre un fichier de 4 Go que de faire cloner mon disque dur et de le soumettre à un examen approfondi. J’espère que vous comprenez l’intérêt qu’il y a non seulement à mener des enquêtes dans une machine virtuelle, mais aussi à sauvegarder l’état de votre travail en vue d’une expertise ultérieure.

    OSINT Techniques: The Ultimate Virtual Machine, Michael Bazzell.

    • Forensic simplifié.
      En cas de compromission suspectée de la VM, on peut en quelques clics créer des instantanés (disque + mémoire vive) pour enquêter ultérieurement.
    • Archivage complet.
      Vous pouvez archiver vos VM et ainsi conserver l’ensemble des éléments sur une enquête, ce qui uniformise et simplifie le processus pour cette étape cruciale, et écarte tout risque d’oubli.

Pourquoi créer SA machine virtuelle ?

Quelques rares projets de VM pré-construites existent. Vous avez cependant tout intérêt à construire votre propre VM, pour les raisons suivantes :

  • Maîtrise.
    Vous savez exactement ce qui est installé dans votre VM, et vous pouvez la personnaliser à votre guise. Pas d’outils superflus, pas d’outil manquant.
    • Sécurité.
      Risque de backdoor amoindri.
  • Dépendance.
    Vous ne dépendez pas d’un seul fournisseur pour les mises à jour. Si un logiciel n’est plus maintenu ou ne vous convient plus, vous pouvez le remplacer sans problème. En choisissant un OS stable et maintenu, vous vous assurez de la pérennité de votre VM pour plusieurs années.
  • Apprentissage.
    Vous apprenez à installer et configurer les logiciels nécessaires à vos investigations. Cela vous permet de mieux comprendre leur fonctionnement et de les utiliser plus efficacement.

Installation

La sécurité de la machine hôte

L’auteur commence par rappeler l’importance de la sécurité de la machine hôte.

En effet, si votre machine hôte est compromise, les machines virtuelles pourront l’être également. L’auteur préconise l’utilisation d’une machine dédiée, fraîchement (ré)installée, et de ne pas l’utiliser pour d’autres usages. Il détaille quelques étapes de durcissement de cette machine hôte.

C’est une première approche de la philosophie Assume breach : considérer que l’on est déjà compromis, où que cela arrivera nécessairement à un moment ou un autre. On pratique ici la compartimentation, un concept essentiel pour limiter les impacts d’une compromission.

Choix du logiciel de virtualisation

L’auteur met en avant deux solutions principales : VirtualBox et VMWare Workstation Pro. Il ne met pas en avant une solution plutôt qu’une autre, VMWare Workstation étant désormais gratuit pour un usage personnel.

Il motive son choix personnel d’utiliser VirtualBox par l’aspect ouvert du projet. C’est également l’option que j’ai personnellement choisie.

A vous de faire votre choix en fonction de vos besoins et de vos préférences !

Choix de l’OS

Une question qui peut faire couler de l’encre : les avis ne convergent pas nécessairement. L’auteur explique comment installer des machines virtuelles Windows et Linux, sur différents OS hôte et logiciels de virtualisation.

L’auteur recommande initialement d’utiliser Ubuntu, mais a changé pour Debian dans sa dernière version.

Avec ce livre, je suis passé d’Ubuntu à Debian pour les machines, qui offre un environnement plus efficace, privé et minimaliste.

OSINT Techniques: The Ultimate Virtual Machine, Michael Bazzell.

Le débat entre Linux et Windows est également ouvert. Linux ne présentant pas de télémétrie, c’est une meilleure option pour les enquêtes sensibles. La majorités des outils présentés par l’auteur sont disponibles sous Linux.

Pour ces raisons, et étant familier avec Debian, j’ai choisi la dernière version de celui-ci.

Choix de l’environnement de bureau

Cette partie ne concerne que les OS basés sur Linux.

C’est une question d’habitude, et de goût personnel.

L’auteur préconise GNOME et fournit les quelques configurations associées pour obtenir une interface épurée. Si vous débutez sur Linux, je vous conseille de rester sur GNOME, qui est le plus utilisé et le plus documenté.

Cinnamon est également mentionné dans le livre, et c’est celui que j’ai personnellement choisi.

Programmes

Note préalable : pour ceux qui sont surtout intéressés par une liste d’outils sans trop de détails, vous pouvez consulter le start.me que j’ai conçu conjointement à cet article, bien plus complet et actualisé fréquemment.

Beaucoup de programmes de collecte et de traitement de données sont en mode CLI (command-line interface). Si vous ne voulez pas vous en priver, vous n’aurez d’autre choix que de vous familiariser avec ce mode d’interaction avec votre machine !

Prise de note et reporting

  • CherryTree
    Pour prendre des notes et organiser ses investigations, sous forme d’arbre.
  • Obsidian
    Pour prendre des notes et organiser ses investigations. Connu notamment pour sa fonctionnalité de graphes de liens entre les notes.
  • LibreOffice
    Une suite office open source. Pour rédiger des rapports, des synthèses, etc.

Visualisation et traitement de données

  • VSCodium
    Un fork de Visual Studio Code sans les fonctionnalités propriétaires de Microsoft. Pour éditer des fichiers de code, des fichiers CSV, etc. Voici des suggestions d’extensions à installer :
    • Markdown All in One
    • Bookmarks
    • Code Spell Checker
    • Python
    • Rainbow CSV
    • Todo Tree
  • SQLiteBrowser
    Pour visualiser et éditer des bases de données SQLite.

Traitement des vidéos

  • Un outil de capture d’écran vidéo, par exemple Kazam
  • VLC
    Pour lire (presque tous) les fichiers audio et vidéo.
  • FFMPEG
    Pour convertir des fichiers audio et vidéo.
  • YT-DLP
    Pour télécharger des vidéos depuis YouTube, en particulier l’intégralité d’une chaîne YT. Permet également de télécharger les commentaires, les sous-titres, et les descriptions associées.
  • Streamlink
    Pour télécharger des flux vidéo et audio en direct. Permet de télécharger des vidéos en direct sur Twitch, YouTube, etc.

Note : les deux derniers outils sont puissants et peuvent automatiser des tâches chronophages, au prix d’un apprentissage des différentes options de commandes associées. Le livre contient un script personnalisé pour réunir une grande partie des fonctionnalités dans une interface graphique !

Traitement des images

  • Un outil pour effectuer des captures d’écran. Il y en a pléthore !
  • GIMP
    Pour éditer, manipuler des images.
  • Gallery-DL
    Pour télécharger des images depuis des sites de partage d’images. Il supporte plus de 150 services dont Tumblr, 4chan, Flickr, Imgur, Reddit, et de nombreux sites “pour adulte”.
  • RipMe
    Une solution alternative pour récupérer des images en masse à partir d’une page web. Solution graphique qui nécessite java.
  • ExifTool
    Pour visualiser et éditer les métadonnées des fichiers. Peut donner des informations intéressantes sur les fichiers images.
  • MediaInfo
    Pour visualiser des métadonnées (éventuellement cachées) sur des fichiers multimédias.
  • mat2
    Permet de supprimer les métadonnées des fichiers. Peut être intéressant pour les fichiers produits (rapports, etc), attention à ne pas altérer des preuves !
  • Sherloq
    Un outil pour détecter diverses modifications sur une image (par exemple avec Photoshop).

Recherches de comptes en ligne

  • Sherlock
    Pour rechercher des identités sur les réseaux sociaux.
    • Maigret
      Un fork qui se veut plus complet que Sherlock. Il est capable de trouver des comptes sur 2800 sites à ce jour, avec davantages d’options pour exporter les résultats.
  • BlackBird
    Dans la même série, présente des résultats détaillés sur les comptes trouvés sur 500 sites (à ce jour).

E-mail

Attention : ces outil peuvent provoquer des intéractions avec les cible, ce qui est à éviter en général dans les enquêtes OSINT. Ils utilisent en effet des stratégies d’identification telles que vérifier si un utilisateurs est enregistré (tentative d’authentification) et des invites de récupération de mot de passe.

  • SocialScan
    Pour rechercher des noms d’utilisateurs et e-mails sur quelques services en ligne. Le programme indique si le nom d’utilisateur est disponible ou déjà utilisé.
  • Holehe
    Un deuxième outil pour rechercher des comptes sur les réseaux sociaux à partir d’un e-mail, cette fois exclusivement.
  • Eyes
    Ce programme est similaire à Holehe, mais avec des options différentes. Il fournit un moyen passif facile de déterminer si une adresse électronique sur un domaine personnalisé est hébergée chez Proton, et tente ensuite de l’associer à des comptes sur Twitter et GitHub.
  • GHunt
    Permet d’extraire diverses informations sur un compte Google : nom et photo de profil, date et heure de la dernière mise à jour de profil, ID (GAIA), chaînes YouTube, confirmation de l’utilisation de différents services Google, avis sur maps, etc. Ce programme nécessite un peu de travail pour le configurer correctement, mais les bénéfices justifient les efforts. Vous devez posséder des cookies de connexion valides provenant d’un compte Google actif.
  • xeuledoc
    Un outil cette fois pour extraire des informations à partir d’un Google Doc, tel que le propriétaire, la date de création…

D’autres outils sont présentés par l’auteur pour rechercher des comptes dans des fuites de données, et déterminer les types de hash cryptographiques. Étant donné que ce type de recherches flirtent avec l’illégalité (en France en tout cas), je ne les mentionne pas ici.

Outils pour les sites web/domaines

  • EyeWitness
    Ce script Python automatise la collecte de captures d’écran à partir de sites web.
  • HTTrack
    Pour télécharger (archiver) un site web entier sur votre machine. C’est un vieux projet, qui fonctionne encore souvent.
  • Waybackpy
    Pour interroger l’API de la Wayback Machine et récupérer la liste des URLs archivées.
  • Waybackpack
    Pour télécharger les pages archivées sur la Wayback Machine.
  • OWASP Amass
    Un programme très complet, qui permet notamment de déterminer tous les sous-domaines possibles d’un domaine cible, parmi de nombreuses autres caractéristiques. Une alternative plus rapide mais moins complète pour cette fonctionnalité particulière est Sublist3r.
  • Photon
    Photon peut extraire les données suivantes lors de l’exploration :
    • URLs (dans le champ d’application et hors du champ d’application)
    • URLs avec paramètres (exemple.com/gallery.php?id=2)
    • Intel (courriels, comptes de médias sociaux, buckets amazon etc.)
    • Fichiers (pdf, png, xml, etc.)
    • Clés secrètes (clés d’authentification/API et hachages)
    • Fichiers JavaScript et points de terminaison présents dans ces fichiers
    • Chaînes de caractères correspondant à une expression rationnelle personnalisée
    • Sous-domaines et données DNS
  • Carbon14
    Un outil tenter de déterminer l’âge d’un site web, à partir des métadonnées des images qu’il contient.

    Attention : les métadonnées peuvent être manipulées, ou supprimées.

  • Change Detection
    Une alternative aux divers outils en ligne pour détecter les changements sur des pages web.
  • Metagoofil
    Un outil pour télécharger tous les documents (dont l’extension est précisée) d’un site web.

Frameworks

  • Spiderfoot
    Un outil pour récupérer et corréler de nombreuses informations à partir d’une donnée initiale parmi :
    • Adresse IP
    • Nom de domaine, sous-domaine
    • Nom d’utilisateur
    • Nom de personne
    • Adresse e-mail
    • Numéro de téléphone
    • Adresse Bitcoin
  • Recon-ng
    Recon-ng est un framework entier orienté sur la reconnaissance, un environnement pour mener rapidement et en profondeur des opérations de reconnaissance basées sur le web.

    L’auteur fournit une explication et un exemple sur l’utilisation de l’outil, mettant en avant un manque de documentation peu développée sur le web.

D’autres frameworks sont présentés, je pense pour ma part qu’il vaut mieux se spécialiser sur un ou deux, et ne pas en dépendre, le risque étant que les fonctionnalités ne soient pas maintenues car trop nombreuses. Choisissez un projet activement maintenu et documenté !

Archivage de comptes en ligne

  • Bulk Downloader For Reddit (BDFR)
    Reddit peut être une source de preuves en ligne dans le cadre d’enquêtes. Cet outil permet d’archiver tous les messages postés par un utilisateur Reddit sous format json dans des dossiers étiquetés pour chaque nom de Subreddit.
  • Instaloader
    Télécharger en masse du contenu sur Instagram. Deux autres options : Toutatis et Osintgram. L’auteur indique qu’il faut s’attendre à des difficultés avec ces trois outils, car Instagram tente activement de bloquer le scrapping.

GeoInt

  • Google Earth Pro
    Pour visualiser les images satellites et les cartes. Ajoute des fonctionnalités supplémentaires par rapport à la version web.

Sécurité

  • KeePassXC
    Pour stocker et gérer ses mots de passe dans un fichier local. Peut permettre de stocker des informations sensibles, comme des identités sock puppet.
  • VeraCrypt
    Pour créer des fichiers-conteneurs chiffrés.
  • Kleopatra
    Pour gérer ses clés PGP.
  • Metadata Cleaner
    Pour nettoyer les métadonnées des fichiers.

Docker

Cette partie est une suggestion personnelle, et n’est pas mentionnée dans le livre. A vous de juger si ces applications peuvent vous être utiles. Un fichier docker compose est fourni plus bas pour déployer aisément les services présentés !

Applications

  • SearxNG
    Un moteur de recherche open source, à héberger soi-même, qui collecte les résultats de plusieurs moteurs de recherche.
  • Linkwarden
    Un gestionnaire de liens open source, à héberger soi-même. Permet d’archiver des articles et sites web, de les organiser, de les partager, etc.
  • Stirling PDF
    Un couteau suisse pour les PDF, à héberger soi-même. Permet de convertir, fusionner, diviser, compresser, etc.
  • CyberChef
    Un outil de manipulation de données, à héberger soi-même. Permet de convertir, décoder, encoder, etc.
  • Excalidraw
    Un outil de dessin collaboratif, à héberger soi-même. Permet de créer des diagrammes, des schémas, etc.

Mentions honorables

  • Memos
    Un gestionnaire de notes open source, qui prend la forme d’un fil de discussion style twitter. Cela permet de noter des éléments horodatés. Peut servir par exemple de main courante pour une enquête.
  • AliasVault
    Un gestionnaire de mots de passe open source, qui prend en charge la génération et le stockage d’alias (nom, prénom, pseudo, e-mail jetable). Il est encore en version beta, et manque encore de fonctionnalités à mon goût. Du fait de la complexité de déploiement (nécessite un serveur mail pour générer souverainement les alias), je ne l’ai pas proposé dans le fichier docker compose. C’est un projet à suivre de près pour la gestion des sock puppets !

Mise en place

Dans mon cas, tous les fichiers sont stockés sous /home/osint/docker/ (osint étant le nom d’utilisateur de la VM). Voici les étapes pour la mise en place :

  • Installation de Docker : se référer à un guide actualisé en ligne. A date d’écriture, ce guide est à jour.
  • Fichier docker compose : voici le fichier docker-compose.yaml que j’utilise pour mes applications Docker. Il est à adapter à vos besoins. Vous pouvez à cette fin commenter les applications qui ne vous intéressent pas. (sous VSCodium : Ctrl + / pour commenter/décommenter une ligne).
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    
    services:
      # SearxNG
      redis:
        container_name: searxng-redis
        image: docker.io/valkey/valkey:8-alpine
        command: valkey-server --save 30 1 --loglevel warning
        restart: unless-stopped
        networks:
          - searxng
        volumes:
          - ./searxng/valkey-data2:/data
        cap_drop: # comment for first run, uncomment after
          - ALL # comment for first run, uncomment after
        cap_add:
          - SETGID
          - SETUID
          - DAC_OVERRIDE
        logging:
          driver: "json-file"
          options:
            max-size: "1m"
            max-file: "1"
    
      searxng:
        container_name: searxng-front
        image: docker.io/searxng/searxng:latest
        restart: unless-stopped
        networks:
          - searxng
        ports:
          - 127.0.0.1:8080:8080
        volumes:
          - ./searxng/searxng-data:/etc/searxng:rw
        environment:
          - SEARXNG_BASE_URL=https://${SEARXNG_HOSTNAME:-localhost}/
          - UWSGI_WORKERS=${SEARXNG_UWSGI_WORKERS:-4}
          - UWSGI_THREADS=${SEARXNG_UWSGI_THREADS:-4}
        cap_drop:
          - ALL
        cap_add:
          - CHOWN
          - SETGID
          - SETUID
        logging:
          driver: "json-file"
          options:
            max-size: "1m"
            max-file: "1"
        
      # Linkwarden
      postgres:
        image: postgres:16-alpine
        container_name: linkwarden-db
        env_file: .env
        restart: always
        volumes:
          - ./linkwarden/pgdata:/var/lib/postgresql/data
        
      linkwarden:
        container_name: linkwarden-front
        env_file: .env
        environment:
          - DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@postgres:5432/postgres
        restart: always
        image: ghcr.io/linkwarden/linkwarden:latest
        ports:
          - 127.0.0.1:3000:3000
        volumes:
          - ./linkwarden/linkwarden-data:/data/data
        depends_on:
          - postgres
        
      # Stirling-PDF
      stirling-pdf:
        container_name: stirling-pdf
        image: stirlingtools/stirling-pdf:latest
        ports:
          - 127.0.0.1:8888:8080
        volumes:
          #- ./trainingData:/usr/share/tessdata # Required for extra OCR languages
          - ./stirling-pdf/extraConfigs:/configs
          - ./stirling-pdf/customFiles:/customFiles/
          - ./stirling-pdf/logs:/logs/
          - ./stirling-pdf/pipeline:/pipeline/
        environment:
          - DOCKER_ENABLE_SECURITY=false
          - LANGS=fr_FR
    
      # CyberChef
      cyberchef:
        container_name: cyberchef
        image: ghcr.io/gchq/cyberchef:latest
        ports:
          - 127.0.0.1:8877:80
        
      # Memos
      memos:
        image: neosmemo/memos:stable
        container_name: memos
        volumes:
          - ./memos:/var/opt/memos
        ports:
          - 5230:5230
    
    networks:
      searxng:
    
  • Fichier env : voici le fichier .env que j’utilise. Si vous souhaitez générer les secrets aléatoirement, nommez-le .env.example (voir la section qui suit)
    1
    2
    3
    4
    
    # ===== Linkwarden =====
    NEXTAUTH_URL=http://localhost:3000/api/v1/auth
    NEXTAUTH_SECRET=changeme_lkwd_nextauth
    POSTGRES_PASSWORD=changeme_lkwd_pg
    
  • Script de (ré)initialisation de l’environnement : à exécuter au moins une fois avant de démarrer le service si vous avez nommé votre fichier env .env.example.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    #!/bin/bash
    
    # Asks for confirmation
    read -p "Are you sure you want to remove all data? This is NOT REVERSABLE (y/n) " -n 1 -r
    echo
    if [[ ! $REPLY =~ ^[Yy]$ ]]; then
      echo "[i] Nothing done. Exiting."
      exit 1
    fi
    
    for dir in "./linkwarden" "./memos" "./searxng" "./stirling-pdf"; do
      dir=${dir%*/}
      if [ -d "./$dir" ]; then
        echo "[i] Removing $dir"
        sudo rm -rf ./$dir
      fi
    done
    
    echo "[i] Regenerating secrets..."
    
    cp .env.example .env
    sed -i "s/POSTGRES_PASSWORD=changeme_lkwd_pg/POSTGRES_PASSWORD=$(openssl rand -hex 32)/" .env
    sed -i "s/NEXTAUTH_SECRET=changeme_lkwd_nextauth/NEXTAUTH_SECRET=$(openssl rand -hex 32)/" .env
    
    echo "[i] Done."
    
  • Script de démarrage : pour démarrer les applications Docker, voici un exemple de script.
    1
    2
    3
    4
    
    #!/bin/bash
    
    cd ~/docker
    docker compose up
    
  • Script d’arrêt : pour arrêter les applications Docker, voici un exemple de script.
    1
    2
    3
    4
    
    #!/bin/bash
    
    cd /home/osint/docker
    docker compose down
    
  • Création d’un service pour les conteneurs : afin de démarrer les applications Docker au démarrage de la machine et les stopper lors de l’arrêt, on peut créer un service systemd. Voici un exemple de fichier de service.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    [Unit]
    Description=VM's docker containers
    Requires=docker.service
    After=docker.service
    
    [Service]
    Restart=always
    ExecStart=/home/osint/docker/docker-start.sh
    ExecStop=/home/osint/docker/docker-stop.sh
    
    [Install]
    WantedBy=default.target
    
  • Activation du service : pour activer le service, il suffit de copier le fichier de service dans le dossier /etc/systemd/system/docker-apps.service et exécuter les commandes suivantes :
    1
    2
    3
    
    sudo systemctl daemon-reload
    sudo systemctl enable docker-apps
    sudo systemctl start docker-apps
    

Comme le fait remarquer l’auteur :

Votre navigateur est sans doute l’élément le plus important de vos investigations OSINT. Prenez le temps de le configurer en fonction de vos besoins.

OSINT Techniques: The Ultimate Virtual Machine, Michael Bazzell.

Voyons donc ensemble les différentes options, puis les extensions et paramètres à mettre en place sur votre navigateur principal.

Quels navigateurs ?

Dans le livre, l’auteur met en avant Firefox et Brave. Nous installerons le second, mais nous tournerons vers des forks du premier. Explications.

Firefox sort de la course

Mozilla a récemment modifié les conditions d’utilisations de Firefox, et cette nouvelle version pose des questions.

  • Une première version, vague, pouvait laisser entendre que toute donnée saisie dans le navigateur appartiendrait alors à Mozilla :

    Vous accordez à Mozilla certains droits et autorisations

    Vous accordez à Mozilla tous les droits nécessaires au fonctionnement de Firefox, dont les données de traitement tel que décrit dans l’Avis de confidentialité de Firefox, et toutes actions en votre nom destinées à aider à naviguer sur Internet. Lorsque vous chargez ou entrez des informations par le biais de Firefox, vous nous accordez une licence mondiale non exclusive et excluant toute redevance pour l’utilisation de ces informations pour vous aider à naviguer, utiliser et interagir avec du contenu en ligne dans le cadre de votre utilisation de Firefox.

    Une seconde version a été publiée, précisant que les données n’appartiennent pas à Mozilla, mais reste tout de même floue.

  • La mention “nous ne vendront jamais vos données” a été retirée des conditions d’utilisation. Mozilla motive cette suppression par le fait que “la notion de vente de données est désormais large et en évolution constante”.

Cela a suffi à me convaincre de ne plus utiliser Firefox dans le cadre de l’OSINT, comme en utilisation personnelle.

Pour préciser mon propos : cette sous-section ne fait pas partie du livre, c’est une opinion personnelle. Je vous invite à vous faire votre propre opinion sur le sujet.

Firefox est mort… Vive les forks !

J’utilise au quotidien deux forks de firefox :

A noter que les sections suivantes (extensions et paramètres) sont valables pour ces deux navigateurs de même que pour Firefox.

Je vous conseille de configurer un de ces deux navigateurs comme principal pour vos investigations OSINT, et d’utiliser le second avec des paramètres par défaut pour les sites nécessitant des cookies ou des scripts.

Autres navigateurs

  • Brave
    Navigateur recommandé par l’auteur, basé sur Chromium, pour les quelques sites qui ne fonctionnent pas avec Firefox. Il présente l’avantage de bloquer les publicités et les trackers par défaut.
  • Tor Browser
    Tor est un sujet à part entière, et l’auteur recommande le Tor browser pour certains cas, par exemple accéder aux fameux services onion. Il met cependant en garde :

    Le navigateur Tor peut s’avérer exagéré pour la plupart des enquêtes. Si vous vous contentez d’effectuer des recherches et de surveiller des services courants tels que Facebook, Twitter ou YouTube, ce service n’est pas utile. Si vous visitez des sites web personnels et les blogs d’un pirate informatique averti, vous devriez vous appuyer sur votre VPN.

    OSINT Techniques: The Ultimate Virtual Machine, Michael Bazzell.

Paramètres

Consultez la documentation la plus à jour. Les paramètres changent au fil du temps.

Il s’agira ici de donner des pistes de configuration :

  • DNS : utiliser un DNS tiers sécurisé (Cloudflare, OpenDNS, Quad9, etc.)
  • Désactiver le stockage des cookies (prévoir un navigateur où ceux-ci sont activés, afin de ne pas avoir à se reconnecter à chaque visite, et conserver des données de session)
  • Désactiver l’historique de navigation (compromis à déterminer entre ergonomie et traçabilité de vos recherches, et OPSEC)

Extensions

  • Conteneurs firefox
    L’extension apporte une valeur ajoutée, même si la fonctionnalité est présente sans : vous pouvez associer un conteneur à un domaine. On peut donc en associer un à google ! Idem pour bing et d’autres services qui traquent votre navigation.
  • uBlock Origin
    • Activer le mode avancé, sélectionner les listes de blocage souhaitées.
    • Pour réinitialiser les modifications “manuelles” :
      1. Depuis le tableau de bord, cliquer sur « My Rules ».
      2. Dans la deuxième colonne (Temporary Rules), sélectionner tout le texte et appuyez sur Suppr.
      3. Cliquer sur « Save » dans cette même colonne, puis sur « Commit ».

      Cela réinitialise l’extension et rétablit son utilisation par défaut, quelles que soient les modifications.

  • KeePassXC-Browser
    Pour intégrer KeePassXC à votre navigateur ! Fini les copier-coller.
  • DownThemAll
    Pour télécharger les fichiers référencés sur une page web d’une traite.
  • Fireshot
    Pour capturer des pages web entières en PDF
  • Nimbus
    Pour capturer des pages web entières (solution de backup, en PNG cette fois).
  • SingleFile
    Pour sauvegarder une page web entière en un seul fichier HTML.
    Paramètres recommandés :
    • Cliquer sur l’onglet “Preferences” dans les paramètres du navigateurs => extensions => SingleFile.
    • Dérouler “User Interface” et activer “Open saved pages in a new tab”.
    • Dérouler “HTML Content” et désactiver “Remove hidden elements”.
    • Activer “Save original URLs of embedded resources”.
  • Exif Viewer
    Pour visualiser les métadonnées des images. Bien que souvent peu présentes sur des images publiées sur les réseaux sociaux, elles peuvent contenir des informations intéressantes si publiées directement sur un site web ou blog.
  • User-Agent Switcher
    Pour les sites qui bloquent Firefox, permet d’usurper un autre navigateur, ce qui peut parfois suffire à contourner les systèmes de blocage simples.
  • Image Search Options
    Pour effectuer des recherches inversées sur les images.
  • Search By Image
    Même fonctionnalité que l’extension précédente, mais avec des options supplémentaires.
  • Web Archives
    Pour consulter des versions archivées de pages web. Utile pour les pages supprimées ou modifiées.
  • Copy Selected Links
    Pour copier les liens sélectionnés sur du texte sélectionné sur une page web.
  • Stream Detector
    Pour détecter les flux vidéo et audio sur une page web, qui remplacent de plus en plus les vidéos directement intégrées.

Astuces de navigation

  • Hard Page Refresh
    Pour forcer le rechargement de la page sans utiliser le cache : Shift + clic sur le bouton de rechargement ou Shift + Ctrl + R.
Cet article est sous licence CC BY 4.0 par l'auteur.