Руководство по Fuzz Faster U Fool (ffuf)

Дата: 24.08.2021. Автор: Игорь Б. Категории: Статьи по информационной безопасности
Руководство по Fuzz Faster U Fool (ffuf)

В этой статье пойдет речь о том, как использовать Fuzz Faster U Fool (ffuf). Это полезный инструмент для фаззинга с открытым исходным кодом.

Введение

Fuzz Faster U Fool использует метод командной строки для веб-настройки на веб-сервере. Он был создан юзером из Twitter под ником @joohoi. Многие профессионалы высоко оценили ffuf с момента его появления в сети, особенно в плане его внимательности к ошибкам. Стоит отметить, что инструмент отличается высокой скоростью работы, универсальностью в использовании и способностью интегрироваться с другими программами.

Установка

Программа запускается в терминале Linux или в командной строке Windows. Обновление из исходного кода не сложнее, чем компиляция, за исключением включения флага «-u».

go get -u github.com/ffuf/ffuf

В связи с тем, что в данном примере пользователь использует Kali Linux, он найдет ffuf в репозиториях apt, что позволит установить его, выполнив простую команду.

apt install ffuf
Руководство по Fuzz Faster U Fool (ffuf)

После установки данной программы, чтобы узнать ее параметры, все, что нужно сделать,- это просто использовать опцию «-h» для вызова справки.

ffuf -h
Руководство по Fuzz Faster U Fool (ffuf)

Параметры ввода

Это параметры, которые помогают пользователям предоставлять необходимые данные для веб-поиска по URL-адресу с помощью списков слов.

  • Обычная атака

Для атаки по умолчанию нужно использовать параметры «-u» для целевого URL-адреса и «-w» для загрузки списка слов.

ffuf -u http://testphp.vulnweb.com/FUZZ/ -w dict.txt

После выполнения команды пользователь сосредоточится на полученных результатах.

  • Во-первых, стоит отметить, что по умолчанию он работает на HTTP с использованием метода GET.
  • Виден также статус кода ответа [200, 204, 301, 302, 307, 401, 403, 405}. Можно проследить прогресс выполняемой атаки.
Руководство по Fuzz Faster U Fool (ffuf)
  • Использование нескольких списков слов

Иногда одного списка слов недостаточно, чтобы получить желаемые результаты. В этом случае пользователь может применить несколько списков слов одновременно, чтобы добиться своего. Fuzz Faster U Fool имеет возможность запускать столько списков слов, сколько необходимо для успешной атаки.

В данном примере пользователь предоставил программе доступ к двум словарям (dict.txt:W1 и dict.txt:W2). Она будет использовать их одновременно.

ffuf -u https://ignitetechnologies.in/W2/W1/ -w dict.txt:W1 -w dns_dict.txt:W2
Руководство по Fuzz Faster U Fool (ffuf)
  • Игнорирование комментария к списку слов

Как правило, список слов по умолчанию имеет некоторые комментарии, которые могут повлиять на точность полученных результатов. В этом случае пользователь может использовать параметр «-ic», который поможет ему избавиться от любых ограничений. Иногда нужно больше сосредоточиться на атаке, а не на баннерах инструментов, для этого следует применить параметр «-s», который удалит любой баннер.

ffuf -u http://testphp.vulnweb.com/FUZZ/ -w dict.txt

Пользователь замечает, что некоторые комментарии отображены в результатах, если выполнить команду выше. После использования параметров «-s» и «-ic» любые комментарии и баннеры будут удалены.

ffuf -u http://testphp.vulnweb.com/FUZZ/ -w dict.txt -ic -s
Руководство по Fuzz Faster U Fool (ffuf)
  • Расширения

Человек может выполнить поиск файла с определенным расширением на веб-сервере с помощью параметра «e». Все, что нужно сделать, это просто указать расширение и имя файла вместе с параметром. Чтобы получить необходимый результат, надо выполнить подходящую команду.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -e .php
Руководство по Fuzz Faster U Fool (ffuf)
  • Запросы и различные режимы

Burp Suite – это профессиональная платформа для мониторинга безопасности веб-приложений. Ее различные инструменты действуют согласованно, чтобы провести успешное тестирование на проникновение. Функция «cluster bomb» дает возможность пользователю использовать несколько полезных нагрузок. Для каждого заданного местоположения существует отдельный пакет полезных нагрузок. Атака проходит через каждый пакет полезной нагрузки один за другим, проверяя все возможные варианты.

Существует несколько параметров этого инструмента, которые помогают использовать скрипт. Например, параметр «-request» позволяет применять запрос в атаке; «-request-proto» дает возможность определить сам параметр, «-mode» помогает выбрать режим атаки.

Прежде всего, человек использует случайные учетные данные на целевой URL-странице и настраивает прокси-сервер для захвата запроса в режиме перехвата на Burp Suite.

Руководство по Fuzz Faster U Fool (ffuf)

Теперь на вкладке «Intercept» следует изменить предоставленные учетные данные с помощью добавления HFUZZ и WFUZZ. HFUZZ добавляется перед «uname» и WFUZZ – перед «pass». Затем надо скопировать и вставить этот запрос в текст и имя в соответствии с желанием пользователя. В данном случае человек назвал файл brute.txt.

Руководство по Fuzz Faster U Fool (ffuf)

Теперь пользователь переходит к основной атаке, где параметр «-request» содержит текстовый файл запроса. «-request-proto» поможет ему создать прототип http, а «-mode» будет ответственен за атаку «Cluster bomb». Списки слов, которые пользователь использует (users.txt и pass.txt) состоят из инъекций SQL. Введя команду, представленную ниже, пользователь начнет атаку.

ffuf -request brute.txt -request-proto http -mode clusterbomb -w users.txt:HFUZZ -w pass.txt:WFUZZ -mc 200

Как можно увидеть в результатах атаки, пользователь успешно обнаружил, что SQL-инъекции эффективны для этой конкретной цели.

Руководство по Fuzz Faster U Fool (ffuf)

Параметры сопоставления

Если пользователь хочет, чтобы ffuf показывал только те данные, которые важны для веб-фаззинга, ему следует обратить внимание на эти параметры.  Например, это могут быть HTTP-код, строки, слова, размер и регулярные выражения.

  1. Код HTTP

Чтобы понять этот параметр, нужно рассмотреть простую атаку, в которой пользователь сможет увидеть, какие HTTP-коды появляются в результатах.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt

Точно понятно, что получены коды 302 HTTP и 200 HTTP.

Руководство по Fuzz Faster U Fool (ffuf)

Если нужно просмотреть определенные атаки, например, для кода 200 HTTP, следует использовать параметр «-mc» вместе с конкретным номером. Чтобы проверить работу этого параметра, надо просто выполнить команду.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -mc 200
Руководство по Fuzz Faster U Fool (ffuf)
  • Строки

Инструмент выдает результаты для определенных строк в файле с помощью параметра «-ml». Пользователь может использовать его, указав нужные ему строки.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -ml 15
Руководство по Fuzz Faster U Fool (ffuf)
  • Слова

Аналогично, поскольку вышеперечисленные опции соответствуют функции, она может предоставить результат с определенным количеством слов. Чтобы добиться этого, следует использовать параметр «-mw» вместе с тем количеством слов, которые пользователь желает просмотреть в результатах.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -mw 53
Руководство по Fuzz Faster U Fool (ffuf)
  • Размер

Пользователь может использовать параметр «-ms» вместе с конкретным размером, который он хочет просмотреть в результатах.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -ms 2929
Руководство по Fuzz Faster U Fool (ffuf)
  • Регулярные выражения

Это последний из всех параметров сопоставления, доступных в этом инструменте. Пользователь собирается произвести фаззинг LFI, сопоставив строку с последующим шаблоном «root:x» для данного словаря.

Человек использует URL-адрес, который может обеспечить эту функциональность, и с помощью параметра «-mr» он определяет соответствующую строку «root:x».

Так выглядит специальный список слов.

Руководство по Fuzz Faster U Fool (ffuf)

Используя этот список слов, пользователь введет приведенную ниже команду, чтобы добавить параметр «-mr» в скрипте атаки.

ffuf -u http://testphp.vulnweb.com/showimage.php?file=FUZZ -w dict2.txt -mr "root:x"

Здесь пользователь получил HTTP на ответ 200 для /etc/passwd для данного списка слов.

Руководство по Fuzz Faster U Fool (ffuf)

Параметры фильтрации

Параметры фильтрации абсолютно противоположны параметрам соответствия. Пользователь может использовать эти опции, чтобы удалить ненужное из веб-фаззинга. Применимо также к HTTP-коду, строкам, словам, размеру и регулярным выражениям.

  1. Код HTTP

Для параметра «-fc» необходим конкретный код состояния HTTP, который пользователь хочет удалить из полученных результатов.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -fc 302
Руководство по Fuzz Faster U Fool (ffuf)
  • Строки

С помощью параметра «-fl» есть возможность удалить определенную строку из результата или отфильтровать ее из атаки.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -fl 26
Руководство по Fuzz Faster U Fool (ffuf)
  • Размер

Параметр «-fs» дает возможность отфильтровывать указанный размер, описанный пользователем во время атаки.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -fs 2929
Руководство по Fuzz Faster U Fool (ffuf)
  • Слова

Параметр «-fw» позволяет отфильтровывать количество слов из результатов, которые пользователь хочет получить.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -fw 83
Руководство по Fuzz Faster U Fool (ffuf)
  • Регулярные выражения

Параметр «-fr» дает возможность удалить определенное регулярное выражение. В данном случае пользователь пытается исключить файлы журналов из полученных результатов.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -fr "log"
blank

Общие параметры

Ниже представлены общие параметры этого инструмента. Они полностью связаны с процессом веб-фаззинга.

  • Custom Auto Calibration

Известно, что способность компьютера или машины автоматически выполнять калибровку известна под названием «Auto Calibration». Калибровка – это процесс предоставления измерительному прибору информации, необходимой для понимания контекста, в котором он будет использоваться. При сборе данных калибровка компьютера обеспечивает точность его работы.

Человек может настроить эту функцию в соответствии с его потребностями с помощью параметра «-acc», который нельзя использовать без параметра «-ac».

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -acc -ac -fl 26 -ac -fs 2929 -ac -fw 54
blank
  • Цвет

Иногда разделение по цветам помогает привлечь дополнительное внимание ко всем деталям, имеющим значение в результатах. За это отвечает параметр «-c», он помогает разделить данные по категориям.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -c
blank
  • Максимальное время выполнения задачи

Если человек хочет провести фаззинг в течение ограниченного периода времени, он может использовать параметр «-maxtime». Следует ввести команду, чтобы указать выбранный временной интервал.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -maxtime 5
blank
  • Максимальное время выполнения работы

С помощью параметра «-max time-job» пользователь может установить ограничение по времени для конкретной работы. Используя эту команду, человек пытается ограничить время выполнения задания или запроса.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -maxtime-job 2
blank
  • Задержка

С помощью параметра «-p» пользователь добавит определенную задержку для каждого запроса, предлагаемого атакой. Благодаря этой функции запрос более эффективен и предоставляет более четкие результаты.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -p 1
blank
  • Скорость запроса

Пользователь может выбрать нужную ему скорость запросов для каждой своей атаки с помощью параметра «-rate». К примеру, человек создает запрос в секунду в соответствии с желаемой атакой.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -rate 500
blank
  • Функции ошибок

Существует три параметра, которые поддерживают функцию ошибки. Первым параметром является «-se», он представляет собой «ложную ошибку». В нем говорится, является ли следующий запрос подлинным или нет. Второй параметр «-sf» остановит атаку, когда более 95% запросов засчитаны как ошибка. Третьим и последним параметром является «-sa», он представляет собой комбинацию предыдущих параметров.

В данном примере пользователь использует параметр «-se».

Ffuf -u http://ignitetechnologies.in/W2/W1/ -w dict.txt:W1 -w dns_dict.txt:W2 -se
blank
  • Режим «Verbose»

Как многие уже знают, режим «Verbose» — это функция, используемая во многих операционных системах ПК и языках программирования. Она предоставляет дополнительную информацию о том, что делает компьютер и какие драйверы и приложения он загружает при инициализации. В программировании данный режим предоставляет человеку точные выходные данные для целей отладки, что облегчает саму отладку программы. Применяется параметр «-v».

Ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -v
blank
  • Потоки выполнения

Параметр «-t» используется для ускорения или замедления процесса. По умолчанию он установлен на 40. Если пользователь хочет ускорить процесс, нужно увеличить его значение.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -t 1000
blank

Параметры вывода

Пользователь будет сохранять результаты проведенных атак в целях ведения учета, улучшения читаемости и нахождения потенциальных ссылок. Параметр «-o» нужен для сохранения выходных данных, но нужно указать его формат с помощью другого параметра «-of».

  • Вывод данных в формате HTML

Пользователь использует параметр «-of» и выбирает формат HTML. С помощью команды он может сохранить отчет в формате HTML.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -o file.html -of html
blank

Теперь, после завершения атаки, нужно проверить, соответствует ли файл с выходными данными данному формату или нет. Как видно, сам файл относится к HTML.

blank
  • Вывод данных в формате CSV

Аналогично, можно создавать файлы CSV с помощью параметра «-of», где csv – это значения, разделенные запятыми. К примеру:

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -o file.csv -of csv
blank

Теперь, после завершения атаки, нужно проверить, соответствует ли файл с выходными данными данному формату или нет. Как видно, сам файл относится к CSV.

blank
  • Вывод данных во всех доступных форматах

Аналогично, если нужно получить данные во всех форматах, следует использовать параметр «-of all». Например, это может быть json, ejson, html, md, csv, ecsv.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -o output/file -of all

Теперь, после завершения атаки, нужно проверить все файлы. Видно, что они были сохранены в различных форматах.

blank

Опции HTTP

Иногда для запуска веб-фаззинга требуются подробности, такие как HTTP-запрос, файлы cookie, HTTP-заголовок.

  1. Тайм-аут

Тайм-аут действует как крайний срок для выполнения события. Параметр «-timeout» помогает активировать данную опцию.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -timeout 5
blank
  • Заголовок хоста

Если пользователь хочет выполнить фаззинг поддомена, он может использовать параметр «-H» вместе со списком слов доменного имени.

Ffuf -u https://google.com -w dns_dict.txt -mc 200 -H “HOST: FUZZ.google.com”
blank
  • Рекурсия

Рекурсия – это механизм повторного использования объектов. Если программа требует, чтобы пользователь получил доступ к функции внутри другой функции, это называется рекурсивным вызовом функции. Используя параметр «-recursion», пользователь может реализовать эту функциональность в его атаках.

ffuf -u "http://testphp.vulnweb.com/FUZZ/" -dict.txt -recursion
blank
  • Атака с помощью Cookie

Иногда веб-фаззинг не эффективен на аутентифицированном сайте без аутентификации. Есть параметр «-b», с помощью которого пользователь может достичь своей цели, предоставив файлы Cookie сеанса.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -b "PHPSESSID:"7aaaa6d88edcf7cd2ea4e3853ebb8bde""
blank
  • Replay-Proxy

Существуют ограничения по скорости при использовании функции Intruder в бесплатной версии пакета Burp (Community Edition). Атака была сильно замедлена, и каждый новый «приказ» еще больше замедлял ее.

В данном случае пользователь использует прокси-сервер Burp Suite для получения результатов и их оценки. Во-первых, следует установить прокси-сервер localhost на порту под номером 8080.

blank

Теперь пользователь использует параметр «-replay-proxy», который помогает ему получить локальный прокси-сервер хоста, что человек установил на предыдущем шаге на порту под номером 8080.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -replay-proxy http://127.0.0.1:8080 -v -mc 200
blank

Эта атака покажет результаты на двух платформах. Первая платформа на терминале Kali, а вторая — на вкладке «HTTP history» в Burp Suite. С помощью различных методов пользователь может лучше понять цель и проанализировать результаты атаки.

blank

Заключение

Ffuf часто сравнивают с такими инструментами, как dirb или dirbuster, что, хотя и является понятным в определенной степени, не является разумным решением. Хотя FFUF можно использовать для атаки брутфорс, его истинная мощь заключается в простоте. Лучшим аналогом для него будет Burp Suite Intruder или Turbo Intruder.

Важно! Информация исключительно в учебных целях. Пожалуйста, соблюдайте законодательство и не применяйте данную информацию в незаконных целях.

Игорь Б

Об авторе Игорь Б

Автор на портале cisoclub.ru. Добавляйте ваш материал на сайт в разделе "Разместить публикацию".
Читать все записи автора Игорь Б

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *