hacktricks/exploiting/tools/pwntools.md
2024-02-10 15:36:32 +00:00

6.6 KiB

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

``` pip3 install pwntools ``` # Pwn asm

Holen Sie Opcodes von einer Zeile oder einer Datei.

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

Kann auswählen:

  • Ausgabetyp (roh, hexadezimal, Zeichenkette, ELF)
  • Ausgabedatei-Kontext (16, 32, 64, Linux, Windows...)
  • Bytes vermeiden (Zeilenumbrüche, Null, eine Liste)
  • Encoder für Debugging des Shellcodes auswählen und mit gdb die Ausgabe ausführen

Pwn checksec

Checksec-Skript

pwn checksec <executable>

Pwn constgrep

constgrep ist ein nützliches Werkzeug, um Konstanten in ausführbaren Dateien zu finden. Es kann verwendet werden, um nach bestimmten Werten in Speicheradressen zu suchen und diese zu extrahieren.

Verwendung

Die Syntax für die Verwendung von constgrep lautet:

constgrep <pattern> <binary>

<pattern> ist der Wert, nach dem gesucht werden soll, und <binary> ist die ausführbare Datei, in der gesucht werden soll.

Beispiel

Angenommen, wir haben eine ausführbare Datei namens program, in der wir nach der Konstante 0xdeadbeef suchen möchten. Wir können constgrep wie folgt verwenden:

constgrep 0xdeadbeef program

Dies wird alle Vorkommen von 0xdeadbeef in der Datei program finden und anzeigen.

Pwn cyclic

Erzeugen eines Musters

cyclic ist ein nützliches Werkzeug, um Muster zu generieren, die bei der Ausnutzung von Pufferüberläufen und ähnlichen Angriffen hilfreich sein können. Es erzeugt eine sich wiederholende Sequenz von Zeichen, die verwendet werden kann, um die Position von Speicherüberläufen zu ermitteln.

Verwendung

Die Syntax für die Verwendung von cyclic lautet:

cyclic <length>

<length> ist die Länge des zu generierenden Musters.

Beispiel

Angenommen, wir möchten ein Muster mit einer Länge von 100 generieren. Wir können cyclic wie folgt verwenden:

cyclic 100

Dies erzeugt ein Muster mit einer Länge von 100 Zeichen, das zur Analyse von Pufferüberläufen verwendet werden kann.

pwn cyclic 3000
pwn cyclic -l faad

Kann auswählen:

  • Das verwendete Alphabet (Standardmäßig Kleinbuchstaben)
  • Länge des eindeutigen Musters (Standardmäßig 4)
  • Kontext (16,32,64,linux,windows...)
  • Offset übernehmen (-l)

Pwn Debug

GDB an einen Prozess anhängen

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

Kann auswählen:

  • Nach ausführbarer Datei, nach Namen oder nach PID-Kontext (16,32,64,linux,windows...)
  • gdbscript zum Ausführen
  • sysrootpath

Pwn disablenx

Deaktiviert NX für eine ausführbare Datei

pwn disablenx <filepath>

Pwn disasm

Disassembliere hexadezimale Opcodes

pwn disasm ffe4

Kann auswählen:

  • Kontext (16,32,64,linux,windows...)
  • Basisadresse
  • Farbe (Standard)/keine Farbe

Pwn elfdiff

Drucke Unterschiede zwischen 2 Dateien

pwn elfdiff <file1> <file2>

Pwn hex

Erhalte die hexadezimale Darstellung

pwn hex hola #Get hex of "hola" ascii

Pwn phd

Holen Sie sich den Hexdump

pwn phd <file>

Kann auswählen:

  • Anzahl der anzuzeigenden Bytes
  • Anzahl der Bytes pro Zeile, um Byte hervorzuheben
  • Bytes am Anfang überspringen

Pwn pwnstrip

Pwn scrable

Pwn shellcraft

Shellcodes erhalten

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

Kann auswählen:

  • Shellcode und Argumente für den Shellcode
  • Ausgabedatei
  • Ausgabeformat
  • Debuggen (dbg an Shellcode anhängen)
  • Vorher (Debuggen-Falle vor dem Code)
  • Nachher
  • Vermeiden von Opcodes (Standard: nicht null und neue Zeile)
  • Shellcode ausführen
  • Farbe/keine Farbe
  • Liste der Systemaufrufe anzeigen
  • Liste möglicher Shellcodes anzeigen
  • ELF als gemeinsam genutzte Bibliothek generieren

Pwn-Vorlage

Holen Sie sich eine Python-Vorlage

pwn template

Kann auswählen: Host, Port, Benutzer, Passwort, Pfad und Quiet

Pwn unhex

Von Hexadezimal zu String

pwn unhex 686f6c61

Pwn-Update

Um pwntools zu aktualisieren, führen Sie den folgenden Befehl aus:

pwn update
Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen: