الحماية للأبد -Security 4 Ever

الحماية للأبد -Security 4 Ever (https://www.sec4ever.com/home/index.php)
-   أساسيات لغة الأسمبلي (https://www.sec4ever.com/home/forumdisplay.php?f=8)
-   -   Linux Stack Overflow .. Part 1 (https://www.sec4ever.com/home/showthread.php?t=19527)

zero-cool 10-06-2019 08:51 PM

Linux Stack Overflow .. Part 1
 
1 مرفق

السلام عليكم ورحمة الله وبركاته

إن شاء الله تكونوا في تمام الصحة والعافية إخواني



في هذه السلسلة حنشوف كيفية إستغلال ثغرة البافر أوفر فلو مع حل المشاكل التي ستعترضنا

لدينا برنامج بسيط حنشتغل معه:

كود PHP:

#include<stdio.h>
#include<string.h>
 
void function(char *var){
 
      
char buffer[10]
      
strcpy(buffer,var);
     
int main(int argcchar** argv){
      function(
argv[1]);
      return 
0;
 


البرنامج يقوم بطباعة مايكتبه المستخدم على الترمنال ثم يضعه في مكان مافي الذاكرة حجمه 10 بايت
نقوم بعملية الكومبايل

كود PHP:

gcc -m32 poc.-o poc 

مانريده و تحقيق الكراش يعني لو أدخلنا بايانات أصغر من 10 بايت سيطبعهم لنا
مذا لو أدخلنا بيانت حجمها كبير كما في الصورة التالية:

http://i65.tinypic.com/wjcug4.png

البرنامج توقف وكتب لنا segmentation fault يعني أنه عمل كراش
السؤال هو كيف حصل هذا لكراش كيف نستغل هذا لكراش بالطريقة المناسبة يعني هل يمكننا فعل شيء لعمل كراش بالطريقة التي نريدها.
الآن نفتح البرنامج مع edb

كود PHP:

edb --run ./poc AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 

http://i67.tinypic.com/ot3kmv.png

نظغط run مرتين فيحصل الكراش مرة أخرى

http://i66.tinypic.com/34rj3mu.png

نشوف ان البيانات التي أدخلناها وصلت للمسجل eip
السؤال هنا كم من بايت يلزمنا للوصول مسجل eip وكيف نحول التنفيذ للشيلكود

نقوم بعمل fuzzer بسيطة لإدخال البيانات مرة أخرى وحساب كم من بايت يلزمنا للوصول مسجل eip

أولا ننشئ مجموعة البيانات التي سندخلها باداة pattern_create.rb تبع الميتاسبلويت

http://i66.tinypic.com/wjwf8l.png

ننشئ ال fuzzer تبعنا

كود PHP:

import os
 
sh 
"Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2A"
 
of "edb --run ./poc '"
 
of += sh
 
of 
+= "'"
 
os.system(of

ننفذ ال fuzzer ونشوف ال edb

حصل الكراش

http://i63.tinypic.com/2dh8hnc.png

http://i68.tinypic.com/rsvimv.png

نشوف كم من بايت نصل لل eip

http://i68.tinypic.com/5n8bh0.png

نشوف ال esp offset

http://i63.tinypic.com/svhu1g.png

الآن بعد ماوصلنا لل eip نريد أن نضع الشيلكود تبعنا في المكدس لذلك نبحث عن عنوان القفزة لل esp ونضعه في ال eip لتنفيذ الشيلكود تبعنا


في أمان الله


الساعة الآن 07:44 PM

Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.