Les outils web, ou par où commencer en tant que pentester ?

Continuer parler d'outils utiles pour les pentesters. Dans le nouvel article, nous examinerons les outils d'analyse de la sécurité des applications Web.

Notre collègue Être l'amour J'ai déjà fait quelque chose comme ça compilation il y a environ sept ans. Il est intéressant de voir quels outils ont conservé et renforcé leurs positions, et lesquels sont passés au second plan et sont désormais rarement utilisés.
Les outils web, ou par où commencer en tant que pentester ?

Notez que cela inclut également Burp Suite, mais il y aura une publication distincte à ce sujet et sur ses plugins utiles.

Table des matières:

Amasser

Amasser - un outil Go pour rechercher et énumérer les sous-domaines DNS et cartographier le réseau externe. Amass est un projet de l'OWASP conçu pour montrer à quoi ressemblent les organisations sur Internet à un étranger. Amass obtient les noms de sous-domaines de différentes manières ; l'outil utilise à la fois l'énumération récursive des sous-domaines et les recherches open source.

Pour découvrir les segments de réseau interconnectés et les numéros de systèmes autonomes, Amass utilise les adresses IP obtenues lors de l'exploitation. Toutes les informations trouvées sont utilisées pour créer une carte du réseau.

Avantages:

  • Les techniques de collecte d’informations comprennent :
    * DNS - recherche par dictionnaire de sous-domaines, sous-domaines bruteforce, recherche 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 open source - Ask, Baidu, Bing, CommonCrawl, DNSDB, DNSDumpster, DNSTable, Dogpile, Exalead, FindSubdomains, Google, IPv4Info, Netcraft, PTRArchive, Riddler, SiteDossier, ThreatCrowd, VirusTotal, Yahoo ;

    * Rechercher dans les bases de données de 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 ;

    * Rechercher dans les archives Web 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:

  • Soyez prudent avec amass.netdomains : il tentera de contacter chaque adresse IP de l'infrastructure identifiée et d'obtenir des noms de domaine à partir de recherches DNS inversées et de certificats TLS. Il s'agit d'une technique « très médiatisée », elle peut révéler vos activités de renseignement dans l'organisation faisant l'objet de l'enquête.
  • Consommation de mémoire élevée, peut consommer jusqu'à 2 Go de RAM dans différents paramètres, ce qui ne vous permettra pas d'exécuter cet outil dans le cloud sur un VDS bon marché.

Les outils web, ou par où commencer en tant que pentester ?

Altdns

Altdns — un outil Python permettant de compiler des dictionnaires pour énumérer les sous-domaines DNS. Vous permet de générer de nombreuses variantes de sous-domaines à l'aide de mutations et de permutations. Pour cela, des mots que l'on retrouve souvent dans les sous-domaines sont utilisés (par exemple : test, dev, staging), toutes les mutations et permutations sont appliquées aux sous-domaines déjà connus, qui peuvent être soumis à l'entrée Altdns. Le résultat est une liste de variantes de sous-domaines qui peuvent exister, et cette liste peut ensuite être utilisée pour la force brute DNS.

Avantages:

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

aquatone

aquatone - était auparavant mieux connu comme un autre outil de recherche de sous-domaines, mais l'auteur lui-même l'a abandonné au profit d'Amass susmentionné. Désormais, aquatone a été réécrit en Go et est davantage orienté vers la reconnaissance préliminaire sur les sites Web. Pour ce faire, aquatone parcourt les domaines spécifiés et recherche des sites Web sur différents ports, après quoi il collecte toutes les informations sur le site et prend une capture d'écran. Pratique pour une reconnaissance préliminaire rapide des sites Web, après quoi vous pouvez sélectionner des cibles prioritaires pour les attaques.

Avantages:

  • La sortie crée un groupe de fichiers et de dossiers faciles à utiliser lors de travaux ultérieurs avec d'autres outils :
    * Rapport HTML avec captures d'écran collectées et titres de réponses regroupés par similarité ;

    * Un fichier avec toutes les URL où les sites Web ont été trouvés ;

    * Fichier avec statistiques et données de page ;

    * Un dossier avec des fichiers contenant les en-têtes de réponse des cibles trouvées ;

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

    * 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 restituer des captures d'écran.

Inconvénients:

  • Il peut attirer l'attention des systèmes de détection d'intrusion et 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 était implémentée. Les anciennes versions peuvent être trouvées sur page des versions.
Les outils web, ou par où commencer en tant que pentester ?

DNS de masse

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

Avantages:

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

Inconvénients:

  • MassDNS peut entraîner une charge importante sur les résolveurs DNS utilisés, ce qui peut entraîner des interdictions de ces serveurs ou des plaintes auprès de votre FAI. De plus, cela imposera une charge importante aux serveurs DNS de l'entreprise, s'ils en disposent et s'ils sont responsables des domaines que vous essayez de résoudre.
  • La liste des résolveurs est actuellement obsolète, mais si vous sélectionnez les résolveurs DNS défectueux et en ajoutez de nouveaux connus, tout ira bien.

Les outils web, ou par où commencer en tant que pentester ?
Capture d'écran d'aquatone v0.5.0

nsec3map

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

Avantages:

  • 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 ;
  • Inclut un plugin pour John the Ripper qui peut être utilisé pour déchiffrer les hachages NSEC3 résultants.

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 — 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 les injections SQL, XSS, XXE, SSRF et de nombreuses autres vulnérabilités Web. Cependant, comme tout autre scanner, une variété de vulnérabilités Web ne remplace pas un pentester, car il ne peut pas trouver de chaînes complexes de vulnérabilités ou de vulnérabilités logiques. Mais il couvre de nombreuses vulnérabilités différentes, y compris divers CVE, que le pentester aurait pu oublier, il est donc très pratique pour vous libérer des contrôles de routine.

Avantages:

  • Faible niveau de faux positifs ;
  • Les résultats peuvent être exportés sous forme de rapports ;
  • Effectue un grand nombre de vérifications pour 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érera les pages dont les fonctionnalités sont identiques comme étant différentes, puisqu'elles mènent à des URL différentes), mais les développeurs y travaillent ;
  • 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 du scanner dans un segment isolé du réseau client local ;
  • Le service étudié peut faire du bruit, par exemple en envoyant trop de vecteurs d'attaque vers le formulaire de contact du site, compliquant ainsi grandement les processus métiers ;
  • Il s’agit d’une solution propriétaire et, par conséquent, non gratuite.

Les outils web, ou par où commencer en tant que pentester ?

Recherche

Recherche - un outil Python pour forcer brutalement des répertoires et des fichiers sur des sites Web.

Avantages:

  • 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 présente un bon équilibre entre taille et efficacité de recherche. Contient des chemins standard communs à de nombreux CMS et piles technologiques ;
  • Son propre format de dictionnaire, qui vous permet d'obtenir une bonne efficacité et flexibilité dans l'énumération des fichiers et des répertoires ;
  • Sortie pratique - texte brut, JSON ;
  • Il peut effectuer une limitation - une pause entre les requêtes, 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 transmettre plusieurs extensions à la fois ;
  • Afin d'utiliser votre dictionnaire, il devra être légèrement modifié au format de dictionnaire Dirsearch pour une efficacité maximale.

Les outils web, ou par où commencer en tant que pentester ?

wfuzz

wfuzz - Fuzzer d'application Web Python. Probablement l’un des phaseurs Web les plus connus. Le principe est simple : wfuzz permet de phaser n'importe quel endroit dans une requête HTTP, ce qui permet de phaser les paramètres GET/POST, les entêtes HTTP, y compris Cookie et autres entêtes d'authentification. En même temps, il est également pratique pour la simple force brute de répertoires et de fichiers, pour lesquels vous avez besoin d'un bon dictionnaire. Il dispose également d'un système de filtrage flexible, avec lequel vous pouvez filtrer les réponses du site Web selon différents paramètres, ce qui vous permet d'obtenir des résultats efficaces.

Avantages:

  • Multifonctionnel - structure modulaire, l'assemblage prend quelques minutes ;
  • Mécanisme de filtrage et de fuzzing pratique ;
  • Vous pouvez mettre en phase n’importe quelle méthode HTTP, ainsi qu’à n’importe quel endroit d’une requête HTTP.

Inconvénients:

  • En cours de développement.

Les outils web, ou par où commencer en tant que pentester ?

effervescence

effervescence — un fuzzer web dans Go, créé à « l'image et la ressemblance » de wfuzz, permet de brutaliser des fichiers, des répertoires, des chemins d'URL, des noms et des valeurs de paramètres GET/POST, des en-têtes HTTP, y compris l'en-tête Host pour la force brute d'hôtes virtuels. wfuzz se distingue de son frère par une vitesse plus élevée et quelques nouvelles fonctionnalités, par exemple, il prend en charge les dictionnaires au format Dirsearch.

Avantages:

  • Les filtres sont similaires aux filtres wfuzz, ils vous permettent de configurer de manière flexible la force brute ;
  • Vous permet de fuzz les valeurs d'en-tête HTTP, les données de requête 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 cours de développement.

Les outils web, ou par où commencer en tant que pentester ?

gobuster

gobuster — un outil Go de reconnaissance, dispose de deux modes de fonctionnement. Le premier est utilisé pour forcer brutalement les fichiers et répertoires d'un site Web, le second est utilisé pour forcer brutalement 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 lancée séparément.

Avantages:

  • Vitesse de fonctionnement élevée à la fois pour la recherche par force brute des sous-domaines DNS et pour la recherche par force brute des fichiers et répertoires.

Inconvénients:

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

Les outils web, ou par où commencer en tant que pentester ?

Arjun

Arjun - un outil de force brute des paramètres HTTP cachés dans les paramètres GET/POST, ainsi que dans JSON. Le dictionnaire intégré contient 25 980 mots, qu'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 environ 1000 1000 paramètres à la fois et voit si la réponse a changé. Si la réponse a changé, il divise ces XNUMX XNUMX paramètres en deux parties et vérifie laquelle de ces parties affecte la réponse. Ainsi, à l'aide d'une simple recherche binaire, on trouve 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 fonctionne sur un principe similaire : mineur de paramètres, qui est également très efficace pour trouver les paramètres HTTP cachés. Nous vous en dirons plus dans un prochain article sur Burp et ses plugins.
Les outils web, ou par où commencer en tant que pentester ?

Recherche de lien

Recherche de lien — un script Python pour rechercher des liens dans les 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 au fil du temps ;
  • Une logique assez simple pour rechercher des liens - si JavaScript est obscurci d'une manière ou d'une autre, ou si les liens sont initialement manquants et générés dynamiquement, alors il ne pourra rien trouver.

Les outils web, ou par où commencer en tant que pentester ?

JSParser

JSParser est un script Python qui utilise Tornado и 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. Fonctionne efficacement en conjonction avec LinkFinder.

Avantages:

  • Analyse rapide des fichiers JavaScript.

Les outils web, ou par où commencer en tant que pentester ?

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 et dispose d'un grand nombre de techniques différentes dans son arsenal, allant des guillemets simples aux vecteurs complexes pour les injections SQL basées sur le temps. De plus, il dispose de nombreuses techniques permettant une exploitation ultérieure pour divers SGBD, il est donc utile non seulement comme scanner pour les injections SQL, mais également comme 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 ;
  • De nombreuses options de réglage fin, diverses techniques, base de données cible, scripts de falsification pour contourner WAF ;
  • Possibilité de créer un dump de sortie ;
  • De nombreuses capacités opérationnelles différentes, par exemple pour certaines bases de données - chargement/déchargement automatique de fichiers, obtention de la possibilité d'exécuter des commandes (RCE) et autres ;
  • Prise en charge de la connexion directe à la base de données à l'aide des données obtenues lors d'une attaque ;
  • Vous pouvez soumettre un fichier texte avec les résultats de Burp en entrée - pas besoin de composer manuellement tous les attributs de ligne de commande.

Inconvénients:

  • Il est difficile de personnaliser, par exemple, d'écrire certains de vos propres chèques en raison de la rareté de la documentation à ce sujet ;
  • Sans les paramètres appropriés, il effectue un ensemble de vérifications incomplètes, ce qui peut être trompeur.

Les outils web, ou par où commencer en tant que pentester ?

NoSQLMap

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

Avantages:

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

Inconvénients:

  • Ne supporte pas NoSQL pour Redis, Cassandra, un développement est en cours dans ce sens.

oxml_xxe

oxml_xxe — un outil permettant d'intégrer des exploits XXE XML dans différents types de fichiers utilisant le format XML sous une forme ou une autre.

Avantages:

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

Inconvénients:

  • La prise en charge des formats PDF, JPEG et GIF n'est pas entièrement implémentée ;
  • Crée un seul fichier. Pour résoudre ce problème, vous pouvez utiliser l'outil document, 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 du XML. Mais rappelez-vous également 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 : Charges utilesAllTheThings.

tplmap

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

Avantages:

  • Un grand nombre de techniques et de vecteurs différents ;
  • Prend en charge de nombreux moteurs de rendu de modèles ;
  • Beaucoup de techniques opératoires.

CeWL

CeWL - un générateur de dictionnaire en Ruby, créé pour extraire des mots uniques d'un site Web spécifié, suit les liens sur le site jusqu'à une profondeur spécifiée. Le dictionnaire compilé de mots uniques peut ensuite être utilisé pour forcer brutalement les mots de passe sur des services ou pour forcer brutalement des fichiers et des répertoires sur le même site Web, ou pour attaquer les hachages résultants à l'aide de hashcat ou de John the Ripper. Utile lors de la compilation d’une liste « cible » de mots de passe potentiels.

Avantages:

  • Facile à utiliser.

Inconvénients:

  • Vous devez faire attention à la profondeur de la recherche afin de ne pas capturer un domaine supplémentaire.

Passe faible

Passe faible - un service contenant de nombreux dictionnaires avec des mots de passe uniques. Extrêmement utile pour diverses tâches liées au piratage de mots de passe, allant de la simple force brute en ligne des comptes sur les services cibles, à la force brute hors ligne des hachages reçus en utilisant hashcat ou John l'Eventreur. Il contient environ 8 milliards de mots de passe allant de 4 à 25 caractères.

Avantages:

  • 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 réapprovisionnés avec de nouveaux mots de passe ;
  • Les dictionnaires sont triés par efficacité. Vous pouvez choisir l'option à la fois pour une force brute en ligne rapide et une sélection détaillée de mots de passe à partir d'un dictionnaire volumineux avec les dernières fuites ;
  • Il existe une calculatrice qui indique le temps nécessaire pour extraire les mots de passe sur votre équipement.

Les outils web, ou par où commencer en tant que pentester ?

Nous aimerions inclure les outils de vérification CMS dans un groupe distinct : WPScan, JoomScan et AEM hacker.

AEM_hacker

Pirate AEM est un outil permettant d'identifier les vulnérabilités des applications Adobe Experience Manager (AEM).

Avantages:

  • Peut identifier les applications AEM à partir de la liste des URL soumises à son entrée ;
  • Contient des scripts pour obtenir RCE en chargeant un shell JSP ou en exploitant SSRF.

JoomScan

JoomScan — un outil Perl permettant d'automatiser la détection des vulnérabilités lors du déploiement du CMS Joomla.

Avantages:

  • Capable de trouver des failles de configuration et des problèmes avec les paramètres administratifs ;
  • Répertorie les versions de Joomla et les vulnérabilités associées, de la même manière pour les composants individuels ;
  • Contient plus de 1000 exploits pour les composants Joomla ;
  • Sortie des rapports finaux aux formats texte et HTML.

Les outils web, ou par où commencer en tant que pentester ?

WPScan

WPScan - un outil d'analyse des sites WordPress, il présente des vulnérabilités dans son arsenal aussi bien pour le moteur WordPress lui-même que pour certains plugins.

Avantages:

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

Inconvénients:

  • Sans les paramètres appropriés, il effectue un ensemble de vérifications incomplètes, ce qui peut être trompeur.

Les outils web, ou par où commencer en tant que pentester ?

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 aime peut ne pas convenir du tout à une autre. Si vous pensez que nous avons injustement ignoré une bonne utilité, écrivez-le dans les commentaires !

Source: habr.com

Ajouter un commentaire