Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ansvif — A Not So Very Intelligent Fuzzer: Um framework avançado de fuzzing projetado para encontrar vulnerabilidades em código C/C++. | Kitploit
Ferramentas/GitHubGitHub/oxagast/ansvif
Análise de VulnerabilidadesExploraçãoFuzzingTestes de PenetraçãoAnálise de Binários
GitHuboxagast/ansvif

ansvif

A Not So Very Intelligent Fuzzer: Um framework avançado de fuzzing projetado para encontrar vulnerabilidades em código C/C++.

Ver Repositório
10526há 5 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site

ansvif

Um Fuzzer Não Tão Inteligente

Marshall Whittaker

oxagast

[email protected]

À medida que a complexidade de um sistema aumenta, também aumenta o potencial para problemas dentro desse sistema.

--Lei de Whittaker

Dependências de Compilação:

automake autoconf-archive zlib1g-dev g++ gcc (e libgtk2.0-dev se desejar suporte GTK)

Compilação:

Linux:

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

Ou, se quiser brincar com o fuzzer de chamadas de sistema:

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

Se quiser desabilitar a interface GTK, pode fazer:

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

FreeBSD

Supondo que você instalou o g++ a partir dos ports (necessário para C++11):

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

OpenBSD:

Supondo que você instalou o g++ a partir dos ports (necessário para 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:

Os binários do Windows agora são projetados para serem compilados com MinGW-W64 (já que usamos threading, baixe uma versão do MinGW-W64 g++ com seh). Você pode tentar compilar após instalar o MinGW-W64 g++ com seh (apenas) clicando no script make_win.bat incluído. Se falhar, provavelmente é devido ao ambiente, então tente o abaixo.

(Vá para onde instalou o MinGW-W64 e clique em 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

Nota: arquivos .dll externos do cygwin não são mais necessários, pois agora compilamos com g++ do MinGW. No Windows 7, o Powershell v2 é instalado por padrão, no entanto, este programa requer pelo menos o Powershell v5. O Windows 10 inclui o Powershell v5. Você pode acessar o site da Microsoft e baixar o Windows Management Framework (que inclui versões mais recentes do Powershell) aqui:

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

Testes:

Se quiser experimentar o código de exemplo, pode compilar o faulty.c com:

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

Você também pode simplesmente executar make check.

Uso:

Nota importante: Usuários do Windows devem executar ansvif.exe a partir do Powershell para que funcione!

root@kitploit:~
$ ./find_suid /usr/bin/ /bin/ /sbin/
$ ./ansvif -[tm] [template/manpage] -c /path/to/executable -b buffersize

Exemplos:

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"

Opções:

ansvif

root@kitploit:~
  -t Este arquivo deve conter argumentos de linha de comando linha por linha, conforme mostrado no arquivo de exemplo.
  -e Este arquivo deve conter variáveis de ambiente linha por linha, conforme mostrado no arquivo de
     exemplo. Você geralmente pode obtê-las fazendo algo como:
     $ strings /bin/mount | perl -ne 'print if /[A-Z]=$/' > mount_envs
  -c Especifica o caminho do comando.
  -p Especifica a localização da manpage (como um inteiro, geralmente 1 ou 8)
  -m Especifica a manpage do comando.
  -D Despeja o que é encontrado na manpage.
  -f Número de threads a serem usados. O padrão é 2.
  -b Especifica o tamanho do buffer para fuzzar. 256-2048 geralmente é suficiente.
  -r Usa apenas dados aleatórios de lixo.
  -o Escreve a saída em um arquivo de log.
  -z Randomiza o tamanho do buffer de 1 até o especificado por -b.
  -x Outros itens a serem inseridos. Nomes de usuário e afins podem ir aqui.
  -S Separador entre opções.
  -s Especificação de caracteres omitidos. Os padrões são <>\\n |&\[]\()\{}:;\ e a nova linha é obrigatória.
  -T Timeout para threads.
  -W Timeout para threads.
  -L Usuário não privilegiado para executar como root.
  -A Sempre coloca o que está depois disso após o comando a ser executado.
  -B Sempre coloca o que está depois disso antes do comando a ser executado.
  -F Arquivo para alimentar o programa onde -x juntamente com dados normais de fuzzing serão colocados.
  -n Nunca usa dados aleatórios no fuzz.
  -R Executa este comando após cada fuzz.
  -C Um código de erro não padrão para detectar.
  -V Usa Valgrind se instalado.
  -1 Tenta fazer com que falhe uma vez; se não acontecer, retorna código de erro 64. Útil para scripts.
  -P Usa % para representar binário no fuzz.
  -M Número máximo de argumentos a serem usados no fuzz.
  -y Atalho para -b 0 e geralmente útil apenas com -A ou -B.
  -K Continua fuzzing após uma falha no alvo.
  -E Um comando a ser executado antes do programa fuzzeado.
  -0 Nenhum caractere NULL no fuzz.
  -N Abreviação para -R "pkill prog".
  -v Verboso.
  -d Dados de depuração.
  -h Mostra a página de ajuda.
  -i Exibe informações da versão.

ansvif_gtk

root@kitploit:~
  -l Atalho para -p ./ansvif
  -p A localização do binário ansvif

Recomendações: Recomenda-se que, se você estiver realizando fuzzes longos ou fuzzing de arquivos, se possível, coloque os arquivos (incluindo o binário que está sendo fuzzeado, se possível) na memória. Isso significa colocá-los em algum lugar como /var/run/shm, onde o thrash de disco será mínimo, e o fuzzing será um pouco mais rápido, especialmente se arquivos grandes estiverem sendo manipulados. No entanto, esteja avisado: você perderá seus arquivos fuzzeados se eles estiverem em shm e você reiniciar a máquina!

NÃO EXECUTE ESTE CÓDIGO EM UM AMBIENTE DE PRODUÇÃO! Se você tentar definir a saída de faulty.c para suid(0), então, POR FAVOR, faça isso em uma máquina virtual. ou pelo menos em uma máquina que não lhe importe. Fora isso, apenas brinque e divirta-se!

Notas:

Usuários do Windows devem executar ansvif a partir do Powershell. O código do Linux e do Windows deve ser relativamente estável. O fuzzing de chamadas de sistema no Linux está em desenvolvimento intenso.

Agradecimentos

Agradecimentos a dll999 pelas ideias de fuzzing de chamadas de sistema. Agradecimentos a moo do #2600 na 2600net por algumas recomendações no artigo da wiki. Agradecimentos a não sei quantas pessoas no IRC e no StackOverflow. Agradecimentos a DarkSt0rm por corrigir um bug no Makefile.

Baixar ferramenta