PwnTools
PwnTools
A PwnTools é uma biblioteca python que permite a criação de scripts que ajudam na resolução de desafios CTFs, automatização, análise de binários e desenvolvimento de exploits.
Nesse documento, será apresentado algumas das principais funções disponíveis da biblioteca e alguns exemplos de uso.
Instalação
Utilizando pip:
pip3 install pwntoolsApós instalação, basta apenas colocar a seguinte linha para importar a biblioteca:
from pwn import *Documentação
Nesta seção, serão apresentadas as principais funções da biblioteca.
Conectar a processos
É possível interagir com processos locais ou remotos:
# Cria um processo do binário vuln
p = process("./vuln")
# Cria um processo remoto. Exemplo: Se o servidor for "nc chall.ctf 1234"
p = remote("chall.ctf", 1234)Ambiente e contexto
É possível definir o ambiente que executará o processo.
Codificação e utilidades
Há algumas funções de codificação, decodificação e utilidade gerais
Assembly
É possível escrever código assembly para enviar para o processo. Útil para exploits como shellcode.
ELFs, Strings e símbolos
É possível encontrar diversas informações a respeito do binário, como endereços de algumas funções, de string específicas, etc.
Return Oriented Programming (ROP)
É possível instanciar um analisador ROP.
SROP
É possível criar frame para exploits de SROP.
Format String Exploits
É possível utilizar funções prontas para realizar exploits de format string.
Carregar libc
Para garantir que a libc carregada no script seja a libc disponibilizada pelo desafio, você pode usar o seguinte script
Referências
pwntools cheatsheet: https://gist.github.com/anvbis/64907e4f90974c4bdd930baeb705dedf#program-interaction
Documentação pwntools: https://docs.pwntools.com/en/stable/intro.html#making-connections
Pwninit: https://github.com/io12/pwninit
Atualizado