الأداة Buffer Overflow Kit

مقدمة

عندما بدأت أتعلم Buffer Overflow  اضطررت لاستخدام أدوات مختلفة من أماكن مختلفة, منها ماهو موجوده في الـ Metasploit ومنها ماهو من خارجها ومنها ماتمنيت أن تكون موجودة. فكرت مؤخرا أن أقوم بعمل أداة تجمع معظم الأدوات التي كنت أستخدمها في مكان واحد وإعادة كتابتها من البداية كي أستفيد وأتعلم كيفية بناء مثل تلك الأدوات نيابة عن أن هناك أدوات أخرى لن أكتبها من الأول لكنها مهمة في مراحل كتابة الاستغالا أو أنها إضافات مهمة ففضلت أن أرفقها في البرنامج على أنها أدوات خارجية.

كما وضحت سابقا, الأداة لا تقوم بعمل شئ جديد أو شئ ذكي بل هي تجميع وإعادة كتابة سكربتات عدة في مكان واحد, فمثلا أداتان pattern_create وpattern_offset  ويعرفها من حاول الدخول في هذا المجال لم أجد سبب مقنعا أن تكونان في أداتين منفصلتين فأعدت كتابتها -بعيدا تماما عن metsploit-  وجعلها جزء من السكريبت Bofkit.

 

محتويات الأداة – حتى الأن

  • أداة Pattern create : لتوليد احتمالات غير متكررة  لحروف
  • أداة Pattern offset : لتحدد مكان حروف محددة من الحروف التي تم توليدها مسبقا
  • أداة hex to little endian : لتحويل عنوان register إلى صيغة little endian
  • أداة bin2hex : لتحويل ملف binary shellcode إلى صيغة hex لتستخدمه في الـ exploit
  • أداة bin2hex : لتحويل Hex shellcode إلى ملف binary – السكريبت يعتبر اسكربت خارجي حتى الأن
  • اسكربتات و أدوات خارجية مثل : nasm.exe , mona.py, hex2bin تجدها في مجلد bin/
  • جاري إضافة وتطوير المزيد كلما دعت الحاجة و سمح الوقت والجهد

 

متطلبات تشغيل البرنامج

تثبيت Ruby 1.9.3 على أوبونتو

تثبيت Ruby 1.9.3 على أوبونتو

apt-get -y install ruby1.9.1-full

جعل الإصدار 1.9.3 هو الإصدار الافتراضي

update-alternatives --config ruby

There are 2 choices for the alternative ruby (providing /usr/bin/ruby).

Selection Path Priority Status
————————————————————
* 0 /usr/bin/ruby1.8 50 auto mode
1 /usr/bin/ruby1.8 50 manual mode
2 /usr/bin/ruby1.9.1 10 manual mode

Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/ruby1.9.1 to provide /usr/bin/ruby (ruby) in manual mode.

جعل الـ gem الخاص بالإصدار 1.9.3 هو الافتراضي

update-alternatives --config gem

There are 2 choices for the alternative gem (providing /usr/bin/gem).

Selection Path Priority Status
——————————————————————
* 0 /usr/bin/gem1.8 180 auto mode
1 /usr/bin/gem1.8 180 manual mode
2 /usr/bin/gem1.9.1 10 manual mode

Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/gem1.9.1 to provide /usr/bin/gem (gem) in manual mode.

للتأكد

ruby --version

1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux]

gem -v

1.8.11

تثبيت Ruby 1.9.3 على فيدورا

فيدورا 18  تأتي باخر إصدار
yum -y install ruby

 

طريقة التشغل

– شاشة المساعدة
ruby bofk-cli.rb -h
---[ Help screen ]----------------------------------------------

Usage: ruby bofk-cli.rb {OPTIONS} ARGUMENT

Help menu:
-c, --pattern-create LENGTH Create Unique pattern string.
-o, --pattern-offset OFFSET Find Pattern offset string.
-l, --pattern-length LENGTH Only used with 'pattern-offset' if pattern was longer than 20280.
-e, --hex2lend OPCODE Convert Hex to little endian characters.
-x, --bin2hex BINARY_FILE Convert binary shellcode to Hex string.
-v, --version Display Buffer Overflow Kit version.
-h, --help Display help screen

External tools - bin/
[-] hex2bin.rb Hex to Binary file - BoFkit.
[-] nasm.exe Assembler and disassembler.
[-] mona.py Immunity debugger plugin - Corelan team.

Examples:
ruby bofk-cli.rb --pattern-create 500
ruby bofk-cli.rb --pattern-offset Aa4Z
ruby bofk-cli.rb --pattern-offset Zu2Z --pattern-length 40000
ruby bofk-cli.rb --hex2lend 0x41F2E377
ruby bofk-cli.rb --bin2hex input.bin

----------------------------------------
 

شاهد مثال حي على طريقة الاستخدام

 

تحميل الأداة

حمل الأداة من Github
https://github.com/KINGSABRI/BufferOverflow-Kit

للتحميل من سطر الأوامر
git clone https://github.com/KINGSABRI/BufferOverflow-Kit.git

و أي طلب أو مشكلة تواجهها الرجاء الإبلاغ عنها هناك

إذا كانت لك الرغبة في المشاركة في تطوير الأدة الرجال مراسلتي على

sabri {at} security4arabs {dot} net

 

نبذة عن الكاتب

المهندس صبري صالح. مهندس حماية شبكات و أنظمة و فحصها معالجة و تحليل الأحداث الأمنية و المسؤول عن تطبيق معايير الـ ISO 27001 , يعمل في بيئات متعددة المنصات. حاصل على عدة شهادات تقنية.

التعليقات:

اترك تعليقاً | عدد التعليقات: (2)

  1. يقول shadow-x:

    جزاك الله خيرا وشكرا لك أخي الفاضل أخوك من المغرب

أكتب تعليق