one_gadget RCE
¿Qué es one_gadget RCE?
one_gadget RCEAtajo de explotacion (en CTFs y en la practica) que invoca una unica direccion de libc para lanzar una shell, siempre que se cumplan las restricciones de registros y pila.
Un one_gadget es una secuencia de instrucciones en glibc que termina invocando execve("/bin/sh", NULL, NULL) si se llega a ella con ciertas precondiciones de registros y pila. La herramienta one_gadget de david942j escanea libc y lista esas direcciones con sus restricciones (por ejemplo, rax == 0 o rsp+0x40 == NULL). El atacante que pueda secuestrar un solo puntero de funcion o direccion de retorno (GOT overwrite, ataques sobre FILE streams, unsorted bin) obtiene una shell sin construir una cadena ROP completa. Hay que cumplir las restricciones con cuidado, a menudo con gadgets auxiliares o pivots de pila. Mitigaciones: constant-blinding, CFI, sandboxes con seccomp y libc modificada o stripped que retire los gadgets canonicos.
● Ejemplos
- 01
Lanzar /bin/sh con one_gadget tras un unico GOT overwrite en un binario con libc-2.31.
- 02
Exploit FILE-stream que corrompe la vtable de _IO_2_1_stdout_ para saltar a un one_gadget viable.
● Preguntas frecuentes
¿Qué es one_gadget RCE?
Atajo de explotacion (en CTFs y en la practica) que invoca una unica direccion de libc para lanzar una shell, siempre que se cumplan las restricciones de registros y pila. Pertenece a la categoría de Ataques y amenazas en ciberseguridad.
¿Qué significa one_gadget RCE?
Atajo de explotacion (en CTFs y en la practica) que invoca una unica direccion de libc para lanzar una shell, siempre que se cumplan las restricciones de registros y pila.
¿Cómo funciona one_gadget RCE?
Un one_gadget es una secuencia de instrucciones en glibc que termina invocando execve("/bin/sh", NULL, NULL) si se llega a ella con ciertas precondiciones de registros y pila. La herramienta one_gadget de david942j escanea libc y lista esas direcciones con sus restricciones (por ejemplo, rax == 0 o rsp+0x40 == NULL). El atacante que pueda secuestrar un solo puntero de funcion o direccion de retorno (GOT overwrite, ataques sobre FILE streams, unsorted bin) obtiene una shell sin construir una cadena ROP completa. Hay que cumplir las restricciones con cuidado, a menudo con gadgets auxiliares o pivots de pila. Mitigaciones: constant-blinding, CFI, sandboxes con seccomp y libc modificada o stripped que retire los gadgets canonicos.
¿Cómo defenderse de one_gadget RCE?
Las defensas contra one_gadget RCE combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para one_gadget RCE?
Nombres alternativos comunes: one_gadget.
● Términos relacionados
- attacks№ 569
Programacion orientada a saltos (JOP)
Tecnica de reutilizacion de codigo (Bletsch et al., 2011) que encadena gadgets terminados en saltos indirectos mediante un dispatcher, como alternativa al ROP.
- vulnerabilities№ 667
Corrupción de memoria
Término paraguas para vulnerabilidades en las que un programa escribe fuera de los límites previstos, comprometiendo seguridad de tipos, flujo de control o integridad de datos.
- vulnerabilities№ 131
Desbordamiento de búfer
Fallo de seguridad de memoria en el que un programa escribe más allá del final de un búfer asignado, corrompiendo memoria adyacente y a menudo permitiendo ejecución de código.