
Strumento di scoperta di contenuti web e API ad alta velocità che esegue brute force sulle route utilizzando dataset Swagger compilati, supportando scansione in profondità, wordlist personalizzate e scansione concorrente degli host.

Per molto tempo, la scoperta di contenuti si è concentrata sulla ricerca di file e cartelle. Sebbene questo approccio sia efficace per server web legacy che ospitano file statici o rispondono con 3xx su un percorso parziale, non è più efficace per le applicazioni web moderne, in particolare le API.
Nel corso del tempo, abbiamo visto molti sforzi investiti per rendere più veloci gli strumenti di scoperta dei contenuti, in modo da poter utilizzare wordlist più grandi, tuttavia l'arte della scoperta dei contenuti non è stata innovata.
Kiterunner è uno strumento in grado non solo di eseguire la tradizionale scoperta di contenuti a velocità fulminea, ma anche di fare brute force su percorsi/endpoint in applicazioni moderne.
Framework applicativi moderni come Flask, Rails, Express, Django e altri seguono il paradigma di definire esplicitamente route che si aspettano determinati metodi HTTP, intestazioni, parametri e valori.
Quando si utilizzano strumenti tradizionali di scoperta di contenuti, tali route vengono spesso perse e non possono essere facilmente scoperte.
Raccogliendo un dataset di specifiche Swagger e condensandolo in un nostro schema, Kiterunner può utilizzare questo dataset per fare brute force sugli endpoint API inviando il corretto metodo HTTP, intestazioni, percorso, parametri e valori per ogni richiesta che invia.
I file Swagger sono stati raccolti da diverse fonti di dati, inclusa una scansione a livello internet dei 40+ percorsi Swagger più comuni. Altre fonti includevano GitHub via BigQuery e APIs.guru.
Puoi scaricare una copia precompilata da 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
I dataset JSON sono disponibili di seguito:
- [routes-large.json](https://wordlists-cdn.assetnote.io/rawdata/kiterunner/routes-large.json.tar.gz) (118MB compressi, 2.6GB decompressi)
- [routes-small.json](https://wordlists-cdn.assetnote.io/rawdata/kiterunner/routes-small.json.tar.gz) (14MB compressi, 228MB decompressi)
In alternativa, è possibile scaricare i file `.kite` compilati dai link seguenti:
- [routes-large.kite](https://wordlists-cdn.assetnote.io/data/kiterunner/routes-large.kite.tar.gz) (40MB compressi, 183MB decompressi)
- [routes-small.kite](https://wordlists-cdn.assetnote.io/data/kiterunner/routes-small.kite.tar.gz) (2MB compressi, 35MB decompressi)
## AUR
Gli utenti che utilizzano una distribuzione basata su Arch possono scaricare il binario precompilato da [AUR](https://aur.archlinux.org/packages/kiterunner-bin/)
Puoi usare un "Aur Helper" come `yay` per installare kiterunner```
yay -S kiterunner-bin
kr [scan|brute] [flags]
- `<input>` può essere un file, un dominio o un URI. Lo scopriremo noi per te. Vedi [Input/Host Formatting](#inputhost-formatting) per maggiori dettagli```
# 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]