One Gadget

HackTricks'i Destekleyin

Temel Bilgiler

Tek Gadget, system ve "/bin/sh" kullanmak yerine kabuk elde etmeyi sağlar. Tek Gadget, sadece bir adres kullanarak bir kabuk (execve("/bin/sh")) elde etmek için libc kütüphanesinde bir yol bulacaktır. Ancak genellikle bazı kısıtlamalar vardır, en yaygın olanları ve kolayca kaçınılabilecek olanlar [rsp+0x30] == NULL gibi. RSP içindeki değerleri kontrol ettiğinizden, sadece daha fazla NULL değeri göndererek kısıtlamayı önleyebilirsiniz.

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

One Gadget tarafından belirtilen adrese, libc'in yüklendiği temel adresi eklemeniz gerekmektedir.

One Gadget, Keyfi Yazma 2 Yürütme teknikleri için büyük bir yardımcıdır ve ROP zincirlerini basitleştirebilir çünkü sadece bir adrese çağrı yapmanız yeterlidir (ve gereksinimleri karşılamanız gerekir).

ARM64

Github deposu, ARM64'ün desteklendiğini belirtiyor, ancak Kali 2023.3'ün libc'sinde çalıştırıldığında hiçbir gadget bulamıyor.

Kızgın Gadget

Github deposu'ndan: OneGadget'den ilham alınarak bu araç python dilinde yazılmıştır ve execve('/bin/sh', NULL, NULL) komutunu yürüten gadget'lar için kısıtlamaları test etmek için angr kullanır. One Gadget'dan denemek için gadget'larınız tükendiğinde, Kızgın Gadget karmaşık kısıtlamalarla daha fazlasını sunar!

pip install angry_gadget

angry_gadget.py examples/libc6_2.23-0ubuntu10_amd64.so
HackTricks'i Destekleyin

Last updated