Stampa Stack Canary
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al đŹ gruppo Discord o al gruppo telegram o seguici su Twitter đŚ @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
Ingrossa lo stack stampato
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. Poi, 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:
- https://guyinatuxedo.github.io/08-bof_dynamic/csawquals17_svc/index.html
- 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') - https://guyinatuxedo.github.io/14-ret_2_system/hxp18_poorCanary/index.html
- 32 bit, ARM, senza relro, canary, nx, senza pie. Overflow con una chiamata a puts su di esso per esfiltrare il canary + ret2lib chiamando
systemcon una catena ROP per pop r0 (arg/bin/sh) e pc (indirizzo di system)
Lettura Arbitraria
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:
- https://guyinatuxedo.github.io/14-ret_2_system/asis17_marymorton/index.html
- Questa sfida abusa in modo molto semplice di una stringa di formato per leggere il canary dallo stack
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al đŹ gruppo Discord o al gruppo telegram o seguici su Twitter đŚ @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
HackTricks

