Webhackingnotes
1- Rassemblement d'informations: la collecte d'informations fait partie des bogues de sécurité de la chasse. Attaque la reconnaissance de la surface - stratégies et valeur de la normalisation
*** Identification des hôtes virtuels: plusieurs sites Web sont couramment déployés sur le même serveur physique.
- Les sites Web de nombreuses organisations sont hébergés par des fournisseurs de services utilisant des ressources partagées. Le partage des adresses IP est l'une des techniques les plus utiles et les plus rentables utilisées par eux. Vous verrez souvent un certain nombre de noms de domaine renvoyés lorsque vous effectuez une requête DNS inverse pour une adresse IP spécifique. Ces sites Web utilisent l'hébergement virtuel basé sur les noms, et ils sont identifiés de manière unique et différenciés des autres sites Web hébergés sur la même adresse IP par la valeur d'en-tête hôte.
- Le YouGetSignal (http://www.yougetsignal.com/) est un site Web qui fournit une fonction de recherche IP inversée.
*** Énumération du sous-domaine:
- Vous pouvez commencer votre reconnaissance en trouvant des sous-domaines en utilisant vos VP. Plus vous trouverez de sous-domaines, plus vous aurez de surface d'attaque.
- Trouver des sous-domaines d'un site Web peut nous décrocher dans des endroits surprenants. Je me souviens d'un discours du chercheur israélien en matière de sécurité, Nir Goldshlager, dans lequel il a effectué une analyse d'énumération du sous-domaine sur un service Google, à partir du groupe de sous-domaines qu'il a constaté qu'il y en avait une qui exécutait une application Web avec une vulnérabilité publiquement divulguée d'inclusion de fichiers locaux.
*** Analyse du port:
- Après avoir énuméré des sous-domaines, vous pouvez démarrer PortScanning pour identifier plus de surfaces d'attaque, y compris les services de course.
- Utiliser la numérisation des ports - Ne recherchez pas uniquement les 80 443 normaux - exécutez une analyse de port par rapport aux 65536 ports. Vous serez surpris de ce qui peut fonctionner sur des ports hauts aléatoires.
- Les résultats du Portscan peuvent également être révélateurs de la sécurité globale d'une entreprise. Par exemple, une entreprise qui a fermé tous les ports, sauf 80 et 443 (ports Web communs pour l'hébergement des sites HTTP et HTTPS) est probablement soucieux de la sécurité, tandis qu'une entreprise avec de nombreux ports ouvertes ouverte est probablement le contraire et peut avoir un meilleur potentiel de primes.
- Après avoir identifié les ports ouverts sur le serveur Web, vous devez déterminer le système d'exploitation sous-jacent.
- Une fois que le système d'exploitation sous-jacent et les ports ouverts ont été déterminés, vous devez identifier les applications exactes exécutées sur les ports ouverts. Lors de la numérisation des serveurs Web, vous devez analyser la saveur et la version du service Web qui s'exécute au-dessus du système d'exploitation.
*** Discovery de contenu: Découvrez le contenu caché et par défaut
- Avant de quitter notre visite des nombreuses utilisations des moteurs de recherche Internet, nous voulons noter un problème supplémentaire lié à la recherche qui peut considérablement améliorer l'efficacité du profilage. Le fichier robots.txt contient une liste de répertoires que les moteurs de recherche tels que Google sont censés indexer ou ignorer.
- Les sitemaps sont un moyen absurdement simple de faire des recherches fondamentales sans effort. Faire un peu de piratage d'URL avec le slug sitemap.xml renverra souvent soit un fichier XML réel détaillant la structure du site, soit une page HTML appliquée par Yoast-Or-Or-Seo-Plugin documentant différentes zones du site, avec des sitemaps distincts pour les publications, les pages, etc.
- Carte l'application à la recherche de répertoires cachés, ou des choses oubliées comme / sauvegarde / etc.
- Il existe différentes façons d'aborder la découverte de contenu. Tout d'abord, vous pouvez tenter de découvrir des fichiers et des répertoires en les brutant.
- Des outils de fuzzing peuvent être utilisés pour découvrir le contenu Web en essayant différents chemins, avec des URI tirés de listes de mots géantes, puis en analysant les codes d'état HTTP des réponses à découvrir les répertoires et les fichiers cachés.
- CEWL est un générateur de liste de mots personnalisé fabriqué par Robin Hood. Il épargne essentiellement le site cible à une certaine profondeur, puis renvoie une liste de mots. Cette liste de mots peut ensuite être utilisée comme dictionnaire pour les connexions d'application Web BruteForce, par exemple un portail administratif.
- Parallèlement à la forçage brute pour les actifs sensibles, l'araignée peut vous aider à obtenir une image d'un site qui, sans site, tout simplement ne peut pas fournir.
- Le serveur Web peut avoir des répertoires pour les administrateurs, les anciennes versions du site, les répertoires de sauvegarde, les répertoires de données ou d'autres répertoires qui ne sont référencés dans aucun code HTML.
- Obtenez des listes de noms communs et de noms de répertoire et d'extensions communes. Ajoutez à ces listes tous les éléments réellement observés dans les applications, ainsi que des éléments déduits de ceux-ci. Essayez de comprendre les conventions de dénomination utilisées par les développeurs d'applications. Par exemple, s'il y a des pages appelées addDocument.jsp et ViewDocument.jsp, il peut également y avoir des pages appelées editDocument.jsp et supprimedocument.jsp.
- Vérifiez les fins potentiellement intéressantes manuellement pour éliminer les faux positifs dans les résultats.
*** Consulter les ressources publiques: accumuler des informations sur le site Web Target à partir des ressources accessibles au public
- Lorsque vous devez aller au-delà du fichier et du répertoire Bruteforce, Google Dorking peut également fournir une découverte de contenu intéressante. Google Dorking peut vous faire gagner du temps, en particulier lorsque vous trouvez des paramètres URL qui sont généralement associés à des vulnérabilités telles que URL, redirect_to, id, etc.
- Les moteurs de recherche ont toujours été le meilleur ami d'un pirate. C'est un bon pari qu'au moins un des principaux moteurs de recherche Internet a indexé votre application Web cible au moins une fois par le passé.
- Au-delà de Google, il existe d'autres moteurs de recherche avec un objectif spécifique qui peut être inestimable pour trouver des informations spécifiques. Que vous souhaitiez trouver des informations sur une personne ou de vous renseigner sur les dossiers publics, il est probable qu'un moteur de recherche spécialisé a été fait pour trouver ce que vous désirez.
- Effectuez des recherches sur tous les noms et adresses e-mail que vous avez découvertes dans le contenu de l'application, telles que les coordonnées. Inclure des éléments non rendus à l'écran, tels que les commentaires HTML. En plus des recherches sur le Web, effectuez des nouvelles et des recherches de groupe. Recherchez tous les détails techniques publiés sur les forums Internet concernant l'application cible et son infrastructure de support.
- Une autre approche pour trouver un contenu intéressant est de vérifier le github de l'entreprise. Vous pouvez trouver des référentiels open source de la société ou des informations utiles sur les technologies qu'ils utilisent.
- Github est un trésor de données incroyables. Il y a eu un certain nombre de tests de pénétration et d'évaluations de l'équipe rouge où nous avons pu obtenir des mots de passe, des clés d'API, un ancien code source, des noms d'hôtes / IP internes, etc. Celles-ci ont conduit à un compromis direct ou aidé à une autre attaque. Ce que nous voyons, c'est que de nombreux développeurs poussent le code au mauvais dépôt (l'envoi à leur référentiel public au lieu du référentiel privé de leur entreprise), ou poussent accidentellement des matériaux sensibles (comme les mots de passe), puis essayez de le supprimer. Une bonne chose avec GitHub est qu'il suit chaque fois que le code est modifié ou supprimé.
- Shodan (https://www.shodan.io) est un excellent service qui scanne régulièrement Internet, saisissant des bannières, des ports, des informations sur les réseaux, etc.
- Censys surveille continuellement tous les serveurs et périphériques accessibles sur Internet, vous pouvez donc les rechercher et les analyser en temps réel. Vous pourrez comprendre la surface d'attaque de votre réseau, découvrir de nouvelles menaces et évaluer leur impact mondial [https://censys.io/].
- Utilisez le Waybackmachine pour trouver des points de terminaison oubliés
*** La pile technologique: identifier les technologies utilisées
- L'une des premières tâches que je fais lors du test d'une nouvelle application consiste à identifier les technologies utilisées. Cela inclut, mais n'est pas limité aux cadres JavaScript Frontend, aux cadres d'application côté serveur, aux services tiers, aux fichiers hébergés localement, aux fichiers distants, etc.
- Avoir les connaissances sur le cadre utilisé pour développer un site Web vous donne un avantage à identifier les vulnérabilités qui peuvent exister dans les versions non corrigées.
- Recherchez ce qu'est la technologie sous-jacente. Un outil utile pour cela est à nouveau NMAP et pour les applications Web spécifiquement Wappalyzer
*** Identification de la nouvelle fictionnalité:
- Vous pouvez également découvrir de nouvelles fonctionnalités de site en suivant les fichiers JavaScript. Se concentrer sur les fichiers JavaScript est particulièrement puissant lorsqu'un site s'appuie sur Frontend JavaScript Frameworks pour rendre son contenu. L'application s'appuiera sur la plupart des points de terminaison HTTP utilisés par un site inclus dans ses fichiers JavaScript.
- Payer l'accès à de nouvelles fonctionnalités
*** Code source: L'analyse du code source est généralement considérée comme quelque chose qui ne se déroule que dans une boîte blanche, un scénario de test interne, soit dans le cadre d'une chaîne de construction automatisée, soit comme examen manuel. Mais l'analyse du code côté client disponible pour le navigateur est également un moyen efficace de rechercher des vulnérabilités en tant que chercheur extérieur.