
Uma ferramenta para ajudar você a escrever exploits binários
Uma ferramenta para ajudá-lo a escrever exploits binários
rop-tool v2.4.2
Ajuda você a criar exploits binários.
Uso: rop-tool <cmd> [OPÇÕES]
Comandos :
gadget Pesquisar gadgets
patch Corrigir o binário
info Exibir informações sobre o binário
heap Exibir estrutura do heap
disassemble Desmontar o binário
search Pesquisar no binário
help Exibir ajuda
version Exibir versão
Tente "rop-tool help <cmd>" para mais informações sobre um comando.
Uso : rop-tool gadget [OPÇÕES] [NOME_ARQUIVO]
OPÇÕES:
--arch, -A Selecionar uma arquitetura (x86, x86-64, arm, arm64)
--all, -a Exibir todos os gadgets (mesmo os que não são únicos)
--depth, -d [d] Especificar a profundidade para pesquisa de gadgets (padrão é 5)
--flavor, -f [f] Selecionar um flavor (att ou intel)
--no-filter, -F Não aplicar alguns filtros nos gadgets
--help, -h Exibir esta mensagem de ajuda
--no-color, -N Não colorir a saída
Uso : rop-tool search [OPÇÕES] [NOME_ARQUIVO]
OPÇÕES:
--all-string, -a [n] Pesquisar todas as strings imprimíveis de pelo menos [n] caracteres. (padrão é 6)
--byte, -b [b] Pesquisar o byte [b] no binário
--dword, -d [d] Pesquisar o dword [d] no binário
--help, -h Exibir esta mensagem de ajuda
--no-color, -N Não colorir a saída
--qword, -q [q] Pesquisar o qword [q] no binário
--raw, -r Abrir arquivo em modo raw (não considerar nenhum formato de arquivo)
--split-string, -s [s] Pesquisar uma string "dividida" na memória (que não é contígua na memória)
--string, -S [s] Pesquisar uma string (uma sequência de bytes) no binário
--word, -w [w] Pesquisar a word [w] no binário
Uso : rop-tool patch [OPÇÕES] [NOME_ARQUIVO]
OPÇÕES:
--address, -a [a] Selecionar um endereço para corrigir (patch)
--bytes, -b [b] Uma sequência de bytes (ex.: "\xaa\xbb\xcc") para escrever
--filename, -f [f] Especificar o nome do arquivo
--help, -h Exibir esta mensagem de ajuda
--offset, -o [o] Selecionar um offset para corrigir (a partir do início do arquivo)
--output, -O [o] Escrever em outro nome de arquivo
--raw, -r Abrir arquivo em modo raw
Uso : rop-tool info [OPÇÕES] [NOME_ARQUIVO]
OPÇÕES:
--all, -a Mostrar todas as informações
--segments, -l Mostrar segmentos
--sections, -s Mostrar seções
--syms, -S Mostrar símbolos
--filename, -f [f] Especificar o nome do arquivo
--help, -h Exibir esta mensagem de ajuda
--no-color, -N Desativar cores
Uso : rop-tool dis [OPÇÕES] [NOME_ARQUIVO]
OPÇÕES:
--help, -h Exibir esta mensagem de ajuda
--no-color, -N Não colorir a saída
--address, -a <a> Começar a desmontagem no endereço <a>
--offset, -o <o> Começar a desmontagem no offset <o>
--sym, -s <s> Desmontar símbolo
--len, -l <l> Desmontar apenas <l> bytes
--arch, -A <a> Selecionar arquitetura (x86, x86-64, arm, arm64)
--flavor, -f <f> Alterar flavor (intel, att)
Uso : rop-tool heap [OPÇÕES] [COMANDO]
OPÇÕES:
--calloc, -C Rastrear chamadas calloc
--free, -F Rastrear chamadas free
--realloc, -R Rastrear chamadas realloc
--malloc, -M Rastrear chamadas malloc
--dumpdata, -d Despejar dados do chunk
--output, -O Saída em um arquivo
--help, -h Exibir esta mensagem de ajuda
--tmp, -t <d> Especificar o diretório gravável, para despejar a biblioteca (padrão: /tmp/)
--no-color, -N Não colorir a saída
Pequenas explicações sobre a saída do comando heap
Cada linha corresponde a um chunk malloc, e o heap é despejado após cada execução das funções heap (free, malloc, realloc, calloc)
addr: é o endereço real do chunk malloc
usr_addr: é o endereço retornado pelas funções malloc para o usuário
size: é o tamanho do chunk malloc
flags: P é PREV_INUSE, M é IS_MAPED e A é NON_MAIN_ARENA
Busca de strings, busca de gadgets, correção (patching), informações, visualização de heap, desmontagem
Saída colorida
Flavor Intel e AT&T
Suporte aos formatos binários ELF, PE e MACH-O
Suporte a big e little endian
Suporte às arquiteturas x86, x86_64, ARM, ARM64, MIPS, MIPS64
Pesquisa básica de gadgets
rop-tool gadget ./program
Exibir todos os gadgets com sintaxe AT&T
rop-tool gadget ./program -f att -a
Pesquisar gadgets em arquivo RAW x86
rop-tool gadget ./program -A x86
Pesquisar uma string "dividida" no binário
rop-tool search ./program -s "/bin/sh"
Pesquisar todas as strings no binário
rop-tool search ./program -a
Corrigir binário no offset 0x1000, com "\xaa\xbb\xcc\xdd" e salvar como "patched" :
rop-tool patch ./program -o 0x1000 -b "\xaa\xbb\xcc\xdd" -O patched
Visualizar alocação de heap do comando /bin/ls :
rop-tool heap /bin/ls
Desmontar 0x100 bytes no endereço 0x08048452
rop-tool dis /bin/ls -l 0x100 -a 0x08048452
rop-tool gadget /bin/ls

rop-tool search /bin/ls -a

rop-tool search /bin/ls -s "/bin/sh\x00"

rop-tool heap ./a.out

rop-tool dis ./bin # Many formats

git clone https://github.com/t00sh/rop-tool.git
cd rop-tool
sh scripts/set_env.sh
make
Tosh (tosh at t0x0sh . org)