OSINT - Recon-NG Partie 1

Dans un précèdent tutorial, je vous ai parlé vite fait de footprinting en mode passif, appelé aussi OSINT.
L’OSINT (Open Source INTelligence) est une information quia été délibérément été ouverte au public.De ce fait, il est tout a fait légale en France de pratiquer l’OSINT.

Le vrai problème reste que cette tache est extrêmement chronophage aussi bien pour récolter l’information que pour la trier. C’est ici qu ‘entre en jeu RECON-NG.

Présentation de RECON-NG

Recon-ng est un outil open-source disponible sur Github codé en python.

Il est par défaut installer sur toutes les distributions Kali Linux.

En terme d’utilisation , il ressemble beaucoup à Metasploit, il faut donc ne pas être allergique à la ligne de commande.

Le principe d’utilisation est assez simple :

  • on crée un workspace pour chaque reconnaissance
  • chaque workspace dispose de sa propre base de donnée pour stocker les resultats
  • on charge les modules dont on a besoin et on les paramètres en ligne de commande
  • on lance et on traite les résultats obtenus pour éliminer les faux positifs. Cela se fait grâce à des requêtes SQL à la mano.
  • On génère le rapport au format que l ‘on veut.


Il est à noté que vous pouvez utilisé les résultats stockés dans la base de données pour alimenter les paramètres des modules.

 

 

recon ng moi

Les Modules

Recon-NG tire sa force de ses modules. Chaque module a sa fonctionnalité propre. Il faut donc savoir quel module utilisé et à quel moment.

Module Description
discovery/info_disclosure/interesting_files
Extrait des fichiers type robot.txt d'un domaine
recon/credentials-credentials/bozocrack
Tente de trouver dans Google le décryptage d un mot de passe
recon/domains-contacts/hunter_io
Recheche des contacts et E-mail à partir d'un nom de domaine
recon/domains-contacts/wikileaker
Recherche dans les Wikileak si une correspondance existe par rapport au domaine et rempli la table contact
recon/domains-domains/brute_suffix
Trouver toutes les extensions de domaines ayant une entrée DNS
recon/domains-hosts/brute_hosts
Brute-force pour trouver les sous domaines
recon/domains-hosts/builtwith
Permet d'afficher des informations relatives aux domaines, technologie, serveur s.... mais attention ne stocke rien en base de donnée.
recon/domains-hosts/censys_domain
API censys pour récupérer informations sur les ports et hosts d un domaine
recon/domains-hosts/certificate_transparency
Analyse un certificat SSL d'un domaine et en extrait s'il existe d'autres noms de domaines rattacher au certificat
recon/domains-hosts/hackertarget
Récupération IP et host via Hackertarget
recon/domains-hosts/mx_spf_ip
Recherche les serveurs MX du domaine et enregistre dans la table hosts
recon/domains-hosts/netcraft
Interroge Netcraft pour trouver des infos
recon/domains-hosts/ssl_san
Analyse le SAN d'un domaine pour en extraire tous les hosts
recon/hosts-hosts/censys_ip
Liste les ports via l'API de Censys
recon/hosts-hosts/ipinfodb
Géolocalisation des IP de la table hosts
recon/locations-locations/geocode
Géolocalisation des adresses postales
recon/hosts-hosts/resolve
Permet de compléter les IP de la tables hosts en résolvant le nom de domaine
recon/hosts-hosts/reverse_resolve
Permet de compléter la table host en trouvant les noms de domaine manquants des IP
recon/hosts-ports/shodan_ip
Met à jour la liste de port d une IP dans host à partir de Shodan
recon/locations-pushpins/flickr
Permet de trouver des photos autour d'une localisation
recon/locations-pushpins/shodan
Cherche autour d une coordonnée GPS des IOT dans Shodan
recon/locations-pushpins/twitter
Chercher des Tweets avec media autour de coordonnée GPS
recon/locations-pushpins/youtube
Recherche des vidéos Youtube autour de coordonnée GPS
recon/netblocks-companies/censys_netblock_company
Récupère les informations de Censys qui appartient un block d IP
recon/netblocks-companies/whois_orgs
Récupère les informations du Whois sur une IP
recon/netblocks-hosts/shodan_net
Trouve les hostnames des IPs d'un netblock à partir de Shodan
recon/netblocks-hosts/virustotal
Trouve les hostnames des Ips d'un netblock à partir de Virustotal
recon/netblocks-ports/census_2012
Trouve les ports d'un netblock via Exfiltrated.com
recon/netblocks-ports/censysio
Trouve les ports d un netblock via Censysio
recon/profiles-contacts/bing_linkedin_contacts
Complète la table compagnie et contact à partir de profiles Linkedin
recon/companies-contacts/bing_linkedin_cache
Complète les tables profiles et contact à partir de la table compagnie en faisant une recherche sur LinkedIn
recon/profiles-contacts/dev_diver
Recherche des repository de code a partir du Username de profil
recon/profiles-contacts/github_users
Remplit la table contact pour les profiiles dont le username n'est pas vide et la ressource est Github
recon/profiles-profiles/profiler
Recherche sur plusieurs siteq si des comptes existent pour les usernames dans la table profiles et rajoute les URLs des comptes dans la table profiles
recon/profiles-profiles/twitter_mentioned
Recherche le username provenant de Twitter dans la table profiles et listent les user qui parle de lui
recon/profiles-profiles/twitter_mentions
Recherche les username provenant de twitter de la table profiles et liste les users qu il mentionne dans ses posts
recon/profiles-repositories/github_repos
Recherche depuis les username de la table profile sur Github. Liste les repository pour les mettre dans la table repository
recon/repositories-profiles/github_commits
Recherche depuis la liste des repository la liste des user ayant effectué des commit sur le projet et update les profiles
recon/repositories-vulnerabilities/gists_search
Recherche depuis la liste des repository ciblant Github une liste de vulnérabilité
recon/repositories-vulnerabilities/github_dorks
Recherche deouis les repository une liste de vulnérabilité
reporting/html
Permet de faire un export HTML des résultats
reporting/csv
Permet de faire un export CSV des résultats
reporting/xml
Permet de faire un export XML des résultats

Comme vous pouvez le constater , on a de quoi faire. Ce que vous allez devoir apprendre c’est l’art d’utiliser les modules suivant un ordre précis suivant vos types de recherche.

Gestions des modules

La gestion des modules se fait au travers de 3 commandes :

  • marketplace : pour l’installation et la recherche de module
  • keys : permet de gérer vos clés API nécessaires pour certains modules
  • modules : pour le chargement et l’utilisation d’un module.

Marketplace

La commande marketplace est le gestionnaire de modules de RECON-NG. Il permet de lister les modules, de les installer et de les désinstaller et de recupérer les infos

Marketplace refresh
recon-ng marketplace refresh
				
					marketplace refresh
				
			

L’option refresh de la commande markeplace de recon-ng, permet de mettre à jour l’index des modules disponibles.

Marketplace search
marketplace search recon-ng
				
					marketplace search motclé
				
			

Permet de rechercher un plugin dans la liste de modules disponible, le mot clé sera recherché aussi bien dans le titre que dans la description du module.

Si vous lancez la commande sans mot clé, recon-ng listera tous les modules.
Le tableau de résultat dispose de deux colonnes, D et K. D pour dépendance à installer et K pour clé API nécessaire.

Marketplace info
marketplace info
				
					marketplace info bing_linkedin_cache

				
			

Lorsque l’on a trouvé un module , via la commande marketplace info nom_du_module, on aura accès au descriptif du module.

Marketplace install et remove
marketplace install
				
					marketplace install censys_tls_subjects
				
			
				
					marketplace remove censys_tls_subjects
				
			

Commande permettant d’installer un module, après l’installation les modules sont rechargés.

S il vous manque des dépendances ou une clé API , un message d’alerte s’affichera comme dans l’exemple ci dessus, il faudra alors régler le problème pour que le module soit actif.

La commande remove, elle, permet de désinstaller un module.

Keys

Les modules font des recherches sur des sources libres d’accès sur Internet. Libre d’accès mais pas tant que cela. Certains sites mettent en place des API avec quelques restrictions. Recon-ng via la commande keys permet d’enregistrer les clefs API pour les modules.

Keys list
keys list recon-ng
				
					keys list
				
			

Grâce à la commande keys list vous pourrez visualiser les différentes clés API que vous aurez enregistré dans votre recon-ng.

vous pouvez sauvegarder votre fichier ~/.recon-ng/keys.db après avoir renseigner vos différentes clés.

Keys add and remove

La commande keys add permet d ajouter et de mettre à jour une clé, la commande remove la supprime.

Keys add prend deux attributs name et value.

				
					keys add <name> <value>

				
			

Modules

Nous avons installé les modules ainsi que les clés nécessaires, maintenant on peut jouer avec.

Modules search
module search
				
					modules search motclé
				
			

Cette commande fonctionne de la même manière que marketplace search. La seule différence est qu’elle liste les modules que vous avez installé et utilsables.

Modules load et reload

Avant de pouvoir utiliser un module, il faut le charger dans recon-ng grace a la commande load. La commande reload permet de le recharger.

Après que le module soit chargé vous avez encore 3 commandes a connaître.

  • info : affiche les informations pour utiliser le module
  • options set TARGET VALUE : permet de paramétrer le module
  • run : lance le module après l’avoir paramétré