Une des choses que je dois faire de temps en temps est de trouver des sous-domaines dun site par exemple.
Commençant par example.com
- sub1. exemple.com
- autre.exemple.com
- autre.exemple.com
Je suis à la recherche de moyens supplémentaires pour effectuer une reconnaissance sur ces cibles et je souhaite obtenir une liste de tous les sous-domaines dun domaine.
Je fais actuellement un certain nombre de choses, notamment
- Utilisation de maltego pour rechercher des informations
- Utilisation de moteurs de recherche pour rechercher des sous-domaines
- Exploration des liens de sites
- Examen des enregistrements DNS
- Examen des certificats SSL mal configurés
- Deviner des choses comme « vpn.example.com »
Je pense quil y en a plus que le ceux que jai trouvés jusquici, mais maintenant je suis à court didées.
Commentaires
Réponse
En tant que pentester, être capable de trouver les sous-domaines dun site revient souvent. Jai donc écrit un outil, SubBrute qui le fait très bien si je le dis moi-même. En bref, cest mieux que les autres outils (féroce2) dans la mesure où son est beaucoup plus rapide, plus précis et plus facile à travailler avec . Cet outil est livré avec une liste de sous-domaines réels obtenus en explorant le Web. Cette liste de sous-domaines est plus de 16 fois la taille de fierce2 et subbrute prendra environ 15 minutes pour épuiser cette liste sur une connexion domestique. Le résultat est une liste séparée par des retours à la ligne, qui est facile à utiliser comme entrée pour dautres outils comme nmap ou un scanner de vulnérabilité dapplication Web.
Commentaires
- Génial, je ‘ vais le vérifier. Une idée à quel point cela se compare-t-il à ‘ knock ‘?
- @ D3C4FF Knock est de la merde.
- Toute gloire revient à Rook. Jai utilisé loutil dans un test en direct aujourdhui et cela a fonctionné comme un charme. Il na manqué quun sous-domaine sur deux douzaines qui sappelait mywebreading
- @ D3C4FF ouais, je ‘ je suis content de lavoir fait lastuce;)
- @Rook juste une idée rapide concernant les subbrute, ajoutez loption pour résoudre (et imprimer) ladresse IP à partir des noms dhôtes trouvés. Jai fait ce changement et cela a aidé avec quelques tests où certaines plages étaient hors de portée même sil sagissait de sous-domaines. Merci encore!
Réponse
1. Transfert de zone
Certains serveurs de noms permettent des transferts de zone DNS vers nimporte qui sur Internet, généralement involontairement. Dans cette question, il est expliqué plus en détail: Attaque de transfert de zone DNS .
Outils pour les transferts de zone
Le la deuxième réponse à cette question indique comment la tester pour Windows et Linux:
Windows:
nslookup > server <DNS you are querying> > set type=any > ls -d <target>
Unix (nslookup est obsolète sous Unix):
dig -t axfr @<DNS you are querying> <target>
(Jai édité celui Unix, car -axfr
ne semble pas fonctionner. Javais besoin de spécifier -t axfr
.)
2. Marche de la zone DNSSEC
DNSSEC signe les enregistrements DNS, vous pouvez donc être sûr de recevoir la bonne réponse (enfin, compte tenu de certaines racines de confiance et intermédiaires). Mais comment prouver que quelque chose nexiste pas, par ex. lorsque vous recherchez nonexistentsub.example.com
, comment le serveur de noms de example.com
prouve-t-il la non-existence dun sous-domaine? Il ne contient pas la clé de signature (la signature se fait lors de la mise à jour de la zone par les administrateurs).
Dans leur réponse à Comment fonctionne DNSSec? Existe-t-il des limitations ou des problèmes connus?, / u / tylerl explique:
De toute évidence, cette réponse nécessite être signé, mais généralement le serveur DNS lui-même n’a pas accès à votre clé de signature et ne peut pas signer la réponse à la volée; les signatures sont toutes créées » hors ligne » à lavance. Cela empêche votre clé dêtre exposée si votre serveur DNS est compromis.
À la place, vous classez vos sous-domaines par ordre alphabétique et dites » pour chaque nom entre mail.example. com et pop.example.com, aucun autre sous-domaine nexiste » et signez cette assertion. Ensuite, lorsque quelquun demande nachos.example.com, vous pouvez simplement lui donner cette réponse (qui a déjà été signée) et le client le sait car nachos.example.com se situe par ordre alphabétique entre mail.example.com et pop.example.com, alors la réponse » ce domaine nexiste pas » est considérée comme correctement signée et provient en fait de vous.
Lendroit où cela devient problématique est quen ayant un ensemble de ces réponses négatives qui déclarent explicitement que » aucune réponse nexiste entre X et Y, vous pouvez facilement cartographier exactement quels domaines existent pour toute la zone. Vous savez que » X » existe, et vous savez que » Y » existe, et vous savez quil ny a rien dautre entre eux. Il suffit de pousser un peu plus au hasard et vous pourrez rapidement compiler une liste de tous les enregistrements qui existent.
Lenregistrement qui spécifie » jusquà ce que pop.example.com il ny ait rien » est appelé NSEC (Next SECure record).
Une solution de contournement a été conçue pour cela: NSEC3. Il hache les noms, donc mail
se transforme en b83a88...
et pop
devient b21afc...
. Imaginez que ce sont les deux seuls sous-domaines, la réponse signée indiquera » aucun enregistrement nexiste entre b21afc...
et b83a88...
« . Encore une fois, cela fonctionne par ordre alphabétique et vous pouvez tous les obtenir, mais cette fois, vous devrez déchiffrer chaque hachage avant dapprendre ce que sont les sous-domaines.
Daprès mon expérience, la plupart ont lextension NSEC3 activée.
Outils de marche de zone
NSEC3Walker fait à la fois lénumération et le craquage. Je ne peux pas garantir lefficacité du craquage, mais il est certainement uniquement basé sur le processeur. Puisque NSEC3 utilise SHA1 (du moins à lorigine), il existe probablement de meilleurs programmes de craquage.
dnsrecon
semble également être en mesure de le faire: dnsrecon -z -d example.com
. Je ne sais pas sil existe un site Web officiel contenant des informations, mais dans Debian Stretch, Buster et Bullseye Je peux apt install dnsrecon
.
3. Recherches inversées dans un sous-réseau
En devinant quelques-unes, vous trouverez souvent des réponses dans une plage similaire. Si vous savez que www.
existe et que mail.
existe, et quils se résolvent tous les deux en 192.168.3.x
, alors pourrait être plus. Essayez de faire une recherche inversée pour toutes les adresses de la plage 192.168.3.0-255
(/24
), et vous trouverez probablement plus de sous-domaines. Vous pouvez également essayer une requête WHOIS sur ladresse IP pour trouver les limites de la plage (si elles ont leur propre bloc).
Outils pour les recherches inversées
dnsrecon
peut faire ceci:
dnsrecon -t rvl -r 192.168.1.0/24
Où -t rvl
signifie » type reverse-lookup » et -r
transmet une plage dadresses IP en notation CIDR. Je ne sais pas sil existe un site Web officiel contenant des informations, mais dans Debian Stretch, Buster et Bullseye, je peux apt install dnsrecon
.
4. Enregistrements de service DNS
On peut définir des enregistrements SRV (service) pour la découverte de service, par exemple _sip._tcp.example.com
pourrait pointer vers sipserver.example.com
sur le port 5060. Depuis les noms de service ( » sip
» dans lexemple) sont généralement les standards enregistrés auprès de lIANA, nous pouvons les parcourir.
Outils pour interroger les enregistrements srv
dnsrecon
peut faire ceci:
dnsrecon -t srv -d example.com
Cela prendra un sous-ensemble des noms de service existants, sélectionnés par un inconnu méthode, comme mentionné dans sa page de manuel (man dnsrecon
).
5. Autres méthodes
Vous en avez déjà mentionné certaines.Je nentrerai pas dans les détails, car ils « sont assez explicites et dépendent soit dune application exécutée sur la cible (comme FTP), soit dun tiers, soit il ny a vraiment pas grand chose à dire à leur sujet .
-
Les résultats de recherche peuvent révéler des sous-domaines. Encore une fois,
dnsrecon
peut le faire avec loption-t goo
(utilise spécifiquement Google). -
Vérifier dautres TLD pour le même nom peut révéler dautres variantes ou adresses IP. Par exemple. si
example.com
existe,example.org
peut également exister.dnsrecon
peut également le faire avecdnsrecon -t tld -d example.com
. -
Exploration dun site Web ou recherche de références ailleurs pourrait donner des indices. (Aide recherchée: quel outil utiliser?)
-
Lexamen des certificats TLS donne souvent des résultats. Assurez-vous de vérifier les ports pour HTTPS, SMTP (S), FTP (S), etc. et utilisez STARTTLS.
-
Il existe des outils tiers qui peuvent lister les sous-domaines dans un domaine. Leurs méthodes sont moins claires, mais lexploration dInternet et les archives historiques (peut-être quun transfert de domaine était-il autrefois possible?) En font souvent partie. (Besoin daide: des recommandations? Je me souviens seulement davoir vu quelle existe.)
6. Deviner.
La dernière option consiste simplement à deviner, soit par un dictionnaire (je le recommande), soit par la force brute. Ceci est rendu plus difficile par les caractères génériques, bien que de nombreux outils essaient de détecter et de résoudre ce problème.
Outils pour deviner / forcer brutalement
Fierce a été conçu pour cela: https://github.com/mschwager/fierce
Il est installé par défaut dans Kali Linux.
Comme / u / rook mentionné dans une autre réponse de ce fil , ils ont écrit Subbrute à cet effet: https://github.com/TheRook/subbrute
dnsrecon
peut le faire avec dnsrecon -t brt -d example.com
. Utilisez -f
à » Filtrer hors des enregistrements de recherche de domaine Brute Force qui se résolvent à ladresse IP définie par un caractère générique lors de lenregistrement des enregistrements » (citant sa page de manuel). Vous pouvez passer -D
pour un fichier dictionnaire.
Annexe: dict ionaires
Je suis toujours à la recherche de bons dictionnaires (pour deviner / forcer brutalement), mais en voici quelques-uns que je connais. Aidez-moi à compléter cette liste! Plus ils sont gros, mieux cest, tant quils sont triés par vraisemblance.
- Le référentiel de Fierce contient des dictionnaires: https://github.com/mschwager/fierce / tree / master / lists
- » Bitquark « a effectué une analyse des sous-domaines les plus couramment utilisés qui a abouti à ces listes: https://github.com/bitquark/dnspop/tree/master/results . Les articles du blog semblent donner des résultats étranges, alors je Je ne suis pas sûr de la qualité de ces listes.
-
dnsrecon
est livré avec une liste, simplement nomméenamelist.txt
.dpkg -L dnsrecon
révèle où il est installé. Il est trié par ordre alphabétique. - Subbrute a une liste courte et longue: https://github.com/TheRook/subbrute
Réponse
Jason Haddix a écrit mon outil de découverte de sous-domaine / nom dhôte préféré qui dépend dune version très récente de recon-ng – disponible ici –
https://github.com/jhaddix/domain
le subbrute est décent, fierce -dns <domain>
fonctionne très bien, dnsmap <domain> -r file.txt
est également valide, et je ne vois aucune raison de ne pas aimer knock -wc <domain>
(bien que les autres fonctionnalités de Knock soient suspect). Cependant, tous ces outils utilisent des techniques qui montrent leur âge. Lastuce pour certaines de ces améliorations dattaque est de créer un fichier personnalisé avec des noms dhôte spécialement conçus pour la cible.
Cependant, la tronçonneuse pour la découverte DNS est dnsrecon. Il fait tout.
Vous pouvez également envisager une offre commerciale, telle que RiskIQ, qui peut faire bien plus que tous ces outils. Leurs techniques incluent de nombreuses enquêtes auxquelles la plupart dentre vous nauraient pas pensé.
[MISE À JOUR] Un autre favori (pour les noms dhôte, pas principalement les sous-domaines – lOP sintéresse-t-il aux deux?) Est – https://github.com/tomsteele/blacksheepwall
Réponse
Je lessayerais avec knock mais attention: il y a un risque dêtre mis sur liste noire.
Malheureusement, il ny a pas de solution bruteforcing si un transfert de zone ne fonctionne pas.
Commentaires
- Cet outil est de mauvaise qualité; SubBrute est bien meilleur.
Réponse
Over on Stack Overflow , a suggéré Paul Melici en utilisant WolframAlpha .(Captures décran par moi-même)
Entrez le domaine dans le champ de recherche et lancez la recherche. (Par exemple,
stackexchange.com
)Dans la 3e section en partant du haut (nommée « Statistiques Web pour lensemble de stackexchange. com « ) cliquez sur Sous-domaines
Dans la section Sous-domaines, cliquez sur Plus
Vous pourrez y voir une liste de sous-domaines. Bien que je soupçonne quil naffiche pas TOUS les sous-domaines.
Commentaires
- cela est mentionné dans le premier commentaire
Réponse
Jetez un œil à http://ha.ckers.org/fierce/ . Cela peut prendre un fichier de dictionnaire ainsi que la force brute. Il est également inclus dans Kali.
Réponse
Au départ, jutilise souvent une base de données DNS passive pour trouver des sous-domaines pour un site. Linconvénient de cette méthode est que vous ne pouvez trouver que les sites répertoriés dans la base de données. Mais lavantage est que vous pouvez trouver des sites qui ne figurent dans aucune liste de mots.
Quelques bases de données pour référence:
https://www.virustotal.com/en/domain/stackexchange.com/information/
Réponse
Facile. Écrivez ladresse du site à wolframalpha. Et cliquez sur le bouton « sous-domaines ».
Un exemple; https://www.wolframalpha.com/input/?i=www.imdb.com
Cliquez sur « Sous-domaines » pour afficher les sous-domaines du site.
De plus, wolfram alpha a une API si vous souhaitez latteindre et lutiliser. Jespère que cela aide …
Commentaires
- Perdu – si vous pouvez développer ce sujet, en expliquant ce que fait Wolfram, cette réponse peut susciter des votes positifs.
- Le lien » sous-domaines » ne semble être présent que pour certains domaines?
usage()
de toute façon). À en juger par le code source, il rassemble les données de trois principaux moteurs de recherche (yahoo, msn, google) et pour moi un site Web obscurpgp.rediris.es
qui semble être un outil de suppression des e-mails.