hacktricks/exploiting/tools/pwntools.md

4.9 KiB

{% hint style="success" %} Ucz się i praktykuj Hacking AWS: HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i praktykuj Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Wesprzyj HackTricks
{% endhint %} ``` pip3 install pwntools ``` # Pwn asm

Pobierz kody operacyjne z linii lub pliku.

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

Możliwe opcje:

  • rodzaj wyjścia (surowe, szesnastkowe, ciąg znaków, elf)
  • kontekst pliku wyjściowego (16,32,64,linux,windows...)
  • pominięcie bajtów (nowe linie, null, lista)
  • wybierz debuger enkodera shellcode'u używając gdb uruchomienia wyjścia

Pwn checksec

Skrypt checksec

pwn checksec <executable>

Pwn constgrep

Pwn cyclic

Uzyskaj wzorzec

pwn cyclic 3000
pwn cyclic -l faad

Możesz wybrać:

  • Używany alfabet (domyślnie małe litery)
  • Długość unikalnego wzorca (domyślnie 4)
  • Kontekst (16,32,64,linux,windows...)
  • Podaj przesunięcie (-l)

Debugowanie Pwn

Dołącz GDB do procesu

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

Można wybrać:

  • Według pliku wykonywalnego, nazwy lub kontekstu pid (16,32,64,linux,windows...)
  • skrypt gdb do wykonania
  • ścieżka sysroot

Wyłączanie nx

Wyłącz nx dla pliku binarnego

pwn disablenx <filepath>

Rozkładanie kodów szesnastkowych

Analiza kodów operacyjnych w formacie szesnastkowym

pwn disasm ffe4

Możliwe opcje:

  • kontekst (16,32,64,linux,windows...)
  • adres bazowy
  • kolor (domyślnie)/bez koloru

Pwn elfdiff

Wyświetla różnice między 2 plikami

pwn elfdiff <file1> <file2>

Pwn hex

Uzyskaj reprezentację szesnastkową

pwn hex hola #Get hex of "hola" ascii

Zdobądź wydruk szesnastkowy

pwn phd <file>

Można wybrać:

  • Liczbę bajtów do wyświetlenia
  • Liczbę bajtów na linię wyróżnionego bajtu
  • Pominięcie bajtów na początku

Pwn pwnstrip

Pwn scrable

Pwn shellcraft

Pobierz shellkody

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

Można wybrać:

  • shellcode i argumenty dla shellcode
  • Plik wyjściowy
  • Format wyjścia
  • debug (dołącz dbg do shellcode)
  • przed (pułapka debugowania przed kodem)
  • po
  • unikaj używania kodów operacyjnych (domyślnie: nie null i nowa linia)
  • Uruchom shellcode
  • Kolor/bez koloru
  • lista wywołań systemowych
  • lista możliwych shellcode'ów
  • Generuj ELF jako bibliotekę współdzieloną

Szablon Pwn

Pobierz szablon w języku Python

pwn template

Można wybrać: host, port, user, pass, path i quiet

Pwn unhex

Z heksadecymalnego na ciąg znaków

pwn unhex 686f6c61

Aktualizacja Pwn

Aby zaktualizować narzędzie pwntools

pwn update

{% hint style="success" %} Ucz się i praktykuj Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i praktykuj Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Wesprzyj HackTricks
{% endhint %}