
Многоплатформенный фаззер для тестирования пользовательских бинарных файлов, сетевых клиентов и серверов
Многоплатформенный фаззер для тестирования пользовательских бинарников, клиентов и серверов.
Он находил ошибки в 50+ приложениях и библиотеках от ведущих компаний и open source.
Простая настройка для начала фаззинга на Linux, Mac и Windows.
Litefuzz служит одной цели: фаззить и проводить триаж на всех основных платформах, поддерживать как CLI/GUI приложения, так и сетевые клиенты и серверы, чтобы находить уязвимости, связанные с безопасностью.
Он упрощает процесс и позволяет легко обнаруживать ошибки безопасности в самых разных целях на разных платформах, делая лишь несколько честных компромиссов.
Он не создан для скорости, масштабируемости или для того, чтобы выигрывать призы в академической среде. Он применяет простые техники под разными углами для достижения результатов. Для консольного файлового фаззинга вам, вероятно, стоит просто использовать AFL. У него превосходная производительность, возможности инструментирования (и более быстрые неинструментированные запуски), масштаб и способность создавать гребанные jpeg'и из ниоткуда. Для сетевого фаззинга mutiny fuzzer тоже хорошо работает, если у вас есть PCAP-файлы для воспроизведения, а frizzer выглядит многообещающим. Но если вы хотите попробовать этот, он может фаззить такого рода цели на разных платформах с помощью одного единственного инструмента.
./ и дайте вашей цели... лёгкий фазз.``` $ sudo apt install -y latex2rtf
$ ./litefuzz.py -l -c "latex2rtf FUZZ" -i input/tex -o crashes/latex2rtf -n 1000 -z --========================-- --======| litefuzz |======-- --========================--
[STATS] run id: 3516 cmdline: latex2rtf FUZZ crash dir: crashes/latex2rtf input dir: input/tex inputs: 1 iterations: 1000 mutator: random(mutators)
@ 1000/1000 (3 crashes, 127 duplicates, ~0:00:00 remaining)
[RESULTS]
completed (1000) iterations with (3) unique crashes and 127 dups
check crashes/latex2rtf for more details
Это простой локальный целевой объект, с которым AFL++ прекрасно справляется, и приведённый здесь лишь для примера. Litefuzz был разработан для гораздо более широких возможностей в области сетевого фаззинга и фаззинга графического интерфейса, что вы увидите, когда погрузитесь в изучение.
## зачем
Да, ещё один фаззер, и притом не очень хорошо соответствующий современным тенденциям и соглашениям. Были сделаны компромиссы для удовлетворения определённых требований. Эти требования включают фаззер, который работает по умолчанию на нескольких платформах, фаззит как локальные, так и сетевые цели и очень прост в использовании. Я не пытаюсь никого ни в чём убедить, но позвольте предоставить некоторый контекст. Некоторые цели требуют больших усилий для интеграции таких фаззеров, как AFL, в сборочную цепочку. Это не проблема, поскольку данный фаззер не требует инструментирования, жертвуя точным покрытием, достигаемым инструментированием, ради простоты и портативности. AFL также не поддерживает сетевой фаззинг «из коробки», и хотя существуют проекты на его основе, которые это умеют, они далеко не просты в использовании и обычно требуют дополнительных модификаций кода и обвязок для работы (аналогичная история с [Libfuzzer](https://llvm.org/docs/LibFuzzer.html)).
Он не поддерживает параллельный фаззинг, а также не предоставляет ничего похожего на огромное ускорение, которое может дать [persistent mode](https://lcamtuf.blogspot.com/2015/06/new-in-afl-persistent-mode.html), поэтому он не может масштабироваться так, как фаззеры с такими возможностями. Повторюсь, это не самый современный фаззер. Но ему не нужен исходный код, настройка сборки или определённые функции ОС. Он даже может фаззить некоторые графические интерфейсы сетевых клиентов и интерактивные приложения. Он во многом использует то, что уже есть в системе, и многие функции, такие как мутаторы и минимизация, были написаны с нуля.