hacktricks/reversing-and-exploiting/tools/pwntools.md
2024-04-06 19:40:41 +00:00

5.5 KiB
Raw Blame History

AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

HackTricks'ı desteklemenin diğer yolları:

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

Satırdan veya dosyadan opcode'ları alın.

from pwn import asm

# Satırdan opcode almak için
opcode = asm("mov eax, 0")

# Dosyadan opcode almak için
with open("shellcode.asm", "r") as f:
    opcode = asm(f.read())

asm fonksiyonu, verilen assembly kodunu opcode'larına dönüştürür. Satır veya dosya olarak verilen assembly kodunu işleyebilirsiniz.

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

Seçebilirsiniz:

  • çıktı türü (ham, hex, dize, elf)
  • çıktı dosyası bağlamı (16,32,64,linux,windows...)
  • baytları atlayabilirsiniz (yeni satırlar, null, bir liste)
  • çıktıyı çalıştırmak için gdb kullanarak hata ayıklama kabuk kodlayıcısını seçebilirsiniz

Pwn checksec

Checksec betiği

pwn checksec <executable>

Pwn constgrep

Pwn cyclic

Bir desen alın

pwn cyclic 3000
pwn cyclic -l faad

Seçebilirsiniz:

  • Kullanılan alfabe (varsayılan olarak küçük harfler)
  • Benzersiz desen uzunluğu (varsayılan olarak 4)
  • Bağlam (16,32,64,linux,windows...)
  • Offset alın (-l)

Pwn hata ayıklama

Bir işleme GDB'yi bağlayın

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

Seçebilirsiniz:

  • Yürütülebilir dosya, isim veya pid bağlamına göre (16,32,64,linux,windows...)
  • Yürütülecek gdbscript
  • Sysrootpath

Pwn disablenx

Bir ikili dosyanın nx'ini devre dışı bırakın

pwn disablenx <filepath>

Pwn disasm

Hex opcode'ları disassemble et.

pwn disasm ffe4

Seçenekler:

  • bağlam (16,32,64,linux,windows...)
  • temel adres
  • renk (varsayılan)/renksiz

Pwn elfdiff

2 dosya arasındaki farkları yazdırır

pwn elfdiff <file1> <file2>

Hexadecimal Temsilini Ele Geçir

Onaltılık temsili elde etmek için kullanılır.

pwn hex hola #Get hex of "hola" ascii

Pwn phd

Hexdump alın

from pwn import *

# Create a connection to the target
conn = remote('target.com', 1337)

# Receive data from the target
data = conn.recv()

# Print the hexdump of the received data
hexdump(data)

Bu kod parçası, pwn kütüphanesini kullanarak hedefe bağlantı oluşturur ve hedeften veri alır. Alınan verinin hexdump'ını ekrana yazdırır.

pwn phd <file>

Seçebilirsiniz:

  • Gösterilecek bayt sayısı
  • Satır başına düşen bayt sayısı
  • Başlangıçta atlanacak baytlar

Pwn pwnstrip

Pwn scrable

Pwn shellcraft

Shell kodlarını alın

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

Seçebilirsiniz:

  • shellcode ve shellcode için argümanlar
  • Çıktı dosyası
  • çıktı formatı
  • hata ayıklama (shellcode'a dbg ekle)
  • önce (koddan önce hata ayıklama tuzağı)
  • sonra
  • opcode kullanmaktan kaçının (varsayılan: null ve yeni satır kullanmayın)
  • Shellcode'u çalıştırın
  • Renkli/renksiz
  • sistem çağrılarını listele
  • mümkün olan shellcode'ları listele
  • Paylaşılan bir kitaplık olarak ELF oluşturun

Pwn şablonu

Bir Python şablonu alın

pwn template

Seçebilirsiniz: host, port, kullanıcı, şifre, yol ve sessiz

Unhex Pwn

Hex'ten dizeye

pwn unhex 686f6c61

Pwn güncelleme

Pwntools'u güncellemek için

pwn update
AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

HackTricks'ı desteklemenin diğer yolları: