
Ferramenta de descoberta de conteúdo web e API de alta velocidade que realiza brute force em rotas usando conjuntos de dados Swagger compilados, suportando varredura em profundidade, listas de palavras personalizadas e varredura simultânea de hosts.

Por muito tempo, a descoberta de conteúdo focou-se em encontrar arquivos e pastas. Embora essa abordagem seja eficaz para servidores web legados que hospedam arquivos estáticos ou respondem com 3xx's em um caminho parcial, ela não é mais eficaz para aplicações web modernas, especificamente APIs.
Com o tempo, vimos muito tempo investido em tornar as ferramentas de descoberta de conteúdo mais rápidas para que listas de palavras maiores possam ser usadas, no entanto a arte da descoberta de conteúdo não foi inovada.
Kiterunner é uma ferramenta capaz de não apenas realizar descoberta de conteúdo tradicional em velocidades extremamente rápidas, mas também fazer bruteforce de rotas/endpoints em aplicações modernas.
Frameworks modernos de aplicação como Flask, Rails, Express, Django e outros seguem o paradigma de definir explicitamente rotas que esperam certos métodos HTTP, cabeçalhos, parâmetros e valores.
Ao usar ferramentas tradicionais de descoberta de conteúdo, essas rotas são frequentemente perdidas e não podem ser facilmente descobertas.
Ao reunir um conjunto de dados de especificações Swagger e condensá-lo em nosso próprio esquema, o Kiterunner pode usar esse conjunto de dados para fazer bruteforce de endpoints de API enviando o método HTTP, cabeçalhos, caminho, parâmetros e valores corretos para cada requisição que envia.
Arquivos Swagger foram coletados de várias fontes de dados, incluindo uma varredura em toda a internet pelos 40+ caminhos Swagger mais comuns. Outras fontes de dados incluíram GitHub via BigQuery e APIs.guru.
Você pode baixar uma cópia pré-compilada em 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
Os conjuntos de dados JSON podem ser encontrados abaixo:
- [routes-large.json](https://wordlists-cdn.assetnote.io/rawdata/kiterunner/routes-large.json.tar.gz) (118MB compactado, 2.6GB descompactado)
- [routes-small.json](https://wordlists-cdn.assetnote.io/rawdata/kiterunner/routes-small.json.tar.gz) (14MB compactado, 228MB descompactado)
Alternativamente, é possível baixar os arquivos `.kite` compilados a partir dos links abaixo:
- [routes-large.kite](https://wordlists-cdn.assetnote.io/data/kiterunner/routes-large.kite.tar.gz) (40MB compactado, 183M descompactado)
- [routes-small.kite](https://wordlists-cdn.assetnote.io/data/kiterunner/routes-small.kite.tar.gz) (2MB compactado, 35MB descompactado)
## AUR
Usuários que utilizam uma distribuição baseada em Arch podem baixar o binário pré-compilado do [AUR](https://aur.archlinux.org/packages/kiterunner-bin/)
Você pode usar um "Aur Helper" como `yay` para instalar o kiterunner```
yay -S kiterunner-bin
kr [scan|brute] [flags]
- `<input>` pode ser um arquivo, um domínio ou URI. nós descobriremos para você. Veja [Formatação de Entrada/Host](#inputhost-formatting) para mais detalhes```
# 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]