Outils Web, ou par où commencer un pentester?

Nous continuons à parler d'outils utiles pour le pentester. Dans un nouvel article, nous considérerons les outils d'analyse de la sécurité des applications web.

Notre collègue BeLove a déjà fait une sélection similaire il y a environ sept ans. Il est intéressant de voir quels outils ont maintenu et renforcé leurs positions, et qui sont revenus en arrière-plan et sont rarement utilisés aujourd'hui.


Notez que Burp Suite s'applique également ici, mais il y aura une publication séparée sur lui et ses plugins utiles.

Contenu:



Amasser


Amass est un outil Go pour rechercher et énumérer les sous-domaines DNS et mapper un réseau externe. Amass est un projet OWASP conçu pour montrer comment les organisations sur Internet ressemblent à un observateur extérieur. Amass reçoit les noms de sous-domaines de différentes manières; l'outil utilise à la fois l'énumération récursive des sous-domaines et la recherche open source.

Pour détecter les segments de réseau interconnectés et les numéros de système autonomes, Amass utilise les adresses IP obtenues pendant le fonctionnement. Toutes les informations trouvées sont utilisées pour construire une carte du réseau.

Avantages:


  • Les techniques de collecte d'informations comprennent:
    * DNS - énumération des sous-domaines dans un dictionnaire, sous-domaines bruteforce, énumération «intelligente» utilisant des mutations basées sur les sous-domaines trouvés, requêtes DNS inversées et recherche de serveurs DNS où il est possible de faire une demande de transfert de zone (AXFR);

    * Recherche sur des sources ouvertes - Ask, Baidu, Bing, CommonCrawl, DNSDB, DNSDumpster, DNSTable, Dogpile, Exalead, FindSubdomains, Google, IPv4Info, Netcraft, PTRArchive, Riddler, SiteDossier, ThreatCrowd, VirusTotal, Yahoo;

    * Recherche dans les bases de données des certificats TLS - Censys, CertDB, CertSpotter, Crtsh, Entrust;

    * Utilisation des API des moteurs de recherche - BinaryEdge, BufferOver, CIRCL, HackerTarget, PassiveTotal, Robtex, SecurityTrails, Shodan, Twitter, Umbrella, URLScan;

    * Recherche dans les archives Web d'Internet: ArchiveIt, ArchiveToday, Arquivo, LoCArchive, OpenUKArchive, UKGovArchive, Wayback;
  • Intégration avec Maltego;
  • Fournit la couverture la plus complète de la tâche de recherche de sous-domaines DNS.

Inconvénients:


  • Plus précisément avec amass.netdomains - il tentera d'accéder à toutes les adresses IP de l'infrastructure identifiée et d'obtenir des noms de domaine à partir de requêtes DNS inversées et de certificats TLS. Il s'agit d'une technique «bruyante» qui peut révéler vos actions de renseignement dans l'organisation étudiée.
  • La consommation de mémoire élevée, peut consommer jusqu'à 2 Go de RAM dans différents paramètres, ce qui ne permettra pas d'exécuter cet outil dans le cloud sur un VDS bon marché.



Altdns


Altdns est un outil Python pour créer des dictionnaires pour énumérer les sous-domaines DNS. Il vous permet de générer de nombreuses variantes de sous-domaines à l'aide de mutations et de permutations. Pour ce faire, nous utilisons des mots qui se trouvent souvent dans les sous-domaines (par exemple: test, dev, staging), toutes les mutations et permutations sont appliquées à des sous-domaines déjà connus qui peuvent être entrés dans Altdns. Le résultat est une liste de variantes de sous-domaines qui peuvent exister, et cette liste peut ensuite être utilisée avec la force brute DNS.

Avantages:


  • Fonctionne bien avec de grands ensembles de données.

aquatone


aquatone - était auparavant mieux connu comme un autre outil pour trouver des sous-domaines, mais l'auteur lui-même l'a abandonné en faveur de l'Amass susmentionné. Aquatone a maintenant été réécrit sur Go et est plus ciblé pour l'exploration préliminaire des sites Web. Pour ce faire, aquatone passe par les domaines spécifiés et recherche des sites Web sur eux dans différents ports, après quoi il collecte toutes les informations sur le site et prend une capture d'écran. Pratique pour des informations préliminaires rapides sur les sites Web, après quoi vous pouvez sélectionner des cibles prioritaires pour les attaques.

Avantages:


  • À la sortie, il crée un groupe de fichiers et de dossiers qui sont pratiques à utiliser lorsque vous travaillez avec d'autres outils:
    * Rapport HTML avec captures d'écran collectées et regroupées par en-têtes de réponse de similarité;

    * Un fichier avec toutes les URL sur lesquelles les sites Web ont été trouvés;

    * Fichier avec statistiques et données de page;

    * Un dossier avec des fichiers contenant des en-têtes de réponse des objectifs trouvés;

    * Un dossier avec des fichiers contenant le corps de la réponse des objectifs trouvés;

    * Captures d'écran des sites Web trouvés;
  • Prend en charge le travail avec les rapports XML de Nmap et Masscan;
  • Utilise Chrome / Chromium sans tête pour rendre les captures d'écran.

Inconvénients:


  • Il peut attirer l'attention des systèmes de détection d'intrusion, il nécessite donc une configuration.

La capture d'écran a été prise pour l'une des anciennes versions d'aquatone (v0.5.0), dans laquelle la recherche de sous-domaines DNS a été implémentée. Les anciennes versions se trouvent sur la page des versions .

Capture d'écran aquatone v0.5.0

MassDNS


MassDNS est un autre outil pour trouver des sous-domaines DNS. Sa principale différence est qu'il effectue des requêtes DNS directement auprès de nombreux résolveurs DNS différents et le fait à une vitesse considérable.

Avantages:


  • Rapide - capable de résoudre plus de 350 000 noms par seconde.

Inconvénients:


  • MassDNS peut entraîner une charge importante sur les résolveurs DNS utilisés, ce qui peut entraîner une interdiction de ces serveurs ou des plaintes auprès de votre fournisseur. De plus, cela entraînera une charge importante sur les serveurs DNS de l'entreprise s'ils en ont et s'ils sont responsables des domaines que vous essayez de résoudre.
  • La liste des résolveurs est désormais obsolète, cependant, si vous sélectionnez des résolveurs DNS cassés et en ajoutez de nouveaux, tout ira bien.



nsec3map


nsec3map est un outil Python pour obtenir une liste complète des domaines protégés par DNSSEC.

Avantages:


  • Il détecte rapidement les hôtes dans les zones DNS avec un nombre minimum de requêtes si la prise en charge DNSSEC est activée dans la zone;
  • Il comprend un plugin pour John the Ripper, qui peut être utilisé pour casser les hachages NSEC3 reçus.

Inconvénients:


  • De nombreuses erreurs DNS ne sont pas gérées correctement;
  • Il n'y a pas de parallélisation automatique du traitement des enregistrements NSEC - vous devez diviser l'espace de noms manuellement;
  • Consommation de mémoire élevée.

Acunetix


Acunetix est un scanner de vulnérabilités Web qui automatise le processus de vérification de la sécurité des applications Web. Teste l'application pour l'injection SQL, XSS, XXE, SSRF et de nombreuses autres vulnérabilités Web. Cependant, comme tout autre scanner de nombreuses vulnérabilités Web, il ne remplace pas le pentester, car des chaînes complexes de vulnérabilités ou de vulnérabilités dans la logique ne peuvent pas être trouvées. Mais il couvre de nombreuses vulnérabilités différentes, y compris diverses CVE, que le pentester pourrait oublier, il est donc très pratique d'exempter des contrôles de routine.

Avantages:


  • Faux positifs faibles
  • Les résultats peuvent être exportés sous forme de rapports;
  • Effectue un grand nombre de vérifications de diverses vulnérabilités;
  • Analyse parallèle de plusieurs hôtes.

Inconvénients:


  • Il n'y a pas d'algorithme de déduplication (Acunetix considère que les pages ont la même fonctionnalité car elles ont des URL différentes), mais les développeurs y travaillent;
  • Il nécessite une installation sur un serveur Web distinct, ce qui complique le test des systèmes clients avec une connexion VPN et l'utilisation d'un scanner dans un segment isolé d'un réseau client local;
  • Le service faisant l'objet de l'enquête peut «faire du bruit», par exemple, envoyer trop de vecteurs d'attaque sous forme de communication sur le site, ce qui complique considérablement les processus commerciaux;
  • Il s'agit d'une solution propriétaire et, par conséquent, non libre.



Dirsearch


Dirsearch est un outil Python pour les répertoires et fichiers de force brute sur les sites Web.

Avantages:


  • Il peut distinguer les vraies pages «200 OK» des pages «200 OK», mais avec le texte «page non trouvée»;
  • Livré avec un dictionnaire pratique qui a un bon équilibre entre la taille et l'efficacité de la recherche. Contient des chemins standard communs à de nombreux CMS et piles technologiques;
  • Propre format de dictionnaire, qui vous permet d'obtenir une bonne efficacité et flexibilité dans le tri des fichiers et des répertoires;
  • Sortie pratique - texte brut, JSON;
  • Capable de limiter - une pause entre les demandes, ce qui est vital pour tout service faible.

Inconvénients:


  • Les extensions doivent être transmises sous forme de chaîne, ce qui n'est pas pratique si vous devez passer plusieurs extensions à la fois;
  • Pour utiliser votre dictionnaire, il devra être légèrement modifié au format des dictionnaires Dirsearch pour une efficacité maximale.



wfuzz


wfuzz - Fuzzer Python pour les applications Web. Probablement l'un des phaseurs Web les plus célèbres. Le principe est simple: wfuzz vous permet de phaser n'importe quel endroit de la requête HTTP, ce qui permet de phaser les paramètres GET / POST, les en-têtes HTTP, y compris les cookies et autres en-têtes d'authentification. En même temps, il est pratique pour les répertoires et les fichiers bruteforce simples, qui nécessitent un bon dictionnaire. Il dispose également d'un système de filtrage flexible avec lequel vous pouvez filtrer les réponses d'un site Web en fonction de divers paramètres, ce qui vous permet d'obtenir des résultats efficaces.

Avantages:


  • Multifonctionnel - structure modulaire, l'assemblage prend plusieurs minutes;
  • Mécanisme de filtrage et de fuzz pratique;
  • Vous pouvez mettre en phase n'importe quelle méthode HTTP, ainsi que n'importe quel endroit de la demande HTTP.

Inconvénients:


  • En développement.



ffuf


ffuf - Le fuzzer Web de Go, créé à «l'image et la ressemblance» de wfuzz, vous permet de brouiller les fichiers, les répertoires, les chemins URL, les noms et les valeurs des paramètres GET / POST, les en-têtes HTTP, y compris l'en-tête Host pour la force brute des hôtes virtuels. Wfuzz se distingue de son homologue par une vitesse plus élevée et certaines nouvelles fonctionnalités, par exemple, les dictionnaires au format Dirsearch sont prises en charge.

Avantages:


  • Les filtres sont similaires aux filtres wfuzz, ils vous permettent de configurer de manière flexible bruteforce;
  • Permet de flou les valeurs des en-têtes HTTP, les données de demande POST et diverses parties de l'URL, y compris les noms et les valeurs des paramètres GET;
  • Vous pouvez spécifier n'importe quelle méthode HTTP.

Inconvénients:


  • En développement.



gobuster


gobuster - un outil sur Go pour la reconnaissance, a deux modes de fonctionnement. Le premier est utilisé pour forcer les fichiers et répertoires sur le site Web, le second - pour parcourir les sous-domaines DNS. L'outil ne prend pas initialement en charge l'énumération récursive des fichiers et des répertoires, ce qui, bien sûr, fait gagner du temps, mais d'un autre côté, la force brute de chaque nouveau point de terminaison sur le site Web doit être exécutée séparément.

Avantages:


  • Vitesse de travail élevée à la fois pour l'énumération des sous-domaines DNS et pour les fichiers et répertoires de force brute.

Inconvénients:


  • La version actuelle ne prend pas en charge l'installation des en-têtes HTTP;
  • Par défaut, seuls certains des codes d'état HTTP sont considérés comme valides (200 204 301 302 307).



Arjun


Arjun est un outil de bruteforce des paramètres HTTP cachés dans les paramètres GET / POST, ainsi que dans JSON. Le dictionnaire intégré contient 25 980 mots que Ajrun vérifie en près de 30 secondes. L'astuce est qu'Ajrun ne vérifie pas chaque paramètre séparément, mais vérifie immédiatement ~ 1000 paramètres à la fois et cherche à voir si la réponse a changé. Si la réponse a changé, divise ensuite ces 1000 paramètres en deux parties et vérifie laquelle de ces parties affecte la réponse. Ainsi, en utilisant une simple recherche binaire, vous pouvez trouver un paramètre ou plusieurs paramètres cachés qui ont influencé la réponse et, par conséquent, peuvent exister.

Avantages:


  • Haute vitesse grâce à la recherche binaire;
  • Prise en charge des paramètres GET / POST, ainsi que des paramètres sous forme de JSON;

Le plugin pour Burp Suite, param-miner , qui est également très bon pour trouver des paramètres HTTP cachés, fonctionne selon un principe similaire. Nous vous en dirons plus à ce sujet dans un prochain article sur Burp et ses plugins.


Linkfinder


LinkFinder est un script Python pour rechercher des liens dans des fichiers JavaScript. Utile pour trouver des points de terminaison / URL cachés ou oubliés dans une application Web.

Avantages:


  • Rapide;
  • Il existe un plugin spécial pour Chrome basé sur LinkFinder.
.

Inconvénients:


  • Conclusion finale peu pratique;
  • N'analyse pas JavaScript dans la dynamique;
  • Une logique assez simple pour trouver des liens - si JavaScript est en quelque sorte obscurci, ou si les liens sont initialement manquants et générés dynamiquement, alors vous ne trouverez rien.



Jsparser


JSParser est un script Python qui utilise Tornado et JSBeautifier pour analyser les URL relatives à partir de fichiers JavaScript. Très utile pour détecter les requêtes AJAX et compiler une liste de méthodes API avec lesquelles l'application interagit. Associé efficacement à LinkFinder.

Avantages:


  • Analyse rapide des fichiers javascript.



sqlmap


sqlmap est probablement l'un des outils les plus connus pour analyser les applications Web. Sqlmap automatise la recherche et le fonctionnement des injections SQL, fonctionne avec plusieurs dialectes SQL, possède dans son arsenal un grand nombre de techniques différentes, allant du guillemet «au front» et se terminant par des vecteurs complexes pour des injections SQL temporelles. De plus, il possède de nombreuses autres techniques d'exploitation pour divers SGBD, il est donc utile non seulement comme scanner pour les injections SQL, mais aussi comme un outil puissant pour exploiter les injections SQL déjà trouvées.

Avantages:


  • Un grand nombre de techniques et de vecteurs différents;
  • Faible nombre de faux positifs;
  • Nombreuses possibilités de réglage fin, diverses techniques, base de données cible, scripts de sabotage pour contourner WAF;
  • Possibilité de vider les données de sortie;
  • Il existe de nombreuses options de fonctionnement différentes, par exemple, pour certaines bases de données - téléchargement / téléchargement automatique de fichiers, obtention de la possibilité d'exécuter des commandes (RCE) et d'autres;
  • Prise en charge de la connexion directe à la base de données à l'aide des données obtenues lors de l'attaque;
  • Vous pouvez soumettre un fichier texte avec les résultats de Burp à l'entrée - pas besoin de composer manuellement tous les attributs de ligne de commande.

Inconvénients:


  • Il est difficile de personnaliser, par exemple, pour écrire certains de vos chèques en raison de la documentation limitée à ce sujet;
  • Sans les paramètres appropriés, il effectue un ensemble de contrôles incomplets, ce qui peut être trompeur.



NoSQLMap


NoSQLMap est un outil Python pour automatiser la recherche et le fonctionnement des injections NoSQL. Il est pratique à utiliser non seulement dans les bases de données NoSQL, mais aussi directement lors de l'audit d'applications Web à l'aide de NoSQL.

Avantages:


  • Comme sqlmap, il trouve non seulement des vulnérabilités potentielles, mais vérifie également la possibilité de son exploitation pour MongoDB et CouchDB.

Inconvénients:


  • Ne prend pas en charge NoSQL pour Redis, Cassandra, le développement se poursuit dans ce sens.


oxml_xxe


oxml_xxe est un outil pour incorporer des exploits XML XXE dans divers types de fichiers qui utilisent le format XML sous une forme ou une autre.

Avantages:


  • Il prend en charge de nombreux formats courants, tels que DOCX, ODT, SVG, XML.

Inconvénients:


  • Prise en charge non entièrement mise en œuvre pour PDF, JPEG, GIF;
  • Crée un seul fichier. Pour résoudre ce problème, vous pouvez utiliser l'outil docem , qui peut créer un grand nombre de fichiers de charge utile à différents endroits.

Les utilitaires ci-dessus font un excellent travail de test de XXE lors du chargement de documents contenant XML. Mais n'oubliez pas que les gestionnaires de format XML peuvent être trouvés dans de nombreux autres cas, par exemple, XML peut être utilisé comme format de données au lieu de JSON.

Par conséquent, nous vous recommandons de prêter attention au référentiel suivant, qui contient un grand nombre de charges utiles différentes: PayloadsAllTheThings .

tplmap


tplmap est un outil Python pour détecter et exploiter automatiquement les vulnérabilités d'injection de modèle côté serveur; il a des paramètres et des indicateurs similaires à sqlmap. Il utilise plusieurs techniques et vecteurs différents, y compris l'injection aveugle, et dispose également de techniques pour exécuter du code et charger / décharger des fichiers arbitraires. De plus, il a dans son arsenal des techniques pour une douzaine de moteurs différents pour les modèles et quelques techniques pour trouver eval () - des injections de code similaires en Python, Ruby, PHP, JavaScript. En cas de succès, ouvre une console interactive.

Avantages:


  • Un grand nombre de techniques et de vecteurs différents;
  • Prend en charge de nombreux moteurs de rendu des modèles;
  • Nombreuses techniques d'exploitation.

Cewl


CeWL est un générateur de dictionnaire Ruby, conçu pour extraire des mots uniques d'un site Web spécifié, il suit les liens sur un site à une profondeur spécifiée. Le dictionnaire compilé de mots uniques peut ensuite être utilisé pour utiliser des mots de passe de force brute sur des services ou des fichiers et répertoires de force brute sur le même site Web, ou pour attaquer des hachages reçus à l'aide de hashcat ou de John the Ripper. Utile lors de la compilation d'une liste «ciblée» de mots de passe potentiels.

Avantages:


  • Facile à utiliser.

Inconvénients:


  • Vous devez être prudent avec la profondeur de la recherche afin de ne pas capturer un domaine supplémentaire.

Passe faible


Weakpass est un service contenant de nombreux dictionnaires avec des mots de passe uniques. Il est extrêmement utile pour diverses tâches liées au piratage des mots de passe, allant d'un simple compte de force brute en ligne sur les services cibles, se terminant par une force brute hors ligne reçue avec des hachages utilisant hashcat ou John The Ripper . Composé d'environ 8 milliards de mots de passe d'une longueur de 4 à 25 caractères.

Avantages:


  • Il contient à la fois des dictionnaires spécifiques et des dictionnaires avec les mots de passe les plus courants - vous pouvez choisir un dictionnaire spécifique pour vos propres besoins;
  • Les dictionnaires sont mis à jour et mis à jour avec de nouveaux mots de passe;
  • Les dictionnaires sont triés par performance. Vous pouvez choisir une option à la fois pour la force brute en ligne rapide et pour une sélection approfondie des mots de passe dans un dictionnaire volumineux avec les dernières fuites;
  • Il y a une calculatrice affichant le temps brut du mot de passe sur votre équipement.



Dans un groupe distinct, nous aimerions placer des outils pour les vérifications CMS: WPScan, JoomScan et AEM hacker.

AEM_hacker


Le pirate AEM est un outil pour identifier les vulnérabilités dans les applications Adobe Experience Manager (AEM).

Avantages:


  • Il peut identifier les applications AEM à partir de la liste des URL qui lui sont soumises en entrée;
  • Il contient des scripts pour obtenir RCE en chargeant un shell JSP ou en utilisant SSRF.

Joomscan


JoomScan est un outil Perl pour automatiser la détection des vulnérabilités lors du déploiement du CMS Joomla.

Avantages:


  • Capable de trouver des défauts de configuration et des problèmes avec les paramètres administrateur;
  • Énumère les versions de Joomla et les vulnérabilités associées, de même pour les composants individuels;
  • Contient plus de 1000 exploits pour les composants Joomla;
  • Sortie des rapports finaux aux formats texte et HTML.



Wpscan


WPScan - un outil pour explorer des sites sur WordPress, a dans son arsenal de vulnérabilités à la fois pour le moteur WordPress lui-même et pour certains plugins.

Avantages:


  • Capable de répertorier non seulement les plugins et les thèmes WordPress dangereux, mais également d'obtenir une liste d'utilisateurs et de fichiers TimThumb;
  • Il peut mener des attaques par force brute sur des sites WordPress.

Inconvénients:


  • Sans les paramètres appropriés, il effectue un ensemble de contrôles incomplets, ce qui peut être trompeur.



En général, différentes personnes préfèrent différents outils de travail: ils sont tous bons à leur manière et ce qu'une personne aimait peut ne pas convenir à une autre. Si vous pensez que nous avons ignoré à tort un bon utilitaire - écrivez-le dans les commentaires!

Source: https://habr.com/ru/post/fr452836/


All Articles