Cet article reprend la suite du précédent avec l’introduction au pentesting via l’usage de l’outil reconFTW.
La précédente publication servait d’introduction et permettait de décrire l’installation de reconftw et des différentes dépendances associées via une instance Rocky Linux 9 exécutée sur WSL.
Nous finissions par lancer un scan en mode « recon », c'est-à-dire le mode reconnaissance, le niveau de test intermédiaire.
Il est maintenant temps de traiter les résultats et de donner quelques explications sur la sortie de reconftw.
Lorsque vous réalisez un pentest avec reconftw, vous pouvez soit lui fournir une liste de domaine cible, soit, comme dans mon cas, un domaine particulier.
Chaque domaine scanné va donner lieu à un dossier dans le répertoire d’installation de reconftw.
Si vous avez suivi mon tutoriel, il va s’agir de ~/cyber/reconftw/Recon.
Cliquez sur l'image pour l'agrandir.
Au sein de ce dossier, vont se retrouver d’autres sous-dossiers, propres à chacun des types d’analyse réalisée par les outils exécutés par reconftw.
Le nombre de dossiers va dépendre des options activées dans le fichier de configuration (voir article précédent) et de la commande de scan exécuté.
Par exemple, dans mon précédent article, je finissais par la commande suivante:.
reconftw.sh -d myprivatelab.tech -r –ai
Ce qui me permet d’obtenir la liste des répertoires suivants:
Cliquez sur l'image pour l'agrandir.
À noter l’existence d’un dossier caché .log, qui, comme son nom l’indique, contient le log du scan.
Cliquez sur l'image pour l'agrandir.
L’une des premières choses à faire est d’ouvrir ce log en question pour identifier les problèmes potentiels rencontrés lors du scan.
Cliquez sur l'image pour l'agrandir.
Vous ne devriez pas avoir trop de messages d’erreurs, mais il est parfois possible d’avoir des soucis liés à une mauvaise configuration de l’outil lancé par reconftw.
L’important est de vous assurer que la majorité des scans ont bien été réalisés.
Par exemple, on voit ici que le fichier user_agents.txt n’a pas été trouvé et que le binaire exiftool n’a pas été trouvé.
Cliquez sur l'image pour l'agrandir.
Pour exiftool, il suffit d’activer le repos EPEL
sudo dnf install epel-release
Cliquez sur l'image pour l'agrandir.
Et d’installer le package perl-Image-ExifTool:
sudo dnf install perl-Image-ExifTool
Cliquez sur l'image pour l'agrandir.
Pour le fichier "user_agents.txt" c’est un peu plus complexe.
Celui-ci est bien présent dans le répertoire de l’outil metagoofil.
Cliquez sur l'image pour l'agrandir.
C’est un utilitaire d’OSINT (Open Source Intelligence) conçu pour extraire des métadonnées à partir de documents accessibles publiquement sur Internet.
Le problème semble se situer dans le script metagoofil.py disponible dans le même répertoire que le fichier txt (pour rappel, par défaut reconftw déploie tous les outils tiers dans ~/Tools).
Comme on le voit dans le log du scan, l’erreur est à la ligne 128. Je ne vais pas faire quelque chose de très propre, mais pour gagner du temps, je vais mettre en dure le path où se trouve le fichier.
Cliquez sur l'image pour l'agrandir.
Ce n’est pas l’idéal, mais ça va me permettre de relancer mon scan.
Par défaut, Reconftw ne relance pas les tests qui ont déjà généré une sortie. Si on veut forcer un scan de zéro, alors il faut supprimer le dossier contenant nos résultats.
Cliquez sur l'image pour l'agrandir.
Et on recommence ! Sauf que cette fois çi je vais lancer un scan avec attaque, soit un scan complet via l'option -a.
reconftw.sh -d myprivatelab.tech -a –-ai
Pour rappel, c'est le choix de scan le plus intrusif ! Faite le en connaissance de cause et uniquement vers des assets dont vous avez la responsabilité ou que vous êtes autorisé à analyser.
Cliquez sur l'image pour l'agrandir.
Le scan complet, incluant les tentatives d’attaques, dure naturellement plus longtemps.
Dans mon cas, il m’a fallu attendre plus de 5H pour obtenir les résultats finaux.
Cliquez sur l'image pour l'agrandir.
Comme pour le scan précédent, les conclusions se trouvent dans le sous dossier /Recon du répertoire d’installation de reconftw.
Cliquez sur l'image pour l'agrandir.
Pour la suite de l’article, j’ai extrait les deux dossiers associés à mes scans sur mon poste de travail. C’est un des avantages de passer par WSL, on peut directement rapatrier des éléments de son arborescence Linux vers son arborescence Windows pour simplifier les manipulations sur les fichiers.
J’ai renommé mon premier scan -r pour identifier les résultats issus du mode reconnaissance, et -a pour le scan complet.
Cliquez sur l'image pour l'agrandir.
Si l’on compare les deux dossiers, on voit bien que -a dispose d’un dossier supplémentaire et semble plus gros que le dossier -r.
Cliquez sur l'image pour l'agrandir.
C’est logique, car le scan -a exécute tous les tests du pentest.
Je vais donc m’appuyer sur le scan complet pour tenter de définir et d’expliquer les différents fichiers de sorties issues du pentest.
C’est ici que l’IA apporte une plus-value intéressante. Sans même parler du rapport final proposé par le modèle LLM exécuté par ollama tel que présenté dans le premier article, les chatGPT like peuvent être d’une grande aide pour aider à interpréter le résultat du pentest.
Attention, je ne dis pas que l’IA se suffit à elle-même pour offrir un service de pentest complet. Rien ne remplace un expert du sujet et une véritable analyse humaine approfondie des résultats.
L’expérience joue énormément pour interpréter correctement la sortie de reconftw. Mais l’IA permet d’avoir une première approche macro, pour défricher le terrain et offrir une première aide à quelqu’un qui débute… comme moi.
Je vais donc m’appuyer sur l’IA (et n’ai aucune honte à le dire) pour résumer le résultat de mon scan.
Mais là aussi, j’alerte sur l’usage de l’IA pour ce besoin. Quand je dis que je vais exploiter l’IA pour mon pentest, ça ne veut pas dire que je vais « betement » copier/coller le contenu de la sortie de reconftw dans le premier prompt venu.
Certaines informations contenues dans les résultats d’un pentest peuvent être confidentielles et hautement à risque… n’aller pas envoyer tout ça dans une IA publique sur lequel vous n’avez pas la maitrise du stockage des données.
Il faut utiliser l’IA à bon escient, ne pas fournir d’informations trop sensibles et savoir orienter l’attente des réponses.
Il est important d’analyser les retours et de s’assurer que la sortie de l’IA vous est compréhensible et vous semble logique. Si ce n’est pas le cas, n’hésitez pas à reformuler votre demande, à demander d’autres explications et surtout à revenir à l’ancienne méthode de la bonne vieille recherche Google et à l’exploration des forums/articles spécialisés.
Dans mon cas, je veux surtout obtenir une explication de chaque fichier de sortie et établir une logique de risque associé. Je voudrais pouvoir évaluer l’intérêt que présentent les données trouvées dans chaque fichier pour un attaquant, et connaitre le niveau de risque encouru par mon infrastructure lorsque j’essaie d’obtenir ces données.
Reconftw peut aussi servir à sélectionner un test ou une série de tests spécifiques. Il serait intéressant de mettre en place un pentest, plus ou moins fréquent et complet, selon les risques que l’on cherche à identifier et l’impact admissible sur l’architecture pendant le test.
On peut envisager de planifier des tests peu intrusifs à intervalles réguliers pendant les périodes d’activité. En revanche, certains tests plus significatifs et plus pertinents en termes de risques découverts devraient être effectués occasionnellement en dehors des heures de production pour minimiser l’impact d’un éventuel plantage causé par un balayage trop agressif.
Maintenant que tous les disclaimers sont faits, entrons dans le vif du sujet.
Il faut comprendre que ReconFTW exécute les différents outils à sa disposition dans un ordre spécifique.
Globalement, il y a d’abord une phase de collectes, puis une phase d’analyse et enfin de tentative d’attaque basées sur ce qui a été découvert lors des phases précédentes.
Chaque étape donne lieu à un répertoire qui traduit le type d’informations qu’on va pouvoir y trouver.
📁 Dossier | 🎯 Objectif principal | 📊 Type de données contenues | 🔧 Outils principaux utilisés |
---|---|---|---|
fuzzing | Découvrir des fichiers, répertoires ou endpoints cachés | Chemins valides (/admin, /api…), codes HTTP, taille des réponses | ffuf, feroxbuster, wordlists (SecLists, persos) |
hosts | Identifier les IP et hôtes actifs | Résolutions DNS, IP, bannières, ports ouverts, ASN | nmap, masscan, dnsx, massdns, shuffledns |
js | Extraire et analyser les fichiers JavaScript | URLs, endpoints API, clés API, tokens, variables sensibles | getJS, subjs, LinkFinder, SecretFinder |
nuclei_output | Scanner des vulnérabilités avec des templates prédéfinis | Vulnérabilités (CVE, misconfigurations), infos serveur, SSL | nuclei (templates CVE, exposures, config checks) |
osint | Collecter des infos publiques (Open Source Intelligence) | Emails, réseaux sociaux, fuites GitHub/Pastebin | theHarvester, github-subdomains, scraping moteurs |
subdomains | Énumérer les sous-domaines | Listes de sous-domaines brutes et résolus, classement par domaine | assetfinder, amass, subfinder, dnsx, chaos-client |
vulns | Stocker les résultats détaillés des vulnérabilités | Rapports techniques, PoC, captures d'écran | nuclei (scan ciblé), httpx, tests manuels (XSS, SQLi…) |
web | Cartographier les services web | URLs accessibles, techno détectées, screenshots | httpx, aquatone/gowitness, whatweb/wappalyzer |
Les dossiers subdomains et hosts servent de base aux étapes suivantes.
Web et fuzzing sont utiles pour la cartographie applicative.
nuclei_output et vulns sont les résultats exploitables pour un rapport final.
osint peut être recoupé avec les résultats JS pour trouver des accès internes.
Voici un schéma qui récapitule la logique entreprise par reconftw avec le positionnement de chaque répertoire. Le code couleur indique l’impact du pentest sur l’infrastructure scannée. Plus c’est rouge, plus les tests réalisés pour obtenir les résultats contenus dans les répertoires peuvent représenter une charge pour les serveurs visés.
Cliquez sur l'image pour l'agrandir.
On va maintenant passer dossier par dossier en suivant l’ordre du schéma.
Cliquez sur l'image pour l'agrandir.
📁 Fichier | 📝 Description | 📊 Valeur pour l'attaquant / analyste | ⚠️ Risque lors de la collecte |
---|---|---|---|
cloud_assets.txt | Liste de ressources cloud liées à la cible (AWS, Azure, GCP…) | 📈 Élevée – permet de cibler stockage, VM ou services cloud externes | 🟢 Faible – recherche basée sur patterns, peu intrusive |
cloudhunter_open_bucket.txt | Buckets cloud publics détectés | 📈 Très élevée – accès direct possible à des données sensibles | 🟢 Faible – détection via requêtes HTTP GET simples |
subdomains.txt | Liste brute des sous-domaines trouvés | 📈 Élevée – base pour scans ultérieurs, cartographie externe | 🟢 Faible – collecte majoritairement passive |
subdomains_dnsregs.json | Sous-domaines enrichis avec infos ASN, DNS, pays, IP | 📈 Élevée – aide à identifier fournisseurs, potentiels points d'entrée | 🟢 Faible – enrichissement passif depuis API ou WHOIS |
subdomains_ips.txt | Correspondance sous-domaines → IP | 📈 Moyenne à élevée – utile pour cibler réseau, services actifs | 🟢 Faible – extraction depuis résolution DNS |
zonetransfert.txt | Résultat d'un transfert de zone DNS (AXFR) | 🚀 Critique – fuite complète de la configuration DNS, y compris serveurs internes | 🔴 Élevé – requête active pouvant être détectée, voire loggée comme tentative d'intrusion |
Dans mon cas, pas d’alerte à ce niveau. Ma zone DNS est correctement protégée du transfert pour qu’aucun attaquant ne puisse s’approprier mon domaine.
Cliquez sur l'image pour l'agrandir.
📁 Fichier | 📝 Description | 🔧 Origine / Outils probables | 📊 Valeur pour l'attaquant / analyste | ⚠️ Risque lors de la collecte |
---|---|---|---|---|
3rdparts_misconfigurations.txt | Liste de services tiers liés au domaine (CDN, SaaS, intégrations) avec configurations potentiellement faibles ou erronées. | Recherche dans DNS, headers HTTP, tests simples (nuclei, dnsx, OSINT toolkits) | 📈 Élevée – peut mener à une compromission via un service externe mal configuré. | 🟢 Faible – analyse passive. |
azure_tenant_domains.txt | Liste des domaines/ID de tenant Azure Active Directory liés à la cible. | o365enum, aadinternals, recherche passive de metadata MS. | 📈 Très élevée – permet des attaques ciblées sur l'environnement M365/Azure. | 🟢 Faible – interrogation passive des endpoints Microsoft. |
domain_info_general.txt | Résumé WHOIS, DNS, ASN, technologies utilisées par le domaine racine. | whoisxmlapi, dnsx, amass, OSINT général. | 📈 Moyenne – donne contexte et fournisseurs d'hébergement. | 🟢 Faible – full passif. |
dorks.txt | Liste de requêtes Google Dorks préformatées pour rechercher des infos publiques sensibles. | Génération à partir du domaine (site:, intitle:, filetype:). | 📈 Élevée – permet de trouver fichiers, creds, configs exposées. | 🟢 Faible – requêtes sur moteurs de recherche. |
emails.txt | Adresses e-mail associées au domaine. | theHarvester, scraping de moteurs, bases publiques. | 📈 Très élevée – base pour phishing, password spraying. | 🟢 Faible – collecte passive. |
postman_leaks.txt | Collections ou environnements Postman publics liés au domaine. | API Postman, recherche GitHub/GitLab. | 📈 Critique – souvent contient tokens/API keys. | 🟢 Faible – recherche passive. |
scopify.txt | Liste de domaines/sous-domaines validés comme "in scope" pour le programme de test. | Génération par ReconFTW selon critères de filtrage. | 📈 Moyenne – utile pour cadrer les scans et éviter hors-scope. | 🟢 Faible – traitement interne. |
En ce qui concerne l’OSINT, aucune alerte n’a été détectée concernant une fuite de données pouvant se rattacher à mon domaine.
Il est crucial de souligner que la qualité de la collecte de données dépendra du nombre de sources que Reconftw pourra exploiter sur cette section. C’est notamment le cas des services présentés dans la première partie comme Shodan.
Tous les sites permettant d’interroger de la collecte issue du darkweb ne sont pas forcement gratuit d’usage. Dans mon cas je me suis contenté de quelques référentiels en accès publics, mais avec des niveaux d’usage API limités.
C’est un élément important dont il faut tenir compte dans vos campagnes de pentest. Des sociétés spécialisées avec de vrais experts disposent souvent d’un référentiel bien plus pertinent et profond que ce qu’on peut trouver de base.
Cela peut justifier une facturation parfois importante, car tout n’est pas consultable simplement via une API, il faut parfois passer des heures et des heures à fouiller le darkweb pour identifier tout ce qui pourrait concerner une fuite de données associé à une entreprise, ou une menace à venir lier à la planification d’une attaque.
Cliquez sur l'image pour l'agrandir.
📁 Fichier | 📝 Description | 🔧 Origine / Outils probables | 📊 Valeur pour l'attaquant / analyste | ⚠️ Risque lors de la collecte |
---|---|---|---|---|
ipinfo.txt | Informations enrichies sur les IP trouvées : ASN, pays, fournisseur, type de service. | ipinfo.io, whois, asnmap. | 📈 Moyenne – aide à savoir qui héberge l'IP et à quel réseau elle appartient. | 🟢 Faible – interrogation API publique. |
ips.txt | Liste brute des adresses IP découvertes (résolution des sous-domaines ou découverte réseau). | dnsx, massdns, extraction Nmap. | 📈 Élevée – base pour scans actifs et corrélation OSINT. | 🟢 Faible – collecte passive depuis DNS ou pré-scan. |
portscan_active.gnmap | Résultats bruts Nmap en format "grepable" après scan actif. | nmap (scan TCP/UDP) | 📈 Très élevée – montre ports ouverts et services actifs. | 🔴 Élevé – scan actif, détectable, peut provoquer alertes SOC. |
portscan_active.nmap | Résultats Nmap en format lisible humain, après scan actif. | nmap | 📈 Très élevée – idem .gnmap mais plus détaillé. | 🔴 Élevé – idem .gnmap. |
portscan_active.xml | Résultats Nmap en XML pour parsing automatisé. | nmap | 📈 Très élevée – format pour outils automatisés d'exploitation. | 🔴 Élevé – idem .gnmap. |
portscan_passive.txt | Liste de ports/services obtenus sans scan direct (sources OSINT, scans publics). | Shodan, Censys, bases de scans publics. | 📈 Moyenne à élevée – donne une idée des services exposés sans bruit réseau. | 🟢 Faible – passif. |
portscan_shodan.txt | Résultats de Shodan sur les IP trouvées (bannières, services, versions). | API Shodan. | 📈 Très élevée – bannières détaillées, failles connues. | 🟢 Faible – interrogation API publique. |
À ce niveau, rien de spécial: j’ai des ports ouverts, liés à l’exposition de certains services que j’héberge. Cependant, le scan n’a pas mis en évidence des ports en écoute dont je n’avais pas connaissance.
Cliquez sur l'image pour l'agrandir.
📁 Fichier | 📝 Description | 🔧 Origine / Outils probables | 📊 Valeur pour l'attaquant / analyste | ⚠️ Risque lors de la collecte |
---|---|---|---|---|
info.txt | Résultats des templates Nuclei de sévérité Info au format texte lisible. Inclut souvent des infos techniques (headers HTTP, certificats SSL, versions logicielles). | nuclei avec templates info | 📈 Moyenne – utiles pour profiling technique, peu exploitables directement. | 🟢 Faible à moyen – la majorité des templates info sont passifs, mais certains font des requêtes HTTP actives. |
info_json.txt | Même contenu que info.txt mais en format JSON pour parsing automatisé. | nuclei | 📈 Moyenne – identique à .txt mais exploitable en pipeline automatisé. | 🟢 Faible à moyen – idem. |
low.txt | Vulnérabilités de sévérité Low en texte lisible. Ex : informations exposées, mauvaise configuration mineure. | nuclei avec templates low | 📈 Moyenne à élevée – parfois pivot vers attaques plus sérieuses. | 🟠 Moyen – certains templates low sont actifs (requêtes de test ciblées). |
low_json.txt | Idem low.txt mais en JSON pour parsing automatique. | nuclei | 📈 Moyenne à élevée – identique à .txt. | 🟠 Moyen – idem. |
Une bonne nouvelle pour moi, puisqu’aucune sévérité supérieure à low n’a été découverte. J’ai surtout des problématiques autour de certains chiffrements autorisés pour la consultation de mon site. Je vais devoir sans doute revoir ma configuration Traefik pour améliorer ce point. Je vais retirer la prise en charge de tous les algorithmes obsolètes.
Cliquez sur l'image pour l'agrandir.
A noter que d'autres répertoires pourraient etre présent si des sévérités plus serieuses (medium, hight..) auraient été détectées.
Cliquez sur l'image pour l'agrandir.
📁 Fichier | 📝 Description | 🔧 Origine / Outils probables | 📊 Valeur pour l'attaquant / analyste | ⚠️ Risque lors de la collecte |
---|---|---|---|---|
brokenLinks.txt | Liste d'URL sur le site cible pointant vers des ressources inexistantes (erreur 404, domaine expiré). | broken-link-checker, linkfinder, modules de crawl (httpx, gospider). | 📈 Moyenne – peut mener à du subdomain takeover si domaine expiré, ou à l'exploitation via injection JS si lien externe compromis. | 🟢 Faible – vérification passive/HTTP simple. |
testssl.txt | Rapport complet de testssl.sh sur les hôtes détectés : versions TLS/SSL, chiffrements supportés, vulnérabilités SSL (Heartbleed, POODLE, etc.). | testssl.sh | 📈 Élevée – permet de savoir si un service HTTPS utilise des protocoles/chiffrements obsolètes ou vulnérables. | 🟠 Moyen – scan actif TCP/443 pouvant être détecté, mais très faible charge réseau. |
Hormis la confirmation du non-respect de certaines bonnes pratiques autour du chiffrement SSL, je n’ai rien d’alarmant de mise en avant.
Cliquez sur l'image pour l'agrandir.
Il est à noter que le contenu de ce dossier peut changer d’une cible à une autre. D’autres fichiers peuvent apparaitre si d’autres failles sont trouvées.
Cliquez sur l'image pour l'agrandir.
📁 Fichier | 📝 Description | 🔧 Origine / Outils probables | 📊 Valeur pour l'attaquant / analyste | ⚠️ Risque lors de la collecte |
---|---|---|---|---|
dict_keys.txt | Liste des clés extraites de données web (ex. clés API trouvées dans JS, paramètres GET/POST). | gau, waybackurls, paramspider, extraction regex. | 📈 Élevée – permet de cibler des paramètres sensibles ou identifiants API. | 🟢 Faible – extraction passive. |
dict_values.txt | Liste des valeurs associées aux clés trouvées (tokens, noms de ressources). | Même outils qu'au-dessus. | 📈 Moyenne à élevée – peut contenir des secrets ou références internes. | 🟢 Faible – extraction passive. |
dict_words.txt | Liste de mots-clés extraits du contenu web, utilisable pour du fuzzing ciblé. | cewl, gau, parsing HTML. | 📈 Moyenne – améliore les wordlists personnalisées. | 🟢 Faible – extraction passive. |
password_dict.txt | Liste de mots trouvés pouvant servir comme mots de passe (noms internes, projets, personnes). | cewl, parsing des pages internes/publiques. | 📈 Très élevée – peut servir directement à du credential stuffing ou brute-force. | 🟢 Faible – extraction passive. |
robots_wordlist.txt | Mots ou chemins issus des fichiers robots.txt détectés. | httpx, parsing robots.txt. | 📈 Moyenne – révèle des chemins volontairement masqués au public. | 🟢 Faible – requête HTTP simple. |
url_extract.txt | URLs extraites (brutes, toutes extensions). | gau, hakrawler, waybackurls. | 📈 Très élevée – donne surface d'attaque complète. | 🟢 Faible – collecte passive. |
url_extract_nodupes.txt | Même que ci-dessus mais dédupliqué. | Idem. | 📈 Très élevée – version épurée pour exploitation directe. | 🟢 Faible – idem. |
urls_by_ext.txt | URLs regroupées par extension (.php, .asp, .js, etc.). | gf, tri personnalisé. | 📈 Élevée – permet de cibler des langages précis pour attaques spécifiques. | 🟢 Faible – passif. |
web_full_info.txt | Rapport détaillé sur les hôtes web : titres de pages, status HTTP, technologies détectées, SSL, captures éventuelles. | httpx, whatweb, wappalyzer, gowitness. | 📈 Très élevée – profiling complet de l'application. | 🟠 Moyen – certaines détections actives (requêtes HTTP multiples). |
web_full_info_plain.txt | Version texte brut du rapport ci-dessus, sans mise en forme. | Idem. | 📈 Très élevée – même utilité que .txt formaté. | 🟠 Moyen – idem. |
webs.txt | Liste de services web détectés (URL uniques). | httpx, httprobe. | 📈 Très élevée – base pour fuzzing, vuln scan. | 🟢 Faible – actif léger (HEAD/GET). |
webs_all.txt | Liste complète incluant doublons, tous les services web détectés. | Idem. | 📈 Très élevée – version brute avant filtrage. | 🟢 Faible – idem. |
Ce répertoire contient de nombreux fichiers, mais ce sont surtout des mots-clés utilisés pour tenter de pénétrer sur mon site. Rien de visible pour moi ici.
Cliquez sur l'image pour l'agrandir.
📁 Fichier | 📝 Description | 🔧 Origine / Outils probables | 📊 Valeur pour l'attaquant / analyste | ⚠️ Risque lors de la collecte |
---|---|---|---|---|
fuzzing_full.txt | Résultats complets de brute-force de chemins et fichiers sur l'ensemble des cibles web identifiées. Contient : chemins trouvés, codes HTTP, tailles de réponse. | ffuf, feroxbuster, wordlists (SecLists, listes custom). | 📈 Très élevée – peut révéler interfaces d'admin, backups, API cachées. | 🔴 Élevé – envoi massif de requêtes HTTP, détectable, peut surcharger le serveur ou déclencher WAF. |
k8s.myprivatelab.tech.txt | Résultats de fuzzing ciblé sur ce sous-domaine précis. | ffuf / feroxbuster avec scope limité. | 📈 Très élevée – recherche de points d'entrée spécifiques à cet hôte Kubernetes. | 🔴 Élevé – idem fuzzing_full.txt mais charge limitée à un hôte. |
myprivatelab.tech.txt | Résultats de fuzzing ciblé sur le domaine racine. | Idem. | 📈 Très élevée – découverte potentielle de répertoires sensibles sur le site principal. | 🔴 Élevé – idem. |
www.myprivatelab.tech.txt | Résultats de fuzzing ciblé sur le sous-domaine www. | Idem. | 📈 Très élevée – détection d'éléments cachés du site public. | 🔴 Élevé – idem. |
Pareil a ce niveau. Rien de détecté pour mon domaine.
Cliquez sur l'image pour l'agrandir.
📁 Fichier | 📝 Description | 🔧 Origine / Outils probables | 📊 Valeur pour l'attaquant / analyste | ⚠️ Risque lors de la collecte |
---|---|---|---|---|
js_livelinks.txt | Liste d'URLs actives extraites des fichiers JavaScript détectés sur les sites cibles. | getJS, subjs, parsing HTML, LinkFinder. | 📈 Très élevée – souvent contient endpoints API, URLs internes, services backend. | 🟢 Faible – extraction passive après récupération des JS publics. |
js_secrets.txt | Clés API, tokens, credentials, ou informations sensibles détectées dans les JS. | SecretFinder, regex custom, LinkFinder. | 🚀 Critique – peut donner accès direct à API, BDD, ou services cloud. | 🟢 Faible – passif (analyse locale des fichiers JS récupérés). |
url_extract_js.txt | Ensemble complet des URLs extraites de JS (incluant celles non actives ou en doublon). | Idem. | 📈 Élevée – utile pour enrichir la surface d'attaque et identifier services. | 🟢 Faible – idem. |
Ici aussi on est plutôt safe. C’est l’avantage d’avoir un site web non basé sur un CMS et sans base de données. Le fait de rester simple limite les risques de failles.
Il reste à traiter du report automatique proposé en fin de scan par reconftw.
Il existe plusieurs façons de l’exprimer, notamment sous les formes « executive », « brief » ou encore « bug hunter ».Cela dépend du public visé.Contrairement à ce que j’explique dans mon premier article, j’ai finalement retenu un autre LLM, à savoir qwen2.5 en lieu et place de foundation-sec-abliterated. Ce dernier fournissait un report totalement inexploitable.
J’ai donc reparamétré reconftw avec qwen2.5 au niveau du fichier reconftw.cfg.
Cliquez sur l'image pour l'agrandir.
Mais même avec ce LLM, j’ai trouvé la sortie peu pertinente et peu fiable.
Vous obtenez un fichier Markdown, que vous pouvez transformer en HTML à l’aide d’un module complémentaire dans Visual Studio Code.
Cliquez sur l'image pour l'agrandir.
Le fichier obtenu est très générique et, finalement peut parlant.
Cliquez sur l'image pour l'agrandir.
Cela peut être dû à l’utilisation d’un modèle trop limité en termes de paramètres, mais mon GPU ne peut pas en offrir davantage. Je pense également qu’au vu du peu d’éléments à risque remonté par le pentest, lié au simple scan de mon site web, qui finalement n’expose que peu d’assets, l’IA est un peu en manque de données pour fournir un rapport pertinent.
C’est ici que se termine cette initiation au pentesting. J’ai appris énormément de choses en rédigeant les deux articles associés. La cybersécurité est un enjeu clef pour les entreprises et extrêmement intéressant à suivre. Mais c’est aussi un domaine d’expertise très spécifique nécessitant des compétences techniques avancées et un minimum d’expérience.
Néanmoins l’explosion de l’IA associé à la mise à disposition d’outil aussi puissant que reconftw peut permettre de mettre un premier pas dans le pentesting.
En se tenant informé des meilleures pratiques et en utilisant l’IA de manière appropriée, il est possible d’évaluer l'étanchéité de son système pour déterminer le niveau de risque informatique associé.
Ce n’est certainement pas suffisant, mais c’est un bon début et une bonne approche pour entamer un cycle d’amélioration continu tourné autour de la cybersécurité.
Rien ne remplacera une véritable expertise et des campagnes de pentesting professionnalisées incluant des engagements forts et une durée bien plus importante que de simples scans joués automatiquement.
Mais la cybersécurité reste l’affaire de tous, et chacun à son niveau peut participer à réduire l’exposition de son entreprise à ce fléau. Expérimenter et se former font partie des bonnes idées pour réduire son risque cyber, il faut savoir reconnaitre son niveau d’expertise et ne pas hésiter à compléter ses propres démarches par des sollicitations tierces de sociétés spécialisées.
Me concernant, cette initiation m’a donné envie d’en savoir plus et d’aller plus loin dans ce domaine pour mieux intégrer la cyber dans mes projets…Je ne suis pas près de perdre la passion 😊.