السلام عليكم ورحمة الله وبركاته اليوم راح اتكلم عن تخطي حماية
NX (No-eXecute) With Ret2libc x32/x64 Bit

المتطالبات

1.معرفة أساسيات Basic Buffer Overflow For 32/64 Bit

2.تحميل أضافة Peda

لاتنسى تتابع حسابي في التويتر

Here

بسم الله نبدأ


البداية

ماهي حماية 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

نشغل البرنامج

Join