السلام عليكم ورحمة الله وبركاته اليوم راح اتكلم عن تخطي حماية
NX (No-eXecute) With Ret2libc x32/x64 Bit
لاتنسى تتابع حسابي في التويتر
بسم الله نبدأ
البداية
ماهي حماية NX (No-eXecute)
حماية NX (No-eXecute) هي حماية هدفها جعل Stack غير قابل للتشغيل لذا لايمكنك تشغيل Shellcode بعد وضعه صلاحيات Stack بدون nx هي RWX وتعني read write execute لكن مع حماية NX تصبح RW
ماهو Ret2libc
يرامج نظام تشغيل لينكس تستعمل Libc كي تستخدم بعض Funcations وسوف نستخدم في هذا الهجوم بعض Funcations من libc كي نستدعي system وننفذ “bin/sh/“
تخطي NX باستعمال Ret2libc
أول شيء نفعله ننشى برنامج مصاب
#include unistd.h
#include stdin.h
int overflow () {
char buffer[500];
int userinput;
userinput = read(0, buffer, 700);
printf("\nUser provided %d bytes. Buffer content is: %s\n", userinput, buffer);
return 0;
}
int main (int argc, char * argv[]) {
overflow();
return 0;
}
نعمل Compile للبرنامج عن طريق الامر
gcc -fno-stack-protector -m32 vulnerable.c -o vulnerable
قبل مانبدأ دعنا نغلق حماية ASLR
عن طريق الامر هذا
echo 0 > /proc/sys/kernel/randomize_va_space
Create Exploit For 32Bit
نشغل البرنامج