hacktricks/exploiting/tools/pwntools.md
2023-06-06 18:56:34 +00:00

6.8 KiB

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
``` pip3 install pwntools ``` # Pwn asm

Obtenha os códigos de operação de uma linha ou arquivo.

pwn asm "jmp esp" 
pwn asm -i <filepath>

Pode selecionar:

  • tipo de saída (bruto, hexadecimal, string, elf)
  • contexto do arquivo de saída (16, 32, 64, linux, windows...)
  • evitar bytes (novas linhas, nulos, uma lista)
  • selecionar o depurador de codificador para depurar o shellcode usando gdb e executar a saída

Pwn checksec

Script de verificação de segurança (checksec)

pwn checksec <executable>

Pwn constgrep

O constgrep é uma ferramenta que permite procurar constantes em arquivos binários. É útil para encontrar senhas, chaves de API e outras informações sensíveis que possam estar armazenadas em um arquivo binário.

Para usar o constgrep, basta fornecer o arquivo binário e a constante que você está procurando. Por exemplo:

$ constgrep binary_file "password"

Isso procurará a string "password" no arquivo binário e retornará o endereço em que ela foi encontrada.

Pwn cyclic

O cyclic é uma ferramenta que gera uma sequência de caracteres cíclica. É útil para encontrar o comprimento máximo de entrada que um programa pode aceitar antes de travar ou causar um erro de segmentação.

Para usar o cyclic, basta fornecer o comprimento máximo da entrada que você deseja testar. Por exemplo:

$ cyclic 100

Isso gerará uma sequência de 100 caracteres cíclica que pode ser usada como entrada para testar um programa. Quando o programa travar ou causar um erro de segmentação, você pode usar o cyclic novamente para encontrar o offset em que o erro ocorreu.

pwn cyclic 3000
pwn cyclic -l faad

Pode selecionar:

  • O alfabeto utilizado (minúsculas por padrão)
  • Comprimento do padrão exclusivo (padrão 4)
  • Contexto (16,32,64,linux,windows...)
  • Pegar o deslocamento (-l)

Depuração de Pwn

Anexar o GDB a um processo

pwn debug --exec /bin/bash
pwn debug --pid 1234
pwn debug --process bash

Pode selecionar:

  • Por executável, por nome ou por contexto pid (16,32,64,linux,windows...)
  • gdbscript para executar
  • sysrootpath

Pwn disablenx

Desabilitar o nx de um binário.

pwn disablenx <filepath>

Pwn disasm

Desmonta opcodes hexadecimais

pwn disasm ffe4

Pode selecionar:

  • contexto (16,32,64,linux,windows...)
  • endereço base
  • cor (padrão)/sem cor

Pwn elfdiff

Imprime as diferenças entre 2 arquivos.

pwn elfdiff <file1> <file2>

Pwn hex

Obter representação hexadecimal

pwn hex hola #Get hex of "hola" ascii

Pwn phd

Obter hexdump

pwn phd <file>

Pode selecionar:

  • Número de bytes a serem exibidos
  • Número de bytes por linha destacando o byte
  • Ignorar bytes no início

Pwn pwnstrip

Pwn scrable

Pwn shellcraft

Obter códigos shell

pwn shellcraft -l #List shellcodes 
pwn shellcraft -l amd #Shellcode with amd in the name
pwn shellcraft -f hex amd64.linux.sh #Create in C and run
pwn shellcraft -r amd64.linux.sh #Run to test. Get shell 
pwn shellcraft .r amd64.linux.bindsh 9095 #Bind SH to port

Pode selecionar:

  • shellcode e argumentos para o shellcode
  • Arquivo de saída
  • Formato de saída
  • depuração (anexar dbg ao shellcode)
  • antes (armadilha de depuração antes do código)
  • depois
  • evitar o uso de opcodes (padrão: não nulo e nova linha)
  • Executar o shellcode
  • Cor / sem cor
  • listar syscalls
  • listar possíveis shellcodes
  • Gerar ELF como uma biblioteca compartilhada

Modelo Pwn

Obtenha um modelo em Python.

pwn template

Pwn unhex

De hexadecimal para string

pwn unhex 686f6c61

Atualização do Pwn

Para atualizar o pwntools

pwn update
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥