One Gadget

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

Información Básica

One Gadget permite obtener un shell en lugar de usar system y “/bin/sh”. One Gadget encontrará dentro de la biblioteca libc alguna forma de obtener un shell (execve("/bin/sh")) utilizando solo una dirección.
Sin embargo, normalmente hay algunas restricciones, las más comunes y fáciles de evitar son como [rsp+0x30] == NULL Como controlas los valores dentro del RSP solo tienes que enviar algunos valores NULL más para que la restricción sea evitada.

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

Para la dirección indicada por One Gadget, necesitas agregar la dirección base donde se carga libc.

Tip

One Gadget es una gran ayuda para las técnicas de Arbitrary Write 2 Exec y puede simplificar las cadenas ROP ya que solo necesitas llamar a una dirección (y cumplir con los requisitos).

ARM64

El repositorio de github menciona que ARM64 es compatible con la herramienta, pero al ejecutarla en la libc de Kali 2023.3 no encuentra ningún gadget.

Angry Gadget

Del repositorio de github: Inspirado por OneGadget, esta herramienta está escrita en python y utiliza angr para probar restricciones para gadgets que ejecutan execve('/bin/sh', NULL, NULL)
¡Si te has quedado sin gadgets para probar de OneGadget, Angry Gadget ofrece muchos más con restricciones complicadas para probar!

pip install angry_gadget

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

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks