Collecte d'informations Bug Bounty

As a newcomer to the cybersecurity industry, I'm on an exciting journey of continuous learning and exploration. Join me as I navigate, sharing insights and lessons learned along the way
Search for a command to run...

As a newcomer to the cybersecurity industry, I'm on an exciting journey of continuous learning and exploration. Join me as I navigate, sharing insights and lessons learned along the way
No comments yet. Be the first to comment.
Ce lab a pour but de concevoir et déployer une infra sécurisée et segmentée sur Google Cloud Platform (GCP) en utilisant Terraform et Ansible. Bonne lecture :) Composants Voici les différentes technologies et composants du projet. Infrastructure Te...
Cet article présente la mise en place d’un environnement de détection, combinant Zeek, Suricata avec la stack ELK (Elasticsearch, Logstash, Kibana). Il permet de mettre en avant la gestion des logs avec ELK, l’analyse réseau avec Zeek et Suricata, pu...

Dans cet article, on va déployer une application Python Flask sur Kubernetes. Un premier article montrant les premiers pas avec Kubernetes et Minikube est disponible ici Kubernetes: Simplifying Container Orchestration Pré-requis Docker: pour créer l...

Kubernetes ou K8s est une plateforme open-source utilisée pour automatiser le déploiement et la gestion des applications conteneurisées. Une application conteneurisée est une application qui fonctionne à l’intérieur d’un conteneur, un environnement l...

Lien : https://www.root-me.org/fr/Challenges/App-Script/ELF32-System-2 On veut pouvoir lire le mot de passe du fichier .passwd mais il n’est lisible que par le propriétaire du fichier app-script-ch12-cracked. Le code source de ch12.c utilise la fonc...

Dans un contexte de BugBounty ou de test de sécurité, la collecte d’informations est une étape qui consiste à recueillir un maximun de données sur une cible. Le but est de mieux comprendre son environnement et surtout identifier des vulnérabilités potentielles. Elle utilise des techniques variées dont certaines seront détaillées par la suite. Dans cet article, nous expliquerons en détail certains outils utiles lors de la collecte d’informations.
Le Google Dorking est une technique de recherche qui utilise des requêtes avancées afin de trouver des informations sensibles, non accessibles via une recherche Google standard. Cela permet d’affiner la recherche pour découvrir des pages web, des fichiers et d’autres données cachées.
<keyword> site: www.website.com filetype:pdf
site: effectue la recherche du keyword seulement sur le site spécifié.
filetype: recherche un type de fichiers spécifiques, ici les pdf.
intitle:<keyword> inurl:<keyword> cache:<keyword>
intitle: recherche des pages web dont le titre contient le mot spécifié
inurl: recherche les pages web dont l’URL contient le mot spécifié. Cette technique permet de retrouver des pages spécifiques, des répertoires ou des fichiers qui incluent le mot-clé.
cache: permet d’afficher la version en cache d’une page web. C’est à dire elle affiche une copie sauvegardée par un moteur de recherche.
Elle est souvent utilisée pour afficher une page qui a été supprimée, mais toujours visible dans le cache du moteur de recherche. Ou encore voir comment un site apparaissaît avant des modifications majeures.
Sur l’image ci-dessous, on peut voir que la recherche retourne juste des fichiers PDF qui ont le terme "bug bounty" dans le titre.

On peut utiliser des Google Dorks pour des informations plus sensibles.
intitle:"index of" "server-status" site:www.website.com : cette requête recherche des pages sur le site dont le titre contient ”index of ” et “server-status“. Cela peut permettre d’avoir des informations sur le serveur ou des pages de statut de serveur.
"public" "key" filetype:pem site:www.website.com : pour rechercher des fichiers de type PEM sur le site contenant les mots “public" et “key". Ces fichiers sont souvent utilisés pour stocker des clés pour la cryptographie. On pourrait donc potentiellement retrouver des clés publiques exposées.
Les Google Dorks peuvent être des moyens efficaces pour identifier des vulnérabilités sur un système. Il existe aussi des fichiers et des listes disponibles sur Internet contenant des google Dorks pour diverses recherches
BugBountySearchEngine est un moteur de recherche qui regroupe plusieurs moyens de rechercher des vulnérabilitées et des informations sensibles sur des domaines, des sites et même des personnes. Il offre des options pour trouver des fichiers de configuration ou de sauvegarde, des bases de données exposées, des sous-domaines et bien d’autres. On peut aussi y rechercher des données spécifiques sur des sources publiques comme Github, Shodan, Censys et d’autres.
L’outil est disponible ici.
Pour l’utiliser, entrez un domaine cible dans l’interface. Sélectionnez ensuite l’une des recherches prédéfinies en fonction des informations que vous souhaitez avoir.

Le Github Recon est une technique utilisée pour rechercher des informations sur des projets, des organisations ou même des individus en explorant les dépôts sur Gihub. Elle consiste à analyser l’historique des commits, surveiller les activités dans le but de découvrir des informations sensibles. Vous pouvez aussi utiliser les Github Dorks pour affiner les recherches. Il est parfois possible que les développeurs oublient ou laissent des informations sensibles comme des clé APIs, des mots de passe par défaut et d’autres.
Dans la barre de recherche, il suffit d’inscrire les dorks ou les requêtes souhaitées. Il faut ensuite examiner les codes, les commits afin d’y recueillir des informations qui pourraient être utiles.

Censys est un moteur de recherche et une plateforme qui contient des données provenant de diverses sources sur les infrastructures connectées à Internet. Il dispose de données en temps-réel et retourne les informations sur des appareils, services ou des domaines. Il peut donc être très utile dans un processus de collecte d’informations sur une cible.
Censys permet de collecter des informations comme les adresses IP, les services et les ports ouverts. Avec les filtres avancés , on peut affiner les résultats selon les labels (hôtes IPV6, accès à distance, email etc.), les systèmes autonomes (AS), la localisation des serveurs, les fournisseurs de logiciels (Amazon, Akamai, Google, Apache, nginx)
En faisant une recherche sur Google, on peut voir qu’on a accès a beaucoup d’informations, et le résultat de la recherche retourne beaucoup d’hôtes qui pourraient être analysés.

En choisissant un hôte, on a d’autres informations comme le routage, les services , la localisation, l’historique des évènements associés et aussi un onglet Whois qui fournit des détails sur le propriétaire de l’adresse IP.

Enum4linux est un outil d'énumération pour extraire des données de systèmes utilisant le protocole SMB (Server Message Block). Il permet de recueillir divers informations à propos des comptes utilisateurs, des noms de domaines, les groupes locaux les dossiers partagés sur un réseau.

enum4linux -U -S -P -G [ip_adress]
l’option -U permet de lister les utilisateurs sur le système cible
l’option -S permet de lister les partages disponibles sur le système cible
l’option -P pour afficher la politique des mots de passe
l’option -G liste les groupes du système
l’option -a combine toutes les options (-U -S -G -P -r -o -n -i). C’est l’option par défaut lorsqu’aucune n’est sélectionnée.
enum4linux -u [username]-p [password] -U [ip_adresss]
-u et -p spécifient un nom d’utilisateur et un mot de passe
On y voit plusieurs utilisateurs sur le système: Administrateur,Invité etc
Enum4linux peut être très utile car les informations comme les utilisateurs, les partages de fichiers sur le réseau, ou encore les groupes et permissions peuvent être exploitées pour identifier de potentielles vulnérabilités.
WaybackURL est un service qui permet d’accéder à des versions anciennes ou archivées de site web en utilisant l’Internet Archive, un service d'archivage de pages web. Il sert à consulter des anciennes versions de site web, et même si elles ont été modifiées, elle peuvent toutefois contenir des vulnérabilités qui n’ont peut être pas été corrigées ou toujours accessibles via ces archives.
La documentation officielle se retrouve sur GitHub.
Pour installer WaybackURL, utilisez la commande suivante:
go install github.com/tomnomnom/waybackurls@latest
waybackurls -h : l’option -h permet de lister toutes les options de waybackurls
waybackurls https://site.com -dates | grep [word]
l’option -dates affiche la date d’archivage de chaque URL
grep filtre les résultats pour ne montrer que les URLs contenant le terme “word“
cat domains.txt | waybackurls | grep -vE "\.(js|txt)$" > urls.txt
Cette commande lit le fichier domains.txt et redirige la sortie vers waybackurl. Les résultats sont stockés à la fin dans le fichier urls.txt
l’option -vE exclut les lignes correspondant à l’expression indiqué juste après(avec l’option -v) et active les expressions régulières étendues (avec l’option -E).
l’expression ".\(js|txt)$" est utilisée pour correspondre à des chaînes de caractères qui se terminent par .js ou .txt.
Cette commande va donc lister les URL archivées, en excluant celles qui se terminent par .js ou .txt .
echo "https://hackerone.com" | waybackurls -no-subs
l’option -no-subs exclut les sous-domaines du domaine cible dans les résultats
Cette commande affichera toutes les URLs archivées de hackerone.com

Gowitness est un outil utilisé pour effectuer des captures d’écran de sites web, collecter des informations sur les en-têtes HTTP et créer des rapports sur les sites visités de manière automatisée.
Cet outil, même s'il peut sembler "inutile" parce qu'on pourrait simplement visiter les pages web, est en fait très pratique lorsqu'on a plusieurs sites à vérifier sans perdre un temps fou à les ouvrir un par un.
Pour l’installer, utilisez la commande suivante:
go install github.com/sensepost/gowitness@latest
gowitness -h : cette option liste toutes les options de gowitness
gowitness scan -h : montre les options disponibles pour effecturer des scans.
gowitness scan single --url https://google.com --screenshot-path ./PATH--screenshot-format png --screenshot-fullpage
l’option --url indique à l’outil d’effectuer la capture sur l’URL spécifié
l’option --screenshot-path définit le chemin où la capture d'écran sera sauvegardée.
l’option --screenshot-format définit le format de la capture d’écran. Par défaut elle est en format JPEG. Et seuls les formats JPEG et PNG sont valides.
l’option --screenshot-fullpage capture la page entière, plutôt que seulement la partie visible de la page. Elle est utile pour les pages avec beaucoup de contenu en défilement
gowitness scan file -f ./PATH --log-scan-errors --write-db
l’option file -f spécifie un fichier contenant une liste d’URLs à afficher
l’option --log-scan-errors signale les erreurs survenues lors des scans.
l’option --write-db enregistre les résultats dans une base de données pour une consultation ultérieure.
La photo ci-dessous montre l’exécution d’une commande avec gowitness. Des messages indiquent une tentative échouée via le port 80 pour les connexions non sécurisées en HTTP. Par contre, la connexion a réussi via le port 443 pour les connexions HTTPS, avec les captures d’écran prises.


KarmaV2 est un outil de reconnaissance OSINT qui permet de trouver des informations publiques et approfondies sur une cible. La documentation officielle se retrouve sur GitHub.
Vous pouvez installer KarmaV2 avec les commandes suivantes
Cloner le répertoire
git clone https://github.com/Dheerajmadhukar/karma_v2.git
Installer shodan et le module python mmh3
python3 -m pip install shodan mmh3
Installer le parser JSON JQ s’il n’est pas déjà installé
apt install jq -y
Installer httprobe
go install -v github.com/tomnomnom/httprobe@master
cd httprobe
go build main.go
mv main httprobe
sudo mv httprobe /bin/
Installer Interface
git clone https://github.com/codingo/Interlace.git
cd Interlace
pip install -r requirements.txt
sudo python3 setup.py install
Installer Nuclei
go install -v github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest
Installer Lolcat
apt install lolcat -y
Installer anew
git clone https://github.com/tomnomnom/anew.git
cd anew
go build main.go
mv main anew
sudo mv anew /bin/
Créez un compte sur Shodan.io pour obtenir votre clé API Shodan
Insérez la clé dans le fichier .token dans le répertoire /karma_v2
nano ./token
SHODAN_API_KEY_FROM_SHODAN
Lancer karma avec la commande suivante
bash karma_v2 -h
Dépendamment de votre système, il est possible de devoir exécuter karma_v2 dans un environnement virtuel.
bash karma_v2 -h : pour voir la liste de toute les options de Karma_v2
bash karma_v2 -d [DOMAIN] -l [INT] -ip -cve
l’option -d spécifie le domaine;
l’option -ip recherche des adresses IP associées à ce domaine;
l’option -l spécifie le nombre de résultats lors de la recherche. On peut spécifier -1 pour indiquer un nombre illimité de résultats.
l’option -cve recherche les vulnérabilités associées au domaine.
Les options -d , -l et les options pour le mode ( -ip ou -asn ou -cve etc..) sont requises pour exécuter karma_v2
L’option -deep prend en charge toutes les options count, ip, asn, cve, favicon, leaks.

Crunchbase est une plateforme payante qui donne des informations sur les entreprises et les investisseurs. Elle fournit des données permettant d’analyser les acquisitions des entreprises sur le marché comme les startups, et aussi les membres de l’entreprise.
Arjun est un outil qui permet de découvrir des paramètres HTTP cachés dans les requêtes GET et POST qui pourraient être vulnérables dans des applications web. Il permet d’identifer des points d'entrée potentiels pour des attaques en testant plusieurs paramètres possibles. Pour information, les requêtes GET et POST sont des méthodes pour envoyer des données à un serveur web. Le méthode GET consiste à envoyer les données via l’URL ; c’est-à-dire qu’elles apparaissent dans la barre d’adresse du navigateur. La méthode POST consiste à envoyer les données dans le corps de la requête HTTP, ce qui les rend invisibles dans l'URL. L’outil Arjun permet donc de chercher ces paramètres dans les applications.
La documentation officielle se retrouve sur GitHub.
Pour installer Arjun, utilisez la commande suivante:
pipx install arjun
arjun -h : cette option affiche toutes les options de l’outil
arjun -u http://website.com -m POST -o output.json -oB
l’option -u permet de spécifier le site à analyser
l’option -o enregistre les données dans un fichier
l’option -m permet de définir la méthode HTTP à utiliser pour la requête. Les formats valides sont GET ou POST pour la méthode HTTP et JSON ou XML pour le corps de la requête.
l’option -oB redirige le trafic via Burp Suite pour l'analyse. Par défaut, Burp écoute sur 127.0.0.1:8080. Cela va donc permettre de visualiser les requêtes et les réponses interceptées par Burp.
arjun -i urls.txt -w /PATH/TO/FILE --include “token=qwerty“
l’option -i spécifie un fichier avec une liste d’URLs à analyser
l’option -w permet permet de spécifier un fichier contenant une liste de mots. Cette liste contient des noms de paramètres potentiels qu'Arjun utilisera pour tester l'URL cible. Par défaut, l’outil utilise une liste de mots intégrée située à {arjundir}/db/large.txt
l’option -inlcude permet d’insérer des données pour chaque requête. La variable token avec une certaine valeur dans le cas d’applications nécéssitant des jetons d’authentifications. On pourrait inlure tout type de données comme des clé APIs, des clé d’authentification et autres.
On peut aussi mettre les options -m XML --include='<?xml><root>$arjun$</root>' qui incluent une structure XML spécifique dans la requête. Le marqueur $arjun$ est l'endroit où l’outil va insérer les paramètres qu'il teste.
L’image ci-dessus montre la commande arjun -u http://testphp.vulnweb.com/listproducts.php -oB -o output.json exécutée.
On voit que la commande a identifié les paramètres artist et cat dans le corps la réponse.

Pour que l’option -oB fonctionne, il faut que Burp soit ouvert et configuré pour intercepter les requêtes. Vous pouvez ouvrir un terminal et lancer Burp avec la commande burpsuite. Allez dans les paramètres du Proxy et vérifiez que l’adresse du proxy sur Burp est bien configuré sur 127.0.0.1:8080. Activez ensuite l’interception.
On voit donc deux paramètres de requête “cat=111110“ et “artist=11111“ et d’autres détails comme l’hôte, le logiciel client etc.

Ces outils présentés sont adaptés lors d’une phase de reconnaissance dans le cadre d'un test de sécurité ou de bug bounty, où l'objectif est de découvrir des vulnérabilités potentielles en recueillant des données sur la cible.
À noter, qu’il est important de rappeler que l'utilisation de ces outils doit toujours se faire dans un cadre légal.