# PwnTools {{#include ../../../banners/hacktricks-training.md}} ``` pip3 install pwntools ``` ## Pwn asm Obtener **opcodes** de una línea o archivo. ``` pwn asm "jmp esp" pwn asm -i ``` **Puede seleccionar:** - tipo de salida (raw,hex,string,elf) - contexto del archivo de salida (16,32,64,linux,windows...) - evitar bytes (nuevas líneas, nulo, una lista) - seleccionar codificador depurar shellcode usando gdb ejecutar la salida ## **Pwn checksec** Script checksec ``` pwn checksec ``` ## Pwn constgrep ## Pwn cyclic Obtén un patrón ``` pwn cyclic 3000 pwn cyclic -l faad ``` **Puede seleccionar:** - El alfabeto utilizado (caracteres en minúscula por defecto) - Longitud del patrón único (por defecto 4) - contexto (16,32,64,linux,windows...) - Tomar el desplazamiento (-l) ## Pwn debug Adjuntar GDB a un proceso ``` pwn debug --exec /bin/bash pwn debug --pid 1234 pwn debug --process bash ``` **Puede seleccionar:** - Por ejecutable, por nombre o por contexto de pid (16,32,64,linux,windows...) - gdbscript para ejecutar - sysrootpath ## Pwn deshabilitar nx Deshabilitar nx de un binario ``` pwn disablenx ``` ## Pwn disasm Desensamblar opcodes hex ``` pwn disasm ffe4 ``` **Puede seleccionar:** - contexto (16,32,64,linux,windows...) - dirección base - color (predeterminado)/sin color ## Pwn elfdiff Imprimir diferencias entre 2 archivos ``` pwn elfdiff ``` ## Pwn hex Obtener representación hexadecimal ```bash pwn hex hola #Get hex of "hola" ascii ``` ## Pwn phd Obtener hexdump ``` pwn phd ``` **Puede seleccionar:** - Número de bytes a mostrar - Número de bytes por línea resaltar byte - Omitir bytes al principio ## Pwn pwnstrip ## Pwn scrable ## Pwn shellcraft Obtener 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 ``` **Puede seleccionar:** - shellcode y argumentos para el shellcode - Archivo de salida - formato de salida - depurar (adjuntar dbg al shellcode) - antes (trampa de depuración antes del código) - después - evitar usar opcodes (predeterminado: no nulo y nueva línea) - Ejecutar el shellcode - Color/sin color - listar syscalls - listar posibles shellcodes - Generar ELF como una biblioteca compartida ## Plantilla Pwn Obtener una plantilla de python ``` pwn template ``` **Puede seleccionar:** host, puerto, usuario, contraseña, ruta y silencioso ## Pwn unhex De hex a cadena ``` pwn unhex 686f6c61 ``` ## Actualización de Pwn Para actualizar pwntools ``` pwn update ``` {{#include ../../../banners/hacktricks-training.md}}