July 18, 2022

Ferramentas de hacker: FFuF (Fuzz Faster u Fool)

Mr.Killsystema (Tradutor)
https://blog.intigriti.com/2021/05/03/hacker-tools-ffuf-fuzz-faster-u-fool-2/

Tempo é dinheiro, e certamente quando se trata de recompensas por insetos! Boas ferramentas podem ajudá-lo a encontrar bugs antes dos outros – mas apenas se você souber como usá-los corretamente.Analisaremos algumas de nossas ferramentas de código aberto favoritas e forneceremos algumas dicas e truques sobre como usá-las. A primeira ferramenta que estamos cobrindo é o FFuF do hacker finlandês @joohoi .

Como o nome descreve, o FFuF é uma ferramenta de difusão rápida da Web criada em Go.
Para entender o programa, primeiro precisamos entender o que é fuzzing.
Fuzzing é o processo automatizado de envio de dados aleatórios para um aplicativo para encontrar configurações incorretas, comportamento inesperado ou parâmetros ocultos. FFuF é o fuzzer de escolha para muitos pesquisadores nos dias de hoje.

A instalação

Instalando o GoLang:

FFuF é escrito em Go, uma linguagem muito rápida e bastante nova. Primeiro, isso precisa ser instalado em seu sistema. Isso pode ser feito facilmente com um gerenciador de pacotes. Usaremos “apt” para instalar o golang. Se você quiser instalá-lo a partir do site, confira https://golang.org

sudo apt install golang

Instalando o FFuF:

O FFuF está sendo desenvolvido e atualizado ativamente em sua página do Github. Confira em https://github.com/ffuf/ffuf . Para instalar, usaremos Go para obter a versão mais recente. Se você deseja instalar o Go a partir da fonte, siga as instruções na página do git.

go get -u github.com/ffuf/ffuf

Para verificar se está instalado corretamente, você pode verificar a versão com ffuf -V

Isso é tudo que precisamos fazer para instalar a ferramenta de fuzzing.
O binário está instalado em <user>/go/bin/ffuf , se você quiser que ele esteja disponível em todos os diretórios, você precisa adicionar go/bin à sua variável PATH .

Baixando listas de palavras:

FFuF é um fuzzer, e os fuzzers precisam de listas de palavras ou listas de entrada. Se você não tiver nenhuma lista de palavras, recomendamos “SecLists” ( https://github.com/danielmiessler/SecLists ). Esta é uma coleção de lista de palavras comum para vários propósitos.

sudo git clone https://github.com/danielmiessler/SecLists

O básico

Agora que preparamos tudo, podemos começar a explorar FFuF. Quando executamos o programa sem nenhum argumento, obtemos uma visão geral de todos os seus parâmetros e alguns exemplos. Vamos explicar alguns para você ir.

O básico se resume a fornecer uma lista de palavras ( -w ), uma URL ( -u ) e, em seguida, colocar a tag FUZZ onde você deseja que o fuzzing seja feito.

Descoberta de diretório ou arquivo:

Com FFuF podemos fazer a descoberta de diretórios de uma forma muito rápida. Existem muitas ferramentas por aí que fazem o mesmo, mas o FFuF oferece alguns benefícios extras que discutiremos mais adiante neste artigo. O comando mais básico para iniciar a descoberta de diretórios é o seguinte.

ffuf -w wordlist -u http://site.com/FUZZ

Isso substituirá FUZZ por cada palavra em sua lista de palavras e dará a resposta.

Se quisermos ir um pouco mais longe, podemos adicionar extensões à nossa lista de palavras. Com isso, também podemos descobrir arquivos ocultos. Observe a lista separada por (,) com o (.) na frente. O que quer que você coloque na lista de extensões, será adicionado às palavras em sua lista de palavras. Por exemplo, se a lista de palavras contiver “admin” e você colocar .php na lista de extensões, isso resultará em admin.php e admin a serem verificados.

ffuf -w wordlist -u http://site.com/FUZZ -e .php,.zip,.txt

Uma parte importante do fuzzing automatizado é a capacidade de pesquisar diretórios recursivamente. O FFuF tem uma opção quando um diretório é descoberto, ele também pesquisará nesse diretório por caminhos ocultos. Importante é que podemos especificar a profundidade de recursão com -recursion-depth . Tenha em mente que isso pode levar muito mais tempo porque quando um diretório é encontrado, o FFuF verificará cada palavra na lista de palavras em relação ao novo diretório.

ffuf -w wordlist -u http://site.com/FUZZ -recursion -recursion-depth 2 -e .php,.zip,.txt

Com o comando acima, você pode obter muitas saídas que não deseja ver. Para filtrar seus resultados, podemos adicionar alguns sinalizadores extras ao nosso comando FFuF. Isso nos permite filtrar apenas códigos HTTP 200 ou 302, por exemplo, com o sinalizador -mc 200.302 . Existem mais filtros para conferir, execute ffuf sem parâmetros para verificá-los.

Teste autenticado :

Há também a possibilidade de fazer testes autenticados. Aí vem o poder do FFuF onde outras ferramentas podem falhar. Às vezes, o aplicativo que precisa ser testado está atrás de um login. Para isso, podemos usar o sinalizador -b (cookie).

ffuf -w wordlist -u http://site.com/FUZZ -b “PHPSESSION=xxxxxxx”

Outros parâmetros interessantes

Mude de GET para POST fuzzing :

Por enquanto, fizemos apenas fuzzing com solicitações GET, mas também é possível fuzzing com solicitações POST. Isso é útil quando queremos fuzz para parâmetros ocultos, por exemplo. Para isso, precisamos definir o tipo de solicitação com -X e os dados POST com -d.

ffuf -w wordlist -u http://site.com/FUZZ -X POST -d “search=FUZZ”

Atraso entre os pedidos:

É possível que um destino permita apenas um número X de solicitações por minuto. Muitas vezes você lê nos detalhes do escopo que o cliente está permitindo apenas solicitações X, podemos configurar isso com o parâmetro p . Com o sinalizador -p (em segundos), podemos controlar o número de solicitações por segundo.

ffuf -w wordlist -u http://site.com/FUZZ -p 2

Rosqueamento:

Threading é importante e também controlar nossos threads é. O pool de threads FFuF padrão lida com 40 threads ao mesmo tempo. Às vezes precisamos de menos ou mais threads. Isso depende do alvo ou de nossos próprios recursos. O encadeamento que controlamos com o sinalizador -t

ffuf -w wordlist -u http://site.com/FUZZ -t 20

Conclusão

FFuF é uma ferramenta útil para testadores de aplicações web. Você pode inserir palavras de uma lista de palavras em todos os lugares em que colocar a palavra FUZZ. Discutimos os sinalizadores mais comuns para você seguir em frente, mas há muito mais para descobrir. O projeto está sendo desenvolvido ativamente e tem atualizações regulares. FFuF é uma ferramenta fácil de entender com muitas opções. Espero que isso tenha sido útil para você e boa caçada.