
Outil de découverte de contenu web et d'API haute vitesse qui effectue une attaque par force brute sur les routes en utilisant des jeux de données Swagger compilés, prenant en charge l'analyse en profondeur, des listes de mots personnalisées, et l'analyse simultanée d'hôtes.

Pendant très longtemps, la découverte de contenu s'est concentrée sur la recherche de fichiers et de dossiers. Bien que cette approche soit efficace pour les serveurs web legacy qui hébergent des fichiers statiques ou répondent avec des 3xx’s sur un chemin partiel, elle n'est plus efficace pour les applications web modernes, en particulier les API.
Au fil du temps, nous avons vu beaucoup de temps investi pour rendre les outils de découverte de contenu plus rapides afin que des listes de mots plus grandes puissent être utilisées, mais l'art de la découverte de contenu n'a pas été innové.
Kiterunner est un outil capable non seulement d'effectuer la découverte de contenu traditionnelle à des vitesses fulgurantes, mais aussi de bruteforcer des routes/endpoints dans les applications modernes.
Les frameworks d'applications modernes tels que Flask, Rails, Express, Django et autres suivent le paradigme de définir explicitement des routes qui attendent certaines méthodes HTTP, en-têtes, paramètres et valeurs.
Lors de l'utilisation d'outils de découverte de contenu traditionnels, ces routes sont souvent manquées et ne peuvent pas être facilement découvertes.
En collectant un ensemble de données de spécifications Swagger et en le condensant dans notre propre schéma, Kiterunner peut utiliser cet ensemble de données pour bruteforcer des endpoints d'API en envoyant la méthode HTTP, les en-têtes, le chemin, les paramètres et les valeurs corrects pour chaque requête qu'il envoie.
Les fichiers Swagger ont été collectés à partir de plusieurs sources de données, y compris un scan internet large pour les 40+ chemins Swagger les plus courants. D'autres sources de données incluaient GitHub via BigQuery, et APIs.guru.
Vous pouvez télécharger une copie pré-construite depuis https://github.com/assetnote/kiterunner/releases.
make build
ln -s $(pwd)/dist/kr /usr/local/bin/kr
kr kb compile routes.json routes.kite
kr scan hosts.txt -w routes.kite -x 20 -j 100 --ignore-length=1053
Les ensembles de données JSON sont disponibles ci-dessous :
- [routes-large.json](https://wordlists-cdn.assetnote.io/rawdata/kiterunner/routes-large.json.tar.gz) (118MB compressé, 2.6GB décompressé)
- [routes-small.json](https://wordlists-cdn.assetnote.io/rawdata/kiterunner/routes-small.json.tar.gz) (14MB compressé, 228MB décompressé)
Alternativement, il est possible de télécharger les fichiers `.kite` compilés depuis les liens ci-dessous :
- [routes-large.kite](https://wordlists-cdn.assetnote.io/data/kiterunner/routes-large.kite.tar.gz) (40MB compressé, 183MB décompressé)
- [routes-small.kite](https://wordlists-cdn.assetnote.io/data/kiterunner/routes-small.kite.tar.gz) (2MB compressé, 35MB décompressé)
## AUR
Les utilisateurs d'une distribution basée sur Arch peuvent télécharger le binaire pré-compilé depuis [AUR](https://aur.archlinux.org/packages/kiterunner-bin/)
Vous pouvez utiliser un "Aur Helper" comme `yay` pour installer kiterunner```
yay -S kiterunner-bin
kr [scan|brute] [flags]
- `<input>` peut être un fichier, un domaine ou une URI. Nous nous en occuperons pour vous. Voir [Input/Host Formatting](#inputhost-formatting) pour plus de détails```
# Just have a list of hosts and no wordlist
kr scan hosts.txt -A=apiroutes-210328:20000 -x 5 -j 100 --fail-status-codes 400,401,404,403,501,502,426,411
# You have your own wordlist but you want assetnote wordlists too
kr scan target.com -w routes.kite -A=apiroutes-210328:20000 -x 20 -j 1 --fail-status-codes 400,401,404,403,501,502,426,411
# Bruteforce like normal but with the first 20000 words
kr brute https://target.com/subapp/ -A=aspx-210328:20000 -x 20 -j 1
# Use a dirsearch style wordlist with %EXT%
kr brute https://target.com/subapp/ -w dirsearch.txt -x 20 -j 1 -exml,asp,aspx,ashx -D
Usage: kite scan [flags]