Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
instaloctrack — Un outil OSINT pour Instagram qui collecte toutes les localisations géolocalisées disponibles sur un profil Instagram afin de les tracer sur une carte et de les exporter dans un fichier JSON. | Kitploit
Outils/GitHubGitHub/bernsteining/instaloctrack
OSINT (Renseignement de Sources Ouvertes)ReconnaissanceCollecte d'InformationsIngénierie SocialeCrawlerArchived
GitHubbernsteining/instaloctrack

instaloctrack

Un outil OSINT pour Instagram qui collecte toutes les localisations géolocalisées disponibles sur un profil Instagram afin de les tracer sur une carte et de les exporter dans un fichier JSON.

Voir le dépôt
32061il y a 6 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

instaloctrack

TL;DR : ascineema, vidéo du projet

Un outil pour récupérer les positions géotaguées sur les profils Instagram. Sortie en JSON et carte interactive.

prérequis

root@kitploit:~
sudo apt install chromium-chromedriver && chmod a+x /usr/bin/chromedriver

🛠️ installation

root@kitploit:~
git clone https://github.com/bernsteining/instaloctrack
cd instaloctrack
pip3 install .

Ou utilisez Docker :

root@kitploit:~
sudo docker build -t instaloctrack -f Dockerfile .

Utilisation

root@kitploit:~
instaloctrack -h
usage: instaloctrack [-h] [-t TARGET_ACCOUNT] [-l LOGIN] [-p PASSWORD] [-v]

Instagram location data gathering tool. Usage: python3 instaloctrack.py -t <target_account>

optional arguments:
  -h, --help            show this help message and exit
  -t TARGET_ACCOUNT, --target TARGET_ACCOUNT
                        Instagram profile to investigate
  -l LOGIN, --login LOGIN
                        Instagram profile to connect to, in order to access
                        the instagram posts of the target account
  -p PASSWORD, --password PASSWORD
                        Password of the Instagram profile to connect to
  -v, --visual          Spawns Chromium GUI, otherwise Chromium is headless

ex.

root@kitploit:~
instaloctrack -t <target_account>

Si le profil cible est privé et vous avez un compte qui suit le profil cible, vous pouvez récupérer les données avec une session connectée :

root@kitploit:~
instaloctrack -t <target_account> -l <your_account> -p <your_password>

ou avec Docker :

root@kitploit:~
sudo docker run -v /tmp/output:/tmp/output instaloctrack -t <target_account> -o /tmp/output

⚙️ Comment ça marche

D'abord, nous récupérons tous les liens des photos du compte en faisant défiler tout le profil Instagram, grâce au webdriver de Selenium.

Ensuite, nous récupérons de manière asynchrone (asyncio) chaque lien de photo, nous vérifions s'il contient un emplacement dans la description de la photo, et récupérons les données de l'emplacement s'il y en a, ainsi que l'horodatage.

  • NB: Depuis 2018, Instagram a déprécié son API de localisation et il n'est plus possible d'obtenir les coordonnées GPS d'une photo, tout ce que nous pouvons récupérer est le nom de l'emplacement. (Si vous pouvez me prouver que je me trompe, dites-le moi !)

Comme Instagram ne fournit pas de coordonnées GPS, et que nous n'avons que des noms de lieux, nous devons géocoder ces derniers (c'est-à-dire obtenir les coordonnées GPS à partir du nom du lieu).

Pour cela, j'ai utilisé l'excellente API de Nominatim, qui utilise OpenStreetMap. Pour notre utilisation, aucune clé API n'est requise, et nous respectons la politique d'utilisation de Nominatim en demandant les coordonnées GPS une fois par seconde.

Finalement, une fois que nous avons toutes les coordonnées GPS, nous générons un HTML (grâce au templating Jinja2) avec du Javascript embarqué qui affiche une carte Open Street Map (grâce à la bibliothèque Leaflet) avec tous nos emplacements épinglés. Encore une fois, aucune clé API n'est requise pour cette étape.

De plus, les données collectées par le script (noms des lieux, horodatages, coordonnées GPS, erreurs) sont déversées dans un fichier JSON afin de pouvoir être réutilisées.

Exemple

À titre d'exemple, voici le résultat sur le profil Instagram de l'ancien président français, @fhollande :

Carte des emplacements de @fhollande sur Instagram

La carte de chaleur :

Carte de chaleur des emplacements de @fhollande sur Instagram

Informations disponibles en cliquant sur un repère :

données disponibles en cliquant sur un repère

Statistiques sur les données de localisation :

statistiques sur les données de localisation

Le fichier JSON des données (juste une partie pour montrer le format d'un emplacement donné) :

root@kitploit:~
{
    "link": "https://www.instagram.com/p/-Q_9EvR9eu",
    "place": {
      "id": "290297",
      "name": "Musée du quai Branly - Jacques Chirac",
      "slug": "musee-du-quai-branly-jacques-chirac",
      "street_address": " 37 quai Branly",
      " zip_code": " 75007",
      " city_name": " Paris",
      " region_name": " ",
      " country_code": " FR"
    },
    "timestamp": "2015-11-19",
    "gps": {
      "lat": "48.8566969",
      "lon": "2.3514616"
    }
  }

Améliorations possibles

  • Code plus propre :D
  • Factoriser la fonction de géocodage qui est beaucoup trop longue et cryptique
  • Utiliser BeautifulSoup au lieu du parsing par expressions régulières
  • Supprimer l'espace bizarre causé par la barre de progression
  • Utiliser d'autres outils de géocodage (par ex. https://geo.api.gouv.fr/adresse) que Nominatim en cas d'échec ? (spécifier un argument ?)
    • Utiliser geopy ?
    • Utiliser Overpass au lieu de Nominatim ?
  • Ajouter un argument pour sélectionner seulement un ensemble de photos (sélectionné par date ou par rang)
  • Informations temporelles sur la durée du script
Télécharger l’outil