Suprascrierea Stivei. Shellcodes
Suport
Exerciții
1 - Suprascrierea Stivei 🏁
Analizați fișierul executabil cookie_lover.elf
pentru a identifica funcționalitatea ce permite suprascrierea stivei și a o exploata pentru obținerea flag-ului.
2 - Crearea și Testarea unui Shellcode 💁
Rolul acestei sarcini este de a observa modul în care un shellcode este creat, compilat și rulat într-un mediu controlat (spre deosebire de execuția lui în cadrului unui exploit), cu ajutorul a două metode. Efectuați pașii de mai jos:
- Vizualizați conținutul fișierului
shellcode.S
. Care este funcționalitatea lui? - Rulați comanda
make get_shellcode
. Ce reprezintă octeții returnați? - Plasați șirul de octeți obținut anterior în fișierul
execution_from_stack.c
. Rulați comandamake execution_from_stack.elf
și, ulterior, executați programul. Folosiți instrumentele prezentate în primul laborator pentru a înțelege cum se rulează shellcode-ul. - Plasați șirul de octeți obținut anterior în fișierul
execution_with_mprotect.c
. Rulați comandamake execution_with_mprotect.elf
și, ulterior, executați programul. Folosiți instrumentele prezentate în primul laborator pentru a înțelege cum se rulează shellcode-ul.
3 - Folosirea Apelului de Sistem execve
în Shellcode 💁
Folosind Ghidra, identificați vulnerabilitatea executabilului ultimului exercițiu din al doilea laborator, essay-checker.elf
. Căutați un shellcode pe website-ul shell-storm.org care să lanseze în execuție /bin/bash
sau /bin/sh
. Combinând aceste două informații și utilizând simbolul helper
, creați un payload care să exploateze executabilul pentru lansarea în execuție a unui shell.