Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
ansvif — A Not So Very Intelligent Fuzzer: продвинутый фреймворк для фаззинга, предназначенный для поиска уязвимостей в коде на C/C++. | Kitploit
Инструменты/GitHubGitHub/oxagast/ansvif
Анализ уязвимостейЭксплуатацияФаззингТестирование на ПроникновениеАнализ Бинарных Файлов
GitHuboxagast/ansvif

ansvif

A Not So Very Intelligent Fuzzer: продвинутый фреймворк для фаззинга, предназначенный для поиска уязвимостей в коде на C/C++.

Репозиторий
105265 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

ansvif

Не очень умный фаззер

Marshall Whittaker

oxagast

[email protected]

С ростом сложности системы растёт и потенциал проблем внутри неё.

--Закон Уиттакера

Зависимости для сборки:

automake autoconf-archive zlib1g-dev g++ gcc (и libgtk2.0-dev, если нужна поддержка GTK)

Сборка:

Linux:

root@kitploit:~
$ aclocal && autoconf && automake -a && ./configure && make && make check

Или, если хотите поиграться с фаззером системных вызовов:

root@kitploit:~
$ aclocal && autoconf && automake -a && ./configure --enable-syscalls && make && make check

Если хотите отключить GTK-интерфейс, выполните:

root@kitploit:~
$ aclocal && autoconf && automake -a && ./configure --disable-gtk && make && make check

FreeBSD

Предполагая, что вы установили g++ из портов (он понадобится для C++11):

root@kitploit:~
$ aclocal && autoconf && automake -a && ./configure && make && make check

OpenBSD:

Предполагая, что вы установили g++ из портов (он понадобится для C++11):

root@kitploit:~
$ CXX=$(find / -name 'eg++' 2>/dev/null | grep ports | head -n 1) AUTOCONF_VERSION=2.69 AUTOMAKE_VERSION=1.15 autoreconf -fmi

Windows:

Бинарные файлы Windows теперь предназначены для компиляции с помощью MinGW-W64 (поскольку мы используем многопоточность, скачайте версию MinGW-W64 g++ с seh). Вы можете попробовать скомпилировать после установки MinGW-W64 g++ с seh (только), запустив включённый скрипт make_win.bat. Если это не удаётся, скорее всего, проблема в окружении, поэтому попробуйте способ ниже.

(Перейдите туда, где установлен MinGW-W64, и запустите mingw-64.bat)

root@kitploit:~
windres metadata.rc -O coff -o metadata.res
g++.exe src/common.cpp src/bin2hex.cpp src/popen2.cpp src/main.cpp src/help.cpp src/match_fault.cpp src/sys_string.cpp src/man_read.cpp src/randomizer.cpp src/trash.cpp src/log.cpp metadata.res src/version.h -I./ -I./include -std=c++11 -lstdc++ -lpthread -O2 -o ansvif.exe -static -static-libgcc -static-libstdc++
gcc src/win/printf.c -o printf.exe

Примечание: внешние файлы .dll cygwin больше не требуются, так как теперь мы компилируем с помощью g++ из MinGW. В Windows 7 по умолчанию установлен Powershell v2, однако эта программа требует как минимум Powershell v5. Windows 10 включает Powershell v5. Вы можете перейти на сайт Microsoft и скачать Windows Management Framework (который включает новые версии Powershell) здесь:

https://www.microsoft.com/en-us/download/details.aspx?id=50395

Тестирование:

Если вы хотите попробовать пример кода, скомпилируйте faulty.c с помощью:

root@kitploit:~
$ gcc faulty.c -o faulty

Вы также можете просто выполнить make check.

Использование:

Важное примечание: пользователям Windows необходимо запускать ansvif.exe из Powershell, чтобы он работал!

root@kitploit:~
$ ./find_suid /usr/bin/ /bin/ /sbin/
$ ./ansvif -[tm] [шаблон/man-страница] -c /путь/к/исполняемому -b размер_буфера

Примеры:

Linux/BSD:

root@kitploit:~
$ ulimit -c unlimited
$ ./ansvif -m mount -c /bin/mount -e examples/mount_e.txt -x examples/mount_o.txt\
-f 8 -b 2048
$ ./ansvif -t examples/blank.txt -F tmp/tmphtml -x examples/htmltags.txt -c /usr/bin/iceweasel -b\
128 -A "file:///home/username/src/ansvif/tmp/tmphtml"  -f 2 -n -R "sleep 3 && killall\
iceweasel" -S ">"
$ cat examples/linux_syscalls_implemented.list | xargs -P \
`cat examples/linux_syscalls_implemented.list | wc -l` -I {calls} ./ansvif -t examples/space.txt \
-B "{calls} " -c ./syscalls -o syscall_crash -f 1 -z -d -b 16

Windows:

root@kitploit:~
PS C:\ansvif\bin\ansvif_win> .\ansvif -t ..\..\examples\space -F ..\..\tmp\tmphtml -x `
..\..\examples\htmltags -c `
'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe' `
-b 128 -A "file:///C:\\Users\marsh\OneDrive\Documents\Code\ansvif\tmp\tmphtml" `
-f 2 -n -S ">" -R "sleep 2 ; Stop-Process -Name chrome"

Опции:

ansvif

root@kitploit:~
  -t Этот файл должен содержать аргументы командной строки построчно, как показано в примере.
  -e Этот файл должен содержать переменные окружения построчно, как показано в примере.
     Обычно их можно получить, выполнив что-то вроде:
     $ strings /bin/mount | perl -ne 'print if /[A-Z]=$/' > mount_envs
  -c Указывает путь к команде.
  -p Указывает местоположение man-страницы (как целое число, обычно 1 или 8)
  -m Указывает man-страницу команды.
  -D Выводит содержимое man-страницы.
  -f Количество используемых потоков. По умолчанию 2.
  -b Указывает размер буфера для фаззинга. 256-2048 обычно достаточно.
  -r Использует только случайные мусорные данные.
  -o Записывает вывод в файл журнала.
  -z Случайный размер буфера от 1 до указанного в -b.
  -x Другой мусор для вставки. Сюда можно поместить имена пользователей и т.п.
  -S Разделитель между опциями.
  -s Спецификация пропущенных символов. По умолчанию <>\\n |&\[]\()\{}:; и новая строка обязательна.
  -T Тайм-аут для потоков.
  -W Тайм-аут для потоков.
  -L Непривилегированный пользователь для запуска, если запуск от root.
  -A Всегда помещать указанное после команды для запуска.
  -B Всегда помещать указанное перед командой для запуска.
  -F Файл для передачи в программу, в который будут помещены данные из -x вместе с обычными фаззинговыми данными.
  -n Никогда не использовать случайные данные в фаззинге.
  -R Выполнить эту команду после каждого фазза.
  -C Нестандартный код ошибки для обнаружения.
  -V Использовать Valgrind, если установлен.
  -1 Попытаться вызвать ошибку один раз; если это не произойдёт, вернуть код ошибки 64. Полезно для скриптов.
  -P Использовать % для представления двоичных данных в фаззинге.
  -M Максимальное количество аргументов в фаззинге.
  -y Сокращение для -b 0 и обычно полезно только с -A или -B.
  -K Продолжать фаззинг после сбоя целевой программы.
  -E Команда, выполняемая перед фаззируемой программой.
  -0 Без нулевых символов в фаззинге.
  -N Сокращение для -R "pkill prog".
  -v Подробный вывод.
  -d Отладочные данные.
  -h Показать страницу справки.
  -i Вывести информацию о версии.

ansvif_gtk

root@kitploit:~
  -l Сокращение для -p ./ansvif
  -p Расположение бинарного файла ansvif

Рекомендации: Рекомендуется при длительных фаззах или фаззинге файлов, если возможно, помещать файлы (включая фаззируемый бинарный файл, если возможно) в память. То есть помещать их куда-то вроде /var/run/shm, где нагрузка на диск будет минимальна, а фаззинг будет несколько быстрее, особенно при работе с большими файлами. Однако предупреждаем: вы потеряете фаззированные файлы, если они находятся в shm, и вы перезагрузите машину!

НЕ ЗАПУСКАЙТЕ ЭТОТ КОД В ПРОДУКЦИОННОЙ СРЕДЕ! Если вы попытаетесь установить вывод faulty.c в suid(0), то, ПОЖАЛУЙСТА, делайте это на виртуальной машине. Или хотя бы на машине, которой вам не жалко. В остальном — просто играйтесь и получайте удовольствие!

Примечания:

Пользователи Windows должны запускать ansvif из Powershell. Код для Linux и Windows должен быть относительно стабильным. Фаззинг системных вызовов под Linux находится в активной разработке.

Благодарности

Спасибо dll999 за идеи по фаззингу системных вызовов. Спасибо moo из #2600 на 2600net за несколько рекомендаций для wiki-статьи. Спасибо богу знает скольким людям в IRC и на StackOverflow. Спасибо DarkSt0rm за исправление ошибки в Makefile.

Скачать инструмент