hacktricks/generic-methodologies-and-resources/external-recon-methodology/README.md

655 lines
48 KiB
Markdown
Raw Normal View History

2023-06-03 13:10:46 +00:00
# Méthodologie de reconnaissance externe
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
2023-06-03 13:10:46 +00:00
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
2023-06-03 13:10:46 +00:00
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>
2022-07-21 20:26:09 +00:00
<img src="../../.gitbook/assets/i3.png" alt="" data-size="original">\
**Astuce pour les primes de bug** : **inscrivez-vous** à **Intigriti**, une plateforme premium de **prime de bug créée par des pirates, pour des pirates** ! Rejoignez-nous sur [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) dès aujourd'hui et commencez à gagner des primes allant jusqu'à **100 000 $** !
2022-04-28 13:58:49 +00:00
{% embed url="https://go.intigriti.com/hacktricks" %}
2021-06-27 14:28:05 +00:00
2023-06-03 13:10:46 +00:00
## Découverte des actifs
2021-06-27 14:28:05 +00:00
> On vous a dit que tout ce qui appartient à une entreprise est inclus dans le périmètre, et vous voulez savoir ce que cette entreprise possède réellement.
2021-06-27 14:28:05 +00:00
L'objectif de cette phase est d'obtenir toutes les **entreprises appartenant à l'entreprise principale** et ensuite tous les **actifs** de ces entreprises. Pour ce faire, nous allons :
2021-06-27 14:28:05 +00:00
1. Trouver les acquisitions de l'entreprise principale, cela nous donnera les entreprises incluses dans le périmètre.
2. Trouver les ASN (le cas échéant) de chaque entreprise, cela nous donnera les plages d'adresses IP possédées par chaque entreprise.
3. Utiliser des recherches inverses whois pour rechercher d'autres entrées (noms d'organisations, domaines...) liées à la première (cela peut être fait de manière récursive).
2023-06-03 13:10:46 +00:00
4. Utiliser d'autres techniques comme les filtres shodan `org` et `ssl` pour rechercher d'autres actifs (le truc `ssl` peut être fait de manière récursive).
2021-06-27 14:28:05 +00:00
2022-05-01 13:25:53 +00:00
### **Acquisitions**
2021-06-27 14:28:05 +00:00
2023-06-03 13:10:46 +00:00
Tout d'abord, nous devons savoir quelles **autres entreprises sont détenues par l'entreprise principale**.\
Une option consiste à visiter [https://www.crunchbase.com/](https://www.crunchbase.com), **rechercher** l'**entreprise principale**, et **cliquer** sur "**acquisitions**". Vous verrez ainsi d'autres entreprises acquises par l'entreprise principale.\
Une autre option consiste à visiter la page **Wikipedia** de l'entreprise principale et à rechercher les **acquisitions**.
2021-06-27 14:28:05 +00:00
> D'accord, à ce stade, vous devriez connaître toutes les entreprises incluses dans le périmètre. Voyons comment trouver leurs actifs.
2021-06-27 14:28:05 +00:00
2022-05-01 13:25:53 +00:00
### **ASNs**
2021-06-27 14:28:05 +00:00
Un numéro de système autonome (**ASN**) est un **numéro unique** attribué à un **système autonome** (AS) par l'**Internet Assigned Numbers Authority (IANA)**.\
Un **AS** est composé de **blocs** d'**adresses IP** qui ont une politique d'accès aux réseaux externes clairement définie et sont administrés par une seule organisation mais peuvent être composés de plusieurs opérateurs.
2021-06-27 14:28:05 +00:00
Il est intéressant de savoir si l'**entreprise a attribué un ASN** pour trouver ses **plages d'adresses IP**. Il sera intéressant d'effectuer un **test de vulnérabilité** contre tous les **hôtes** inclus dans le **périmètre** et de rechercher des domaines à l'intérieur de ces adresses IP.\
Vous pouvez **rechercher** par le **nom de l'entreprise**, par **IP** ou par **domaine** sur [**https://bgp.he.net/**](https://bgp.he.net)**.**\
**Selon la région de l'entreprise, ces liens pourraient être utiles pour recueillir plus de données :** [**AFRINIC**](https://www.afrinic.net) **(Afrique),** [**Arin**](https://www.arin.net/about/welcome/region/)**(Amérique du Nord),** [**APNIC**](https://www.apnic.net) **(Asie),** [**LACNIC**](https://www.lacnic.net) **(Amérique latine),** [**RIPE NCC**](https://www.ripe.net) **(Europe). Quoi qu'il en soit, probablement toutes les** informations utiles **(plages d'adresses IP et Whois)** apparaissent déjà dans le premier lien.
2023-03-12 18:00:45 +00:00
```bash
#You can try "automate" this with amass, but it's not very recommended
amass intel -org tesla
amass intel -asn 8911,50313,394161
```
De plus, la recherche de sous-domaines de [**BBOT**](https://github.com/blacklanternsecurity/bbot) agrège automatiquement et résume les ASNs à la fin de l'analyse.
```bash
bbot -t tesla.com -f subdomain-enum
...
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS394161 | 8.244.131.0/24 | 5 | TESLA | Tesla Motors, Inc. | US |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS16509 | 54.148.0.0/15 | 4 | AMAZON-02 | Amazon.com, Inc. | US |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS394161 | 8.45.124.0/24 | 3 | TESLA | Tesla Motors, Inc. | US |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS3356 | 8.32.0.0/12 | 1 | LEVEL3 | Level 3 Parent, LLC | US |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS3356 | 8.0.0.0/9 | 1 | LEVEL3 | Level 3 Parent, LLC | US |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
```
2023-06-03 13:10:46 +00:00
Vous pouvez trouver les plages d'adresses IP d'une organisation en utilisant également [http://asnlookup.com/](http://asnlookup.com) (il dispose d'une API gratuite).\
Vous pouvez trouver l'IP et l'ASN d'un domaine en utilisant [http://ipv4info.com/](http://ipv4info.com).
2023-06-03 13:10:46 +00:00
### **Recherche de vulnérabilités**
2021-06-27 14:28:05 +00:00
À ce stade, nous connaissons **tous les actifs dans le périmètre**, donc si vous en avez la permission, vous pouvez lancer un **scanner de vulnérabilités** (Nessus, OpenVAS) sur tous les hôtes.\
2023-06-03 13:10:46 +00:00
Vous pouvez également lancer des [**scans de ports**](../pentesting-network/#discovering-hosts-from-the-outside) **ou utiliser des services comme** shodan **pour trouver** des ports ouverts **et en fonction de ce que vous trouvez, vous devriez** consulter ce livre pour savoir comment tester la sécurité de plusieurs services possibles en cours d'exécution.\
**Il pourrait également être utile de mentionner que vous pouvez également préparer des** listes de noms d'utilisateur **et de** mots de passe **par défaut et essayer de** forcer l'accès aux services avec [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray).
2021-06-27 14:28:05 +00:00
2023-06-03 13:10:46 +00:00
## Domaines
2021-06-27 14:28:05 +00:00
2023-06-03 13:10:46 +00:00
> Nous connaissons toutes les entreprises dans le périmètre et leurs actifs, il est temps de trouver les domaines dans le périmètre.
2021-06-27 14:28:05 +00:00
_Veuillez noter que dans les techniques proposées suivantes, vous pouvez également trouver des sous-domaines et ces informations ne doivent pas être sous-estimées._
2021-06-27 14:28:05 +00:00
Tout d'abord, vous devriez rechercher le(s) **domaine(s) principal(aux)** de chaque entreprise. Par exemple, pour _Tesla Inc._, ce sera _tesla.com_.
2021-06-27 14:28:05 +00:00
2023-06-03 13:10:46 +00:00
### **DNS inversé**
2021-06-27 14:28:05 +00:00
Une fois que vous avez trouvé toutes les plages d'adresses IP des domaines, vous pouvez essayer d'effectuer des **recherches DNS inversées** sur ces **adresses IP pour trouver d'autres domaines dans le périmètre**. Essayez d'utiliser un serveur DNS de la victime ou un serveur DNS bien connu (1.1.1.1, 8.8.8.8)
2021-06-27 14:28:05 +00:00
```bash
dnsrecon -r <DNS Range> -n <IP_DNS> #DNS reverse of all of the addresses
dnsrecon -d facebook.com -r 157.240.221.35/24 #Using facebooks dns
dnsrecon -r 157.240.221.35/24 -n 1.1.1.1 #Using cloudflares dns
dnsrecon -r 157.240.221.35/24 -n 8.8.8.8 #Using google dns
```
2023-06-03 13:10:46 +00:00
Pour que cela fonctionne, l'administrateur doit activer manuellement le PTR.\
Vous pouvez également utiliser un outil en ligne pour obtenir ces informations: [http://ptrarchive.com/](http://ptrarchive.com)
2021-06-27 14:28:05 +00:00
2023-06-03 13:10:46 +00:00
### **Reverse Whois (boucle)**
2021-06-27 14:28:05 +00:00
Dans un **whois**, vous pouvez trouver beaucoup d'**informations** intéressantes comme le **nom de l'organisation**, l'**adresse**, les **emails**, les numéros de téléphone... Mais ce qui est encore plus intéressant, c'est que vous pouvez trouver **d'autres actifs liés à l'entreprise** si vous effectuez des recherches **reverse whois** en utilisant l'une de ces informations (par exemple, d'autres registres whois où le même email apparaît).\
Vous pouvez utiliser des outils en ligne comme:
2021-06-27 14:28:05 +00:00
2023-06-03 13:10:46 +00:00
* [https://viewdns.info/reversewhois/](https://viewdns.info/reversewhois/) - **Gratuit**
* [https://domaineye.com/reverse-whois](https://domaineye.com/reverse-whois) - **Gratuit**
* [https://www.reversewhois.io/](https://www.reversewhois.io) - **Gratuit**
* [https://www.whoxy.com/](https://www.whoxy.com) - **Gratuit** (web), pas d'API gratuite.
* [http://reversewhois.domaintools.com/](http://reversewhois.domaintools.com) - Pas gratuit
* [https://drs.whoisxmlapi.com/reverse-whois-search](https://drs.whoisxmlapi.com/reverse-whois-search) - Pas gratuit (seulement **100 recherches gratuites**)
* [https://www.domainiq.com/](https://www.domainiq.com) - Pas gratuit
2021-06-27 14:28:05 +00:00
2023-06-03 13:10:46 +00:00
Vous pouvez automatiser cette tâche en utilisant [**DomLink** ](https://github.com/vysecurity/DomLink)(nécessite une clé API whoxy).\
Vous pouvez également effectuer une découverte automatique du reverse whois avec [amass](https://github.com/OWASP/Amass): `amass intel -d tesla.com -whois`
2021-06-27 14:28:05 +00:00
2023-06-03 13:10:46 +00:00
**Notez que vous pouvez utiliser cette technique pour découvrir plus de noms de domaine chaque fois que vous trouvez un nouveau domaine.**
2021-06-27 14:28:05 +00:00
2022-05-01 13:25:53 +00:00
### **Trackers**
2021-06-27 14:28:05 +00:00
2023-06-03 13:10:46 +00:00
Si vous trouvez le **même ID du même tracker** sur 2 pages différentes, vous pouvez supposer que **les deux pages** sont **gérées par la même équipe**.\
Par exemple, si vous voyez le même **ID Google Analytics** ou le même **ID Adsense** sur plusieurs pages.
2021-06-27 14:28:05 +00:00
2023-06-03 13:10:46 +00:00
Il existe des pages et des outils qui vous permettent de rechercher ces trackers et plus encore:
2021-06-27 14:28:05 +00:00
2023-03-12 18:00:45 +00:00
* [**Udon**](https://github.com/dhn/udon)
* [**BuiltWith**](https://builtwith.com)
* [**Sitesleuth**](https://www.sitesleuth.io)
* [**Publicwww**](https://publicwww.com)
* [**SpyOnWeb**](http://spyonweb.com)
2021-06-27 14:28:05 +00:00
2022-05-01 13:25:53 +00:00
### **Favicon**
2021-06-27 14:28:05 +00:00
Saviez-vous que nous pouvons trouver des domaines et sous-domaines liés à notre cible en recherchant le même hash d'icône favicon ? C'est exactement ce que fait l'outil [favihash.py](https://github.com/m4ll0k/Bug-Bounty-Toolz/blob/master/favihash.py) créé par [@m4ll0k2](https://twitter.com/m4ll0k2). Voici comment l'utiliser:
2021-06-27 14:28:05 +00:00
```bash
cat my_targets.txt | xargs -I %% bash -c 'echo "http://%%/favicon.ico"' > targets.txt
python3 favihash.py -f https://target/favicon.ico -t targets.txt -s
```
![favihash - découvrir les domaines avec le même hachage d'icône favicon](https://www.infosecmatter.com/wp-content/uploads/2020/07/favihash.jpg)
2021-06-27 14:28:05 +00:00
En termes simples, favihash nous permettra de découvrir les domaines qui ont le même hachage d'icône favicon que notre cible.
2022-01-26 16:08:23 +00:00
De plus, vous pouvez également rechercher des technologies en utilisant le hachage favicon comme expliqué dans [**cet article de blog**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139). Cela signifie que si vous connaissez le **hachage de l'icône favicon d'une version vulnérable d'une technologie web**, vous pouvez rechercher si elle se trouve dans shodan et **trouver d'autres endroits vulnérables**.
2022-01-26 16:08:23 +00:00
```bash
2022-06-02 09:51:06 +00:00
shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}'
2022-01-26 16:08:23 +00:00
```
2023-06-03 13:10:46 +00:00
Voici comment vous pouvez **calculer le hash du favicon** d'un site web :
2022-08-16 17:31:28 +00:00
```python
import mmh3
import requests
import codecs
def fav_hash(url):
response = requests.get(url)
favicon = codecs.encode(response.content,"base64")
fhash = mmh3.hash(favicon)
print(f"{url} : {fhash}")
return fhash
2022-08-16 17:31:28 +00:00
```
2023-06-03 13:10:46 +00:00
### **Droit d'auteur / Chaîne unique**
2022-08-16 17:31:28 +00:00
Recherchez à l'intérieur des pages web des **chaînes qui pourraient être partagées entre différents sites web de la même organisation**. La **chaîne de droit d'auteur** pourrait être un bon exemple. Ensuite, recherchez cette chaîne sur **Google**, dans d'autres **navigateurs** ou même sur **Shodan** : `shodan search http.html:"Chaîne de droit d'auteur"`
2022-08-16 17:31:28 +00:00
### **Heure CRT**
2022-08-17 10:33:09 +00:00
Il est courant d'avoir une tâche cron telle que
2022-08-17 10:33:09 +00:00
```bash
# /etc/crontab
37 13 */10 * * certbot renew --post-hook "systemctl reload nginx"
```
Pour renouveler tous les certificats de domaine sur le serveur. Cela signifie que même si l'autorité de certification utilisée pour cela ne définit pas l'heure à laquelle elle a été générée dans la période de validité, il est possible de **trouver des domaines appartenant à la même entreprise dans les journaux de transparence des certificats**.\
Consultez ce [**document pour plus d'informations**](https://swarm.ptsecurity.com/discovering-domains-via-a-time-correlation-attack/).
2022-08-17 10:33:09 +00:00
2023-06-03 13:10:46 +00:00
### **Prise de contrôle passive**
2023-03-23 12:48:36 +00:00
Apparemment, il est courant que les gens attribuent des sous-domaines à des adresses IP appartenant à des fournisseurs de cloud et qu'à un moment donné, ils **perdent cette adresse IP mais oublient de supprimer l'enregistrement DNS**. Par conséquent, il suffit de **créer une machine virtuelle** dans un cloud (comme Digital Ocean) pour **prendre réellement le contrôle de certains sous-domaines**.
2023-03-23 12:48:36 +00:00
[**Cet article**](https://kmsec.uk/blog/passive-takeover/) explique une histoire à ce sujet et propose un script qui **crée une machine virtuelle dans DigitalOcean**, **obtient** l'**IPv4** de la nouvelle machine et **recherche dans Virustotal les enregistrements de sous-domaine** qui y pointent.
2023-03-23 12:48:36 +00:00
2023-06-03 13:10:46 +00:00
### **Autres méthodes**
2021-06-27 14:28:05 +00:00
**Notez que vous pouvez utiliser cette technique pour découvrir plus de noms de domaine chaque fois que vous en trouvez un nouveau.**
2021-06-27 14:28:05 +00:00
2022-04-28 15:47:13 +00:00
**Shodan**
2021-06-27 14:28:05 +00:00
Comme vous connaissez déjà le nom de l'organisation propriétaire de l'espace IP, vous pouvez effectuer une recherche dans Shodan en utilisant : `org:"Tesla, Inc."` Vérifiez les hôtes trouvés pour de nouveaux domaines inattendus dans le certificat TLS.
2021-06-27 14:28:05 +00:00
Vous pouvez accéder au **certificat TLS** de la page web principale, obtenir le **nom de l'organisation** et ensuite rechercher ce nom dans les **certificats TLS** de toutes les pages web connues de **Shodan** avec le filtre : `ssl:"Tesla Motors"` ou utilisez un outil comme [**sslsearch**](https://github.com/HarshVaragiya/sslsearch).
2021-06-27 14:28:05 +00:00
2022-04-28 15:47:13 +00:00
**Assetfinder**
2021-06-27 14:28:05 +00:00
[**Assetfinder**](https://github.com/tomnomnom/assetfinder) est un outil qui recherche des **domaines associés** à un domaine principal et leurs **sous-domaines**, c'est assez incroyable.
2021-06-27 14:28:05 +00:00
2023-06-03 13:10:46 +00:00
### **Recherche de vulnérabilités**
2021-06-27 14:28:05 +00:00
Vérifiez s'il y a une [prise de contrôle de domaine](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover). Peut-être qu'une entreprise **utilise un domaine** mais qu'elle **a perdu la propriété**. Il suffit de l'enregistrer (si c'est assez bon marché) et de le signaler à l'entreprise.
2021-06-27 14:28:05 +00:00
Si vous trouvez un **domaine avec une IP différente** de celles que vous avez déjà trouvées lors de la découverte des actifs, vous devriez effectuer une **analyse de vulnérabilité de base** (en utilisant Nessus ou OpenVAS) et une [**analyse de port**](../pentesting-network/#discovering-hosts-from-the-outside) avec **nmap/masscan/shodan**. Selon les services qui sont en cours d'exécution, vous pouvez trouver dans **ce livre quelques astuces pour les "attaquer"**.\
Notez que parfois le domaine est hébergé dans une IP qui n'est pas contrôlée par le client, donc il n'est pas inclus dans le périmètre, soyez prudent.
2021-06-27 14:28:05 +00:00
2022-07-21 20:26:09 +00:00
<img src="../../.gitbook/assets/i3.png" alt="" data-size="original">\
**Astuce pour les primes de bugs** : **inscrivez-vous** sur **Intigriti**, une plateforme premium de **prime de bugs créée par des hackers, pour des hackers** ! Rejoignez-nous sur [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) dès aujourd'hui et commencez à gagner des primes allant jusqu'à **100 000 $** !
2022-05-01 16:32:23 +00:00
{% embed url="https://go.intigriti.com/hacktricks" %}
2023-06-03 13:10:46 +00:00
## Sous-domaines
2021-06-27 14:28:05 +00:00
2023-06-03 13:10:46 +00:00
> Nous connaissons toutes les entreprises dans le périmètre, tous les actifs de chaque entreprise et tous les domaines liés aux entreprises.
2021-06-27 14:28:05 +00:00
2023-06-03 13:10:46 +00:00
Il est temps de trouver tous les sous-domaines possibles de chaque domaine trouvé.
2021-06-27 14:28:05 +00:00
2022-05-01 13:25:53 +00:00
### **DNS**
2021-06-27 14:28:05 +00:00
Essayons d'obtenir les **sous-domaines** à partir des enregistrements **DNS**. Nous devrions également essayer la **transfert de zone** (si vulnérable, vous devriez le signaler).
2021-06-27 14:28:05 +00:00
```bash
dnsrecon -a -d tesla.com
```
2022-05-01 13:25:53 +00:00
### **OSINT**
2021-06-27 14:28:05 +00:00
La manière la plus rapide d'obtenir de nombreux sous-domaines est de rechercher dans des sources externes. Les **outils** les plus utilisés sont les suivants (pour de meilleurs résultats, configurez les clés API) :
2021-06-27 14:28:05 +00:00
* [**BBOT**](https://github.com/blacklanternsecurity/bbot)
```bash
# subdomains
bbot -t tesla.com -f subdomain-enum
# subdomains (passive only)
bbot -t tesla.com -f subdomain-enum -rf passive
# subdomains + port scan + web screenshots
bbot -t tesla.com -f subdomain-enum -m naabu gowitness -n my_scan -o .
```
2022-08-16 17:31:28 +00:00
* [**Amass**](https://github.com/OWASP/Amass)
2021-06-27 14:28:05 +00:00
```bash
amass enum [-active] [-ip] -d tesla.com
2022-08-16 17:31:28 +00:00
amass enum -d tesla.com | grep tesla.com # To just list subdomains
```
* [**subfinder**](https://github.com/projectdiscovery/subfinder)
2022-08-16 17:31:28 +00:00
```bash
# Subfinder, use -silent to only have subdomains in the output
2021-06-27 14:28:05 +00:00
./subfinder-linux-amd64 -d tesla.com [-silent]
2022-08-16 17:31:28 +00:00
```
* [**findomain**](https://github.com/Edu4rdSHL/findomain/)
2022-08-16 17:31:28 +00:00
```bash
# findomain, use -silent to only have subdomains in the output
2021-06-27 14:28:05 +00:00
./findomain-linux -t tesla.com [--quiet]
```
* [**OneForAll**](https://github.com/shmilylty/OneForAll/tree/master/docs/fr-fr)
2022-08-16 17:31:28 +00:00
```bash
2022-08-16 19:03:18 +00:00
python3 oneforall.py --target tesla.com [--dns False] [--req False] [--brute False] run
2022-08-16 17:31:28 +00:00
```
* [**assetfinder**](https://github.com/tomnomnom/assetfinder)
2022-08-16 17:31:28 +00:00
```bash
assetfinder --subs-only <domain>
```
* [**Sudomy**](https://github.com/Screetsec/Sudomy)
2022-08-16 17:55:51 +00:00
```bash
2022-08-19 14:23:12 +00:00
# It requires that you create a sudomy.api file with API keys
2022-08-16 17:55:51 +00:00
sudomy -d tesla.com
```
* [**vita**](https://github.com/junnlikestea/vita)
2022-08-19 14:23:12 +00:00
```
vita -d tesla.com
```
2022-09-12 12:25:59 +00:00
* [**theHarvester**](https://github.com/laramies/theHarvester)
2022-08-16 18:51:58 +00:00
```bash
theHarvester -d tesla.com -b "anubis, baidu, bing, binaryedge, bingapi, bufferoverun, censys, certspotter, crtsh, dnsdumpster, duckduckgo, fullhunt, github-code, google, hackertarget, hunter, intelx, linkedin, linkedin_links, n45ht, omnisint, otx, pentesttools, projectdiscovery, qwant, rapiddns, rocketreach, securityTrails, spyse, sublist3r, threatcrowd, threatminer, trello, twitter, urlscan, virustotal, yahoo, zoomeye"
```
Il existe **d'autres outils/API intéressants** qui, même s'ils ne sont pas directement spécialisés dans la recherche de sous-domaines, peuvent être utiles pour trouver des sous-domaines, tels que :
2022-08-16 18:51:58 +00:00
2023-06-03 13:10:46 +00:00
* [**Crobat**](https://github.com/cgboal/sonarsearch)**:** Utilise l'API [https://sonar.omnisint.io](https://sonar.omnisint.io) pour obtenir des sous-domaines.
2022-08-16 17:31:28 +00:00
```bash
# Get list of subdomains in output from the API
## This is the API the crobat tool will use
curl https://sonar.omnisint.io/subdomains/tesla.com | jq -r ".[]"
```
2023-06-03 13:10:46 +00:00
* [**API gratuite JLDC**](https://jldc.me/anubis/subdomains/google.com)
2022-09-12 12:25:59 +00:00
```bash
curl https://jldc.me/anubis/subdomains/tesla.com | jq -r ".[]"
```
2023-06-03 13:10:46 +00:00
* [**RapidDNS**](https://rapiddns.io) API gratuit
2022-08-16 17:31:28 +00:00
```bash
# Get Domains from rapiddns free API
2021-06-27 14:28:05 +00:00
rapiddns(){
curl -s "https://rapiddns.io/subdomain/$1?full=1" \
| grep -oE "[\.a-zA-Z0-9-]+\.$1" \
| sort -u
2022-08-16 17:31:28 +00:00
}
rapiddns tesla.com
```
2022-09-12 12:25:59 +00:00
* [**https://crt.sh/**](https://crt.sh)
2022-08-16 17:31:28 +00:00
```bash
# Get Domains from crt free API
crt(){
curl -s "https://crt.sh/?q=%25.$1" \
| grep -oE "[\.a-zA-Z0-9-]+\.$1" \
| sort -u
2021-06-27 14:28:05 +00:00
}
2022-08-16 17:31:28 +00:00
crt tesla.com
2021-06-27 14:28:05 +00:00
```
* [**gau**](https://github.com/lc/gau)**:** récupère les URL connues à partir de l'Open Threat Exchange d'AlienVault, de la Wayback Machine et de Common Crawl pour un domaine donné.
2022-08-16 17:31:28 +00:00
```bash
# Get subdomains from GAUs found URLs
2022-08-18 14:58:49 +00:00
gau --subs tesla.com | cut -d "/" -f 3 | sort -u
2022-08-16 17:31:28 +00:00
```
2023-06-03 13:10:46 +00:00
* [**SubDomainizer**](https://github.com/nsonaniya2010/SubDomainizer) **&** [**subscraper**](https://github.com/Cillian-Collins/subscraper): Ils parcourent le web à la recherche de fichiers JS et extraient les sous-domaines à partir de là.
2022-08-16 17:31:28 +00:00
```bash
# Get only subdomains from SubDomainizer
python3 SubDomainizer.py -u https://tesla.com | grep tesla.com
# Get only subdomains from subscraper, this already perform recursion over the found results
python subscraper.py -u tesla.com | grep tesla.com | cut -d " " -f
```
2022-09-12 12:25:59 +00:00
* [**Shodan**](https://www.shodan.io/)
2022-08-16 17:31:28 +00:00
```bash
# Get info about the domain
shodan domain <domain>
# Get other pages with links to subdomains
shodan search "http.html:help.domain.com"
```
2022-09-12 12:25:59 +00:00
* [**Censys subdomain finder**](https://github.com/christophetd/censys-subdomain-finder)
```bash
2022-08-16 17:59:28 +00:00
export CENSYS_API_ID=...
export CENSYS_API_SECRET=...
python3 censys-subdomain-finder.py tesla.com
```
* [**DomainTrail.py**](https://github.com/gatete/DomainTrail)
```bash
python3 DomainTrail.py -d example.com
```
* [**securitytrails.com**](https://securitytrails.com/) propose une API gratuite pour rechercher des sous-domaines et l'historique des adresses IP.
* [**chaos.projectdiscovery.io**](https://chaos.projectdiscovery.io/#/)
2022-08-16 17:59:28 +00:00
Ce projet offre gratuitement tous les sous-domaines liés aux programmes de bug bounty. Vous pouvez également accéder à ces données en utilisant [chaospy](https://github.com/dr-0x0x/chaospy) ou même accéder à la portée utilisée par ce projet [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list)
2022-08-16 17:31:28 +00:00
Vous pouvez trouver une **comparaison** de nombreux outils ici : [https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off](https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off)
### **Brute force DNS**
2023-03-12 18:00:45 +00:00
Essayons de trouver de nouveaux sous-domaines en effectuant une attaque par force brute sur les serveurs DNS en utilisant des noms de sous-domaine possibles.
Pour cette action, vous aurez besoin de certaines **listes de mots courants pour les sous-domaines** :
2021-06-27 14:28:05 +00:00
* [https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056](https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056)
2022-08-19 21:02:15 +00:00
* [https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt](https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt)
* [https://localdomain.pw/subdomain-bruteforce-list/all.txt.zip](https://localdomain.pw/subdomain-bruteforce-list/all.txt.zip)
2021-06-27 14:28:05 +00:00
* [https://github.com/pentester-io/commonspeak](https://github.com/pentester-io/commonspeak)
2022-08-19 15:26:15 +00:00
* [https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS](https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS)
2021-06-27 14:28:05 +00:00
Et aussi les adresses IP des bons résolveurs DNS. Pour générer une liste de résolveurs DNS de confiance, vous pouvez télécharger les résolveurs depuis [https://public-dns.info/nameservers-all.txt](https://public-dns.info/nameservers-all.txt) et utiliser [**dnsvalidator**](https://github.com/vortexau/dnsvalidator) pour les filtrer. Ou vous pouvez utiliser : [https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt](https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt)
2022-08-19 15:26:15 +00:00
Les outils les plus recommandés pour la force brute DNS sont :
2021-06-27 14:28:05 +00:00
* [**massdns**](https://github.com/blechschmidt/massdns) : C'était le premier outil à effectuer une force brute DNS efficace. Il est très rapide mais il est sujet à des faux positifs.
2021-06-27 14:28:05 +00:00
```bash
sed 's/$/.domain.com/' subdomains.txt > bf-subdomains.txt
./massdns -r resolvers.txt -w /tmp/results.txt bf-subdomains.txt
grep -E "tesla.com. [0-9]+ IN A .+" /tmp/results.txt
2022-08-19 15:26:15 +00:00
```
* [**gobuster**](https://github.com/OJ/gobuster) : Celui-ci, je pense, utilise simplement 1 résolveur.
2022-08-19 15:26:15 +00:00
```
gobuster dns -d mysite.com -t 50 -w subdomains.txt
```
* [**shuffledns**](https://github.com/projectdiscovery/shuffledns) est un wrapper autour de `massdns`, écrit en go, qui vous permet d'énumérer les sous-domaines valides en utilisant la force brute active, ainsi que de résoudre les sous-domaines avec une gestion des jokers et une prise en charge facile de l'entrée-sortie.
2022-08-19 15:26:15 +00:00
```
2021-06-27 14:28:05 +00:00
shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt
2022-08-19 15:26:15 +00:00
```
* [**puredns**](https://github.com/d3mondev/puredns): Il utilise également `massdns`.
2022-08-19 15:26:15 +00:00
```
2021-06-27 14:28:05 +00:00
puredns bruteforce all.txt domain.com
```
* [**aiodnsbrute**](https://github.com/blark/aiodnsbrute) utilise asyncio pour effectuer une force brute de noms de domaine de manière asynchrone.
2022-08-19 15:26:15 +00:00
```
aiodnsbrute -r resolvers -w wordlist.txt -vv -t 1024 domain.com
```
### Deuxième tour de force brute DNS
2022-08-19 15:26:15 +00:00
Après avoir trouvé des sous-domaines en utilisant des sources ouvertes et la force brute, vous pouvez générer des variations des sous-domaines trouvés pour essayer d'en trouver encore plus. Plusieurs outils sont utiles à cette fin :
2022-08-19 15:26:15 +00:00
2023-06-03 13:10:46 +00:00
* [**dnsgen**](https://github.com/ProjectAnte/dnsgen)**:** À partir des domaines et des sous-domaines, génère des permutations.
2022-08-19 15:26:15 +00:00
```bash
cat subdomains.txt | dnsgen -
```
* [**goaltdns**](https://github.com/subfinder/goaltdns): Étant donné les domaines et sous-domaines, générer des permutations.
* Vous pouvez obtenir la liste de permutations de goaltdns **wordlist** [**ici**](https://github.com/subfinder/goaltdns/blob/master/words.txt).
2022-08-19 15:26:15 +00:00
```bash
goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt
```
* [**gotator**](https://github.com/Josue87/gotator)**:** Étant donné les domaines et sous-domaines, générer des permutations. Si aucun fichier de permutations n'est indiqué, gotator utilisera le sien.
2022-08-19 15:26:15 +00:00
```
gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
```
* [**altdns**](https://github.com/infosec-au/altdns): En plus de générer des permutations de sous-domaines, il peut également essayer de les résoudre (mais il est préférable d'utiliser les outils précédemment commentés).
* Vous pouvez obtenir la liste de permutations **wordlist** d'altdns [**ici**](https://github.com/infosec-au/altdns/blob/master/words.txt).
2022-08-19 15:26:15 +00:00
```
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
```
* [**dmut**](https://github.com/bp0lr/dmut) : Un autre outil pour effectuer des permutations, des mutations et des altérations de sous-domaines. Cet outil va forcer la réponse (il ne prend pas en charge les caractères génériques DNS).
* Vous pouvez obtenir la liste de mots de permutations de dmut [**ici**](https://raw.githubusercontent.com/bp0lr/dmut/main/words.txt).
2022-08-19 15:26:15 +00:00
```bash
2022-09-12 12:25:59 +00:00
cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \
--dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt
2022-08-19 15:26:15 +00:00
```
* [**alterx**](https://github.com/projectdiscovery/alterx)**:** Basé sur un domaine, il **génère de nouveaux noms de sous-domaines potentiels** en fonction des modèles indiqués pour essayer de découvrir plus de sous-domaines.
2021-06-27 14:28:05 +00:00
2023-06-03 13:10:46 +00:00
#### Génération intelligente de permutations
2022-11-02 10:27:27 +00:00
* [**regulator**](https://github.com/cramppet/regulator): Pour plus d'informations, lisez ce [**post**](https://cramppet.github.io/regulator/index.html), mais il va essentiellement prendre les **parties principales** des **sous-domaines découverts** et les mélanger pour trouver plus de sous-domaines.
2022-11-02 10:27:27 +00:00
```bash
python3 main.py adobe.com adobe adobe.rules
make_brute_list.sh adobe.rules adobe.brute
puredns resolve adobe.brute --write adobe.valid
```
* [**subzuf**](https://github.com/elceef/subzuf)**:** _subzuf_ est un outil de fuzzing de sous-domaines couplé à un algorithme DNS extrêmement simple mais efficace guidé par les réponses. Il utilise un ensemble de données d'entrée fournies, telles qu'une liste de mots personnalisée ou des enregistrements DNS/TLS historiques, pour synthétiser avec précision davantage de noms de domaine correspondants et les étendre encore plus dans une boucle basée sur les informations recueillies lors de l'analyse DNS.
2022-12-20 15:51:45 +00:00
```
echo www | subzuf facebook.com
```
2023-06-03 13:10:46 +00:00
### **Workflow de découverte de sous-domaines**
2022-12-20 15:51:45 +00:00
Consultez cet article de blog que j'ai écrit sur la façon d'**automatiser la découverte de sous-domaines** à partir d'un domaine en utilisant des **workflows astucieux** afin de ne pas avoir à lancer manuellement une multitude d'outils sur mon ordinateur :
2022-10-27 00:35:39 +00:00
2023-01-18 11:08:57 +00:00
{% embed url="https://trickest.com/blog/full-subdomain-discovery-using-workflow/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/blog/full-subdomain-brute-force-discovery-using-workflow/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2022-10-27 00:35:39 +00:00
2023-06-03 13:10:46 +00:00
### **VHosts / Hôtes virtuels**
2021-06-27 14:28:05 +00:00
Si vous trouvez une adresse IP contenant **une ou plusieurs pages web** appartenant à des sous-domaines, vous pouvez essayer de **trouver d'autres sous-domaines avec des sites web sur cette IP** en recherchant dans des sources **OSINT** des domaines dans une IP ou en **brute-forçant les noms de domaine VHost sur cette IP**.
2022-09-12 12:25:59 +00:00
#### OSINT
Vous pouvez trouver certains **VHosts dans les IPs en utilisant** [**HostHunter**](https://github.com/SpiderLabs/HostHunter) **ou d'autres APIs**.
2021-06-27 14:28:05 +00:00
**Brute Force**
2021-06-27 14:28:05 +00:00
Si vous soupçonnez qu'un sous-domaine peut être caché sur un serveur web, vous pouvez essayer de le brute forcer :
2021-06-27 14:28:05 +00:00
```bash
2022-10-02 23:08:05 +00:00
ffuf -c -w /path/to/wordlist -u http://victim.com -H "Host: FUZZ.victim.com"
2021-06-27 14:28:05 +00:00
gobuster vhost -u https://mysite.com -t 50 -w subdomains.txt
wfuzz -c -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-20000.txt --hc 400,404,403 -H "Host: FUZZ.example.com" -u http://example.com -t 100
#From https://github.com/allyshka/vhostbrute
vhostbrute.py --url="example.com" --remoteip="10.1.1.15" --base="www.example.com" --vhosts="vhosts_full.list"
#https://github.com/codingo/VHostScan
VHostScan -t example.com
2021-06-27 14:28:05 +00:00
```
{% hint style="info" %}
Avec cette technique, vous pourrez peut-être même accéder à des points de terminaison internes/cachés.
2021-06-27 14:28:05 +00:00
{% endhint %}
### **Brute Force CORS**
2021-06-27 14:28:05 +00:00
Parfois, vous trouverez des pages qui ne renvoient l'en-tête _**Access-Control-Allow-Origin**_ que lorsque un domaine/sous-domaine valide est défini dans l'en-tête _**Origin**_. Dans ces scénarios, vous pouvez exploiter ce comportement pour **découvrir** de nouveaux **sous-domaines**.
2021-06-27 14:28:05 +00:00
```bash
ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http://FUZZ.crossfit.htb' -mr "Access-Control-Allow-Origin" -ignore-body
```
### **Brute Force des Buckets**
2021-06-27 14:28:05 +00:00
Lors de la recherche de **sous-domaines**, gardez un œil pour voir s'ils pointent vers un **bucket**, et dans ce cas, [**vérifiez les permissions**](../../network-services-pentesting/pentesting-web/buckets/).\
De plus, à ce stade, vous connaîtrez tous les domaines inclus dans le périmètre, essayez donc de [**forcer les noms de bucket possibles et vérifiez les permissions**](../../network-services-pentesting/pentesting-web/buckets/).
2021-06-27 14:28:05 +00:00
2023-06-03 13:10:46 +00:00
### **Surveillance**
2021-06-27 14:28:05 +00:00
Vous pouvez **surveiller** la création de **nouveaux sous-domaines** d'un domaine en surveillant les **logs de transparence des certificats** que [**sublert**](https://github.com/yassineaboukir/sublert/blob/master/sublert.py) fait.
2021-06-27 14:28:05 +00:00
2023-06-03 13:10:46 +00:00
### **Recherche de vulnérabilités**
2021-06-27 14:28:05 +00:00
Vérifiez les éventuelles [**prises de contrôle de sous-domaine**](../../pentesting-web/domain-subdomain-takeover.md#subdomain-takeover).\
Si le **sous-domaine** pointe vers un **bucket S3**, [**vérifiez les permissions**](../../network-services-pentesting/pentesting-web/buckets/).
2021-06-27 14:28:05 +00:00
Si vous trouvez un **sous-domaine avec une adresse IP différente** de celles que vous avez déjà trouvées lors de la découverte des actifs, vous devriez effectuer une **analyse de vulnérabilité de base** (en utilisant Nessus ou OpenVAS) et un [**scan de ports**](../pentesting-network/#discovering-hosts-from-the-outside) avec **nmap/masscan/shodan**. Selon les services en cours d'exécution, vous pouvez trouver dans **ce livre quelques astuces pour les "attaquer"**.\
Notez que parfois, le sous-domaine est hébergé dans une adresse IP qui n'est pas contrôlée par le client, donc elle n'est pas incluse dans le périmètre, soyez prudent.
2021-06-27 14:28:05 +00:00
2023-06-03 13:10:46 +00:00
## Adresses IP
2022-09-12 12:25:59 +00:00
2023-06-03 13:10:46 +00:00
Dans les étapes initiales, vous avez peut-être **trouvé des plages d'adresses IP, des domaines et des sous-domaines**.\
Il est temps de **recueillir toutes les adresses IP de ces plages** et pour les **domaines/sous-domaines (requêtes DNS)**.
2022-09-12 12:25:59 +00:00
En utilisant les services des **API gratuites** suivantes, vous pouvez également trouver les **adresses IP précédemment utilisées par les domaines et les sous-domaines**. Ces adresses IP pourraient toujours appartenir au client (et pourraient vous permettre de trouver des [**contournements de CloudFlare**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md))
2022-09-12 12:25:59 +00:00
2022-09-27 00:18:19 +00:00
* [**https://securitytrails.com/**](https://securitytrails.com/)
2022-09-12 12:25:59 +00:00
Vous pouvez également vérifier les domaines pointant vers une adresse IP spécifique à l'aide de l'outil [**hakip2host**](https://github.com/hakluke/hakip2host)
2023-06-03 13:10:46 +00:00
### **Recherche de vulnérabilités**
2022-09-12 12:25:59 +00:00
**Scan de ports de toutes les adresses IP qui n'appartiennent pas à des CDN** (car vous ne trouverez probablement rien d'intéressant là-bas). Dans les services en cours d'exécution découverts, vous pourriez **trouver des vulnérabilités**.
2022-09-12 12:25:59 +00:00
**Trouvez un** [**guide**](../pentesting-network/) **sur la façon de scanner les hôtes**.
2022-09-12 13:26:56 +00:00
2023-06-03 13:10:46 +00:00
## Recherche de serveurs Web
2021-06-27 14:28:05 +00:00
> Nous avons trouvé toutes les entreprises et leurs actifs, et nous connaissons les plages d'adresses IP, les domaines et les sous-domaines inclus dans le périmètre. Il est temps de rechercher des serveurs Web.
2021-06-27 14:28:05 +00:00
Dans les étapes précédentes, vous avez probablement déjà effectué une **reconnaissance des adresses IP et des domaines découverts**, vous avez donc peut-être déjà trouvé tous les serveurs Web possibles. Cependant, si ce n'est pas le cas, nous allons maintenant voir quelques **astuces rapides pour rechercher des serveurs Web** dans le périmètre.
2021-06-27 14:28:05 +00:00
Veuillez noter que cela sera **orienté vers la découverte d'applications Web**, vous devriez donc également **effectuer la recherche de vulnérabilités** et le **scan de ports** (**si autorisé** par le périmètre).
2021-06-27 14:28:05 +00:00
Une **méthode rapide** pour découvrir les **ports ouverts** liés aux serveurs **web** en utilisant [**masscan peut être trouvée ici**](../pentesting-network/#http-port-discovery).\
2023-06-03 13:10:46 +00:00
Un autre outil pratique pour rechercher des serveurs Web est [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) et [**httpx**](https://github.com/projectdiscovery/httpx). Vous passez simplement une liste de domaines et il essaiera de se connecter aux ports 80 (http) et 443 (https). De plus, vous pouvez indiquer d'essayer d'autres ports :
2021-06-27 14:28:05 +00:00
```bash
cat /tmp/domains.txt | httprobe #Test all domains inside the file for port 80 and 443
cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 and 8080 and 8443
```
2023-06-03 13:10:46 +00:00
### **Captures d'écran**
2021-06-27 14:28:05 +00:00
Maintenant que vous avez découvert **tous les serveurs web** présents dans le périmètre (parmi les **adresses IP** de l'entreprise et tous les **domaines** et **sous-domaines**), vous ne savez probablement **pas par où commencer**. Alors, simplifions les choses et commençons par prendre des captures d'écran de chacun d'entre eux. En **jettant un coup d'œil** à la **page principale**, vous pouvez trouver des points d'accès **étranges** qui sont plus **susceptibles** d'être **vulnérables**.
2021-06-27 14:28:05 +00:00
Pour réaliser cette idée, vous pouvez utiliser [**EyeWitness**](https://github.com/FortyNorthSecurity/EyeWitness), [**HttpScreenshot**](https://github.com/breenmachine/httpscreenshot), [**Aquatone**](https://github.com/michenriksen/aquatone), [**Shutter**](https://shutter-project.org/downloads/third-party-packages/) ou [**webscreenshot**](https://github.com/maaaaz/webscreenshot)**.**
2021-06-27 14:28:05 +00:00
De plus, vous pourriez ensuite utiliser [**eyeballer**](https://github.com/BishopFox/eyeballer) pour parcourir toutes les **captures d'écran** et vous indiquer ce qui est susceptible de contenir des vulnérabilités et ce qui ne l'est pas.
2021-06-27 14:28:05 +00:00
## Actifs Cloud publics
2022-09-12 12:47:19 +00:00
Pour trouver des actifs Cloud potentiels appartenant à une entreprise, vous devriez **commencer par une liste de mots-clés qui identifient cette entreprise**. Par exemple, pour une entreprise de crypto, vous pourriez utiliser des mots tels que : `"crypto", "wallet", "dao", "<nom_de_domaine>", <"noms_de_sous-domaine">`.
2022-09-12 12:47:19 +00:00
Vous aurez également besoin de listes de mots couramment utilisés dans les buckets :
2022-09-12 12:47:19 +00:00
* [https://raw.githubusercontent.com/cujanovic/goaltdns/master/words.txt](https://raw.githubusercontent.com/cujanovic/goaltdns/master/words.txt)
* [https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt](https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt)
* [https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt](https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt)
Ensuite, avec ces mots, vous devriez générer des **permutations** (consultez la section [**Deuxième tour de force brute DNS**](./#second-dns-bruteforce-round) pour plus d'informations).
2022-09-12 12:47:19 +00:00
2023-06-03 13:10:46 +00:00
Avec les listes de mots résultantes, vous pouvez utiliser des outils tels que [**cloud\_enum**](https://github.com/initstring/cloud\_enum)**,** [**CloudScraper**](https://github.com/jordanpotti/CloudScraper)**,** [**cloudlist**](https://github.com/projectdiscovery/cloudlist) **ou** [**S3Scanner**](https://github.com/sa7mon/S3Scanner)**.**
2022-09-12 12:47:19 +00:00
N'oubliez pas que lorsque vous recherchez des actifs Cloud, vous devriez **chercher plus que des buckets dans AWS**.
2021-06-27 14:28:05 +00:00
2023-06-03 13:10:46 +00:00
### **Recherche de vulnérabilités**
2022-09-12 13:01:54 +00:00
Si vous trouvez des choses telles que des **buckets ou des fonctions Cloud exposés**, vous devriez **y accéder** et essayer de voir ce qu'ils vous offrent et si vous pouvez les exploiter.
2022-09-12 13:01:54 +00:00
2023-06-03 13:10:46 +00:00
## E-mails
2022-09-12 13:01:54 +00:00
Avec les **domaines** et **sous-domaines** inclus dans le périmètre, vous avez essentiellement tout ce dont vous **avez besoin pour commencer à rechercher des e-mails**. Voici les **API** et **outils** qui ont le mieux fonctionné pour moi pour trouver des e-mails d'une entreprise :
2022-09-12 13:01:54 +00:00
2023-06-03 13:10:46 +00:00
* [**theHarvester**](https://github.com/laramies/theHarvester) - avec des API
* API de [**https://hunter.io/**](https://hunter.io/) (version gratuite)
* API de [**https://app.snov.io/**](https://app.snov.io/) (version gratuite)
* API de [**https://minelead.io/**](https://minelead.io/) (version gratuite)
2022-09-12 13:01:54 +00:00
2023-06-03 13:10:46 +00:00
### **Recherche de vulnérabilités**
2022-09-12 13:01:54 +00:00
Les e-mails seront utiles ultérieurement pour **forcer les connexions web et les services d'authentification** (comme SSH). De plus, ils sont nécessaires pour les **phishings**. De plus, ces API vous donneront encore plus d'**informations sur la personne** derrière l'e-mail, ce qui est utile pour la campagne de phishing.
2022-09-12 13:01:54 +00:00
2023-06-03 13:10:46 +00:00
## Fuites d'informations d'identification
2022-09-12 13:01:54 +00:00
Avec les **domaines**, **sous-domaines** et **e-mails**, vous pouvez commencer à rechercher des informations d'identification qui ont été divulguées dans le passé et qui appartiennent à ces e-mails :
2022-09-12 13:01:54 +00:00
* [https://leak-lookup.com](https://leak-lookup.com/account/login)
* [https://www.dehashed.com/](https://www.dehashed.com/)
### **Recherche de vulnérabilités**
Si vous trouvez des informations d'identification **valides qui ont été divulguées**, c'est une victoire très facile.
## Fuites de secrets
Les fuites d'informations d'identification sont liées aux piratages d'entreprises où des **informations sensibles ont été divulguées et vendues**. Cependant, les entreprises peuvent être affectées par **d'autres fuites** dont les informations ne se trouvent pas dans ces bases de données :
### Fuites sur Github
Les informations d'identification et les API peuvent être divulguées dans les **dépôts publics** de l'**entreprise** ou des **utilisateurs** travaillant pour cette entreprise sur Github.\
Vous pouvez utiliser l'**outil** [**Leakos**](https://github.com/carlospolop/Leakos) pour **télécharger** tous les **dépôts publics** d'une **organisation** et de ses **développeurs** et exécuter [**gitleaks**](https://github.com/zricethezav/gitleaks) automatiquement dessus.
**Leakos** peut également être utilisé pour exécuter **gitleaks** sur tous les **textes** fournis par les **URL** passées en tant que parfois les **pages web contiennent également des secrets**.
#### Dorks Github
Consultez également cette **page** pour des **dorks Github** potentiels que vous pourriez également rechercher dans l'organisation que vous attaquez :
{% content-ref url="github-leaked-secrets.md" %}
[github-leaked-secrets.md](github-leaked-secrets.md)
{% endcontent-ref %}
### Fuites sur Pastes
Parfois, les attaquants ou simplement les employés **publieront du contenu de l'entreprise sur un site de collages**. Cela peut contenir ou non des **informations sensibles**, mais il est très intéressant de les rechercher.\
Vous pouvez utiliser l'outil [**Pastos**](https://github.com/carlospolop/Pastos) pour rechercher dans plus de 80 sites de collages en même temps.
### Dorks Google
Les vieux mais bons dorks Google sont toujours utiles pour trouver des **informations exposées qui ne devraient pas être là**. Le seul problème est que la [**base de données de piratage Google**](https://www.exploit-db.com/google-hacking-database) contient plusieurs **milliers** de requêtes possibles que vous ne pouvez pas exécuter manuellement. Vous pouvez donc choisir vos 10 préférées ou utiliser un **outil tel que** [**Gorks**](https://github.com/carlospolop/Gorks) **pour toutes les exécuter**.
Notez que les outils qui s'attendent à exécuter toute la base de données en utilisant le navigateur Google régulier ne se termineront jamais car Google vous bloquera très rapidement.
### **Recherche de vulnérabilités**
Si vous trouvez des **identifiants valides divulgués** ou des jetons d'API, c'est une victoire très facile.
## Vulnérabilités du code public
Si vous avez trouvé que l'entreprise a du **code open-source**, vous pouvez l'**analyser** et rechercher des **vulnérabilités**.
**Selon le langage**, il existe différents **outils** que vous pouvez utiliser :
{% content-ref url="../../network-services-pentesting/pentesting-web/code-review-tools.md" %}
[code-review-tools.md](../../network-services-pentesting/pentesting-web/code-review-tools.md)
{% endcontent-ref %}
Il existe également des services gratuits qui vous permettent de **scanner les dépôts publics**, tels que :
* [**Snyk**](https://app.snyk.io/)
## [**Méthodologie de test Web**](../../network-services-pentesting/pentesting-web/)
La **majorité des vulnérabilités** trouvées par les chasseurs de bugs se trouvent dans les **applications Web**, donc à ce stade, j'aimerais parler d'une **méthodologie de test d'application Web**, que vous pouvez [**trouver ici**](../../network-services-pentesting/pentesting-web/).
Je tiens également à mentionner spécialement la section [**Outils open source d'analyse automatique des sites Web**](../../network-services-pentesting/pentesting-web/#automatic-scanners), car, bien que vous ne deviez pas vous attendre à ce qu'ils trouvent des vulnérabilités très sensibles, ils sont utiles pour les intégrer dans des **flux de travail pour obtenir des informations Web initiales**.
## Récapitulation
> Félicitations ! À ce stade, vous avez déjà effectué **toute l'énumération de base**. Oui, c'est basique car beaucoup plus d'énumération peut être faite (nous verrons plus de techniques plus tard).
Donc, vous avez déjà :
1. Trouvé toutes les **entreprises** dans le périmètre
2. Trouvé tous les **actifs** appartenant aux entreprises (et effectué une analyse des vulnérabilités si cela fait partie du périmètre)
3. Trouvé tous les **domaines** appartenant aux entreprises
4. Trouvé tous les **sous-domaines** des domaines (y a-t-il une prise de contrôle de sous-domaine ?)
5. Trouvé toutes les **adresses IP** (à partir de CDNs et **non à partir de CDNs**) dans le périmètre.
6. Trouvé tous les **serveurs Web** et pris une **capture d'écran** (y a-t-il quelque chose d'étrange qui mérite un examen plus approfondi ?)
7. Trouvé tous les **actifs potentiels dans le cloud public** appartenant à l'entreprise.
8. **Adresses e-mail**, **fuites d'identifiants** et **fuites de secrets** qui pourraient vous donner une **grosse victoire très facilement**.
9. **Testé en pentestant tous les sites Web** que vous avez trouvés.
## **Outils automatiques de reconnaissance complète**
Il existe plusieurs outils disponibles qui effectueront une partie des actions proposées sur un périmètre donné.
* [**https://github.com/yogeshojha/rengine**](https://github.com/yogeshojha/rengine)
* [**https://github.com/j3ssie/Osmedeus**](https://github.com/j3ssie/Osmedeus)
* [**https://github.com/six2dez/reconftw**](https://github.com/six2dez/reconftw)
* [**https://github.com/hackerspider1/EchoPwn**](https://github.com/hackerspider1/EchoPwn) - Un peu ancien et non mis à jour
## **Références**
* **Tous les cours gratuits de** [**@Jhaddix**](https://twitter.com/Jhaddix) **(comme** [**The Bug Hunter's Methodology v4.0 - Recon Edition**](https://www.youtube.com/watch?v=p4JgIu1mceI)**)**
<img src="../../.gitbook/assets/i3.png" alt="" data-size="original">\
**Astuce pour les chasses aux bugs** : **inscrivez-vous** sur **Intigriti**, une plateforme premium de **chasse aux bugs créée par des hackers, pour des hackers** ! Rejoignez-nous sur [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) dès aujourd'hui et commencez à gagner des primes allant jusqu'à **100 000 $** !
{% embed url="https://go.intigriti.com/hacktricks" %}
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Vous travaillez dans une **entreprise de cybersécurité** ? Vous souhaitez voir votre **entreprise annoncée dans HackTricks** ? ou souhaitez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>