31 KiB
80,443 - Méthodologie de Pentesting Web
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- 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 !
- Découvrez The PEASS Family, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et au repo hacktricks-cloud.
Astuce de prime de bug : inscrivez-vous à Intigriti, une plateforme de prime de bug premium créée par des pirates, pour les pirates ! Rejoignez-nous sur https://go.intigriti.com/hacktricks aujourd'hui et commencez à gagner des primes allant jusqu'à 100 000 $ !
{% embed url="https://go.intigriti.com/hacktricks" %}
Informations de base
Le service web est le service le plus commun et le plus étendu et il existe de différents types de vulnérabilités.
Port par défaut : 80 (HTTP), 443 (HTTPS)
PORT STATE SERVICE
80/tcp open http
443/tcp open ssl/https
nc -v domain.com 80 # GET / HTTP/1.0
openssl s_client -connect domain.com:443 # GET / HTTP/1.0
Conseils pour les API Web
{% content-ref url="web-api-pentesting.md" %} web-api-pentesting.md {% endcontent-ref %}
Résumé de la méthodologie
Dans cette méthodologie, nous supposons que vous allez attaquer un domaine (ou sous-domaine) et uniquement celui-ci. Vous devez donc appliquer cette méthodologie à chaque domaine, sous-domaine ou adresse IP découvert avec un serveur web indéterminé dans le périmètre.
- Commencez par identifier les technologies utilisées par le serveur web. Recherchez des astuces à garder à l'esprit pendant le reste du test si vous pouvez identifier avec succès la technologie.
- Toute vulnérabilité connue de la version de la technologie ?
- Utilisation d'une technologie bien connue ? Une astuce utile pour extraire plus d'informations ?
- Tout scanner spécialisé à exécuter (comme wpscan) ?
- Lancez des scanners à usage général. Vous ne savez jamais s'ils vont trouver quelque chose ou s'ils vont trouver des informations intéressantes.
- Commencez par les vérifications initiales : robots, sitemap, erreur 404 et analyse SSL/TLS (si HTTPS).
- Commencez à spider la page web : Il est temps de trouver tous les fichiers, dossiers et paramètres possibles utilisés. Vérifiez également les découvertes spéciales.
- Notez qu'à chaque fois qu'un nouveau répertoire est découvert lors du brute-forcing ou du spidering, il doit être spideré.
- Brute-Forcing de répertoires : Essayez de forcer le passage de tous les dossiers découverts à la recherche de nouveaux fichiers et répertoires.
- Notez qu'à chaque fois qu'un nouveau répertoire est découvert lors du brute-forcing ou du spidering, il doit être forcé.
- Vérification des sauvegardes : Testez si vous pouvez trouver des sauvegardes des fichiers découverts en ajoutant des extensions de sauvegarde courantes.
- Brute-Force des paramètres : Essayez de trouver des paramètres cachés.
- Une fois que vous avez identifié tous les points d'extrémité possibles acceptant des entrées utilisateur, vérifiez toutes sortes de vulnérabilités qui y sont liées.
Version du serveur (Vulnérable ?)
Identifier
Vérifiez s'il existe des vulnérabilités connues pour la version du serveur qui est en cours d'exécution.
Les en-têtes HTTP et les cookies de la réponse peuvent être très utiles pour identifier les technologies et/ou la version utilisées. L'analyse Nmap peut identifier la version du serveur, mais les outils whatweb, webtech ou https://builtwith.com/: peuvent également être utiles.
whatweb -a 1 <URL> #Stealthy
whatweb -a 3 <URL> #Aggresive
webtech -u <URL>
webanalyze -host https://google.com -crawl 2
Recherchez les vulnérabilités de la version de l'application Web.
Vérifiez s'il y a un pare-feu d'application Web (WAF)
- https://github.com/EnableSecurity/wafw00f
- https://github.com/Ekultek/WhatWaf.git
- https://nmap.org/nsedoc/scripts/http-waf-detect.html
Astuces techniques Web
Quelques astuces pour trouver des vulnérabilités dans différentes technologies bien connues utilisées :
- AEM - Adobe Experience Cloud
- Apache
- Artifactory
- Buckets
- CGI
- Drupal
- Flask
- Git
- Golang
- GraphQL
- H2 - Base de données SQL Java
- Astuces IIS
- JBOSS
- Jenkins
- Jira
- Joomla
- JSP
- Laravel
- Moodle
- Nginx
- PHP (php a beaucoup de trucs intéressants qui pourraient être exploités)
- Python
- Spring Actuators
- Symphony
- Tomcat
- VMWare
- Test de pénétration de l'API Web
- WebDav
- Werkzeug
- Wordpress
- Electron Desktop (XSS to RCE)
Notez que le même domaine peut utiliser différentes technologies sur différents ports, dossiers et sous-domaines. Si l'application Web utilise une technologie / plateforme bien connue répertoriée ci-dessus ou toute autre, n'oubliez pas de rechercher sur Internet de nouvelles astuces (et faites-le moi savoir !).
Examen du code source
Si le code source de l'application est disponible sur Github, en plus de réaliser votre propre test de boîte blanche de l'application, il existe des informations qui pourraient être utiles pour le test de boîte noire actuel :
- Y a-t-il un fichier de journal des modifications, de lecture ou de version ou toute autre information de version accessible via le Web ?
- Comment et où sont enregistrées les informations d'identification ? Y a-t-il un fichier (accessible ?) avec des informations d'identification (noms d'utilisateur ou mots de passe) ?
- Les mots de passe sont-ils en texte clair, chiffrés ou quel algorithme de hachage est utilisé ?
- Utilise-t-il une clé principale pour crypter quelque chose ? Quel algorithme est utilisé ?
- Pouvez-vous accéder à l'un de ces fichiers en exploitant une vulnérabilité ?
- Y a-t-il des informations intéressantes dans les problèmes Github (résolus et non résolus) ? Ou dans l'historique des commits (peut-être un mot de passe introduit dans un ancien commit) ?
{% content-ref url="code-review-tools.md" %} code-review-tools.md {% endcontent-ref %}
Scanners automatiques
Scanners automatiques à usage général
nikto -h <URL>
whatweb -a 4 <URL>
wapiti -u <URL>
W3af
zaproxy #You can use an API
nuclei -ut && nuclei -target <URL>
Scanners de CMS
Si un CMS est utilisé, n'oubliez pas de lancer un scanner, peut-être que quelque chose de juteux sera trouvé :
Clusterd: JBoss, ColdFusion, WebLogic, Tomcat, Railo, Axis2, Glassfish
CMSScan: WordPress, Drupal, Joomla, sites web vBulletin pour des problèmes de sécurité. (GUI)
VulnX: Joomla, Wordpress, Drupal, PrestaShop, Opencart
CMSMap: (W)ordpress, (J)oomla, (D)rupal ou (M)oodle
droopscan: Drupal, Joomla, Moodle, Silverstripe, Wordpress
cmsmap [-f W] -F -d <URL>
wpscan --force update -e --url <URL>
joomscan --ec -u <URL>
joomlavs.rb #https://github.com/rastating/joomlavs
À ce stade, vous devriez déjà avoir des informations sur le serveur web utilisé par le client (si des données sont fournies) et quelques astuces à garder à l'esprit pendant le test. Si vous avez de la chance, vous avez même trouvé un CMS et exécuté un scanner.
Découverte de l'application Web étape par étape
À partir de ce point, nous allons commencer à interagir avec l'application Web.
Vérifications initiales
Pages par défaut avec des informations intéressantes :
- /robots.txt
- /sitemap.xml
- /crossdomain.xml
- /clientaccesspolicy.xml
- /.well-known/
- Vérifiez également les commentaires dans les pages principales et secondaires.
Forcer des erreurs
Les serveurs Web peuvent avoir un comportement inattendu lorsqu'on leur envoie des données étranges. Cela peut ouvrir des vulnérabilités ou divulguer des informations sensibles.
- Accédez à des pages fictives comme /whatever_fake.php (.aspx,.html,.etc)
- Ajoutez "[]", "]]", et "[[" dans les valeurs de cookie et les valeurs de paramètre pour créer des erreurs
- Générez une erreur en donnant une entrée comme
/~randomthing/%s
à la fin de l'URL - Essayez différents verbes HTTP comme PATCH, DEBUG ou faux comme FAKE
Vérifiez si vous pouvez télécharger des fichiers (verbe PUT, WebDav)
Si vous découvrez que WebDav est activé mais que vous n'avez pas suffisamment de permissions pour télécharger des fichiers dans le dossier racine, essayez de :
- Forcer les identifiants
- Télécharger des fichiers via WebDav dans le reste des dossiers trouvés à l'intérieur de la page Web. Vous pouvez avoir des autorisations pour télécharger des fichiers dans d'autres dossiers.
Vulnérabilités SSL/TLS
- Si l'application n'oblige pas l'utilisateur à utiliser HTTPS à un moment donné, elle est vulnérable aux attaques de type MitM
- Si l'application envoie des données sensibles (mots de passe) en utilisant HTTP. Alors c'est une vulnérabilité élevée.
Utilisez testssl.sh pour vérifier les vulnérabilités (dans les programmes de Bug Bounty, ces types de vulnérabilités ne seront probablement pas acceptées) et utilisez a2sv pour revérifier les vulnérabilités :
./testssl.sh [--htmlfile] 10.10.10.10:443
#Use the --htmlfile to save the output inside an htmlfile also
# You can also use other tools, by testssl.sh at this momment is the best one (I think)
sslscan <host:port>
sslyze --regular <ip:port>
Informations sur les vulnérabilités SSL/TLS:
- https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/
- https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/
Spidering
Lancez une sorte d'araignée à l'intérieur du web. Le but de l'araignée est de trouver autant de chemins que possible à partir de l'application testée. Par conséquent, le crawling web et les sources externes doivent être utilisés pour trouver autant de chemins valides que possible.
- gospider (go): araignée HTML, LinkFinder dans les fichiers JS et les sources externes (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
- hakrawler (go): araignée HML, avec LinkFider pour les fichiers JS et Archive.org comme source externe.
- dirhunt (python): araignée HTML, indique également les "fichiers juteux".
- evine (go): araignée HTML interactive CLI. Il recherche également dans Archive.org
- meg (go): Cet outil n'est pas une araignée mais peut être utile. Vous pouvez simplement indiquer un fichier avec des hôtes et un fichier avec des chemins et meg récupérera chaque chemin sur chaque hôte et enregistrera la réponse.
- urlgrab (go): araignée HTML avec des capacités de rendu JS. Cependant, il semble qu'il ne soit pas maintenu, la version précompilée est ancienne et le code actuel ne compile pas.
- gau (go): araignée HTML qui utilise des fournisseurs externes (wayback, otx, commoncrawl)
- ParamSpider: Ce script trouvera des URL avec des paramètres et les listera.
- galer (go): araignée HTML avec des capacités de rendu JS.
- LinkFinder (python): araignée HTML, avec des capacités de beauté JS capable de rechercher de nouveaux chemins dans les fichiers JS. Il pourrait également être intéressant de jeter un coup d'œil à JSScanner, qui est un wrapper de LinkFinder.
- goLinkFinder (go): Pour extraire des points de terminaison dans à la fois la source HTML et les fichiers javascript intégrés. Utile pour les chasseurs de bogues, les équipes rouges, les ninjas de la sécurité de l'information.
- JSParser (python2.7): Un script python 2.7 utilisant Tornado et JSBeautifier pour analyser les URL relatives à partir de fichiers JavaScript. Utile pour découvrir facilement les demandes AJAX. Semble ne plus être maintenu.
- relative-url-extractor (ruby): Étant donné un fichier (HTML), il extraira les URL à partir de celui-ci en utilisant une expression régulière astucieuse pour trouver et extraire les URL relatives des fichiers laids (minify).
- JSFScan (bash, plusieurs outils): Rassemble des informations intéressantes à partir de fichiers JS en utilisant plusieurs outils.
- subjs (go): Trouver des fichiers JS.
- page-fetch (go): Chargez une page dans un navigateur headless et imprimez toutes les URL chargées pour charger la page.
- Feroxbuster (rust): Outil de découverte de contenu mélangeant plusieurs options des outils précédents
- Javascript Parsing: Une extension Burp pour trouver des chemins et des paramètres dans les fichiers JS.
- Sourcemapper: Un outil qui, étant donné l'URL .js.map, vous donnera le code JS beatifié
- xnLinkFinder: C'est un outil utilisé pour découvrir des points de terminaison pour une cible donnée.
- waymore: Découvrez des liens à partir de la machine wayback (en téléchargeant également les réponses dans wayback et en recherchant plus de liens
- HTTPLoot (go): Crawl (même en remplissant des formulaires) et trouver également des informations sensibles en utilisant des regex spécifiques.
- SpiderSuite: Spider Suite est une araignée / spider de sécurité web GUI multi-fonctionnelle avancée conçue pour les professionnels de la cybersécurité.
Brute Force directories and files
Commencez le brute-forcing à partir du dossier racine et assurez-vous de brute-forcer tous les répertoires trouvés en utilisant cette méthode et tous les répertoires découverts par le Spidering (vous pouvez faire ce brute-forcing récursivement et ajouter au début de la liste de mots utilisée les noms des répertoires trouvés).
Outils:
- Dirb / Dirbuster - Inclus dans Kali, ancien (et lent) mais fonctionnel. Autorise les certificats auto-signés et la recherche récursive. Trop lent par rapport aux autres options.
- Dirsearch (python): Il n'autorise pas les certificats auto-signés mais permet une recherche récursive.
- Gobuster (go): Il autorise les certificats auto-signés, il n'a pas de recherche récursive.
- Feroxbuster - Rapide, prend en charge la recherche récursive.
- wfuzz
wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ
- ffuf - Rapide:
ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ
- uro (python): Ce n'est pas une araignée mais un outil qui, étant donné la liste des URL trouvées, supprimera les URL "dupliquées".
- Scavenger: Extension Burp pour créer une liste de répertoires à partir de l'historique burp de différentes pages
- TrashCompactor: Supprime les URL avec des fonctionnalités dupliquées (basé sur les import Remarque que chaque fois qu'un nouveau répertoire est découvert lors du brute-forcing ou du spidering, il doit être brute-forcé.
Que vérifier sur chaque fichier trouvé
- Vérificateur de liens cassés : Trouvez les liens cassés à l'intérieur des HTML qui peuvent être sujets à des prises de contrôle.
- Sauvegardes de fichiers : Une fois que vous avez trouvé tous les fichiers, recherchez des sauvegardes de tous les fichiers exécutables (".php", ".aspx"...). Les variations courantes pour nommer une sauvegarde sont : file.ext~, #file.ext#, ~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp et file.old. Vous pouvez également utiliser l'outil bfac.
- Découvrir de nouveaux paramètres : Vous pouvez utiliser des outils comme Arjun, parameth, x8 et Param Miner pour découvrir des paramètres cachés. Si possible, vous pourriez essayer de rechercher des paramètres cachés sur chaque fichier web exécutable.
- Tous les wordlists par défaut d'Arjun : https://github.com/s0md3v/Arjun/tree/master/arjun/db
- Param-miner "params" : https://github.com/PortSwigger/param-miner/blob/master/resources/params
- Assetnote "parameters_top_1m" : https://wordlists.assetnote.io/
- nullenc0de "params.txt" : https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773
- Commentaires : Vérifiez les commentaires de tous les fichiers, vous pouvez trouver des informations d'identification ou des fonctionnalités cachées.
- Si vous jouez à CTF, une astuce "commune" consiste à cacher des informations à l'intérieur des commentaires à droite de la page (en utilisant des centaines d'espaces pour que vous ne voyiez pas les données si vous ouvrez le code source avec le navigateur). Une autre possibilité est d'utiliser plusieurs nouvelles lignes et de cacher des informations dans un commentaire en bas de la page web.
- Clés API : Si vous trouvez une clé API, il y a un guide qui indique comment utiliser les clés API de différentes plateformes : keyhacks, zile, truffleHog, SecretFinder, RegHex, DumpsterDive, EarlyBird
- Clés API Google : Si vous trouvez une clé API ressemblant à AIzaSyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik, vous pouvez utiliser le projet gmapapiscanner pour vérifier à quelles API la clé peut accéder.
- Buckets S3 : Pendant le spidering, regardez si un sous-domaine ou un lien est lié à un bucket S3. Dans ce cas, vérifiez les permissions du bucket.
Découvertes spéciales
Pendant le spidering et le brute-forcing, vous pourriez trouver des choses intéressantes que vous devez remarquer.
Fichiers intéressants
- Recherchez des liens vers d'autres fichiers à l'intérieur des fichiers CSS.
- Si vous trouvez un fichier .git, des informations peuvent être extraites
- Si vous trouvez un fichier .env, des informations telles que des clés API, des mots de passe de bases de données et d'autres informations peuvent être trouvées.
- Si vous trouvez des points de terminaison API, vous devriez également les tester. Ce ne sont pas des fichiers, mais ils ressembleront probablement à des fichiers.
- Fichiers JS : Dans la section spidering, plusieurs outils qui peuvent extraire le chemin à partir de fichiers JS ont été mentionnés. Il serait également intéressant de surveiller chaque fichier JS trouvé, car dans certaines occasions, un changement peut indiquer qu'une vulnérabilité potentielle a été introduite dans le code. Vous pouvez utiliser par exemple JSMon.
- Vous devriez également vérifier les fichiers JS découverts avec RetireJS ou JSHole pour savoir s'ils sont vulnérables.
- Désobfuscateur et décompresseur Javascript : https://lelinhtinh.github.io/de4js/, https://www.dcode.fr/javascript-unobfuscator
- Embellisseur Javascript : http://jsbeautifier.org/, http://jsnice.org/
- Déobfuscation JsFuck (javascript avec les caractères : "[]!+" https://ooze.ninja/javascript/poisonjs/)
- TrainFuck:
+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.
- Dans plusieurs occasions, vous devrez comprendre les expressions régulières utilisées, cela sera utile : https://regex101.com/
- Vous pouvez également surveiller les fichiers où des formulaires ont été détectés, car un changement dans le paramètre ou l'apparition d'un nouveau formulaire peut indiquer une nouvelle fonctionnalité potentiellement vulnérable.
403 Forbidden/Basic Authentication/401 Unauthorized (bypass)
{% content-ref url="403-and-401-bypasses.md" %} 403-and-401-bypasses.md {% endcontent-ref %}
502 Proxy Error
Si une page répond avec ce code, c'est probablement un proxy mal configuré. Si vous envoyez une requête HTTP comme : GET https://google.com HTTP/1.1
(avec l'en-tête host et d'autres en-têtes courants), le proxy essaiera d'accéder à google.com et vous aurez trouvé un SSRF.
Authentification NTLM - Divulgation d'informations
Si le serveur en cours d'exécution demandant une authentification est Windows ou si vous trouvez une connexion demandant vos informations d'identification (et demandant le nom de domaine), vous pouvez provo
Surveiller les pages pour les changements
Vous pouvez utiliser des outils tels que https://github.com/dgtlmoon/changedetection.io pour surveiller les pages pour les modifications qui pourraient insérer des vulnérabilités.
Commandes automatiques HackTricks
Protocol_Name: Web #Protocol Abbreviation if there is one.
Port_Number: 80,443 #Comma separated if there is more than one.
Protocol_Description: Web #Protocol Abbreviation Spelled out
Entry_1:
Name: Notes
Description: Notes for Web
Note: |
https://book.hacktricks.xyz/pentesting/pentesting-web
Entry_2:
Name: Quick Web Scan
Description: Nikto and GoBuster
Command: nikto -host {Web_Proto}://{IP}:{Web_Port} &&&& gobuster dir -w {Small_Dirlist} -u {Web_Proto}://{IP}:{Web_Port} && gobuster dir -w {Big_Dirlist} -u {Web_Proto}://{IP}:{Web_Port}
Entry_3:
Name: Nikto
Description: Basic Site Info via Nikto
Command: nikto -host {Web_Proto}://{IP}:{Web_Port}
Entry_4:
Name: WhatWeb
Description: General purpose auto scanner
Command: whatweb -a 4 {IP}
Entry_5:
Name: Directory Brute Force Non-Recursive
Description: Non-Recursive Directory Brute Force
Command: gobuster dir -w {Big_Dirlist} -u {Web_Proto}://{IP}:{Web_Port}
Entry_6:
Name: Directory Brute Force Recursive
Description: Recursive Directory Brute Force
Command: python3 {Tool_Dir}dirsearch/dirsearch.py -w {Small_Dirlist} -e php,exe,sh,py,html,pl -f -t 20 -u {Web_Proto}://{IP}:{Web_Port} -r 10
Entry_7:
Name: Directory Brute Force CGI
Description: Common Gateway Interface Brute Force
Command: gobuster dir -u {Web_Proto}://{IP}:{Web_Port}/ -w /usr/share/seclists/Discovery/Web-Content/CGIs.txt -s 200
Entry_8:
Name: Nmap Web Vuln Scan
Description: Tailored Nmap Scan for web Vulnerabilities
Command: nmap -vv --reason -Pn -sV -p {Web_Port} --script=`banner,(http* or ssl*) and not (brute or broadcast or dos or external or http-slowloris* or fuzzer)` {IP}
Entry_9:
Name: Drupal
Description: Drupal Enumeration Notes
Note: |
git clone https://github.com/immunIT/drupwn.git for low hanging fruit and git clone https://github.com/droope/droopescan.git for deeper enumeration
Entry_10:
Name: WordPress
Description: WordPress Enumeration with WPScan
Command: |
?What is the location of the wp-login.php? Example: /Yeet/cannon/wp-login.php
wpscan --url {Web_Proto}://{IP}{1} --enumerate ap,at,cb,dbe && wpscan --url {Web_Proto}://{IP}{1} --enumerate u,tt,t,vp --passwords {Big_Passwordlist} -e
Entry_11:
Name: WordPress Hydra Brute Force
Description: Need User (admin is default)
Command: hydra -l admin -P {Big_Passwordlist} {IP} -V http-form-post '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location'
Entry_12:
Name: Ffuf Vhost
Description: Simple Scan with Ffuf for discovering additional vhosts
Command: ffuf -w {Subdomain_List}:FUZZ -u {Web_Proto}://{Domain_Name} -H "Host:FUZZ.{Domain_Name}" -c -mc all {Ffuf_Filters}
Astuce de prime de bug: inscrivez-vous à Intigriti, une plateforme de prime de bug premium créée par des hackers, pour les hackers! Rejoignez-nous sur https://go.intigriti.com/hacktricks aujourd'hui, et commencez à gagner des primes allant jusqu'à 100 000 $!
{% embed url="https://go.intigriti.com/hacktricks" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- 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!
- Découvrez The PEASS Family, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et au repo hacktricks-cloud.