Print Stack Canary
Last updated
Last updated
Impara e pratica Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Immagina una situazione in cui un programma vulnerabile a overflow dello stack può eseguire una funzione puts puntando a parte dell'overflow dello stack. L'attaccante sa che il primo byte del canary è un byte nullo (\x00
) e il resto del canary sono byte casuali. Quindi, l'attaccante può creare un overflow che sovrascrive lo stack fino al primo byte del canary.
Poi, l'attaccante chiama la funzionalità puts nel mezzo del payload che stamperà tutto il canary (eccetto il primo byte nullo).
Con queste informazioni, l'attaccante può creare e inviare un nuovo attacco conoscendo il canary (nella stessa sessione del programma).
Ovviamente, questa tattica è molto ristretta poiché l'attaccante deve essere in grado di stampare il contenuto del suo payload per esfiltrare il canary e poi essere in grado di creare un nuovo payload (nella stessa sessione del programma) e inviare il vero buffer overflow.
Esempi CTF:
64 bit, ASLR abilitato ma senza PIE, il primo passo è riempire un overflow fino al byte 0x00 del canary per poi chiamare puts e esfiltrarlo. Con il canary viene creato un gadget ROP per chiamare puts per esfiltrare l'indirizzo di puts dal GOT e un gadget ROP per chiamare system('/bin/sh')
32 bit, ARM, senza relro, canary, nx, senza pie. Overflow con una chiamata a puts su di esso per esfiltrare il canary + ret2lib chiamando system
con una catena ROP per poppare r0 (arg /bin/sh
) e pc (indirizzo di system)
Con una lettura arbitraria come quella fornita da stringhe di formato, potrebbe essere possibile esfiltrare il canary. Controlla questo esempio: https://ir0nstone.gitbook.io/notes/types/stack/canaries e puoi leggere di come abusare delle stringhe di formato per leggere indirizzi di memoria arbitrari in:
Format StringsQuesta sfida abusa in modo molto semplice di una stringa di formato per leggere il canary dallo stack
Impara e pratica Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)