OSINT - Recon-NG Partie 2

Deuxième partie du tutorial sur RECON-NG, nous avons vu précédement comment installer les modules et les paramétrer. Vous devez donc avoir un RECON-NG fonctionnelle. Dans ce nouveau tuto, nous allons aborder les notions de workspaces, de db et de snapshots et quelques commandes de base.

Vous serez alors armer pour lancer votre première reconnaissance avec de bonnes pratiques.

Workspaces

RECON-ng permet de créer des workspacces. Comme son nom l’indique , ceux sont des espaces de travail. La bonne facon de travailler est donc de créer un workspace pour chaque projet de footprinting.

Chaque workspace sera rangé dans le dossier root de l’utilisateur qui lance le recon-ng. Un répertoire pour chaque workspace sera créé pour stoker la base de donnée et les fichiers du workspace.

				
					cd ~/.recon-ng/workspaces && ls
				
			

Workspace list

workspaces list
				
					workspaces list
				
			

cette commande permet de lister l »ensemble des workspaces crées par l’utilisateur qui lance recon-ng.

Workspace create et remove

worspace create
				
					workspaces create tutodemo
				
			

Grâce à cette commande vous venez de creer un workspace nommé  tutodemo. Recon-ng vous place directement dans le workspace après sa création.

Si vous voulez le supprimer vous utiliserez cette commande .

				
					workspaces remove tutodemo
				
			

Workspace load

workspaces load
				
					workspaces load tutodemo
				
			

Pour charger un workspace avant de travailler dessus utilisez la commande ci-dessus. Vous aurez la confirmation dans l’invite de commande que vous êtes bien dans le workspace lorsqu’il est chargé. 

Configuration du workspace

Tout comme un module votre workspace dispose de différentes variables de configuration que vous pouvez modifié. Avant de lancer votre premier module je vous conseille de vérifier et modifier vos paramètre suivant les besoins.

				
					options list
				
			

Vous aurez alors un tableau en sortie avec le descriptif de chaque options.

workspace options list
  • NAMESERVER : pour l’ip du serveur DNS par defaut pour la resolution des nom de domaine, par default c est google. Ce qui n’est pas forcément une bonne chose car lors des scans en brute force vous pouvez être bloqué.
  • PROXY : pour configurer le passage par un proxy.
  • THREADS : nombre max de taches en simultanée lorsque le module le gère
  • TIMEOUT : je pense que ça tout le monde comprend
  • USER-AGENT : alors ca c est vraiement a modifié pour avoir des résultats non filtré par les WAF.
  • VERBOSITY : pour régler le niveau de sortie de recon-ng.

 

Pour modifier par exemple l option NAMESERVER nous ferons :

				
					options set NAMESERVER 38.132.106.139
				
			
workspace options set

Ce paramétrage sera propre à votre workspace , lorsque que vous reviendrez dessus il sera toujours présent.

Pour le user-agent je vous propose ceci :

				
					options set USER-AGENT Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36
				
			

Première donnée sur la cible

Votre Workspace est crée et paramétré. Il faut maintenant définir la cible. Pour cela nous allons insérer dans la base de donnée du workspace quelques informations de base suivant la cible.

Comme je vous l’ai dit précédemment chaque workspace dispose de sa propre base de donnée SQLite. Nous allons donc aborder la gestion de la base de donnée.

Db schema

recon-ng db schema
				
					db schema
				
			

La commande db schema permet de pouvoir avoir la structure de la base de donnée.

Nous avons 13 tables :

Table Descriptif
domains
Nom de domaine dans le champ domain
companies
nom de la société cible dans le champs company
netblocks
Bloc ip dans le champs netblock
locations
Permet d'enregistrer une adresse, le champ latitude et longitude pour les coordonnées GPs et street_address pour l adresse postal
vulnerabilities
Table référencant les vulnérabilités par serveur
ports
Table listant les ports d'un serveur avec des informations sur la banner
hosts
Table stockant les serveurs avec leur ip et la géolocalisation.
contacts
Table permettant de référencer les contacts, nom, prénom, email, téléphone
credentials
Table stockant les usernames , mots de passe et aussi hash
leaks
Table sauvegardant les fuites de données
pushpins
Table permettant de référencer les publications sur le net
profiles
Table permettant de lister les profiles dans les sites par username
repositories
Table listant les repository de code

db insert

db insert recon-ng
				
					db insert domains
				
			

La commande db insert permet d’injecter des données dans une table grâce à un menu contextuelle. Vous allez ainsi pouvoir insérer les données dans la table de votre choix.

Plus vous allez insérer de données dans la base avant de lancer les modules plus vous aurez de résultats cohérents sur la cible

shown

show recon-ng
				
					show domains
				
			

Vous pouvez visualiser les entrées d’une table grâce à la commande show

db delete

db delete recon-ng
				
					db delete domains
				
			

La commande db delete permet de supprimer une ligne, je conseille de faire un show avant pour bien repérer le rowid de la ligne a effacé

Snapshot

La commande snapshot permet de faire une sauvegarde de votre base de donnée. Je vous conseille vivement d’en prendre plusieurs, voir d en faire une entre chaque utilisation de module.  En effet un module mal paramétré peut très rapidement polluer votre base de donnée. Vous serez alors heureux de pouvoir revenir en arrière.

snaapshot recon ng

Les commandes sont assez simple :

  • take => prendre un snapshot
  • remove => supprimer un snapshot
  • list => lister les snapshots disponibles
  • load => restaurer un snapshot

Voilà vous avez maintenant les bases techniques pour commencer à utiliser recon-ng.

Après chaque utilisation de modules prenez bien le temps de vérifier les entrées générées dans la base de données afin de nettoyer les faux positifs.

Cela évitera de cramer des appels API pour rien dans les autres modules et rendra votre reconnaissance plus rapide.