One Gadget

Reading time: 2 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks

Informations de base

One Gadget permet d'obtenir un shell au lieu d'utiliser system et "/bin/sh". One Gadget trouvera à l'intérieur de la bibliothèque libc un moyen d'obtenir un shell (execve("/bin/sh")) en utilisant juste une adresse.
Cependant, normalement, il y a certaines contraintes, les plus courantes et faciles à éviter sont comme [rsp+0x30] == NULL Comme vous contrôlez les valeurs à l'intérieur de RSP, vous devez juste envoyer quelques valeurs NULL supplémentaires pour éviter la contrainte.

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

Pour l'adresse indiquée par One Gadget, vous devez ajouter l'adresse de base où libc est chargée.

tip

One Gadget est une grande aide pour les techniques Arbitrary Write 2 Exec et peut simplifier les chaînes ROP car vous n'avez besoin d'appeler qu'une seule adresse (et de remplir les exigences).

ARM64

Le dépôt github mentionne que ARM64 est pris en charge par l'outil, mais lors de son exécution dans la libc d'un Kali 2023.3, il ne trouve aucun gadget.

Angry Gadget

Depuis le dépôt github : Inspiré par OneGadget, cet outil est écrit en python et utilise angr pour tester les contraintes pour les gadgets exécutant execve('/bin/sh', NULL, NULL)
Si vous avez épuisé les gadgets à essayer depuis OneGadget, Angry Gadget en propose beaucoup plus avec des contraintes compliquées à essayer !

bash
pip install angry_gadget

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

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks