One Gadget

Reading time: 3 minutes

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE) Azure Hacking'i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Temel Bilgiler

One Gadget, system ve "/bin/sh" kullanmak yerine bir shell elde etmeyi sağlar. One Gadget, libc kütüphanesi içinde sadece bir adres kullanarak bir shell elde etmenin bir yolunu bulur (execve("/bin/sh")).
Ancak, genellikle bazı kısıtlamalar vardır, en yaygın ve kolayca aşılabilenler [rsp+0x30] == NULL gibi kısıtlamalardır. RSP içindeki değerleri kontrol ettiğiniz için, kısıtlamanın aşılması için sadece biraz daha NULL değeri göndermeniz yeterlidir.

python
ONE_GADGET = libc.address + 0x4526a
rop2 = base + p64(ONE_GADGET) + "\x00"*100

Belirtilen adrese One Gadget ile libc'nin yüklendiği temel adresi eklemeniz gerekiyor.

tip

One Gadget, Rastgele Yazma 2 Çalıştırma teknikleri için büyük bir yardım sağlar ve yalnızca bir adres çağırmanız gerektiğinden ROP zincirlerini basitleştirebilir (ve gereksinimleri yerine getirmeniz yeterlidir).

ARM64

Github reposu, aracın ARM64'ü desteklediğini belirtmektedir, ancak Kali 2023.3'teki libc'de çalıştırıldığında hiçbir gadget bulamamaktadır.

Angry Gadget

github repo'dan: OneGadget'ten ilham alınarak yazılmış bu araç, execve('/bin/sh', NULL, NULL) komutunu çalıştıran gadget'lar için kısıtlamaları test etmek üzere angr kullanmaktadır.
OneGadget'tan deneyecek gadget'larınız tükendiğinde, Angry Gadget karmaşık kısıtlamalarla denemek için çok daha fazlasını sunar!

bash
pip install angry_gadget

angry_gadget.py examples/libc6_2.23-0ubuntu10_amd64.so

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE) Azure Hacking'i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin